DiagramDesigner/diagramCavas/include/dataSourceDlg.h

55 lines
1.7 KiB
C++

#ifndef DATASOURCEDLG_H
#define DATASOURCEDLG_H
/*********运行时数据源选则*********/
#include <QDialog>
QT_BEGIN_NAMESPACE
namespace Ui { class dataSourceDlg; }
QT_END_NAMESPACE
class QStandardItemModel;
class QStandardItem;
struct ExtraProperty;
class StructDataSource;
class ExtraPropertyManager;
class DataSourceDlg : public QDialog
{
Q_OBJECT
public:
DataSourceDlg(QWidget *parent = nullptr);
~DataSourceDlg();
void initial();
void loadData();
void setExtraPropertyManager(ExtraPropertyManager* p) {_pExtraProManager = p;}
void showDlg();
public slots:
void onOkClicked();
void onCancelClicked();
void onTreeSelectionChanged(const QModelIndex& current, const QModelIndex& previous);
void addItemToView(const ExtraProperty& property,
const QString& displayMode, // "name" 或 "tag"
QStandardItem* root,
QStandardItem* pItem);
private:
void clearItems();
void clearPropertyList();
void loadCategoryProperties(QStandardItem* categoryItem);
QVector<ExtraProperty> getCategoryPropertiesFromDataManager(const QVariantMap& categoryData);
void updatePropertyList(QVector<ExtraProperty>);
bool expandToPropertyByCode(const QString& propertyCode,const QString& displayMode); //根据编码展开到属性节点
bool expandToNodeByNames(QStandardItem* rootItem,const QStringList& nodeNames); //根据已知名称展开到对应节点
private:
Ui::dataSourceDlg *ui;
QStandardItemModel* _treeModel;
QStandardItem* m_currentCategoryItem; //当前操作对象
ExtraPropertyManager* _pExtraProManager; //使用外部的manager
StructDataSource* m_dataSource;
};
#endif