Make closing of tabs work again.

This commit is contained in:
eelke 2019-08-16 10:49:59 +02:00
parent 6fdf631fac
commit 8c13bdc2ef
2 changed files with 25 additions and 6 deletions

View file

@ -30,6 +30,7 @@ DatabaseWindow::DatabaseWindow(MasterController *master, QWidget *parent)
this, &DatabaseWindow::catalogLoaded);
m_tabWidget = new QTabWidget(this);
m_tabWidget->setObjectName("m_tabWidget");
setCentralWidget(m_tabWidget);
createActions();
@ -306,6 +307,18 @@ void DatabaseWindow::createCatalogInspector(QString caption, NamespaceFilter fil
}
void DatabaseWindow::closeTab(int index)
{
QWidget *widget = m_tabWidget->widget(index);
auto qt = dynamic_cast<QueryTool*>(widget);
if (qt && qt->canClose()) {
m_tabWidget->removeTab(index);
}
else if (index >= 0) {
m_tabWidget->removeTab(index);
}
}
void DatabaseWindow::catalogLoaded()
{
@ -356,6 +369,11 @@ void DatabaseWindow::on_actionCancelQuery_triggered()
}
}
void DatabaseWindow::on_actionClose_triggered()
{
m_tabWidget->tabCloseRequested(m_tabWidget->currentIndex());
}
void DatabaseWindow::on_actionCopy_triggered()
{
QWidget *w = QApplication::focusWidget();
@ -429,11 +447,6 @@ void DatabaseWindow::on_actionGenerateCode_triggered()
}
}
void DatabaseWindow::on_actionClose_triggered()
{
m_tabWidget->tabCloseRequested(m_tabWidget->currentIndex());
}
void DatabaseWindow::on_actionInspectInformationSchema_triggered()
{
createCatalogInspector("information_schema", NamespaceFilter::InformationSchema);
@ -501,7 +514,10 @@ void DatabaseWindow::on_actionShowConnectionManager_triggered()
m_masterController->showConnectionManager();
}
void DatabaseWindow::on_m_tabWidget_tabCloseRequested(int index)
{
closeTab(index);
}
void DatabaseWindow::setTitleForWidget(QWidget *widget, QString title, QString hint)
{

View file

@ -113,7 +113,9 @@ private:
void initMenus();
QAction* seperator();
void createCatalogInspector(QString caption, NamespaceFilter filter);
void closeTab(int index);
private slots:
void catalogLoaded();
void tableSelected(Oid tableoid);
@ -140,6 +142,7 @@ private slots:
void on_actionSaveSqlAs_triggered();
void on_actionSaveCopyOfSqlAs_triggered();
void on_actionShowConnectionManager_triggered();
void on_m_tabWidget_tabCloseRequested(int index);
// IDatabaseWindow interface
public: