diff --git a/src/app/appsettingsmanager.h b/src/app/appsettingsmanager.h index b0f17939c7357b93d85d2fd0a52430966742a0bd..621204ff17864a0709284fb971c4fa92e47b8b21 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 0d7f15a0e3cb69a1c5fd9bbd0ba9a62cadcff959..5e5abe860cf60fefda410bde7f33215d32086e3c 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 05849d0618e2db1fdec651d553a9fadfebda5178..36609d27551e0c988b33a597dc02c976c8e92032 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 52a424e8fba00209b410a6c01e0d777f7f4b5173..26995c6a6ed8a9dc37a16b44a9aed4f0d84bd447 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_;