parent
ad91784d86
commit
dae032172d
6 changed files with 95 additions and 1 deletions
|
|
@ -118,6 +118,8 @@ UserSettings::load(std::optional<QString> profile)
|
|||
deviceId_ = settings.value(prefix + "auth/device_id", "").toString();
|
||||
hiddenTags_ = settings.value(prefix + "user/hidden_tags", QStringList{}).toStringList();
|
||||
hiddenPins_ = settings.value(prefix + "user/hidden_pins", QStringList{}).toStringList();
|
||||
recentReactions_ =
|
||||
settings.value(prefix + "user/recent_reactions", QStringList{}).toStringList();
|
||||
|
||||
collapsedSpaces_.clear();
|
||||
for (const auto &e :
|
||||
|
|
@ -209,6 +211,14 @@ UserSettings::setHiddenPins(QStringList hiddenTags)
|
|||
emit hiddenPinsChanged();
|
||||
}
|
||||
|
||||
void
|
||||
UserSettings::setRecentReactions(QStringList recent)
|
||||
{
|
||||
recentReactions_ = recent;
|
||||
save();
|
||||
emit recentReactionsChanged();
|
||||
}
|
||||
|
||||
void
|
||||
UserSettings::setCollapsedSpaces(QList<QStringList> spaces)
|
||||
{
|
||||
|
|
@ -717,6 +727,7 @@ UserSettings::save()
|
|||
settings.setValue(prefix + "user/online_key_backup", useOnlineKeyBackup_);
|
||||
settings.setValue(prefix + "user/hidden_tags", hiddenTags_);
|
||||
settings.setValue(prefix + "user/hidden_pins", hiddenPins_);
|
||||
settings.setValue(prefix + "user/recent_reactions", recentReactions_);
|
||||
|
||||
QVariantList v;
|
||||
for (const auto &e : collapsedSpaces_)
|
||||
|
|
|
|||
|
|
@ -106,6 +106,8 @@ class UserSettings : public QObject
|
|||
Q_PROPERTY(bool useIdenticon READ useIdenticon WRITE setUseIdenticon NOTIFY useIdenticonChanged)
|
||||
|
||||
Q_PROPERTY(QStringList hiddenPins READ hiddenPins WRITE setHiddenPins NOTIFY hiddenPinsChanged)
|
||||
Q_PROPERTY(QStringList recentReactions READ recentReactions WRITE setRecentReactions NOTIFY
|
||||
recentReactionsChanged)
|
||||
|
||||
UserSettings();
|
||||
|
||||
|
|
@ -174,6 +176,7 @@ public:
|
|||
void setDisableCertificateValidation(bool disabled);
|
||||
void setHiddenTags(QStringList hiddenTags);
|
||||
void setHiddenPins(QStringList hiddenTags);
|
||||
void setRecentReactions(QStringList recent);
|
||||
void setUseIdenticon(bool state);
|
||||
void setCollapsedSpaces(QList<QStringList> spaces);
|
||||
|
||||
|
|
@ -232,6 +235,7 @@ public:
|
|||
bool disableCertificateValidation() const { return disableCertificateValidation_; }
|
||||
QStringList hiddenTags() const { return hiddenTags_; }
|
||||
QStringList hiddenPins() const { return hiddenPins_; }
|
||||
QStringList recentReactions() const { return recentReactions_; }
|
||||
bool useIdenticon() const { return useIdenticon_ && JdenticonProvider::isAvailable(); }
|
||||
QList<QStringList> collapsedSpaces() const { return collapsedSpaces_; }
|
||||
|
||||
|
|
@ -283,6 +287,7 @@ signals:
|
|||
void disableCertificateValidationChanged(bool disabled);
|
||||
void useIdenticonChanged(bool state);
|
||||
void hiddenPinsChanged();
|
||||
void recentReactionsChanged();
|
||||
|
||||
private:
|
||||
// Default to system theme if QT_QPA_PLATFORMTHEME var is set.
|
||||
|
|
@ -337,6 +342,7 @@ private:
|
|||
QString homeserver_;
|
||||
QStringList hiddenTags_;
|
||||
QStringList hiddenPins_;
|
||||
QStringList recentReactions_;
|
||||
QList<QStringList> collapsedSpaces_;
|
||||
bool useIdenticon_;
|
||||
|
||||
|
|
|
|||
|
|
@ -829,6 +829,14 @@ InputBar::reaction(const QString &reactedEvent, const QString &reactionKey)
|
|||
reaction.relations.relations.push_back(rel);
|
||||
|
||||
room->sendMessageEvent(reaction, mtx::events::EventType::Reaction);
|
||||
|
||||
auto recents = UserSettings::instance()->recentReactions();
|
||||
if (recents.contains(reactionKey))
|
||||
recents.removeOne(reactionKey);
|
||||
else if (recents.size() >= 6)
|
||||
recents.removeLast();
|
||||
recents.push_front(reactionKey);
|
||||
UserSettings::instance()->setRecentReactions(recents);
|
||||
// Otherwise, we have previously reacted and the reaction should be redacted
|
||||
} else {
|
||||
room->redactEvent(selfReactedEvent);
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue