1
0
mirror of https://github.com/qTox/qTox.git synced 2024-03-22 14:00:36 +08:00

feat(Settings): Add setting for hiding group join and leave system messages

Messages can become spammy is long lasting quiet groups, drowning out real user
messages
This commit is contained in:
Anthony Bilinski 2022-02-14 02:28:57 -08:00
parent e5df648e1a
commit 1be5b99d17
No known key found for this signature in database
GPG Key ID: 2AA8E0DA1B31FB3C
4 changed files with 28 additions and 2 deletions

View File

@ -36,5 +36,9 @@ public:
virtual QStringList getBlackList() const = 0;
virtual void setBlackList(const QStringList& blist) = 0;
virtual bool getShowGroupJoinLeaveMessages() const = 0;
virtual void setShowGroupJoinLeaveMessages(bool newValue) = 0;
DECLARE_SIGNAL(blackListChanged, QStringList const& blist);
DECLARE_SIGNAL(showGroupJoinLeaveMessagesChanged, bool show);
};

View File

@ -200,6 +200,7 @@ void Settings::loadGlobal()
lightTrayIcon = s.value("lightTrayIcon", false).toBool();
useEmoticons = s.value("useEmoticons", true).toBool();
statusChangeNotificationEnabled = s.value("statusChangeNotificationEnabled", false).toBool();
showGroupJoinLeaveMessages = s.value("showGroupJoinLeaveMessages", true).toBool();
spellCheckingEnabled = s.value("spellCheckingEnabled", true).toBool();
themeColor = s.value("themeColor", 0).toInt();
style = s.value("style", "").toString();
@ -663,6 +664,7 @@ void Settings::saveGlobal()
s.setValue("style", style);
s.setValue("nameColors", nameColors);
s.setValue("statusChangeNotificationEnabled", statusChangeNotificationEnabled);
s.setValue("showGroupJoinLeaveMessages", showGroupJoinLeaveMessages);
s.setValue("spellCheckingEnabled", spellCheckingEnabled);
}
s.endGroup();
@ -1023,6 +1025,19 @@ void Settings::setStatusChangeNotificationEnabled(bool newValue)
}
}
bool Settings::getShowGroupJoinLeaveMessages() const
{
QMutexLocker locker{&bigLock};
return showGroupJoinLeaveMessages;
}
void Settings::setShowGroupJoinLeaveMessages(bool newValue)
{
if (setVal(showGroupJoinLeaveMessages, newValue)) {
emit showGroupJoinLeaveMessagesChanged(newValue);
}
}
bool Settings::getSpellCheckingEnabled() const
{
const QMutexLocker locker{&bigLock};

View File

@ -463,9 +463,12 @@ public:
QStringList getBlackList() const override;
void setBlackList(const QStringList& blist) override;
SIGNAL_IMPL(Settings, blackListChanged, QStringList const& blist)
bool getShowGroupJoinLeaveMessages() const override;
void setShowGroupJoinLeaveMessages(bool newValue) override;
SIGNAL_IMPL(Settings, showGroupJoinLeaveMessagesChanged, bool show)
// State
QByteArray getWindowGeometry() const;
void setWindowGeometry(const QByteArray& value);
@ -655,6 +658,7 @@ private:
QString timestampFormat;
QString dateFormat;
bool statusChangeNotificationEnabled;
bool showGroupJoinLeaveMessages;
bool spellCheckingEnabled;
// Privacy

View File

@ -63,9 +63,12 @@ class MockGroupSettings : public QObject, public IGroupSettings
public:
QStringList getBlackList() const override;
void setBlackList(const QStringList& blist) override;
SIGNAL_IMPL(MockGroupSettings, blackListChanged, QStringList const& blist)
bool getShowGroupJoinLeaveMessages() const override { return true; };
void setShowGroupJoinLeaveMessages(bool newValue) override {};
SIGNAL_IMPL(MockGroupSettings, showGroupJoinLeaveMessagesChanged, bool show)
private:
QStringList blacklist;
};