┌   ┐
54
└   ┘

summaryrefslogtreecommitdiff
path: root/src/settings/userfeedback
diff options
context:
space:
mode:
authorElvis Angelaccio <[email protected]>2020-08-18 23:47:53 +0200
committerElvis Angelaccio <[email protected]>2020-11-05 18:31:28 +0000
commit465e06138e8baaefb967d32a2eaccf67daef8285 (patch)
tree1b6ec2114228a7429b01b670f43d75d1ff0ee0ed /src/settings/userfeedback
parent61bf84c13d203840d4ffeb55ce92dc8b660871a1 (diff)
Add support for KUserFeedback
This commit introduces KUserFeedback in dolphin with some basic data sources and with a settings page to configure the telemetry values. There are also a couple custom data sources as proof of concept: a bunch of settings and the count of available network shares as listed by Solid. The settings page is shown only if the user feedback framework is enabled, but currently in Plasma we don't have a global kill switch to disable it. At the moment we never show an encouragement message. We need to connect to the `Provider::showEncouragementMessage()` signal, but first we should agree to a common way to show a non-annoying message to the users.
Diffstat (limited to 'src/settings/userfeedback')
-rw-r--r--src/settings/userfeedback/userfeedbacksettingspage.cpp47
-rw-r--r--src/settings/userfeedback/userfeedbacksettingspage.h37
2 files changed, 84 insertions, 0 deletions
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