Welcome to mirror list, hosted at ThFree Co, Russian Federation.

github.com/keepassxreboot/keepassxc.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--src/core/Config.cpp14
-rw-r--r--src/core/Config.h2
-rw-r--r--src/gui/SettingsWidget.cpp5
-rw-r--r--src/gui/SettingsWidgetGeneral.ui9
4 files changed, 30 insertions, 0 deletions
diff --git a/src/core/Config.cpp b/src/core/Config.cpp
index 28b17536f..e3a1cb633 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 09aa02fb1..1fb937cf9 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 62af276e8..2002bc733 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 88d7cad45..fb9fb1709 100644
--- a/src/gui/SettingsWidgetGeneral.ui
+++ b/src/gui/SettingsWidgetGeneral.ui
@@ -24,6 +24,9 @@
<number>0</number>
</property>
<item>
+ <widget class="MessageWidget" name="messageWidget" native="true"/>
+ </item>
+ <item>
<widget class="QTabWidget" name="generalSettingsTabWidget">
<property name="currentIndex">
<number>0</number>
@@ -368,6 +371,12 @@
<extends>QLineEdit</extends>
<header>autotype/ShortcutWidget.h</header>
</customwidget>
+ <customwidget>
+ <class>MessageWidget</class>
+ <extends>QWidget</extends>
+ <header>gui/MessageWidget.h</header>
+ <container>1</container>
+ </customwidget>
</customwidgets>
<resources/>
<connections/>