@@ -693,7 +693,7 @@ bool MainWindow::fileClose()
693693 // Reset the table browser of the Browse Data tab
694694 while (ui->tabBrowsers ->count ())
695695 closeTableBrowserTab (0 , true );
696- newTableBrowserTab (true );
696+ newTableBrowserTab ();
697697 TableBrowser* w = qobject_cast<TableBrowser*>(ui->tabBrowsers ->currentWidget ());
698698 if (w)
699699 w->setEnabled (false );
@@ -2630,7 +2630,7 @@ bool MainWindow::loadProject(QString filename, bool readOnly)
26302630 }
26312631
26322632 if (!currentTable.isEmpty ())
2633- newTableBrowserTab (true , currentTable);
2633+ newTableBrowserTab (currentTable);
26342634
26352635 xml.skipCurrentElement ();
26362636 } else if (xml.name () == " table" ) {
@@ -2639,7 +2639,7 @@ bool MainWindow::loadProject(QString filename, bool readOnly)
26392639 sqlb::ObjectIdentifier table;
26402640 table.fromSerialised (xml.attributes ().value (" table" ).toString ().toStdString ());
26412641
2642- int tab_index = newTableBrowserTab (true , table);
2642+ int tab_index = newTableBrowserTab (table);
26432643 ui->tabBrowsers ->setTabText (tab_index, title);
26442644
26452645 xml.skipCurrentElement ();
@@ -3118,7 +3118,7 @@ void MainWindow::switchToBrowseDataTab(sqlb::ObjectIdentifier tableToBrowse)
31183118 tableToBrowse.setName (ui->dbTreeWidget ->model ()->data (ui->dbTreeWidget ->currentIndex ().sibling (ui->dbTreeWidget ->currentIndex ().row (), DbStructureModel::ColumnName), Qt::EditRole).toString ().toStdString ());
31193119 }
31203120
3121- newTableBrowserTab (false , tableToBrowse);
3121+ newTableBrowserTab (tableToBrowse);
31223122
31233123 if (ui->mainTab ->indexOf (ui->browser ) == -1 )
31243124 ui->mainTab ->addTab (ui->browser , ui->browser ->accessibleName ());
@@ -3561,18 +3561,18 @@ void MainWindow::closeTableBrowserTab(int index, bool force)
35613561
35623562 // Don't let an empty tab widget
35633563 if (ui->tabBrowsers ->count () == 0 && !force)
3564- newTableBrowserTab (true );
3564+ newTableBrowserTab ();
35653565}
35663566
3567- int MainWindow::newTableBrowserTab (bool resetCounter, const sqlb::ObjectIdentifier& tableToBrowse)
3567+ int MainWindow::newTableBrowserTab (const sqlb::ObjectIdentifier& tableToBrowse)
35683568{
3569- static int tabNumber = 0 ;
3570-
3571- if (resetCounter)
3572- tabNumber = 0 ;
3573-
35743569 // Create and initialise widget
35753570 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+ });
35763576 w->setStructure (dbStructureModel, tableToBrowse);
35773577 w->setEnabled (ui->fileCloseAction ->isEnabled ());
35783578
@@ -3600,7 +3600,7 @@ int MainWindow::newTableBrowserTab(bool resetCounter, const sqlb::ObjectIdentifi
36003600 m_currentTabTableModel = w->model ();
36013601
36023602 // 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 ());
36043604 ui->tabBrowsers ->setCurrentIndex (index);
36053605
36063606 return index;
@@ -3625,7 +3625,10 @@ void MainWindow::renameTableBrowserTab(int index)
36253625 ui->tabBrowsers ->tabText (index));
36263626
36273627 if (!new_name.isNull ()) // Don't do anything if the Cancel button was clicked
3628+ {
36283629 ui->tabBrowsers ->setTabText (index, new_name);
3630+ ui->tabBrowsers ->tabBar ()->setTabData (index, true ); // Custom name
3631+ }
36293632}
36303633
36313634void MainWindow::showContextMenuTableBrowserTabBar (const QPoint& pos)
0 commit comments