diff --git a/include/dbStructureView.h b/include/dbStructureView.h index d6b6619..0cbc42a 100644 --- a/include/dbStructureView.h +++ b/include/dbStructureView.h @@ -42,7 +42,7 @@ signals: void actionTrigger_addGroup(int); void openAttributeInfo(const QString&, ModelAttributeGroup&); void closeAttributeInfo(ModelAttributeGroup&); - void closeAllAttributeInfo(); + void disconnect(); private slots: void itemDoubleClick(const QModelIndex&); diff --git a/include/mainwindow.h b/include/mainwindow.h index f383cac..9201113 100644 --- a/include/mainwindow.h +++ b/include/mainwindow.h @@ -68,7 +68,7 @@ private slots: //void onSIG_addAttributes(); void onSIG_openAttributeInfo(const QString&, ModelAttributeGroup&); void onSIG_closeAttributeInfo(ModelAttributeGroup&); - void onSIG_closeAllAttributeInfo(); + void onSIG_disconnect(); void onSIG_openAttributeSelector(); }; diff --git a/source/dbStructureView.cpp b/source/dbStructureView.cpp index 2895cd1..f9cddc3 100644 --- a/source/dbStructureView.cpp +++ b/source/dbStructureView.cpp @@ -91,7 +91,7 @@ void DBStructureView::disconnectToDB(const QString& connName) if(index.isValid()) collapse(index); - emit closeAllAttributeInfo(); + emit disconnect(); } } diff --git a/source/mainwindow.cpp b/source/mainwindow.cpp index 86827b7..2195cb1 100644 --- a/source/mainwindow.cpp +++ b/source/mainwindow.cpp @@ -86,7 +86,7 @@ void MainWindow::initialize() connect(m_pDBStrutureView, &DBStructureView::actionTrigger_addGroup, this, &MainWindow::onActionTrigger_addGroup); connect(m_pDBStrutureView, &DBStructureView::openAttributeInfo, this, &MainWindow::onSIG_openAttributeInfo); connect(m_pDBStrutureView, &DBStructureView::closeAttributeInfo, this, &MainWindow::onSIG_closeAttributeInfo); - connect(m_pDBStrutureView, &DBStructureView::closeAllAttributeInfo, this, &MainWindow::onSIG_closeAllAttributeInfo); + connect(m_pDBStrutureView, &DBStructureView::disconnect, this, &MainWindow::onSIG_disconnect); ui->layoutDBStructure->addWidget(m_pDBStrutureView); m_pDBStrutureModel = new DBStructureModel(this); m_pDBStrutureModel->setMainWindow(this); @@ -321,10 +321,17 @@ void MainWindow::onSIG_closeAttributeInfo(ModelAttributeGroup& attributeGroup) m_dbBrowser->closeTab_attribute(attributeGroup); } -void MainWindow::onSIG_closeAllAttributeInfo() +void MainWindow::onSIG_disconnect() { if(m_dbBrowser) m_dbBrowser->closeAllTab_attribute(); + + if(m_pAttributeSelector) + { + m_pAttributeSelector->setParent(nullptr); + delete m_pAttributeSelector; + m_pAttributeSelector = nullptr; + } } void MainWindow::onSIG_openAttributeSelector()