From 15a288aa5bb5477ab01304a8660daff9862b4df5 Mon Sep 17 00:00:00 2001 From: Louis-Bertrand Varin Date: Mon, 6 Mar 2017 17:12:07 -0500 Subject: [PATCH 1/6] Adding warning messages when config access error. --- src/core/Config.cpp | 14 ++++++++++++++ src/core/Config.h | 2 ++ src/gui/SettingsWidget.cpp | 5 +++++ src/gui/SettingsWidgetGeneral.ui | 9 +++++++++ 4 files changed, 30 insertions(+) diff --git a/src/core/Config.cpp b/src/core/Config.cpp index 28b17536..e3a1cb63 100644 --- a/src/core/Config.cpp +++ b/src/core/Config.cpp @@ -35,6 +35,16 @@ QVariant Config::get(const QString& key, const QVariant& defaultValue) return m_settings->value(key, defaultValue); } +bool Config::hasAccessError() +{ + return m_settings->status() & QSettings::AccessError; +} + +QString Config::getFileName() +{ + return m_settings->fileName(); +} + void Config::set(const QString& key, const QVariant& value) { m_settings->setValue(key, value); @@ -92,6 +102,10 @@ void Config::init(const QString& fileName) { m_settings.reset(new QSettings(fileName, QSettings::IniFormat)); + if (hasAccessError()) { + qWarning("Access error with config file %s", qPrintable(fileName)); + } + m_defaults.insert("RememberLastDatabases", true); m_defaults.insert("RememberLastKeyFiles", true); m_defaults.insert("OpenPreviousDatabasesOnStartup", true); diff --git a/src/core/Config.h b/src/core/Config.h index 09aa02fb..1fb937cf 100644 --- a/src/core/Config.h +++ b/src/core/Config.h @@ -31,7 +31,9 @@ public: ~Config(); QVariant get(const QString& key); QVariant get(const QString& key, const QVariant& defaultValue); + QString getFileName(); void set(const QString& key, const QVariant& value); + bool hasAccessError(); static Config* instance(); static void createConfigFromFile(const QString& file); diff --git a/src/gui/SettingsWidget.cpp b/src/gui/SettingsWidget.cpp index 62af276e..2002bc73 100644 --- a/src/gui/SettingsWidget.cpp +++ b/src/gui/SettingsWidget.cpp @@ -62,6 +62,11 @@ SettingsWidget::SettingsWidget(QWidget* parent) addPage(tr("General"), FilePath::instance()->icon("categories", "preferences-other"), m_generalWidget); addPage(tr("Security"), FilePath::instance()->icon("status", "security-high"), m_secWidget); + if (config()->hasAccessError()) { + m_generalUi->messageWidget->showMessage( + tr("Access error with config file ") + config()->getFileName(), MessageWidget::Error); + } + if (!autoType()->isAvailable()) { m_generalUi->generalSettingsTabWidget->removeTab(1); } diff --git a/src/gui/SettingsWidgetGeneral.ui b/src/gui/SettingsWidgetGeneral.ui index 88d7cad4..fb9fb170 100644 --- a/src/gui/SettingsWidgetGeneral.ui +++ b/src/gui/SettingsWidgetGeneral.ui @@ -23,6 +23,9 @@ 0 + + + @@ -368,6 +371,12 @@ QLineEdit
autotype/ShortcutWidget.h
+ + MessageWidget + QWidget +
gui/MessageWidget.h
+ 1 +
From da85252347c8fdc7332af2b38678df09048b305b Mon Sep 17 00:00:00 2001 From: Louis-Bertrand Varin Date: Sat, 11 Mar 2017 22:04:38 -0500 Subject: [PATCH 2/6] Hide config errors by default. --- src/gui/SettingsWidget.cpp | 1 + 1 file changed, 1 insertion(+) diff --git a/src/gui/SettingsWidget.cpp b/src/gui/SettingsWidget.cpp index 2002bc73..d68a11e9 100644 --- a/src/gui/SettingsWidget.cpp +++ b/src/gui/SettingsWidget.cpp @@ -62,6 +62,7 @@ SettingsWidget::SettingsWidget(QWidget* parent) addPage(tr("General"), FilePath::instance()->icon("categories", "preferences-other"), m_generalWidget); addPage(tr("Security"), FilePath::instance()->icon("status", "security-high"), m_secWidget); + m_generalUi->messageWidget->setVisible(false); if (config()->hasAccessError()) { m_generalUi->messageWidget->showMessage( tr("Access error with config file ") + config()->getFileName(), MessageWidget::Error); From 55a32c58a972760d5861163ccc3403c6dd69a3e2 Mon Sep 17 00:00:00 2001 From: Louis-Bertrand Varin Date: Mon, 13 Mar 2017 22:12:00 -0400 Subject: [PATCH 3/6] Moving access error to MainWindow. --- src/core/Config.cpp | 4 ---- src/gui/MainWindow.cpp | 6 ++++++ src/gui/SettingsWidget.cpp | 6 ------ src/gui/SettingsWidgetGeneral.ui | 9 --------- 4 files changed, 6 insertions(+), 19 deletions(-) diff --git a/src/core/Config.cpp b/src/core/Config.cpp index e3a1cb63..e074df6c 100644 --- a/src/core/Config.cpp +++ b/src/core/Config.cpp @@ -102,10 +102,6 @@ void Config::init(const QString& fileName) { m_settings.reset(new QSettings(fileName, QSettings::IniFormat)); - if (hasAccessError()) { - qWarning("Access error with config file %s", qPrintable(fileName)); - } - m_defaults.insert("RememberLastDatabases", true); m_defaults.insert("RememberLastKeyFiles", true); m_defaults.insert("OpenPreviousDatabasesOnStartup", true); diff --git a/src/gui/MainWindow.cpp b/src/gui/MainWindow.cpp index 442c0473..adb1ae29 100644 --- a/src/gui/MainWindow.cpp +++ b/src/gui/MainWindow.cpp @@ -314,6 +314,12 @@ MainWindow::MainWindow() connect(m_ui->tabWidget, SIGNAL(messageDismissTab()), this, SLOT(hideTabMessage())); updateTrayIcon(); + + if (config()->hasAccessError()) { + m_ui->globalMessageWidget->showMessage( + tr("Access error for config file ") + config()->getFileName(), MessageWidget::Error); + } + } MainWindow::~MainWindow() diff --git a/src/gui/SettingsWidget.cpp b/src/gui/SettingsWidget.cpp index d68a11e9..62af276e 100644 --- a/src/gui/SettingsWidget.cpp +++ b/src/gui/SettingsWidget.cpp @@ -62,12 +62,6 @@ SettingsWidget::SettingsWidget(QWidget* parent) addPage(tr("General"), FilePath::instance()->icon("categories", "preferences-other"), m_generalWidget); addPage(tr("Security"), FilePath::instance()->icon("status", "security-high"), m_secWidget); - m_generalUi->messageWidget->setVisible(false); - if (config()->hasAccessError()) { - m_generalUi->messageWidget->showMessage( - tr("Access error with config file ") + config()->getFileName(), MessageWidget::Error); - } - if (!autoType()->isAvailable()) { m_generalUi->generalSettingsTabWidget->removeTab(1); } diff --git a/src/gui/SettingsWidgetGeneral.ui b/src/gui/SettingsWidgetGeneral.ui index fb9fb170..88d7cad4 100644 --- a/src/gui/SettingsWidgetGeneral.ui +++ b/src/gui/SettingsWidgetGeneral.ui @@ -23,9 +23,6 @@ 0 - - - @@ -371,12 +368,6 @@ QLineEdit
autotype/ShortcutWidget.h
- - MessageWidget - QWidget -
gui/MessageWidget.h
- 1 -
From e6b452802808028033531c0ab55f29e6556925b1 Mon Sep 17 00:00:00 2001 From: Louis-Bertrand Varin Date: Sat, 18 Mar 2017 13:31:15 -0400 Subject: [PATCH 4/6] Adjust indentation. --- src/gui/SettingsWidget.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/gui/SettingsWidget.cpp b/src/gui/SettingsWidget.cpp index 62af276e..ff4c124e 100644 --- a/src/gui/SettingsWidget.cpp +++ b/src/gui/SettingsWidget.cpp @@ -68,7 +68,7 @@ SettingsWidget::SettingsWidget(QWidget* parent) #ifdef Q_OS_MAC // systray not useful on OS X - m_generalUi->systraySettings->setVisible(false); + m_generalUi->systraySettings->setVisible(false); #endif connect(this, SIGNAL(accepted()), SLOT(saveSettings())); From a3840963e1b650baf89489ed0a92f34385a473b1 Mon Sep 17 00:00:00 2001 From: Louis-Bertrand Varin Date: Sat, 18 Mar 2017 14:00:31 -0400 Subject: [PATCH 5/6] Checking config access errors in settings. --- src/gui/SettingsWidget.cpp | 15 +++++++++++++++ 1 file changed, 15 insertions(+) diff --git a/src/gui/SettingsWidget.cpp b/src/gui/SettingsWidget.cpp index ff4c124e..caf9919c 100644 --- a/src/gui/SettingsWidget.cpp +++ b/src/gui/SettingsWidget.cpp @@ -99,6 +99,12 @@ void SettingsWidget::addSettingsPage(ISettingsPage* page) void SettingsWidget::loadSettings() { + + if (config()->hasAccessError()) { + showMessage( + tr("Access error for config file ") + config()->getFileName(), MessageWidget::Error); + } + m_generalUi->rememberLastDatabasesCheckBox->setChecked(config()->get("RememberLastDatabases").toBool()); m_generalUi->rememberLastKeyFilesCheckBox->setChecked(config()->get("RememberLastKeyFiles").toBool()); m_generalUi->openPreviousDatabasesOnStartupCheckBox->setChecked( @@ -154,6 +160,15 @@ void SettingsWidget::loadSettings() void SettingsWidget::saveSettings() { + + if (config()->hasAccessError()) { + showMessage( + tr("Access error for config file ") + config()->getFileName(), MessageWidget::Error); + // We prevent closing the settings page if we could not write to + // the config file. + return; + } + config()->set("RememberLastDatabases", m_generalUi->rememberLastDatabasesCheckBox->isChecked()); config()->set("RememberLastKeyFiles", m_generalUi->rememberLastKeyFilesCheckBox->isChecked()); config()->set("OpenPreviousDatabasesOnStartup", From d8ad360b383fb9841b19997457c29efac5adae26 Mon Sep 17 00:00:00 2001 From: Louis-Bertrand Varin Date: Sun, 19 Mar 2017 16:05:52 -0400 Subject: [PATCH 6/6] Using format strings. --- src/gui/MainWindow.cpp | 2 +- src/gui/SettingsWidget.cpp | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/src/gui/MainWindow.cpp b/src/gui/MainWindow.cpp index adb1ae29..d8dd7dcd 100644 --- a/src/gui/MainWindow.cpp +++ b/src/gui/MainWindow.cpp @@ -317,7 +317,7 @@ MainWindow::MainWindow() if (config()->hasAccessError()) { m_ui->globalMessageWidget->showMessage( - tr("Access error for config file ") + config()->getFileName(), MessageWidget::Error); + tr("Access error for config file %1").arg(config()->getFileName()), MessageWidget::Error); } } diff --git a/src/gui/SettingsWidget.cpp b/src/gui/SettingsWidget.cpp index caf9919c..19dae371 100644 --- a/src/gui/SettingsWidget.cpp +++ b/src/gui/SettingsWidget.cpp @@ -102,7 +102,7 @@ void SettingsWidget::loadSettings() if (config()->hasAccessError()) { showMessage( - tr("Access error for config file ") + config()->getFileName(), MessageWidget::Error); + tr("Access error for config file %1").arg(config()->getFileName()), MessageWidget::Error); } m_generalUi->rememberLastDatabasesCheckBox->setChecked(config()->get("RememberLastDatabases").toBool()); @@ -163,7 +163,7 @@ void SettingsWidget::saveSettings() if (config()->hasAccessError()) { showMessage( - tr("Access error for config file ") + config()->getFileName(), MessageWidget::Error); + tr("Access error for config file %1").arg(config()->getFileName()), MessageWidget::Error); // We prevent closing the settings page if we could not write to // the config file. return;