1
0
Fork 0
mirror of https://git.jami.net/savoirfairelinux/jami-client-qt.git synced 2025-09-08 11:03:30 +02:00

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
This commit is contained in:
Nicolas Vengeon 2022-09-29 15:54:07 -04:00
parent d6e7a6b7c0
commit dbd7aa528e
4 changed files with 9 additions and 34 deletions

View file

@ -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")

View file

@ -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 }
}
}
}

View file

@ -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++;
}
}

View file

@ -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_;