From 8aefb1ed825f47ef604af9124bd90da96a68fa59 Mon Sep 17 00:00:00 2001 From: Florian Geyer Date: Mon, 28 May 2012 18:38:33 +0200 Subject: [PATCH] Indicate read-only state in window title. --- src/gui/DatabaseTabWidget.cpp | 24 ++++++++++++++++++++++++ src/gui/DatabaseTabWidget.h | 3 +++ src/gui/MainWindow.cpp | 6 +++++- 3 files changed, 32 insertions(+), 1 deletion(-) diff --git a/src/gui/DatabaseTabWidget.cpp b/src/gui/DatabaseTabWidget.cpp index 55f61535d..e73758b6d 100644 --- a/src/gui/DatabaseTabWidget.cpp +++ b/src/gui/DatabaseTabWidget.cpp @@ -387,6 +387,15 @@ void DatabaseTabWidget::toggleSearch() currentDatabaseWidget()->toggleSearch(); } +bool DatabaseTabWidget::readOnly(int index) +{ + if (index == -1) { + index = currentIndex(); + } + + return indexDatabaseManagerStruct(index).readOnly; +} + void DatabaseTabWidget::updateTabName(Database* db) { int index = databaseIndex(db); @@ -451,6 +460,21 @@ Database* DatabaseTabWidget::indexDatabase(int index) return 0; } +DatabaseManagerStruct DatabaseTabWidget::indexDatabaseManagerStruct(int index) +{ + QWidget* dbWidget = widget(index); + + QHashIterator i(m_dbList); + while (i.hasNext()) { + i.next(); + if (i.value().dbWidget == dbWidget) { + return i.value(); + } + } + + return DatabaseManagerStruct(); +} + Database* DatabaseTabWidget::databaseFromDatabaseWidget(DatabaseWidget* dbWidget) { QHashIterator i(m_dbList); diff --git a/src/gui/DatabaseTabWidget.h b/src/gui/DatabaseTabWidget.h index 4b43373c3..c43682a68 100644 --- a/src/gui/DatabaseTabWidget.h +++ b/src/gui/DatabaseTabWidget.h @@ -74,6 +74,7 @@ public Q_SLOTS: void editGroup(); void deleteGroup(); void toggleSearch(); + bool readOnly(int index = -1); Q_SIGNALS: void entrySelectionChanged(bool singleEntrySelected); @@ -96,6 +97,8 @@ private: bool closeDatabase(Database* db); int databaseIndex(Database* db); Database* indexDatabase(int index); + DatabaseManagerStruct indexDatabaseManagerStruct(int index); + Database* databaseFromDatabaseWidget(DatabaseWidget* dbWidget); void insertDatabase(Database* db, const DatabaseManagerStruct& dbStruct); void updateLastDatabases(const QString& filename); diff --git a/src/gui/MainWindow.cpp b/src/gui/MainWindow.cpp index 8ab1c1eaa..5d5d838ad 100644 --- a/src/gui/MainWindow.cpp +++ b/src/gui/MainWindow.cpp @@ -225,7 +225,11 @@ void MainWindow::updateWindowTitle() setWindowTitle(BaseWindowTitle); } else { - setWindowTitle(m_ui->tabWidget->tabText(index).append(" - ").append(BaseWindowTitle)); + QString windowTitle = m_ui->tabWidget->tabText(index); + if (m_ui->tabWidget->readOnly(index)) { + windowTitle.append(" [").append(tr("read-only")).append("]"); + } + setWindowTitle(windowTitle.append(" - ").append(BaseWindowTitle)); } }