logplus/ModuleConsole/include/PaiModuleTree.h

107 lines
2.9 KiB
C
Raw Normal View History

2026-01-16 17:18:41 +08:00
/**
* @file PaiModuleTree.h
* @brief
* @author: shiyuerong
* @date: 2011-8-17
*/
#ifndef PAI_FRAME_WORKFLOWVIEW_PAIMODULETREE_H
#define PAI_FRAME_WORKFLOWVIEW_PAIMODULETREE_H
#include <QWidget>
#include "PaiTreeWidget.h"
#include "ControlExtension.h"
#include "ModuleInformation.h"
namespace pai
{
/**
*
*/
class PAI_WORKFLOWVIEW_EXPORT CPaiModuleTreeControl:public QObject,public ControlExtension
{
public:
/**
* @brief
* @param bUnitTest
* @param pParent
*/
CPaiModuleTreeControl(QObject* pParent=NULL);
/**
* @brief
* @param[out] toplevelTreeItems
*/
void BuildTreeItemsFromModuleManager(QList<QTreeWidgetItem*>& toplevelTreeItems);
/**
* @brief QDrag对象
* @param pCurrentItem
*/
void DragItem(QTreeWidgetItem* pCurrentItem);
private:
/**
* IExtension的接口
*/
virtual std::string GetStringID() const;
};
/**
*
*/
class CPaiModuleTree : public pai::gui::PaiTreeWidget
{
Q_OBJECT
public:
CPaiModuleTree(QWidget*);
virtual ~CPaiModuleTree();
/**
* @brief module
* @param strModuleName module的名字
*/
void selectModules(const QString& strModuleName);
void MonkeyClickedModule(const QString& strModuleName);
protected:
/**
* @brief
*/
virtual void startDrag(Qt::DropActions /*supportedActions*/);
virtual void mouseDoubleClickEvent(QMouseEvent *event);
signals:
/**
* @brief
*/
void DeliverModule(const QString&);
void menuClicked(const QString&,const QString&); // 第一个变量为菜单名,第二个变量是模块名
public slots:
void moduleSelectedSlot(bool); // slot for setting scenes module selected flag
/**
* @brief
*/
void RequireDeliverSelectedModules();
/**
*@brief
*/
void slotSelectModule(pai::workflow::CModuleInformation* pModule);
private slots:
void changeFolderToOpen(QTreeWidgetItem*);
void changeFolderToClose(QTreeWidgetItem*);
void menuSelectedSlot();
/**
* @brief
* @param[in] point
*/
void RightMenuRequest(const QPoint &point);
private:
CPaiModuleTreeControl m_control;
bool scenseModuleSelected; // scense module selected flag
};
}
#endif