From dbd7aa528edc364c4e0245067a2c9137a86eaa05 Mon Sep 17 00:00:00 2001 From: Nicolas Vengeon <nicolas.vengeon@savoirfairelinux.com> Date: Thu, 29 Sep 2022 15:54:07 -0400 Subject: [PATCH] tooltips: changes on tooltips management -Tips are no longer deleted -Tips are shown randomly -Custom tooltip and backup tooltip are shown first if needed Gitlab: #846 Change-Id: Icadc1dcef23ff7d5783e840d3d1528d399166e24 --- src/app/appsettingsmanager.h | 1 - src/app/mainview/components/WelcomePage.qml | 4 ++- src/app/tipsmodel.cpp | 36 ++++----------------- src/app/tipsmodel.h | 2 -- 4 files changed, 9 insertions(+), 34 deletions(-) diff --git a/src/app/appsettingsmanager.h b/src/app/appsettingsmanager.h index b0f17939c..621204ff1 100644 --- a/src/app/appsettingsmanager.h +++ b/src/app/appsettingsmanager.h @@ -54,7 +54,6 @@ extern const QString defaultDownloadPath; X(StartMinimized, false) \ X(ShowChatviewHorizontally, true) \ X(NeverShowMeAgain, false) \ - X(HiddenTips, QStringList()) \ X(WindowGeometry, QRectF(qQNaN(), qQNaN(), 0., 0.)) \ X(WindowState, QWindow::AutomaticVisibility) \ X(LANG, "SYSTEM") diff --git a/src/app/mainview/components/WelcomePage.qml b/src/app/mainview/components/WelcomePage.qml index 0d7f15a0e..5e5abe860 100644 --- a/src/app/mainview/components/WelcomePage.qml +++ b/src/app/mainview/components/WelcomePage.qml @@ -187,8 +187,10 @@ Rectangle { title: Title description: Description type: Type + property bool hideTipBox: false visible: { + if(hideTipBox) return false if (type === "backup") { return LRCInstance.currentAccountType !== Profile.Type.SIP && CurrentAccount.managerUri.length === 0 @@ -198,7 +200,7 @@ Rectangle { return true } - onIgnoreClicked: TipsModel.remove(TipId) + onIgnoreClicked: { hideTipBox = true } } } } diff --git a/src/app/tipsmodel.cpp b/src/app/tipsmodel.cpp index 05849d061..36609d275 100644 --- a/src/app/tipsmodel.cpp +++ b/src/app/tipsmodel.cpp @@ -18,6 +18,9 @@ #include "tipsmodel.h" +#include <algorithm> +#include <random> + TipsModel::TipsModel(AppSettingsManager* settingsManager, QObject* parent) : QAbstractListModel(parent) , settingsManager_(settingsManager) @@ -100,15 +103,9 @@ TipsModel::TipsModel(AppSettingsManager* settingsManager, QObject* parent) "backup on another device.")}, {"type", "tip"}}); - QStringList hiddenIds = settingsManager_->getValue(Settings::Key::HiddenTips).toStringList(); - - auto it = tips_.begin(); - while (it != tips_.end()) { - if (hiddenIds.contains((*it)["id"])) - it = tips_.erase(it); - else - it++; - } + std::random_device rd; + std::mt19937 g(rd()); + std::shuffle(tips_.begin() + 2, tips_.end(), g); } int @@ -150,24 +147,3 @@ TipsModel::roleNames() const #undef X return roles; } - -void -TipsModel::remove(QVariant id) -{ - auto index = 0; - auto it = tips_.begin(); - while (it != tips_.end()) { - if ((*it)["id"] == id.toString()) { - beginRemoveRows(QModelIndex(), index, index); - QStringList hiddenIds = settingsManager_->getValue(Settings::Key::HiddenTips) - .toStringList(); - hiddenIds.append(id.toString()); - settingsManager_->setValue(Settings::Key::HiddenTips, hiddenIds); - tips_.erase(it); - endRemoveRows(); - return; - } - index++; - it++; - } -} diff --git a/src/app/tipsmodel.h b/src/app/tipsmodel.h index 52a424e8f..26995c6a6 100644 --- a/src/app/tipsmodel.h +++ b/src/app/tipsmodel.h @@ -52,8 +52,6 @@ public: QVariant data(const QModelIndex& index, int role = Qt::DisplayRole) const override; QHash<int, QByteArray> roleNames() const override; - Q_INVOKABLE void remove(QVariant id); - private: VectorMapStringString tips_; AppSettingsManager* settingsManager_; -- GitLab