diff options
Diffstat (limited to 'src/settings')
| -rw-r--r-- | src/settings/dolphinsettingsdialog.cpp | 21 | ||||
| -rw-r--r-- | src/settings/userfeedback/userfeedbacksettingspage.cpp | 47 | ||||
| -rw-r--r-- | src/settings/userfeedback/userfeedbacksettingspage.h | 37 |
3 files changed, 105 insertions, 0 deletions
diff --git a/src/settings/dolphinsettingsdialog.cpp b/src/settings/dolphinsettingsdialog.cpp index 8e129e241..9d8fb032a 100644 --- a/src/settings/dolphinsettingsdialog.cpp +++ b/src/settings/dolphinsettingsdialog.cpp @@ -14,6 +14,11 @@ #include "startup/startupsettingspage.h" #include "trash/trashsettingspage.h" #include "viewmodes/viewsettingspage.h" +#include "config-kuserfeedback.h" +#ifdef HAVE_KUSERFEEDBACK +#include "userfeedback/dolphinfeedbackprovider.h" +#include "userfeedback/userfeedbacksettingspage.h" +#endif #include <KAuthorized> #include <KLocalizedString> @@ -91,6 +96,17 @@ DolphinSettingsDialog::DolphinSettingsDialog(const QUrl& url, QWidget* parent) : connect(trashSettingsPage, &TrashSettingsPage::changed, this, &DolphinSettingsDialog::enableApply); } +#ifdef HAVE_KUSERFEEDBACK + // User Feedback + UserFeedbackSettingsPage* feedbackSettingsPage = nullptr; + if (DolphinFeedbackProvider::instance()->isEnabled()) { + feedbackSettingsPage = new UserFeedbackSettingsPage(this); + auto feedbackSettingsFrame = addPage(feedbackSettingsPage, i18nc("@title:group", "User Feedback")); + feedbackSettingsFrame->setIcon(QIcon::fromTheme(QStringLiteral("preferences-desktop-locale"))); + connect(feedbackSettingsPage, &UserFeedbackSettingsPage::changed, this, &DolphinSettingsDialog::enableApply); + } +#endif + m_pages.append(generalSettingsPage); m_pages.append(startupSettingsPage); m_pages.append(viewSettingsPage); @@ -99,6 +115,11 @@ DolphinSettingsDialog::DolphinSettingsDialog(const QUrl& url, QWidget* parent) : if (trashSettingsPage) { m_pages.append(trashSettingsPage); } +#ifdef HAVE_KUSERFEEDBACK + if (feedbackSettingsPage) { + m_pages.append(feedbackSettingsPage); + } +#endif const KConfigGroup dialogConfig(KSharedConfig::openConfig(QStringLiteral("dolphinrc")), "SettingsDialog"); KWindowConfig::restoreWindowSize(windowHandle(), dialogConfig); diff --git a/src/settings/userfeedback/userfeedbacksettingspage.cpp b/src/settings/userfeedback/userfeedbacksettingspage.cpp new file mode 100644 index 000000000..479c46226 --- /dev/null +++ b/src/settings/userfeedback/userfeedbacksettingspage.cpp @@ -0,0 +1,47 @@ +/* + * SPDX-FileCopyrightText: 2020 Elvis Angelaccio <[email protected] + * + * SPDX-License-Identifier: GPL-2.0-or-later + */ + +#include "userfeedbacksettingspage.h" +#include "userfeedback/dolphinfeedbackprovider.h" + +#include <KUserFeedback/FeedbackConfigWidget> +#include <KUserFeedback/Provider> + +#include <QVBoxLayout> + +UserFeedbackSettingsPage::UserFeedbackSettingsPage(QWidget* parent) : + SettingsPageBase(parent) +{ + auto layout = new QVBoxLayout(this); + layout->setContentsMargins(0, 0, 0, 0); + + m_feedbackWidget = new KUserFeedback::FeedbackConfigWidget(this); + m_feedbackWidget->setFeedbackProvider(DolphinFeedbackProvider::instance()); + + layout->addWidget(m_feedbackWidget); + + connect(m_feedbackWidget, &KUserFeedback::FeedbackConfigWidget::configurationChanged, this, &UserFeedbackSettingsPage::changed); +} + +UserFeedbackSettingsPage::~UserFeedbackSettingsPage() +{ +} + +void UserFeedbackSettingsPage::applySettings() +{ + auto feedbackProvider = DolphinFeedbackProvider::instance(); + feedbackProvider->setTelemetryMode(m_feedbackWidget->telemetryMode()); + feedbackProvider->setSurveyInterval(m_feedbackWidget->surveyInterval()); +} + +void UserFeedbackSettingsPage::restoreDefaults() +{ + auto feedbackProvider = DolphinFeedbackProvider::instance(); + feedbackProvider->setTelemetryMode(KUserFeedback::Provider::NoTelemetry); + feedbackProvider->setSurveyInterval(-1); +} + + diff --git a/src/settings/userfeedback/userfeedbacksettingspage.h b/src/settings/userfeedback/userfeedbacksettingspage.h new file mode 100644 index 000000000..d9b608615 --- /dev/null +++ b/src/settings/userfeedback/userfeedbacksettingspage.h @@ -0,0 +1,37 @@ +/* + * SPDX-FileCopyrightText: 2020 Elvis Angelaccio <[email protected] + * + * SPDX-License-Identifier: GPL-2.0-or-later + */ + +#ifndef USERFEEDBACKSETTINGSPAGE_H +#define USERFEEDBACKSETTINGSPAGE_H + +#include "settings/settingspagebase.h" + +namespace KUserFeedback { +class FeedbackConfigWidget; +} + +/** + * @brief Page for the 'User Feedback' settings of the Dolphin settings dialog. + */ +class UserFeedbackSettingsPage : public SettingsPageBase +{ + Q_OBJECT + +public: + explicit UserFeedbackSettingsPage(QWidget* parent); + ~UserFeedbackSettingsPage() override; + + /** @see SettingsPageBase::applySettings() */ + void applySettings() override; + + /** @see SettingsPageBase::restoreDefaults() */ + void restoreDefaults() override; + +private: + KUserFeedback::FeedbackConfigWidget *m_feedbackWidget = nullptr; +}; + +#endif // USERFEEDBACKSETTINGSPAGE_H |
