diff --git a/kcms/feedback/feedback.h b/kcms/feedback/feedback.h --- a/kcms/feedback/feedback.h +++ b/kcms/feedback/feedback.h @@ -29,7 +29,7 @@ Q_OBJECT Q_PROPERTY(QJsonArray feedbackSources MEMBER m_feedbackSources NOTIFY feedbackSourcesChanged) - Q_PROPERTY(bool feedbackEnabled READ feedbackEnabled CONSTANT) + Q_PROPERTY(bool feedbackEnabled READ feedbackEnabled WRITE setFeedbackEnabled NOTIFY feedbackEnabledChanged) Q_PROPERTY(int plasmaFeedbackLevel READ plasmaFeedbackLevel WRITE setPlasmaFeedbackLevel NOTIFY plasmaFeedbackLevelChanged) public: @@ -39,6 +39,7 @@ bool feedbackEnabled() const; int plasmaFeedbackLevel() const { return m_plasmaFeedbackLevel; } + void setFeedbackEnabled(bool feedbackEnabled); void setPlasmaFeedbackLevel(int plasmaFeedbackLevel); void programFinished(int exitCode); @@ -50,6 +51,7 @@ Q_SIGNALS: void feedbackSourcesChanged(); + void feedbackEnabledChanged(bool feedbackEnabled); void plasmaFeedbackLevelChanged(bool plasmaFeedbackLevel); private: diff --git a/kcms/feedback/feedback.cpp b/kcms/feedback/feedback.cpp --- a/kcms/feedback/feedback.cpp +++ b/kcms/feedback/feedback.cpp @@ -150,6 +150,13 @@ setPlasmaFeedbackLevel(KUserFeedback::Provider::NoTelemetry); } +void Feedback::setFeedbackEnabled(bool enabled) { + if (enabled != feedbackEnabled()) { + KUserFeedback::Provider p; + p.setEnabled(enabled); + Q_EMIT feedbackEnabledChanged(enabled); + } +} void Feedback::setPlasmaFeedbackLevel(int plasmaFeedbackLevel) { if (plasmaFeedbackLevel != m_plasmaFeedbackLevel) { m_plasmaFeedbackLevel = plasmaFeedbackLevel; diff --git a/kcms/feedback/package/contents/ui/main.qml b/kcms/feedback/package/contents/ui/main.qml --- a/kcms/feedback/package/contents/ui/main.qml +++ b/kcms/feedback/package/contents/ui/main.qml @@ -37,15 +37,6 @@ ColumnLayout { - Kirigami.InlineMessage { - id: infoLabel - Layout.fillWidth: true - - type: Kirigami.MessageType.Information - visible: !form.enabled - text: i18n("User Feedback has been disabled centrally. Please contact your distributor.") - } - QQC2.Label { Kirigami.FormData.label: i18n("Plasma:") Layout.alignment: Qt.AlignHCenter @@ -154,6 +145,12 @@ } } } + + QQC2.CheckBox { + checked: !kcm.feedbackEnabled + onClicked: kcm.feedbackEnabled = !checked + text: "Disable 1.Local data collection 2.Don't encourage telemetry 3.Disable surveys" + } } }