123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226 |
- #pragma once
- #include "GvlManager.h"
- #include "Common.h"
- /// <summary>
- /// 管理多个任务的树形控件
- /// </summary>
- class WindowAppMdiFrame;
- class WindowApp;
- class WindowAppResourceManagerTree : public QTreeWidget
- {
- Q_OBJECT
- public:
- WindowAppResourceManagerTree(QTreeWidget* parent = nullptr);
- ~WindowAppResourceManagerTree();
- public:
- void setMdiFrame(WindowAppMdiFrame* pMdiFrame)
- {
- this->m_pMdiFrame = pMdiFrame;
- }
- //// 添加一个新节点
- //QWidget* addNewNode(QString strName, SUBVIEW_TYPE viewType, bool bActive = false);
- // 添加一个GVL节点
- QWidget* addGvlNode(QString strName, GVL_MODE gvlType, DllTool* pHdwTool, bool bActive = false);
- // 添加一个Pou节点
- QWidget* addPouNode(QString strName, bool bActive = false);
- // 添加一个Task节点
- QWidget* addTaskNode(QString strName, bool bActive = false);
- // 添加一个Ui节点
- QWidget* addUiNode(QString strName, bool bActive = false, bool bFromDoc = false);
- // 添加默认的总任务管理视图节点
- QWidget* addDefaultTaskMonitorNode(QString strName);
- // 添加默认的Log视图节点
- QWidget* addDefaultLogViewNode(QString strName);
- // 添加默认的Hardware组态视图节点
- QWidget* addDefaultHWConfigViewNode(QString strName);
- // 重置(删除所有创建的节点和子视图)
- void reset();
- // 查找子节点
- QTreeWidgetItem* findChildItem(const QString& strItemName);
- // 2022-2-22 创建默认的几个视图
- void initDefaultViews();
- // 2022-2-22 创建默认的几个节点
- void initDefaultNodes();
- // 创建初始 Task 节点
- void initDefaultTaskNodes(QString strTaskName);
- // 2022-9-20 绑定WindowApp指针,用于切换对应的ToolTab(Pou和UI)
- void bindWindowApp(WindowApp* ptr)
- {
- m_pWindowApp = ptr;
- }
- // 2022-9-21 根据用户选择的子窗体,激活App中对应的工具箱Tab(仅Pou和UI)
- void switchAppToolbox(QTreeWidgetItem* currentParentItem);
- // 2022-9-21 根据用户激活的子窗体的名字,激活App中对应的工具箱Tab(仅Pou和UI)
- void switchAppToolbox(const QString& strSubviewName);
- // 各个菜单项的响应函数
- public:
- // Gvl - New
- void doMenuGvlNew();
- // Gvl - 删除
- void doMenuGvlDelete(const QString& strName);
- // Pou - New
- void doMenuPouNew();
- // Pou - Import
- void doMenuPouImport();
- // Pou - Export
- void doMenuPouExport(const QString& strName);
- // Pou - Rename
- void doMenuPouRename(const QString& strName);
- // Pou - Delete
- void doMenuPouDelete(const QString& strName);
- // Pou - Change Mode
- void doMenuPouChangeMode(const QString& strName);
- // Task - New
- void doMenuTaskNew();
- // Task - Rename
- void doMenuTaskAddPou(const QString& strName);
- // Task - Del
- void doMenuTaskDelete(const QString& strName);
- // UI - New
- void doMenuUiNew();
- // UI - setMainPage
- void doMenuUiMainPage(const QString& strName);
- // UI - Del
- void doMenuUiDelete(const QString& strName);
- private:
- // 创建界面布局
- void createLayouts();
- // 创建各个节点的右键菜单
- void createMenus();
- // 添加子节点
- void addChildItem( SUBVIEW_TYPE nodeIndex, const QString& strItemName);
- // 删除所有子节点
- void removeAllSubNodes();
- //// 重写右键菜单事件
- //void contextMenuEvent(QContextMenuEvent* event);
- // 添加一个Pou节点到Task节点
- void addPouNodeToTask(QString strPouName, QString strTaskName);
- private slots:
- // 弹出右键菜单
- void onTreeContextMenu( const QPoint& pt);
- // 节点双击,切换对应子页面
- void onTreeItemDblClicked(QTreeWidgetItem*, int);
- // 各个节点的右键消息响应
- // GVL 菜单
- void onMenuGVL(QAction* action);
- // Pou 菜单
- void onMenuPou(QAction* action);
- // Task 菜单
- void onMenuTask(QAction* action);
- // UI 菜单
- void onMenuUI(QAction* action);
- protected:
- //// MainPage的名字信息
- //// (由于UI页面的主页后面要加main后缀,所以这里需要处理一下)
- // 2022-9-25 去掉了此处理
- //struct UI_MAINPAGE_TITLE
- //{
- // QString strShowTitle;
- // QString strRealTitle;
- //} m_uiMainTitle;
- // MainPage的名字信息
- QString m_strMainTitle;
- // 节点的图标
- QList <QIcon> m_appNodeIcons;
- // 各个根节点
- QList <QTreeWidgetItem*> m_rootNodes;
- // 各个根节点的名称
- QVector <QString> m_appNodeNames;
- // 顶层节点
- QTreeWidgetItem* topAppItem;
- QTreeWidgetItem* topHardwareItem;
- QTreeWidgetItem* topDebugItem;
- // 根节点的菜单
- QMenu* m_menuGVLRoot;
- QMenu* m_menuPouRoot;
- QMenu* m_menuTaskRoot;
- QMenu* m_menuUiRoot;
- // 子节点的菜单
- QMenu* m_menuGVLChild;
- QMenu* m_menuPouChild;
- QMenu* m_menuTaskChild;
- QMenu* m_menuUiChild;
- QMenu* m_menuScriptChild;
- // GVL Action
- QAction* m_actionGVLNew;
- QAction* m_actionGVLEdit;
- QAction* m_actionGVLRename;
- QAction* m_actionGVLDelete;
- // Pou Action
- QAction* m_actionPouNew;
- QAction* m_actionPouRename;
- QAction* m_actionPouChangeMode;
- QAction* m_actionPouDelete;
- QAction* m_actionPouExport;
- QAction* m_actionPouImport;
- // Task Manager Action
- QAction* m_actionTaskNew;
- QAction* m_actionTaskAddPou;
- //QAction* m_actionTaskRename;
- QAction* m_actionTaskDelete;
- // UI Action
- QAction* m_actionUiNew;
- QAction* m_actionUiMainPage;
- QAction* m_actionUiDelete;
- // Mdi控件管理单元
- WindowAppMdiFrame* m_pMdiFrame;
- // 2022-9-20,保存父窗体指针(目前用于在激活对应的子窗体时切换App界面中对应的工具箱Tab)
- WindowApp* m_pWindowApp;
- };
|