#pragma once #include "messages/word.hpp" #include "setting.hpp" #include "settingssnapshot.hpp" #include #include namespace chatterino { class SettingsManager : public QObject { Q_OBJECT public: void load(); void save(); messages::Word::Type getWordTypeMask(); bool isIgnoredEmote(const QString &emote); QSettings &getQSettings(); SettingsSnapshot createSnapshot(); // new pajlada settings BBaper pajlada::Settings::Setting showTimestamps; pajlada::Settings::Setting showTimestampSeconds; pajlada::Settings::Setting showBadges; pajlada::Settings::Setting streamlinkPath; pajlada::Settings::Setting preferredQuality; // Settings Setting emoteScale; Setting mouseScrollMultiplier; Setting scaleEmotesByLineHeight; Setting showLastMessageIndicator; Setting allowDouplicateMessages; Setting linksDoubleClickOnly; Setting hideEmptyInput; Setting showMessageLength; Setting seperateMessages; Setting mentionUsersWithAt; Setting allowCommandsAtEnd; Setting enableHighlights; Setting enableHighlightsSelf; Setting enableHighlightSound; Setting enableHighlightTaskbar; Setting customHighlightSound; Setting pathHighlightSound; Setting>> highlightProperties; Setting highlightUserBlacklist; pajlada::Settings::Setting highlightAlwaysPlaySound; Setting enableTwitchEmotes; Setting enableBttvEmotes; Setting enableFfzEmotes; Setting enableEmojis; Setting enableGifAnimations; Setting enableGifs; Setting inlineWhispers; Setting windowTopMost; Setting hideTabX; Setting hidePreferencesButton; Setting hideUserButton; Setting useCustomWindowFrame; static SettingsManager &getInstance() { static SettingsManager instance; return instance; } void updateWordTypeMask(); signals: void wordTypeMaskChanged(); private: SettingsManager(); QSettings settings; std::vector> settingsItems; messages::Word::Type wordTypeMask = messages::Word::Default; }; } // namespace chatterino