diff --git a/src/blackcore/context_settings.h b/src/blackcore/context_settings.h index fb8283afe..f46c731e9 100644 --- a/src/blackcore/context_settings.h +++ b/src/blackcore/context_settings.h @@ -116,12 +116,15 @@ namespace BlackCore //! Hotkeys virtual BlackMisc::Hardware::CKeyboardKeyList getHotkeys() const = 0; - //! save settings + //! Save settings virtual BlackMisc::CStatusMessage write() const = 0; //! Read settings virtual BlackMisc::CStatusMessage read() = 0; + //! Reset settings + virtual BlackMisc::CStatusMessage reset(bool write = true) = 0; + //! Read settings virtual QString getSettingsFileName() const = 0; diff --git a/src/blackcore/context_settings_impl.cpp b/src/blackcore/context_settings_impl.cpp index 43bfe8d8e..8e6e226f6 100644 --- a/src/blackcore/context_settings_impl.cpp +++ b/src/blackcore/context_settings_impl.cpp @@ -99,16 +99,32 @@ namespace BlackCore } if (ok) { - return CStatusMessage(CStatusMessage::TypeCore, CStatusMessage::SeverityInfo, + return CStatusMessage(CStatusMessage::TypeSettings, CStatusMessage::SeverityInfo, QString("Written settings: %1").arg(this->getSettingsFileName())); } else { - return CStatusMessage(CStatusMessage::TypeCore, CStatusMessage::SeverityError, + return CStatusMessage(CStatusMessage::TypeSettings, CStatusMessage::SeverityError, QString("Problem writing settings: %1").arg(this->getSettingsFileName())); } } + /* + * Reset settings file + */ + CStatusMessage CContextSettings::reset(bool write) + { + this->m_hotkeys.initAsHotkeyList(true); + this->m_settingsNetwork.initDefaultValues(); + this->emitCompletelyChanged(); + if (write) + return this->write(); + else + return CStatusMessage(CStatusMessage::TypeSettings, CStatusMessage::SeverityInfo, + QString("Reset settings data, not written")); + + } + QString CContextSettings::getSettingsAsJsonString() const { QJsonDocument doc = this->toJsonDocument(); @@ -127,6 +143,15 @@ namespace BlackCore return doc; } + /* + * Emit all changed signals + */ + void CContextSettings::emitCompletelyChanged() + { + emit this->changedSettings(IContextSettings::SettingsHotKeys); + emit this->changedSettings(IContextSettings::SettingsNetwork); + } + /* * Hotkeys */ diff --git a/src/blackcore/context_settings_impl.h b/src/blackcore/context_settings_impl.h index 022abe4eb..f395de55e 100644 --- a/src/blackcore/context_settings_impl.h +++ b/src/blackcore/context_settings_impl.h @@ -69,6 +69,9 @@ namespace BlackCore //! \copydoc IContextSettings::write virtual BlackMisc::CStatusMessage write() const override; + //! \copydoc IContextSettings::reset + virtual BlackMisc::CStatusMessage reset(bool write = true) override; + //! Settings file name virtual QString getSettingsFileName() const override { return BlackMisc::Settings::CSettingUtilities::getSettingsFile(); } @@ -79,6 +82,7 @@ namespace BlackCore BlackMisc::Settings::CSettingsNetwork m_settingsNetwork; BlackMisc::Hardware::CKeyboardKeyList m_hotkeys; QJsonDocument toJsonDocument() const; + void emitCompletelyChanged(); }; } diff --git a/src/blackcore/context_settings_proxy.cpp b/src/blackcore/context_settings_proxy.cpp index f75edaea6..2666aec2e 100644 --- a/src/blackcore/context_settings_proxy.cpp +++ b/src/blackcore/context_settings_proxy.cpp @@ -80,6 +80,14 @@ namespace BlackCore return this->m_dBusInterface->callDBusRet(QLatin1Literal("read")); } + /* + * Reset settings + */ + CStatusMessage CContextSettingsProxy::reset(bool write) + { + return this->m_dBusInterface->callDBusRet(QLatin1Literal("reset"), write); + } + /* * File name */ diff --git a/src/blackcore/context_settings_proxy.h b/src/blackcore/context_settings_proxy.h index 2dfa789e7..4c979df3a 100644 --- a/src/blackcore/context_settings_proxy.h +++ b/src/blackcore/context_settings_proxy.h @@ -61,6 +61,9 @@ namespace BlackCore //! \brief read settings virtual BlackMisc::CStatusMessage read() override; + //! \copydoc IContextSettings::reset + virtual BlackMisc::CStatusMessage reset(bool write = true) override; + //! \brief settings file name virtual QString getSettingsFileName() const override; diff --git a/src/blackmisc/hwkeyboardkeylist.h b/src/blackmisc/hwkeyboardkeylist.h index 626a38ec8..20e256858 100644 --- a/src/blackmisc/hwkeyboardkeylist.h +++ b/src/blackmisc/hwkeyboardkeylist.h @@ -45,7 +45,7 @@ namespace BlackMisc /*! * \brief Fill the list with hotkeys - * \param reset true, list will be be reset, otherwise value will not be overridde + * \param reset true, list will be be reset, otherwise values will not be overridde */ void initAsHotkeyList(bool reset = true); };