From a87fab8d187fc40e566be2d2c963f4f4403f2b91 Mon Sep 17 00:00:00 2001 From: Weslly Date: Mon, 20 Mar 2017 21:11:17 -0300 Subject: [PATCH 1/3] Set window modified indicator when database has unsaved changes --- src/gui/MainWindow.cpp | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/src/gui/MainWindow.cpp b/src/gui/MainWindow.cpp index f93678474..8ed6bcbfa 100644 --- a/src/gui/MainWindow.cpp +++ b/src/gui/MainWindow.cpp @@ -519,6 +519,11 @@ void MainWindow::updateWindowTitle() windowTitle = BaseWindowTitle; } else { windowTitle = QString("%1 - %2").arg(customWindowTitlePart, BaseWindowTitle); + if (customWindowTitlePart.right(1) == "*") { + setWindowModified(true); + } else { + setWindowModified(false); + } } setWindowTitle(windowTitle); From 18b5b76a803f2289aebaba9356d329d2648207b9 Mon Sep 17 00:00:00 2001 From: Weslly Date: Mon, 20 Mar 2017 23:29:36 -0300 Subject: [PATCH 2/3] Get modified status directly from database object instead of using window title --- src/gui/DatabaseTabWidget.cpp | 9 +++++++++ src/gui/DatabaseTabWidget.h | 1 + src/gui/MainWindow.cpp | 11 ++++++----- 3 files changed, 16 insertions(+), 5 deletions(-) diff --git a/src/gui/DatabaseTabWidget.cpp b/src/gui/DatabaseTabWidget.cpp index 6626b3428..984cde607 100644 --- a/src/gui/DatabaseTabWidget.cpp +++ b/src/gui/DatabaseTabWidget.cpp @@ -526,6 +526,15 @@ bool DatabaseTabWidget::readOnly(int index) return indexDatabaseManagerStruct(index).readOnly; } +bool DatabaseTabWidget::isModified(int index) +{ + if (index == -1) { + index = currentIndex(); + } + + return indexDatabaseManagerStruct(index).modified; +} + void DatabaseTabWidget::updateTabName(Database* db) { int index = databaseIndex(db); diff --git a/src/gui/DatabaseTabWidget.h b/src/gui/DatabaseTabWidget.h index 6fa783dd0..f99a4ff16 100644 --- a/src/gui/DatabaseTabWidget.h +++ b/src/gui/DatabaseTabWidget.h @@ -77,6 +77,7 @@ public slots: void changeMasterKey(); void changeDatabaseSettings(); bool readOnly(int index = -1); + bool isModified(int index = -1); void performGlobalAutoType(); void lockDatabases(); diff --git a/src/gui/MainWindow.cpp b/src/gui/MainWindow.cpp index 8ed6bcbfa..92c167e4f 100644 --- a/src/gui/MainWindow.cpp +++ b/src/gui/MainWindow.cpp @@ -519,11 +519,12 @@ void MainWindow::updateWindowTitle() windowTitle = BaseWindowTitle; } else { windowTitle = QString("%1 - %2").arg(customWindowTitlePart, BaseWindowTitle); - if (customWindowTitlePart.right(1) == "*") { - setWindowModified(true); - } else { - setWindowModified(false); - } + } + + if (m_ui->tabWidget->isModified(tabWidgetIndex)) { + setWindowModified(true); + } else { + setWindowModified(false); } setWindowTitle(windowTitle); From b6cfc82b4e384ea0495ebb80b3696cc1d6059267 Mon Sep 17 00:00:00 2001 From: Weslly Date: Tue, 21 Mar 2017 06:04:26 -0300 Subject: [PATCH 3/3] Review fixes --- src/gui/MainWindow.cpp | 6 +----- 1 file changed, 1 insertion(+), 5 deletions(-) diff --git a/src/gui/MainWindow.cpp b/src/gui/MainWindow.cpp index bdfa13b46..0f883e4aa 100644 --- a/src/gui/MainWindow.cpp +++ b/src/gui/MainWindow.cpp @@ -530,11 +530,7 @@ void MainWindow::updateWindowTitle() windowTitle = QString("%1 - %2").arg(customWindowTitlePart, BaseWindowTitle); } - if (m_ui->tabWidget->isModified(tabWidgetIndex)) { - setWindowModified(true); - } else { - setWindowModified(false); - } + setWindowModified(m_ui->tabWidget->isModified(tabWidgetIndex)); setWindowTitle(windowTitle); }