DiagramDesigner/include/projectModelDlg.h

66 lines
2.0 KiB
C++

#ifndef PROJECTMODELDLG_H
#define PROJECTMODELDLG_H
#include <QDialog>
#include <QStandardItemModel>
#include <QItemSelection>
#include <QTableWidgetItem>
#include "tools.h"
#include "global.h"
QT_BEGIN_NAMESPACE
namespace Ui { class projectModelDlg; }
QT_END_NAMESPACE
class projectModelDlg : public QDialog
{
Q_OBJECT
public:
projectModelDlg(QWidget *parent = nullptr);
~projectModelDlg();
void initial();
void initialModel();
void initialList();
//void update();
public slots:
void onSaveClicked();
void onCancelClicked();
void onApplyClicked();
void onRevokeClicked();
void onIndexRbtnClicked(const QPoint &pos); //索引列表右键菜单
void onDeleteProjectClicked(); //删除选中工程模
void addPropertyGroup(); //添加tableWidget中的工程模
void onTableItemClicked(QTableWidgetItem *item); //模型item点击事件
void onDelegateFinishEdit(const QModelIndex &index, const QString &value); //lineEdit代理编辑完成事件
public:
QString getProjectName() const; //返回当前选择项目的名称
QString getMetaName() const; //返回当前元模型名
private:
void removeProjectData(const QString&,const QString&,int role); //移除对应的project层级结构
void setupUI();
void initialTypeMap();
projectState couldSave();
void setTableItemState(int row,TableItemState state); //设置状态
int getModelEditState(); //返回工程模编辑状态(选择、编辑、新建)
private:
Ui::projectModelDlg *ui;
QString _curMeta; //当前元模型
QString _curProject; //当前工程模
QString _curType; //当前关联类型
PropertyModel _curModel; //新建的model
int _curRow; //当前操作行
BiDirectionalMap<QString,int> _mapType; //类型名映射表
};
#endif