From bbf183bef7a5afc81c0ac3b283732327589b71fc Mon Sep 17 00:00:00 2001 From: Florian Geyer Date: Thu, 18 Apr 2013 22:15:01 +0200 Subject: [PATCH] Add settings option to control if previous databases are opened on startup. Closes #36 --- src/gui/MainWindow.cpp | 12 +++++++++--- src/gui/SettingsWidget.cpp | 2 ++ src/gui/SettingsWidgetGeneral.ui | 17 ++++++++++++----- src/main.cpp | 2 +- 4 files changed, 24 insertions(+), 9 deletions(-) diff --git a/src/gui/MainWindow.cpp b/src/gui/MainWindow.cpp index c3d4c9753..92f2261f6 100644 --- a/src/gui/MainWindow.cpp +++ b/src/gui/MainWindow.cpp @@ -398,15 +398,21 @@ void MainWindow::databaseTabChanged(int tabIndex) void MainWindow::closeEvent(QCloseEvent* event) { openDatabases.clear(); - connect(m_ui->tabWidget, SIGNAL(databaseWithFileClosed(QString)), this, SLOT(rememberOpenDatabases(QString))); + bool openPreviousDatabasesOnStartup = config()->get("OpenPreviousDatabasesOnStartup").toBool(); + + if (openPreviousDatabasesOnStartup) { + connect(m_ui->tabWidget, SIGNAL(databaseWithFileClosed(QString)), this, SLOT(rememberOpenDatabases(QString))); + } + if (!m_ui->tabWidget->closeAllDatabases()) { event->ignore(); } else { event->accept(); } - disconnect(m_ui->tabWidget, SIGNAL(databaseWithFileClosed(QString)), this, SLOT(rememberOpenDatabases(QString))); - if (config()->get("OpenPreviousDatabasesOnStartup").toBool()) { + + if (openPreviousDatabasesOnStartup) { + disconnect(m_ui->tabWidget, SIGNAL(databaseWithFileClosed(QString)), this, SLOT(rememberOpenDatabases(QString))); config()->set("OpenDatabasesOnExit", openDatabases); } } diff --git a/src/gui/SettingsWidget.cpp b/src/gui/SettingsWidget.cpp index 197cd7472..ede6cda95 100644 --- a/src/gui/SettingsWidget.cpp +++ b/src/gui/SettingsWidget.cpp @@ -53,6 +53,7 @@ SettingsWidget::~SettingsWidget() void SettingsWidget::loadSettings() { m_generalUi->rememberLastDatabasesCheckBox->setChecked(config()->get("RememberLastDatabases").toBool()); + m_generalUi->openPreviousDatabasesOnStartupCheckBox->setChecked(config()->get("OpenPreviousDatabasesOnStartup").toBool()); m_generalUi->modifiedExpandedChangedCheckBox->setChecked(config()->get("ModifiedOnExpandedStateChanges").toBool()); m_generalUi->autoSaveAfterEveryChangeCheckBox->setChecked(config()->get("AutoSaveAfterEveryChange").toBool()); m_generalUi->autoSaveOnExitCheckBox->setChecked(config()->get("AutoSaveOnExit").toBool()); @@ -72,6 +73,7 @@ void SettingsWidget::loadSettings() void SettingsWidget::saveSettings() { config()->set("RememberLastDatabases", m_generalUi->rememberLastDatabasesCheckBox->isChecked()); + config()->set("OpenPreviousDatabasesOnStartup", m_generalUi->openPreviousDatabasesOnStartupCheckBox->isChecked()); config()->set("ModifiedOnExpandedStateChanges", m_generalUi->modifiedExpandedChangedCheckBox->isChecked()); config()->set("AutoSaveAfterEveryChange", m_generalUi->autoSaveAfterEveryChangeCheckBox->isChecked()); config()->set("AutoSaveOnExit", m_generalUi->autoSaveOnExitCheckBox->isChecked()); diff --git a/src/gui/SettingsWidgetGeneral.ui b/src/gui/SettingsWidgetGeneral.ui index 78e9dadba..546674f39 100644 --- a/src/gui/SettingsWidgetGeneral.ui +++ b/src/gui/SettingsWidgetGeneral.ui @@ -21,7 +21,7 @@ - + Mark as modified on expanded state changes @@ -31,30 +31,37 @@ - + Automatically save after every change - + Automatically save on exit - + Global Auto-Type shortcut - + + + + + Open previous databases on startup + + + diff --git a/src/main.cpp b/src/main.cpp index 51051e537..55cdd11fc 100644 --- a/src/main.cpp +++ b/src/main.cpp @@ -62,7 +62,7 @@ int main(int argc, char** argv) QStringList filenames = config()->get("OpenDatabasesOnExit").toStringList(); Q_FOREACH (const QString& filename, filenames) { if (!filename.isEmpty() && QFile::exists(filename)) { - mainWindow.openDatabase(filename, argumentMap.value("password"), QString()); + mainWindow.openDatabase(filename, QString(), QString()); } } }