完成模型信息的修改逻辑
This commit is contained in:
parent
2fa520e6a6
commit
a8644514ad
|
|
@ -67,11 +67,16 @@ void DatabaseBrowser::setMainWindow(MainWindow* window)
|
|||
m_pMainWindow = window;
|
||||
}
|
||||
|
||||
int DatabaseBrowser::tabIndex(const QString& tabText)
|
||||
int DatabaseBrowser::tabIndex(const QString& tabData)
|
||||
{
|
||||
QTabBar* tabBar = ui->tabWidget->tabBar();
|
||||
if(!tabBar)
|
||||
return -1;
|
||||
|
||||
for(int i = 0; i < ui->tabWidget->count(); i++)
|
||||
{
|
||||
if(ui->tabWidget->tabText(i) == tabText)
|
||||
//if(ui->tabWidget->tabText(i) == tabData)
|
||||
if(tabBar->tabData(i).toString() == tabData)
|
||||
return i;
|
||||
}
|
||||
|
||||
|
|
@ -81,7 +86,8 @@ int DatabaseBrowser::tabIndex(const QString& tabText)
|
|||
void DatabaseBrowser::addTab_attribute(const QString& connection, ModelAttributeGroup& attributeGroup)
|
||||
{
|
||||
QString tabText = attributeGroup.strModelName + "/" + attributeGroup.strGroupName;
|
||||
int index = tabIndex(tabText);
|
||||
QString tabData = QString::number(attributeGroup.modelID) + "/" + QString::number(attributeGroup.groupID);
|
||||
int index = tabIndex(tabData);
|
||||
if(index != -1)
|
||||
{
|
||||
ui->tabWidget->setCurrentIndex(index);
|
||||
|
|
@ -94,6 +100,9 @@ void DatabaseBrowser::addTab_attribute(const QString& connection, ModelAttribute
|
|||
connect(view->model(), &AttributeTableModel::syncDataStatus, this, &DatabaseBrowser::onSyncDataStatus);
|
||||
connect(view->delegate(), &AttributeTableDelegate::showMessage, this, &DatabaseBrowser::onShowMessage);
|
||||
index = ui->tabWidget->addTab(view, QIcon(":/img/images/icon_hierarchy.png"), tabText);
|
||||
QTabBar* tabBar = ui->tabWidget->tabBar();
|
||||
if(tabBar)
|
||||
tabBar->setTabData(index, tabData);
|
||||
if(view->model())
|
||||
view->model()->refresh();
|
||||
//添加自定义按钮
|
||||
|
|
@ -126,7 +135,9 @@ void DatabaseBrowser::closeTab_attribute(ModelAttributeGroup& attributeGroup)
|
|||
//int tabCount = ui->tabWidget->count();
|
||||
for(int i = 0; i < ui->tabWidget->count(); i++)
|
||||
{
|
||||
if(ui->tabWidget->tabText(i).contains(attributeGroup.strModelName + "/"))
|
||||
//if(ui->tabWidget->tabText(i).contains(attributeGroup.strModelName + "/"))
|
||||
QString tabData = ui->tabWidget->tabBar()->tabData(i).toString();
|
||||
if(tabData.contains(QString::number(attributeGroup.modelID)+ "/"))
|
||||
{
|
||||
onTabCloseRequested(i);
|
||||
i--;
|
||||
|
|
@ -136,8 +147,9 @@ void DatabaseBrowser::closeTab_attribute(ModelAttributeGroup& attributeGroup)
|
|||
}
|
||||
else //关闭具体的tab
|
||||
{
|
||||
QString tabText = attributeGroup.strModelName + "/" + attributeGroup.strGroupName;
|
||||
int index = tabIndex(tabText);
|
||||
//QString tabText = attributeGroup.strModelName + "/" + attributeGroup.strGroupName;
|
||||
QString tabData = QString::number(attributeGroup.modelID) + "/" + QString::number(attributeGroup.groupID);
|
||||
int index = tabIndex(tabData);
|
||||
if(index == -1)
|
||||
return;
|
||||
|
||||
|
|
|
|||
|
|
@ -295,6 +295,15 @@ void DBStructureView::showContextMenu(const QPoint& pos)
|
|||
else if(node && node->type() == TableNode)
|
||||
{
|
||||
CustomMenu menu;
|
||||
menu.addAction(QString::fromWCharArray(L"刷新"), [this, node]{
|
||||
DBStructureModel* model = dynamic_cast<DBStructureModel*>(this->model());
|
||||
if(model && node->parentNode())
|
||||
model->refreshStructure_Model(node->parentNode()->name(), node->data(Qt::UserRole + NodeDataRole::ID).toInt());
|
||||
});
|
||||
menu.addSeparator();
|
||||
menu.addAction(QString::fromWCharArray(L"修改"), [this, node]{
|
||||
emit acitonTrigger_updateModel(node->data(Qt::UserRole + NodeDataRole::ID).toInt());
|
||||
});
|
||||
menu.addAction(QString::fromWCharArray(L"删除"), [this, node]{
|
||||
if(m_pMainWindow)
|
||||
{
|
||||
|
|
@ -307,20 +316,10 @@ void DBStructureView::showContextMenu(const QPoint& pos)
|
|||
closeAttributeGroup(node);
|
||||
removeNode(node);
|
||||
});
|
||||
menu.addAction(QString::fromWCharArray(L"刷新"), [this, node]{
|
||||
DBStructureModel* model = dynamic_cast<DBStructureModel*>(this->model());
|
||||
if(model && node->parentNode())
|
||||
model->refreshStructure_Model(node->parentNode()->name(), node->data(Qt::UserRole + NodeDataRole::ID).toInt());
|
||||
});
|
||||
menu.addSeparator();
|
||||
menu.addAction(QString::fromWCharArray(L"修改"), [this, node]{
|
||||
emit acitonTrigger_updateModel(node->data(Qt::UserRole + NodeDataRole::ID).toInt());
|
||||
});
|
||||
menu.addAction(QString::fromWCharArray(L"添加属性组"), [this, node]{
|
||||
/*menu.addAction(QString::fromWCharArray(L"添加属性组"), [this, node]{
|
||||
emit actionTrigger_addGroup(node->data(Qt::UserRole + NodeDataRole::ID).toInt());
|
||||
});
|
||||
//menu.addAction(QString::fromWCharArray(L"打开"), []{});
|
||||
/*menu.addSeparator();
|
||||
menu.addSeparator();
|
||||
menu.addAction(QString::fromWCharArray(L"清空数据"), []{});
|
||||
menu.addAction(QString::fromWCharArray(L"导入"), []{});
|
||||
menu.addAction(QString::fromWCharArray(L"导出"), []{});*/
|
||||
|
|
|
|||
|
|
@ -205,6 +205,7 @@ void MainWindow::onActionTrigger_addModel()
|
|||
m_pModelInfoDialog->installEventFilter(this);
|
||||
connect(m_pModelInfoDialog, &ModelInfoEditDialog::addModel, this, &MainWindow::onSIG_addModel);
|
||||
connect(m_pModelInfoDialog, &ModelInfoEditDialog::updateModelNodeText, this, &MainWindow::onSIG_updateModelNodeText);
|
||||
connect(m_pModelInfoDialog, &ModelInfoEditDialog::updateModelGroups, this, &MainWindow::onSIG_updateModelGroups);
|
||||
connect(m_pModelInfoDialog, &ModelInfoEditDialog::finished, this, [=]{ MaskManager::instance()->hideMask(m_pModelInfoDialog);});
|
||||
}
|
||||
|
||||
|
|
@ -239,6 +240,7 @@ void MainWindow::onActionTrigger_updateModel(int modelID)
|
|||
m_pModelInfoDialog->installEventFilter(this);
|
||||
connect(m_pModelInfoDialog, &ModelInfoEditDialog::addModel, this, &MainWindow::onSIG_addModel);
|
||||
connect(m_pModelInfoDialog, &ModelInfoEditDialog::updateModelNodeText, this, &MainWindow::onSIG_updateModelNodeText);
|
||||
connect(m_pModelInfoDialog, &ModelInfoEditDialog::updateModelGroups, this, &MainWindow::onSIG_updateModelGroups);
|
||||
connect(m_pModelInfoDialog, &ModelInfoEditDialog::finished, this, [=]{ MaskManager::instance()->hideMask(m_pModelInfoDialog);});
|
||||
}
|
||||
|
||||
|
|
@ -364,11 +366,21 @@ void MainWindow::onSIG_updateModelGroups(int modelID, const QVector<int>& remove
|
|||
{
|
||||
//执行步骤:1、删除相应数据行组. 2、添加相应属性组. 3、刷新模型节点
|
||||
QString connection = m_pDBStrutureView->curConnection();
|
||||
//删除
|
||||
for(int groupID : removed)
|
||||
{
|
||||
// if(SqlQueryExecutor::instance().removeAttributeGroup(connection, modelID, groupID) && m_dbBrowser)
|
||||
// m_dbBrowser->closeTab_attribute()
|
||||
if(SqlQueryExecutor::instance().removeAttributeGroup(connection, modelID, groupID) && m_dbBrowser)
|
||||
{
|
||||
ModelAttributeGroup attributeGroup(modelID, groupID, "", "");
|
||||
m_dbBrowser->closeTab_attribute(attributeGroup);
|
||||
}
|
||||
}
|
||||
//添加
|
||||
bool result = SqlQueryExecutor::instance().addModleGroups(connection, modelID, added);
|
||||
if(result)
|
||||
m_pDBStrutureModel->addDataGroup(connection, modelID, added);
|
||||
//刷新
|
||||
m_pDBStrutureModel->refreshStructure_Model(connection, modelID);
|
||||
}
|
||||
|
||||
void MainWindow::onSIG_openAttributeInfo(const QString& connection, ModelAttributeGroup& attributeGroup)
|
||||
|
|
|
|||
Loading…
Reference in New Issue