diff --git a/src/provider/core/provider.cpp b/src/provider/core/provider.cpp --- a/src/provider/core/provider.cpp +++ b/src/provider/core/provider.cpp @@ -128,8 +128,10 @@ return s; } -void ProviderPrivate::load() +bool ProviderPrivate::load() { + if (!q->isEnabled()) + return false; auto s = makeSettings(); s->beginGroup(QStringLiteral("UserFeedback")); lastSubmitTime = s->value(QStringLiteral("LastSubmission")).toDateTime(); @@ -158,10 +160,14 @@ g->beginGroup(QStringLiteral("UserFeedback")); lastSurveyTime = std::max(g->value(QStringLiteral("LastSurvey")).toDateTime(), lastSurveyTime); lastEncouragementTime = std::max(g->value(QStringLiteral("LastEncouragement")).toDateTime(), lastEncouragementTime); + + return true; } void ProviderPrivate::store() { + if (!q->isEnabled()) + return; auto s = makeSettings(); s->beginGroup(QStringLiteral("UserFeedback")); @@ -399,6 +405,8 @@ void ProviderPrivate::emitShowEncouragementMessage() { + if (!q->isEnabled()) // encouragement disabled by user + return; lastEncouragementTime = QDateTime::currentDateTime(); // TODO make this explicit, in case the host application decides to delay? storeOne(QStringLiteral("LastEncouragement"), lastEncouragementTime); storeOneGlobal(QStringLiteral("LastEncouragement"), lastEncouragementTime); @@ -455,7 +463,11 @@ return; d->productId = productId; - d->load(); + if (!d->load()) { + emit providerSettingsChanged(); + return; + } + d->startCount++; d->storeOne(QStringLiteral("ApplicationStartCount"), d->startCount); diff --git a/src/provider/core/provider_p.h b/src/provider/core/provider_p.h --- a/src/provider/core/provider_p.h +++ b/src/provider/core/provider_p.h @@ -54,7 +54,7 @@ std::unique_ptr makeSettings() const; std::unique_ptr makeGlobalSettings() const; - void load(); + bool load(); void store(); void storeOne(const QString &key, const QVariant &value); void storeOneGlobal(const QString &key, const QVariant &value);