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:
parent
d6e7a6b7c0
commit
dbd7aa528e
4 changed files with 9 additions and 34 deletions
|
@ -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")
|
||||
|
|
|
@ -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 }
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
@ -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++;
|
||||
}
|
||||
}
|
||||
|
|
|
@ -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_;
|
||||
|
|
Loading…
Add table
Reference in a new issue