+ } else
+ watch(suggestion->value);
+}
+
+void SearchView::onChannelSuggestions(const QVector<Suggestion *> &suggestions) {
+ lastChannelSuggestions = suggestions;
+}
+
+void SearchView::maybeShowMessage() {
+ QSettings settings;
+ QString key;
+
+ bool showMessages = true;
+#ifdef APP_ACTIVATION
+ showMessages = Activation::instance().isActivated();
+#endif
+
+#if defined APP_MAC && !defined APP_MAC_STORE
+ if (showMessages && !settings.contains(key = "sofa")) {
+ QString msg = tr("Need a remote control for %1? Try %2!").arg(Constants::NAME).arg("Sofa");
+ msg = "<a href='https://" + QLatin1String(Constants::ORG_DOMAIN) + '/' + key +
+ "' style='text-decoration:none;color:palette(windowText)'>" + msg + "</a>";
+ messageBar->setMessage(msg);
+ messageBar->setOpenExternalLinks(true);
+ disconnect(messageBar);
+ connect(messageBar, &MessageBar::closed, this, [key] {
+ QSettings settings;
+ settings.setValue(key, true);
+ });
+ messageBar->show();
+ showMessages = false;
+ }
+#endif
+
+ if (showMessages) {
+ key = "donate" + QLatin1String(Constants::VERSION);
+ if (!settings.contains(key)) {
+ bool oneYearUsage = true;
+#ifdef APP_ACTIVATION
+ oneYearUsage = (QDateTime::currentSecsSinceEpoch() -
+ Activation::instance().getLicenseTimestamp()) > 86400 * 365;
+#elif defined APP_MAC_STORE
+ oneYearUsage = false;
+#endif
+ if (oneYearUsage) {
+ QString msg =
+ tr("I keep improving %1 to make it the best I can. Support this work!")
+ .arg(Constants::NAME);
+ msg = "<a href='https://" + QLatin1String(Constants::ORG_DOMAIN) + "/donate" +
+ "' style='text-decoration:none;color:palette(windowText)'>" + msg + "</a>";
+ messageBar->setMessage(msg);
+ messageBar->setOpenExternalLinks(true);
+ disconnect(messageBar);
+ connect(messageBar, &MessageBar::closed, this, [key] {
+ QSettings settings;
+ settings.setValue(key, true);
+ });
+ messageBar->show();
+ }
+ }
+ }
+
+#ifdef UPDATER
+ connect(&Updater::instance(), &Updater::statusChanged, this, [this](auto status) {
+ if (status == Updater::Status::UpdateDownloaded) {
+ QString msg = tr("An update is ready to be installed. Quit and install update.");
+ msg = "<a href='http://quit' style='text-decoration:none;color:palette(windowText)'>" +
+ msg + "</a>";
+ messageBar->setMessage(msg);
+ messageBar->setOpenExternalLinks(false);
+ disconnect(messageBar);
+ connect(messageBar, &MessageBar::linkActivated, this, [] {
+ Updater::instance().setRelaunchAfterInstall(true);
+ qApp->quit();
+ });
+ messageBar->show();
+ }
+ });
+#endif