#ifndef PROJECTMODELDLG_H #define PROJECTMODELDLG_H #include #include #include #include #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 _mapType; //类型名映射表 }; #endif