Skip to content
Snippets Groups Projects
Commit dbd7aa52 authored by Nicolas Vengeon's avatar Nicolas Vengeon
Browse files

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
parent d6e7a6b7
No related branches found
No related tags found
No related merge requests found
...@@ -54,7 +54,6 @@ extern const QString defaultDownloadPath; ...@@ -54,7 +54,6 @@ extern const QString defaultDownloadPath;
X(StartMinimized, false) \ X(StartMinimized, false) \
X(ShowChatviewHorizontally, true) \ X(ShowChatviewHorizontally, true) \
X(NeverShowMeAgain, false) \ X(NeverShowMeAgain, false) \
X(HiddenTips, QStringList()) \
X(WindowGeometry, QRectF(qQNaN(), qQNaN(), 0., 0.)) \ X(WindowGeometry, QRectF(qQNaN(), qQNaN(), 0., 0.)) \
X(WindowState, QWindow::AutomaticVisibility) \ X(WindowState, QWindow::AutomaticVisibility) \
X(LANG, "SYSTEM") X(LANG, "SYSTEM")
......
...@@ -187,8 +187,10 @@ Rectangle { ...@@ -187,8 +187,10 @@ Rectangle {
title: Title title: Title
description: Description description: Description
type: Type type: Type
property bool hideTipBox: false
visible: { visible: {
if(hideTipBox) return false
if (type === "backup") { if (type === "backup") {
return LRCInstance.currentAccountType !== Profile.Type.SIP return LRCInstance.currentAccountType !== Profile.Type.SIP
&& CurrentAccount.managerUri.length === 0 && CurrentAccount.managerUri.length === 0
...@@ -198,7 +200,7 @@ Rectangle { ...@@ -198,7 +200,7 @@ Rectangle {
return true return true
} }
onIgnoreClicked: TipsModel.remove(TipId) onIgnoreClicked: { hideTipBox = true }
} }
} }
} }
......
...@@ -18,6 +18,9 @@ ...@@ -18,6 +18,9 @@
#include "tipsmodel.h" #include "tipsmodel.h"
#include <algorithm>
#include <random>
TipsModel::TipsModel(AppSettingsManager* settingsManager, QObject* parent) TipsModel::TipsModel(AppSettingsManager* settingsManager, QObject* parent)
: QAbstractListModel(parent) : QAbstractListModel(parent)
, settingsManager_(settingsManager) , settingsManager_(settingsManager)
...@@ -100,15 +103,9 @@ TipsModel::TipsModel(AppSettingsManager* settingsManager, QObject* parent) ...@@ -100,15 +103,9 @@ TipsModel::TipsModel(AppSettingsManager* settingsManager, QObject* parent)
"backup on another device.")}, "backup on another device.")},
{"type", "tip"}}); {"type", "tip"}});
QStringList hiddenIds = settingsManager_->getValue(Settings::Key::HiddenTips).toStringList(); std::random_device rd;
std::mt19937 g(rd());
auto it = tips_.begin(); std::shuffle(tips_.begin() + 2, tips_.end(), g);
while (it != tips_.end()) {
if (hiddenIds.contains((*it)["id"]))
it = tips_.erase(it);
else
it++;
}
} }
int int
...@@ -150,24 +147,3 @@ TipsModel::roleNames() const ...@@ -150,24 +147,3 @@ TipsModel::roleNames() const
#undef X #undef X
return roles; 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++;
}
}
...@@ -52,8 +52,6 @@ public: ...@@ -52,8 +52,6 @@ public:
QVariant data(const QModelIndex& index, int role = Qt::DisplayRole) const override; QVariant data(const QModelIndex& index, int role = Qt::DisplayRole) const override;
QHash<int, QByteArray> roleNames() const override; QHash<int, QByteArray> roleNames() const override;
Q_INVOKABLE void remove(QVariant id);
private: private:
VectorMapStringString tips_; VectorMapStringString tips_;
AppSettingsManager* settingsManager_; AppSettingsManager* settingsManager_;
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment