diff --git a/src/controller.cpp b/src/controller.cpp index fd78b562d..e26730de2 100644 --- a/src/controller.cpp +++ b/src/controller.cpp @@ -414,4 +414,11 @@ bool Controller::csSupported() const #endif } +void Controller::revertToDefaultConfig() +{ + const auto config = NeoChatConfig::self(); + config->setDefaults(); + config->save(); +} + #include "moc_controller.cpp" diff --git a/src/controller.h b/src/controller.h index ecab1b419..6687c6913 100644 --- a/src/controller.h +++ b/src/controller.h @@ -108,6 +108,14 @@ public: bool csSupported() const; + /** + * @brief Revert all configuration values to their default. + * + * The parameters along with their defaults are specified in the config file + * neochatconfig.kcfg. + */ + Q_INVOKABLE void revertToDefaultConfig(); + private: explicit Controller(QObject *parent = nullptr); diff --git a/src/settings/NeoChatGeneralPage.qml b/src/settings/NeoChatGeneralPage.qml index c6019afc9..70d18724f 100644 --- a/src/settings/NeoChatGeneralPage.qml +++ b/src/settings/NeoChatGeneralPage.qml @@ -246,4 +246,13 @@ FormCard.FormCardPage { }); } } + FormCard.FormHeader { + title: i18nc("@title", "Default Settings") + } + FormCard.FormCard { + FormCard.FormButtonDelegate { + text: i18nc("@action:button", "Reset all configuration values to their default") + onClicked: Controller.revertToDefaultConfig() + } + } }