mirror of
https://github.com/sqlitebrowser/sqlitebrowser.git
synced 2026-02-10 05:38:32 -06:00
Use table name as tab text in Browse Data tabs
This uses the name of the selected table for the tab titles in the Browse Data tabs. When setting a custom tab title that title is preserved. See issue #2283.
This commit is contained in:
@@ -693,7 +693,7 @@ bool MainWindow::fileClose()
|
||||
// Reset the table browser of the Browse Data tab
|
||||
while(ui->tabBrowsers->count())
|
||||
closeTableBrowserTab(0, true);
|
||||
newTableBrowserTab(true);
|
||||
newTableBrowserTab();
|
||||
TableBrowser* w = qobject_cast<TableBrowser*>(ui->tabBrowsers->currentWidget());
|
||||
if(w)
|
||||
w->setEnabled(false);
|
||||
@@ -2630,7 +2630,7 @@ bool MainWindow::loadProject(QString filename, bool readOnly)
|
||||
}
|
||||
|
||||
if (!currentTable.isEmpty())
|
||||
newTableBrowserTab(true, currentTable);
|
||||
newTableBrowserTab(currentTable);
|
||||
|
||||
xml.skipCurrentElement();
|
||||
} else if(xml.name() == "table") {
|
||||
@@ -2639,7 +2639,7 @@ bool MainWindow::loadProject(QString filename, bool readOnly)
|
||||
sqlb::ObjectIdentifier table;
|
||||
table.fromSerialised(xml.attributes().value("table").toString().toStdString());
|
||||
|
||||
int tab_index = newTableBrowserTab(true, table);
|
||||
int tab_index = newTableBrowserTab(table);
|
||||
ui->tabBrowsers->setTabText(tab_index, title);
|
||||
|
||||
xml.skipCurrentElement();
|
||||
@@ -3118,7 +3118,7 @@ void MainWindow::switchToBrowseDataTab(sqlb::ObjectIdentifier tableToBrowse)
|
||||
tableToBrowse.setName(ui->dbTreeWidget->model()->data(ui->dbTreeWidget->currentIndex().sibling(ui->dbTreeWidget->currentIndex().row(), DbStructureModel::ColumnName), Qt::EditRole).toString().toStdString());
|
||||
}
|
||||
|
||||
newTableBrowserTab(false, tableToBrowse);
|
||||
newTableBrowserTab(tableToBrowse);
|
||||
|
||||
if (ui->mainTab->indexOf(ui->browser) == -1)
|
||||
ui->mainTab->addTab(ui->browser, ui->browser->accessibleName());
|
||||
@@ -3561,18 +3561,18 @@ void MainWindow::closeTableBrowserTab(int index, bool force)
|
||||
|
||||
// Don't let an empty tab widget
|
||||
if(ui->tabBrowsers->count() == 0 && !force)
|
||||
newTableBrowserTab(true);
|
||||
newTableBrowserTab();
|
||||
}
|
||||
|
||||
int MainWindow::newTableBrowserTab(bool resetCounter, const sqlb::ObjectIdentifier& tableToBrowse)
|
||||
int MainWindow::newTableBrowserTab(const sqlb::ObjectIdentifier& tableToBrowse)
|
||||
{
|
||||
static int tabNumber = 0;
|
||||
|
||||
if(resetCounter)
|
||||
tabNumber = 0;
|
||||
|
||||
// Create and initialise widget
|
||||
TableBrowser* w = new TableBrowser(&db, this);
|
||||
connect(w, &TableBrowser::currentTableChanged, [this, w](const sqlb::ObjectIdentifier& table) {
|
||||
// Only update tab name when no custom name was set
|
||||
if(!ui->tabBrowsers->tabBar()->tabData(ui->tabBrowsers->indexOf(w)).toBool())
|
||||
ui->tabBrowsers->setTabText(ui->tabBrowsers->indexOf(w), QString::fromStdString(table.toDisplayString()));
|
||||
});
|
||||
w->setStructure(dbStructureModel, tableToBrowse);
|
||||
w->setEnabled(ui->fileCloseAction->isEnabled());
|
||||
|
||||
@@ -3600,7 +3600,7 @@ int MainWindow::newTableBrowserTab(bool resetCounter, const sqlb::ObjectIdentifi
|
||||
m_currentTabTableModel = w->model();
|
||||
|
||||
// Create new tab, add it to the tab widget and select it
|
||||
int index = ui->tabBrowsers->addTab(w, QIcon(":icons/table"), QString("Browse %1").arg(++tabNumber));
|
||||
int index = ui->tabBrowsers->addTab(w, QIcon(":icons/table"), QString());
|
||||
ui->tabBrowsers->setCurrentIndex(index);
|
||||
|
||||
return index;
|
||||
@@ -3625,7 +3625,10 @@ void MainWindow::renameTableBrowserTab(int index)
|
||||
ui->tabBrowsers->tabText(index));
|
||||
|
||||
if(!new_name.isNull()) // Don't do anything if the Cancel button was clicked
|
||||
{
|
||||
ui->tabBrowsers->setTabText(index, new_name);
|
||||
ui->tabBrowsers->tabBar()->setTabData(index, true); // Custom name
|
||||
}
|
||||
}
|
||||
|
||||
void MainWindow::showContextMenuTableBrowserTabBar(const QPoint& pos)
|
||||
|
||||
@@ -208,7 +208,7 @@ private slots:
|
||||
void renameSqlTab(int index);
|
||||
void showContextMenuSqlTabBar(const QPoint& pos);
|
||||
|
||||
int newTableBrowserTab(bool resetCounter = false, const sqlb::ObjectIdentifier& tableToBrowse = {});
|
||||
int newTableBrowserTab(const sqlb::ObjectIdentifier& tableToBrowse = {});
|
||||
void closeTableBrowserTab(int index, bool force = false);
|
||||
void changeTableBrowserTab(int index);
|
||||
void renameTableBrowserTab(int index);
|
||||
|
||||
@@ -396,6 +396,8 @@ void TableBrowser::setStructure(QAbstractItemModel* model, const sqlb::ObjectIde
|
||||
clear();
|
||||
else // Under normal circumstances just select the old table again
|
||||
ui->comboBrowseTable->setCurrentIndex(old_table_index);
|
||||
|
||||
emit currentTableChanged(currentlyBrowsedTableName());
|
||||
}
|
||||
|
||||
QModelIndex TableBrowser::currentIndex() const
|
||||
@@ -480,6 +482,9 @@ void TableBrowser::updateTable()
|
||||
if(storedData.columnWidths.empty())
|
||||
m_columnsResized = false;
|
||||
|
||||
// Current table changed
|
||||
emit currentTableChanged(tablename);
|
||||
|
||||
// Build query and apply settings
|
||||
applyModelSettings(storedData, buildQuery(storedData, tablename));
|
||||
applyViewportSettings(storedData, tablename);
|
||||
|
||||
@@ -91,6 +91,7 @@ signals:
|
||||
void updatePlot(ExtendedTableWidget* tableWidget, SqliteTableModel* model, BrowseDataTableSettings* settings, bool keepOrResetSelection);
|
||||
void createView(std::string sql);
|
||||
void requestFileOpen(QString file);
|
||||
void currentTableChanged(sqlb::ObjectIdentifier table);
|
||||
|
||||
private slots:
|
||||
void clear();
|
||||
|
||||
Reference in New Issue
Block a user