修改模型信息时,如果模型名称发生变化,对应节点同步更新

This commit is contained in:
duanshengchao 2025-06-03 17:41:02 +08:00
parent 668aef03c1
commit 4c3f3db44b
6 changed files with 33 additions and 1 deletions

View File

@ -32,6 +32,7 @@ public:
QModelIndex getConnNodeIndex(const QString& name); QModelIndex getConnNodeIndex(const QString& name);
void addDataModel(const QString& connection, Model& model); void addDataModel(const QString& connection, Model& model);
void removeDataModel(DBStructureNode*); void removeDataModel(DBStructureNode*);
void updateDataModelName(const QString& connection, int modelID, const QString& name);
void addDataGroup(const QString& connection, int modelID, QVector<int> groups); void addDataGroup(const QString& connection, int modelID, QVector<int> groups);
void removeDataGroup(DBStructureNode*); void removeDataGroup(DBStructureNode*);

View File

@ -67,6 +67,7 @@ private slots:
void onSIG_connectionStatusChanged(const QString& strConnectionName, bool bConnected); void onSIG_connectionStatusChanged(const QString& strConnectionName, bool bConnected);
void onSIG_addModel(Model&); void onSIG_addModel(Model&);
void onSIG_addGroups(int, QVector<int>); void onSIG_addGroups(int, QVector<int>);
void onSIG_updateModelNodeText(int, const QString&);
//void onSIG_addAttributes(); //void onSIG_addAttributes();
void onSIG_openAttributeInfo(const QString&, ModelAttributeGroup&); void onSIG_openAttributeInfo(const QString&, ModelAttributeGroup&);
void onSIG_closeAttributeInfo(ModelAttributeGroup&); void onSIG_closeAttributeInfo(ModelAttributeGroup&);

View File

@ -57,6 +57,7 @@ private:
signals: signals:
void addModel(Model&); void addModel(Model&);
void updateModelNodeText(int, const QString&);
public slots: public slots:
void onBtnClicked_selectImage(); void onBtnClicked_selectImage();

View File

@ -239,6 +239,27 @@ void DBStructureModel::removeDataModel(DBStructureNode* modelNode)
} }
} }
void DBStructureModel::updateDataModelName(const QString& connection, int modelID, const QString& name)
{
DBStructureNode* connNode = getConnectionNode(connection);
if(!connNode)
{
LOG_ERROR("DBStructureModel", QString::fromWCharArray(L"更改模型名称时获取ConnectionNode失败节点名称:%1").arg(connection));
return;
}
DBStructureNode* modelNode = getModelNode(connNode, modelID);
if(!connNode)
{
LOG_ERROR("DBStructureModel", QString::fromWCharArray(L"更改模型名称时获取ModelNode失败节点ID:%1").arg(modelID));
return;
}
QModelIndex connIndex = index(connNode->row(), 0, QModelIndex());
QModelIndex modelIndex = index(modelNode->row(), 0, connIndex);
setData(modelIndex, name);
}
void DBStructureModel::addDataGroup(const QString& connection, int modelID, QVector<int> groups) void DBStructureModel::addDataGroup(const QString& connection, int modelID, QVector<int> groups)
{ {
DBStructureNode* connNode = getConnectionNode(connection); DBStructureNode* connNode = getConnectionNode(connection);

View File

@ -204,6 +204,7 @@ void MainWindow::onActionTrigger_addModel()
m_pModelInfoDialog->setMainWindow(this); m_pModelInfoDialog->setMainWindow(this);
m_pModelInfoDialog->installEventFilter(this); m_pModelInfoDialog->installEventFilter(this);
connect(m_pModelInfoDialog, &ModelInfoEditDialog::addModel, this, &MainWindow::onSIG_addModel); connect(m_pModelInfoDialog, &ModelInfoEditDialog::addModel, this, &MainWindow::onSIG_addModel);
connect(m_pModelInfoDialog, &ModelInfoEditDialog::updateModelNodeText, this, &MainWindow::onSIG_updateModelNodeText);
connect(m_pModelInfoDialog, &ModelInfoEditDialog::finished, this, [=]{ MaskManager::instance()->hideMask(m_pModelInfoDialog);}); connect(m_pModelInfoDialog, &ModelInfoEditDialog::finished, this, [=]{ MaskManager::instance()->hideMask(m_pModelInfoDialog);});
} }
@ -237,6 +238,7 @@ void MainWindow::onActionTrigger_updateModel(int modelID)
m_pModelInfoDialog->setMainWindow(this); m_pModelInfoDialog->setMainWindow(this);
m_pModelInfoDialog->installEventFilter(this); m_pModelInfoDialog->installEventFilter(this);
connect(m_pModelInfoDialog, &ModelInfoEditDialog::addModel, this, &MainWindow::onSIG_addModel); connect(m_pModelInfoDialog, &ModelInfoEditDialog::addModel, this, &MainWindow::onSIG_addModel);
connect(m_pModelInfoDialog, &ModelInfoEditDialog::updateModelNodeText, this, &MainWindow::onSIG_updateModelNodeText);
connect(m_pModelInfoDialog, &ModelInfoEditDialog::finished, this, [=]{ MaskManager::instance()->hideMask(m_pModelInfoDialog);}); connect(m_pModelInfoDialog, &ModelInfoEditDialog::finished, this, [=]{ MaskManager::instance()->hideMask(m_pModelInfoDialog);});
} }
@ -349,6 +351,12 @@ void MainWindow::onSIG_addGroups(int modelID, QVector<int> groups)
m_pDBStrutureModel->addDataGroup(connection, modelID, groups); m_pDBStrutureModel->addDataGroup(connection, modelID, groups);
} }
void MainWindow::onSIG_updateModelNodeText(int modelID, const QString& text)
{
QString connection = m_pDBStrutureView->curConnection();
m_pDBStrutureModel->updateDataModelName(connection, modelID, text);
}
void MainWindow::onSIG_openAttributeInfo(const QString& connection, ModelAttributeGroup& attributeGroup) void MainWindow::onSIG_openAttributeInfo(const QString& connection, ModelAttributeGroup& attributeGroup)
{ {
if(m_dbBrowser) if(m_dbBrowser)

View File

@ -372,7 +372,7 @@ void ModelInfoEditDialog::onBtnClicked_save()
{ {
if(modelName != m_oldName) //更新对应树节点 if(modelName != m_oldName) //更新对应树节点
{ {
emit updateModelNodeText(m_curModelID, modelName);
} }
//计算删除和添加的属性组-转化为QSet然后利用QSet的-’运算符操作 //计算删除和添加的属性组-转化为QSet然后利用QSet的-’运算符操作
QSet<int> oldSet(m_oldGroups.begin(), m_oldGroups.end()); QSet<int> oldSet(m_oldGroups.begin(), m_oldGroups.end());