You cannot select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
180 lines
4.4 KiB
C++
180 lines
4.4 KiB
C++
#pragma once
|
|
|
|
#include "iDlgBase.h"
|
|
#include "mModuleDefines.h"
|
|
#include "mGuiSysManager_global.h"
|
|
|
|
class QListWidgetItem;
|
|
class ZxDataProject;
|
|
class iRibbonXmlGroup;
|
|
|
|
namespace Ui {
|
|
class iWxWelcome;
|
|
}
|
|
|
|
// 选择并打开项目对话框
|
|
class M_GUI_SYSMANAGER_EXPORT iWxWelcome : public iDlgBase
|
|
{
|
|
Q_OBJECT
|
|
|
|
public:
|
|
|
|
enum ButtonMode
|
|
{
|
|
BM_Active = 0, //当前选择的状态
|
|
BM_LastActive, //上次选用的状态
|
|
BM_Inactive, //未选择
|
|
BM_Others, //比如More按钮
|
|
BM_Unknown
|
|
};
|
|
|
|
explicit iWxWelcome(MainWindowOption o, QWidget *parent = 0);
|
|
~iWxWelcome();
|
|
|
|
// 初始化
|
|
virtual void initUI();
|
|
|
|
// 获取项目路径相关
|
|
QString getProjectName(); //项目名称
|
|
QString getProjDir(QString sProjName = ""); //项目路径
|
|
QString getProjParentDir(); //项目所在的上一级路径
|
|
QString getProjFullPath(QString sProjName = ""); //全
|
|
|
|
// 按钮的状态
|
|
void refrsheButtonStates();
|
|
|
|
// 调用模式
|
|
void runProjNew();
|
|
bool runProjOpen();
|
|
bool _runProjOpen(QString sProjName);
|
|
void runProjSketch();
|
|
void runProjSaveAs();
|
|
void runProjDel(QString sProjName = "");
|
|
bool redirectAndOpen(QString sDir, QString sProjName, bool bDbMode);
|
|
|
|
// 默认工作路径
|
|
static QString getLastPrjWorkDir();
|
|
|
|
// 左侧按钮相关
|
|
void setXmlFileGroup(iRibbonXmlGroup* p);
|
|
void changeLeft2Mode(bool bReorgUi = true);
|
|
|
|
signals:
|
|
|
|
// 判断是否enable
|
|
void sigBtnEnabled(QString sName, int nID, bool& bEnabled);
|
|
|
|
// 选定后即将打开
|
|
void sigProjSelected(QString sDir, QString sProj, bool& bOk);
|
|
|
|
// 获取当前打开的Project的全路径
|
|
void sigGetCurProjFullpath(QString& s);
|
|
|
|
// 删除工区后的最近打开项目的刷新
|
|
void sigProjDeleted(QString sPath);
|
|
|
|
// 获取当前的Project
|
|
void sigGetCurProject(ZxDataProject*&);
|
|
|
|
// 切换视窗
|
|
void sigChange2Main();
|
|
|
|
// 命令传递
|
|
void sigAction2Main(QString sAction, bool& bExecuted);
|
|
|
|
protected:
|
|
|
|
// 初始化一些配置参数
|
|
void initSbCtrls();
|
|
|
|
// 设置左侧按钮
|
|
void initLayoutLeft();
|
|
|
|
// 设置最近项目Groupbox
|
|
void initGbxCurrentProjs();
|
|
void changeProjBtnMode(QPushButton* pBtn, ButtonMode bm);
|
|
void activeProjBtn(QPushButton* pBtn);
|
|
|
|
// 获取井数
|
|
int getWellNumOfProj(QString& sUrl);
|
|
|
|
// 默认工作路径
|
|
QStringList getRecentDirs();
|
|
void changeRecentDirs(QString sDir);
|
|
|
|
// 刷新相应列表
|
|
void refreshCurrentProjs(); //当前目录下所有项目
|
|
void refreshRecentProjs(); //最近打开的项目
|
|
void refreshRecentDirs(); //最近打开的目录
|
|
QStringList getProjBaseNames(QString sDir);
|
|
QString getProjTips(QString sBaseName);
|
|
|
|
bool removeFromRecentProjects(QString sUrl);
|
|
bool removeFromRecentDirs(QString sDir);
|
|
|
|
// 重新布局当前目录的所有的项目
|
|
void relayoutCurrentProjs();
|
|
|
|
// 更新系统配置
|
|
void copySysConfigs(QString& sUrl);
|
|
|
|
private slots:
|
|
|
|
// 左侧按钮统一响应
|
|
void slotLeftBtnTriggered();
|
|
|
|
// 当前目录下的工区响应
|
|
void slotProjBtnTriggered();
|
|
|
|
// 右键菜单(比如删除)
|
|
void slotPromptContextMenu(const QPoint &pos);
|
|
|
|
// 右键菜单响应
|
|
void slotMenuActionTriggered();
|
|
|
|
// 路径
|
|
void on_btnBrowseDir_clicked();
|
|
|
|
// 刷新
|
|
void on_btnRefreshCurProjects_clicked();
|
|
void on_btnRefreshProjects_clicked();
|
|
void on_btnRefreshDirs_clicked();
|
|
|
|
// 路径Chaged
|
|
void on_tbxDir_textChanged(const QString &arg1);
|
|
|
|
// 当前项目切换
|
|
void on_listWxRecentProjs_itemDoubleClicked(QListWidgetItem *item);
|
|
void on_listWxRecentDirs_itemDoubleClicked(QListWidgetItem *item);
|
|
|
|
// Home
|
|
void on_btnHome_clicked();
|
|
|
|
// 最近个数控制
|
|
void on_cbxRecentNum_clicked();
|
|
void on_sbRecentNum_valueChanged(int arg1);
|
|
|
|
// 布局个数
|
|
void on_sbMaxRow_valueChanged(int arg1);
|
|
void on_sbMaxCol_valueChanged(int arg1);
|
|
|
|
void on_cbxSortBy_currentIndexChanged(int index);
|
|
|
|
private:
|
|
|
|
Ui::iWxWelcome *ui;
|
|
QGridLayout* m_pGridLayout;
|
|
QMenu* m_pMenu;
|
|
|
|
QStringList m_listRencentDirs;
|
|
|
|
// 左侧按钮相关
|
|
MainWindowOption m_oMwo;
|
|
iRibbonXmlGroup* m_pXmlFileGroup;
|
|
QVector<QPushButton*> m_vecLeftBtns;
|
|
QVector<QFrame*> m_vecLeftLines;
|
|
|
|
QPushButton* m_pBtnCurProj;
|
|
QMap<QPushButton*, QLabel*> m_mapBtnLbls;
|
|
};
|