diff options
author | Vitaly Fanaskov <vitaly.fanaskov@qt.io> | 2019-11-25 15:29:45 +0100 |
---|---|---|
committer | Vitaly Fanaskov <vitaly.fanaskov@qt.io> | 2019-11-28 10:30:49 +0000 |
commit | 3e876dcdba374d5bc02dcc60073d5eb814269f91 (patch) | |
tree | 45805127a46bcb4717f70ed28e5412b5fb61a201 | |
parent | b88faae99e37d68aea4b1fd0956ad9e669d60d32 (diff) |
Show encouragement message on first start
Fixes: QTCREATORBUG-23272
Change-Id: Ia2963d86a8163e429ead891e6dd7654ec992b5d8
Reviewed-by: Alessandro Portale <alessandro.portale@qt.io>
-rw-r--r-- | src/usagestatisticplugin.cpp | 34 | ||||
-rw-r--r-- | src/usagestatisticplugin.h | 2 |
2 files changed, 35 insertions, 1 deletions
diff --git a/src/usagestatisticplugin.cpp b/src/usagestatisticplugin.cpp index 5f04486..d4e2555 100644 --- a/src/usagestatisticplugin.cpp +++ b/src/usagestatisticplugin.cpp @@ -134,6 +134,8 @@ bool UsageStatisticPlugin::delayedInitialize() configureOutputPane(); + showFirstTimeMessage(); + return true; } @@ -164,7 +166,7 @@ void UsageStatisticPlugin::configureOutputPane() m_outputPane->setProvider(m_provider); connect(m_provider.get(), &KUserFeedback::Provider::showEncouragementMessage, - m_outputPane.get(), &OutputPane::flash); + this, &UsageStatisticPlugin::showEncouragementMessage); } void UsageStatisticPlugin::storeSettings() @@ -200,5 +202,35 @@ void UsageStatisticPlugin::createProvider() m_provider->setSubmissionInterval(submissionIntervalDays()); } +static bool runFirstTime(const KUserFeedback::Provider &provider) +{ + static const auto startCountSourceId = QStringLiteral("startCount"); + if (auto startCountSource = provider.dataSource(startCountSourceId)) { + auto data = startCountSource->data().toMap(); + + static const auto startCountKey = QStringLiteral("value"); + const auto startCountIt = data.find(startCountKey); + if (startCountIt != data.end()) { + return startCountIt->toInt() == 1; + } + } + + return false; +} + +void UsageStatisticPlugin::showFirstTimeMessage() +{ + if (m_provider && runFirstTime(*m_provider)) { + showEncouragementMessage(); + } +} + +void UsageStatisticPlugin::showEncouragementMessage() +{ + if (m_outputPane) { + m_outputPane->flash(); + } +} + } // namespace Internal } // namespace UsageStatistic diff --git a/src/usagestatisticplugin.h b/src/usagestatisticplugin.h index 139acc3..798d27d 100644 --- a/src/usagestatisticplugin.h +++ b/src/usagestatisticplugin.h @@ -60,6 +60,8 @@ private: void storeSettings(); void restoreSettings(); void createProvider(); + void showEncouragementMessage(); + void showFirstTimeMessage(); private: std::shared_ptr<KUserFeedback::Provider> m_provider; |