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
+
+ 1
+