@@ -693,7 +693,7 @@ bool MainWindow::fileClose()
693
693
// Reset the table browser of the Browse Data tab
694
694
while (ui->tabBrowsers ->count ())
695
695
closeTableBrowserTab (0 , true );
696
- newTableBrowserTab (true );
696
+ newTableBrowserTab ();
697
697
TableBrowser* w = qobject_cast<TableBrowser*>(ui->tabBrowsers ->currentWidget ());
698
698
if (w)
699
699
w->setEnabled (false );
@@ -2630,7 +2630,7 @@ bool MainWindow::loadProject(QString filename, bool readOnly)
2630
2630
}
2631
2631
2632
2632
if (!currentTable.isEmpty ())
2633
- newTableBrowserTab (true , currentTable);
2633
+ newTableBrowserTab (currentTable);
2634
2634
2635
2635
xml.skipCurrentElement ();
2636
2636
} else if (xml.name () == " table" ) {
@@ -2639,7 +2639,7 @@ bool MainWindow::loadProject(QString filename, bool readOnly)
2639
2639
sqlb::ObjectIdentifier table;
2640
2640
table.fromSerialised (xml.attributes ().value (" table" ).toString ().toStdString ());
2641
2641
2642
- int tab_index = newTableBrowserTab (true , table);
2642
+ int tab_index = newTableBrowserTab (table);
2643
2643
ui->tabBrowsers ->setTabText (tab_index, title);
2644
2644
2645
2645
xml.skipCurrentElement ();
@@ -3118,7 +3118,7 @@ void MainWindow::switchToBrowseDataTab(sqlb::ObjectIdentifier tableToBrowse)
3118
3118
tableToBrowse.setName (ui->dbTreeWidget ->model ()->data (ui->dbTreeWidget ->currentIndex ().sibling (ui->dbTreeWidget ->currentIndex ().row (), DbStructureModel::ColumnName), Qt::EditRole).toString ().toStdString ());
3119
3119
}
3120
3120
3121
- newTableBrowserTab (false , tableToBrowse);
3121
+ newTableBrowserTab (tableToBrowse);
3122
3122
3123
3123
if (ui->mainTab ->indexOf (ui->browser ) == -1 )
3124
3124
ui->mainTab ->addTab (ui->browser , ui->browser ->accessibleName ());
@@ -3561,18 +3561,18 @@ void MainWindow::closeTableBrowserTab(int index, bool force)
3561
3561
3562
3562
// Don't let an empty tab widget
3563
3563
if (ui->tabBrowsers ->count () == 0 && !force)
3564
- newTableBrowserTab (true );
3564
+ newTableBrowserTab ();
3565
3565
}
3566
3566
3567
- int MainWindow::newTableBrowserTab (bool resetCounter, const sqlb::ObjectIdentifier& tableToBrowse)
3567
+ int MainWindow::newTableBrowserTab (const sqlb::ObjectIdentifier& tableToBrowse)
3568
3568
{
3569
- static int tabNumber = 0 ;
3570
-
3571
- if (resetCounter)
3572
- tabNumber = 0 ;
3573
-
3574
3569
// Create and initialise widget
3575
3570
TableBrowser* w = new TableBrowser (&db, this );
3571
+ connect (w, &TableBrowser::currentTableChanged, [this , w](const sqlb::ObjectIdentifier& table) {
3572
+ // Only update tab name when no custom name was set
3573
+ if (!ui->tabBrowsers ->tabBar ()->tabData (ui->tabBrowsers ->indexOf (w)).toBool ())
3574
+ ui->tabBrowsers ->setTabText (ui->tabBrowsers ->indexOf (w), QString::fromStdString (table.toDisplayString ()));
3575
+ });
3576
3576
w->setStructure (dbStructureModel, tableToBrowse);
3577
3577
w->setEnabled (ui->fileCloseAction ->isEnabled ());
3578
3578
@@ -3600,7 +3600,7 @@ int MainWindow::newTableBrowserTab(bool resetCounter, const sqlb::ObjectIdentifi
3600
3600
m_currentTabTableModel = w->model ();
3601
3601
3602
3602
// Create new tab, add it to the tab widget and select it
3603
- int index = ui->tabBrowsers ->addTab (w, QIcon (" :icons/table" ), QString (" Browse %1 " ). arg (++tabNumber ));
3603
+ int index = ui->tabBrowsers ->addTab (w, QIcon (" :icons/table" ), QString ());
3604
3604
ui->tabBrowsers ->setCurrentIndex (index);
3605
3605
3606
3606
return index;
@@ -3625,7 +3625,10 @@ void MainWindow::renameTableBrowserTab(int index)
3625
3625
ui->tabBrowsers ->tabText (index));
3626
3626
3627
3627
if (!new_name.isNull ()) // Don't do anything if the Cancel button was clicked
3628
+ {
3628
3629
ui->tabBrowsers ->setTabText (index, new_name);
3630
+ ui->tabBrowsers ->tabBar ()->setTabData (index, true ); // Custom name
3631
+ }
3629
3632
}
3630
3633
3631
3634
void MainWindow::showContextMenuTableBrowserTabBar (const QPoint& pos)
0 commit comments