aboutsummaryrefslogtreecommitdiffstats
path: root/src/usagestatisticplugin.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/usagestatisticplugin.cpp')
-rw-r--r--src/usagestatisticplugin.cpp61
1 files changed, 37 insertions, 24 deletions
diff --git a/src/usagestatisticplugin.cpp b/src/usagestatisticplugin.cpp
index d4e2555..bcd5856 100644
--- a/src/usagestatisticplugin.cpp
+++ b/src/usagestatisticplugin.cpp
@@ -31,6 +31,7 @@
#include <coreplugin/actionmanager/command.h>
#include <coreplugin/actionmanager/actioncontainer.h>
#include <coreplugin/coreconstants.h>
+#include <coreplugin/infobar.h>
#include <KUserFeedback/Provider>
#include <KUserFeedback/ApplicationVersionSource>
@@ -58,7 +59,6 @@
#include "services/datasubmitter.h"
#include "ui/usagestatisticpage.h"
-#include "ui/outputpane.h"
#include "common/utils.h"
@@ -74,9 +74,6 @@ bool UsageStatisticPlugin::initialize(const QStringList &arguments, QString *err
Q_UNUSED(arguments)
Q_UNUSED(errorString)
- // We have to create a pane here because of OutputPaneManager internal initialization order
- createOutputPane();
-
return true;
}
@@ -132,8 +129,6 @@ bool UsageStatisticPlugin::delayedInitialize()
restoreSettings();
- configureOutputPane();
-
showFirstTimeMessage();
return true;
@@ -154,21 +149,6 @@ void UsageStatisticPlugin::createUsageStatisticPage()
this, &UsageStatisticPlugin::storeSettings);
}
-void UsageStatisticPlugin::createOutputPane()
-{
- m_outputPane = std::make_unique<OutputPane>();
-}
-
-void UsageStatisticPlugin::configureOutputPane()
-{
- Q_ASSERT(m_outputPane);
-
- m_outputPane->setProvider(m_provider);
-
- connect(m_provider.get(), &KUserFeedback::Provider::showEncouragementMessage,
- this, &UsageStatisticPlugin::showEncouragementMessage);
-}
-
void UsageStatisticPlugin::storeSettings()
{
if (m_provider) {
@@ -218,17 +198,50 @@ static bool runFirstTime(const KUserFeedback::Provider &provider)
return false;
}
+static bool telemetryLevelNotSet(const KUserFeedback::Provider &provider)
+{
+ return provider.telemetryMode() == KUserFeedback::Provider::NoTelemetry;
+}
+
void UsageStatisticPlugin::showFirstTimeMessage()
{
- if (m_provider && runFirstTime(*m_provider)) {
+ if (m_provider && runFirstTime(*m_provider) && telemetryLevelNotSet(*m_provider)) {
showEncouragementMessage();
}
}
+static Core::InfoBarEntry makeInfoBarEntry()
+{
+ static auto infoText = UsageStatisticPlugin::tr(
+ "We make Qt Creator for you. Would you like to help us make it even better?");
+ static auto customButtonInfoText = UsageStatisticPlugin::tr("Adjust usage statistics settings");
+ static auto cancelButtonInfoText = UsageStatisticPlugin::tr("Decide later");
+
+ static auto hideEncouragementMessageCallback = []() {
+ if (auto infoBar = Core::ICore::infoBar()) {
+ infoBar->removeInfo(Constants::ENC_MSG_INFOBAR_ENTRY_ID);
+ }
+ };
+
+ static auto showUsageStatisticsSettingsCallback = []() {
+ hideEncouragementMessageCallback();
+ Core::ICore::showOptionsDialog(Constants::USAGE_STATISTIC_PAGE_ID);
+ };
+
+ Core::InfoBarEntry entry(Constants::ENC_MSG_INFOBAR_ENTRY_ID, infoText);
+ entry.setCustomButtonInfo(customButtonInfoText, showUsageStatisticsSettingsCallback);
+ entry.setCancelButtonInfo(cancelButtonInfoText, hideEncouragementMessageCallback);
+
+ return entry;
+}
+
void UsageStatisticPlugin::showEncouragementMessage()
{
- if (m_outputPane) {
- m_outputPane->flash();
+ if (auto infoBar = Core::ICore::infoBar()) {
+ if (!infoBar->containsInfo(Constants::ENC_MSG_INFOBAR_ENTRY_ID)) {
+ static auto infoBarEntry = makeInfoBarEntry();
+ infoBar->addInfo(infoBarEntry);
+ }
}
}