From 17f4e2321519c27cdef4a85922b2065b66cdff79 Mon Sep 17 00:00:00 2001 From: Thom Troy Date: Sun, 10 Jun 2012 15:28:46 +0100 Subject: [PATCH] Added automatically saving DB after change --- src/core/Config.cpp | 1 + src/gui/DatabaseTabWidget.cpp | 9 +++++++++ src/gui/SettingsWidget.cpp | 2 ++ src/gui/SettingsWidgetGeneral.ui | 15 +++++++++++++++ 4 files changed, 27 insertions(+) diff --git a/src/core/Config.cpp b/src/core/Config.cpp index 2334e1d4f..d83de9988 100644 --- a/src/core/Config.cpp +++ b/src/core/Config.cpp @@ -71,6 +71,7 @@ Config::Config() m_defaults.insert("RememberLastDatabases", true); m_defaults.insert("ModifiedOnExpandedStateChanges", true); + m_defaults.insert("AutoSaveAfterEveryChange", false); m_defaults.insert("security/clearclipboard", true); m_defaults.insert("security/clearclipboardtimeout", 10); } diff --git a/src/gui/DatabaseTabWidget.cpp b/src/gui/DatabaseTabWidget.cpp index e3cec3c75..1fcdad17d 100644 --- a/src/gui/DatabaseTabWidget.cpp +++ b/src/gui/DatabaseTabWidget.cpp @@ -523,8 +523,17 @@ void DatabaseTabWidget::modified() { Q_ASSERT(qobject_cast(sender())); + if (config()->get("AutoSaveAfterEveryChange").toBool()) { + config()->set("LastDatabases", QVariant()); + } Database* db = static_cast(sender()); DatabaseManagerStruct& dbStruct = m_dbList[db]; + + if (config()->get("AutoSaveAfterEveryChange").toBool() && dbStruct.file) { + saveDatabase(db); + return; + } + if (!dbStruct.modified) { dbStruct.modified = true; updateTabName(db); diff --git a/src/gui/SettingsWidget.cpp b/src/gui/SettingsWidget.cpp index 92baac94a..c63bded93 100644 --- a/src/gui/SettingsWidget.cpp +++ b/src/gui/SettingsWidget.cpp @@ -50,6 +50,7 @@ void SettingsWidget::loadSettings() { m_generalUi->rememberLastDatabasesCheckBox->setChecked(config()->get("RememberLastDatabases").toBool()); m_generalUi->modifiedExpandedChangedCheckBox->setChecked(config()->get("ModifiedOnExpandedStateChanges").toBool()); + m_generalUi->autoSaveAfterEveryChangeCheckBox->setChecked(config()->get("AutoSaveAfterEveryChange").toBool()); m_secUi->clearClipboardCheckBox->setChecked(config()->get("security/clearclipboard").toBool()); m_secUi->clearClipboardSpinBox->setValue(config()->get("security/clearclipboardtimeout").toInt()); @@ -60,6 +61,7 @@ void SettingsWidget::saveSettings() { config()->set("RememberLastDatabases", m_generalUi->rememberLastDatabasesCheckBox->isChecked()); config()->set("ModifiedOnExpandedStateChanges", m_generalUi->modifiedExpandedChangedCheckBox->isChecked()); + config()->set("AutoSaveAfterEveryChange", m_generalUi->autoSaveAfterEveryChangeCheckBox->isChecked()); config()->set("security/clearclipboard", m_secUi->clearClipboardCheckBox->isChecked()); config()->set("security/clearclipboardtimeout", m_secUi->clearClipboardSpinBox->value()); diff --git a/src/gui/SettingsWidgetGeneral.ui b/src/gui/SettingsWidgetGeneral.ui index 2d1093801..b3033eee0 100644 --- a/src/gui/SettingsWidgetGeneral.ui +++ b/src/gui/SettingsWidgetGeneral.ui @@ -2,6 +2,14 @@ SettingsWidgetGeneral + + + 0 + 0 + 354 + 104 + + @@ -23,6 +31,13 @@ + + + + Automatically save after every change + + +