#ifndef APPSETTINGS_H #define APPSETTINGS_H #include "messages/word.h" #include "setting.h" #include "settingssnapshot.h" #include namespace chatterino { class SettingsManager : public QObject { Q_OBJECT public: Setting theme; Setting themeHue; Setting selectedUser; Setting emoteScale; Setting mouseScrollMultiplier; Setting scaleEmotesByLineHeight; Setting showTimestamps; Setting showTimestampSeconds; Setting showLastMessageIndicator; Setting allowDouplicateMessages; Setting linksDoubleClickOnly; Setting hideEmptyInput; Setting showMessageLength; Setting seperateMessages; Setting mentionUsersWithAt; Setting allowCommandsAtEnd; Setting enableHighlights; Setting enableHighlightSound; Setting enableHighlightTaskbar; Setting customHighlightSound; Setting enableTwitchEmotes; Setting enableBttvEmotes; Setting enableFfzEmotes; Setting enableEmojis; Setting enableGifAnimations; Setting enableGifs; Setting inlineWhispers; Setting windowTopMost; Setting hideTabX; Setting hidePreferencesButton; Setting hideUserButton; Setting useCustomWindowFrame; void load(); void save(); messages::Word::Type getWordTypeMask(); bool isIgnoredEmote(const QString &emote); QSettings &getQSettings(); SettingsSnapshot createSnapshot(); signals: void wordTypeMaskChanged(); private: SettingsManager(); // variables QSettings _settings; std::vector> _settingsItems; messages::Word::Type _wordTypeMask; // methods void updateWordTypeMask(); public: static SettingsManager &getInstance() { return instance; } private: static SettingsManager instance; }; } // namespace chatterino #endif // APPSETTINGS_H