2017-06-07 10:09:24 +02:00
|
|
|
#pragma once
|
2017-01-05 20:49:13 +01:00
|
|
|
|
2018-11-25 15:02:48 +01:00
|
|
|
#include "ABSettings.hpp"
|
2018-08-02 14:23:27 +02:00
|
|
|
|
2018-06-26 14:09:39 +02:00
|
|
|
#include "controllers/highlights/HighlightPhrase.hpp"
|
2018-06-28 19:38:57 +02:00
|
|
|
#include "controllers/moderationactions/ModerationAction.hpp"
|
2017-01-20 06:10:28 +01:00
|
|
|
|
2017-06-11 20:53:43 +02:00
|
|
|
#include <pajlada/settings/setting.hpp>
|
2017-12-19 02:31:06 +01:00
|
|
|
#include <pajlada/settings/settinglistener.hpp>
|
2017-01-05 20:49:13 +01:00
|
|
|
|
2017-01-18 21:30:23 +01:00
|
|
|
namespace chatterino {
|
|
|
|
|
2018-11-25 15:02:48 +01:00
|
|
|
class Settings : public ABSettings
|
2017-01-05 20:49:13 +01:00
|
|
|
{
|
2018-08-02 14:23:27 +02:00
|
|
|
static Settings *instance;
|
2018-04-27 22:11:19 +02:00
|
|
|
|
2018-06-28 19:38:57 +02:00
|
|
|
public:
|
2018-11-25 15:02:48 +01:00
|
|
|
Settings(const QString &settingsDirectory);
|
2017-05-27 16:16:39 +02:00
|
|
|
|
2018-08-02 14:23:27 +02:00
|
|
|
static Settings &getInstance();
|
2018-01-04 01:52:37 +01:00
|
|
|
|
2017-12-17 01:19:56 +01:00
|
|
|
/// Appearance
|
|
|
|
BoolSetting showTimestamps = {"/appearance/messages/showTimestamps", true};
|
2018-10-31 19:45:51 +01:00
|
|
|
BoolSetting animationsWhenFocused = {
|
2018-08-15 23:48:16 +02:00
|
|
|
"/appearance/enableAnimationsWhenFocused", false};
|
2018-08-06 21:17:03 +02:00
|
|
|
QStringSetting timestampFormat = {"/appearance/messages/timestampFormat",
|
|
|
|
"h:mm"};
|
|
|
|
BoolSetting showLastMessageIndicator = {
|
|
|
|
"/appearance/messages/showLastMessageIndicator", false};
|
|
|
|
IntSetting lastMessagePattern = {"/appearance/messages/lastMessagePattern",
|
|
|
|
Qt::VerPattern};
|
2018-10-20 13:25:24 +02:00
|
|
|
QStringSetting lastMessageColor = {"/appearance/messages/lastMessageColor",
|
|
|
|
""};
|
2018-10-25 21:47:52 +02:00
|
|
|
BoolSetting greyOutHistoricMessages = {
|
|
|
|
"/appearance/messages/greyOutHistoricMessages", true};
|
2018-07-05 18:17:12 +02:00
|
|
|
BoolSetting showEmptyInput = {"/appearance/showEmptyInputBox", true};
|
2018-08-06 21:17:03 +02:00
|
|
|
BoolSetting showMessageLength = {"/appearance/messages/showMessageLength",
|
|
|
|
false};
|
|
|
|
BoolSetting separateMessages = {"/appearance/messages/separateMessages",
|
|
|
|
false};
|
2018-10-29 21:46:43 +01:00
|
|
|
BoolSetting compactEmotes = {"/appearance/messages/compactEmotes", true};
|
|
|
|
|
2018-08-06 21:17:03 +02:00
|
|
|
// BoolSetting collapseLongMessages =
|
|
|
|
// {"/appearance/messages/collapseLongMessages", false};
|
|
|
|
IntSetting collpseMessagesMinLines = {
|
|
|
|
"/appearance/messages/collapseMessagesMinLines", 0};
|
2018-10-31 19:45:51 +01:00
|
|
|
BoolSetting alternateMessages = {
|
2018-08-06 21:17:03 +02:00
|
|
|
"/appearance/messages/alternateMessageBackground", false};
|
2018-08-06 16:41:27 +02:00
|
|
|
IntSetting boldScale = {"/appearance/boldScale", 57};
|
2018-04-27 01:11:09 +02:00
|
|
|
BoolSetting showTabCloseButton = {"/appearance/showTabCloseButton", true};
|
2018-10-31 19:45:51 +01:00
|
|
|
BoolSetting showTabLive = {"/appearance/showTabLiveButton", false};
|
2018-08-06 21:17:03 +02:00
|
|
|
BoolSetting hidePreferencesButton = {"/appearance/hidePreferencesButton",
|
|
|
|
false};
|
2017-12-17 01:19:56 +01:00
|
|
|
BoolSetting hideUserButton = {"/appearance/hideUserButton", false};
|
2017-12-18 18:55:09 +01:00
|
|
|
BoolSetting enableSmoothScrolling = {"/appearance/smoothScrolling", true};
|
2018-08-06 21:17:03 +02:00
|
|
|
BoolSetting enableSmoothScrollingNewMessages = {
|
|
|
|
"/appearance/smoothScrollingNewMessages", false};
|
2018-10-31 19:45:51 +01:00
|
|
|
BoolSetting boldUsernames = {"/appearance/messages/boldUsernames", false};
|
2018-08-06 16:42:23 +02:00
|
|
|
// BoolSetting customizable splitheader
|
2018-10-31 19:45:51 +01:00
|
|
|
BoolSetting headerViewerCount = {"/appearance/splitheader/showViewerCount",
|
|
|
|
false};
|
|
|
|
BoolSetting headerStreamTitle = {"/appearance/splitheader/showTitle",
|
|
|
|
false};
|
|
|
|
BoolSetting headerGame = {"/appearance/splitheader/showGame", false};
|
|
|
|
BoolSetting headerUptime = {"/appearance/splitheader/showUptime", false};
|
2018-10-25 21:52:12 +02:00
|
|
|
FloatSetting customThemeMultiplier = {"/appearance/customThemeMultiplier",
|
|
|
|
-0.5f};
|
2018-08-06 21:17:03 +02:00
|
|
|
// BoolSetting useCustomWindowFrame = {"/appearance/useCustomWindowFrame",
|
|
|
|
// false};
|
2017-12-17 01:19:56 +01:00
|
|
|
|
2018-09-16 17:42:30 +02:00
|
|
|
// Badges
|
|
|
|
BoolSetting showBadgesGlobalAuthority = {
|
|
|
|
"/appearance/badges/GlobalAuthority", true};
|
|
|
|
BoolSetting showBadgesChannelAuthority = {
|
|
|
|
"/appearance/badges/ChannelAuthority", true};
|
|
|
|
BoolSetting showBadgesSubscription = {"/appearance/badges/subscription",
|
|
|
|
true};
|
|
|
|
BoolSetting showBadgesVanity = {"/appearance/badges/vanity", true};
|
|
|
|
BoolSetting showBadgesChatterino = {"/appearance/badges/chatterino", true};
|
|
|
|
|
2017-12-17 01:19:56 +01:00
|
|
|
/// Behaviour
|
2018-08-06 21:17:03 +02:00
|
|
|
BoolSetting allowDuplicateMessages = {"/behaviour/allowDuplicateMessages",
|
|
|
|
true};
|
2017-12-17 01:19:56 +01:00
|
|
|
BoolSetting mentionUsersWithAt = {"/behaviour/mentionUsersWithAt", false};
|
2018-05-26 18:06:55 +02:00
|
|
|
BoolSetting showJoins = {"/behaviour/showJoins", false};
|
|
|
|
BoolSetting showParts = {"/behaviour/showParts", false};
|
2018-08-06 21:17:03 +02:00
|
|
|
FloatSetting mouseScrollMultiplier = {"/behaviour/mouseScrollMultiplier",
|
|
|
|
1.0};
|
|
|
|
// BoolSetting twitchSeperateWriteConnection =
|
|
|
|
// {"/behaviour/twitchSeperateWriteConnection", false};
|
2018-03-30 15:42:59 +02:00
|
|
|
|
|
|
|
// Auto-completion
|
|
|
|
BoolSetting onlyFetchChattersForSmallerStreamers = {
|
|
|
|
"/behaviour/autocompletion/onlyFetchChattersForSmallerStreamers", true};
|
2018-08-06 21:17:03 +02:00
|
|
|
IntSetting smallStreamerLimit = {
|
|
|
|
"/behaviour/autocompletion/smallStreamerLimit", 1000};
|
2018-03-30 15:42:59 +02:00
|
|
|
|
2018-10-31 19:45:51 +01:00
|
|
|
BoolSetting pauseChatOnHover = {"/behaviour/pauseChatHover", false};
|
2017-12-17 01:19:56 +01:00
|
|
|
|
|
|
|
/// Commands
|
|
|
|
BoolSetting allowCommandsAtEnd = {"/commands/allowCommandsAtEnd", false};
|
|
|
|
|
|
|
|
/// Emotes
|
2018-08-06 21:17:03 +02:00
|
|
|
BoolSetting scaleEmotesByLineHeight = {"/emotes/scaleEmotesByLineHeight",
|
|
|
|
false};
|
2017-12-17 01:19:56 +01:00
|
|
|
BoolSetting enableTwitchEmotes = {"/emotes/enableTwitchEmotes", true};
|
|
|
|
BoolSetting enableBttvEmotes = {"/emotes/enableBTTVEmotes", true};
|
|
|
|
BoolSetting enableFfzEmotes = {"/emotes/enableFFZEmotes", true};
|
|
|
|
BoolSetting enableEmojis = {"/emotes/enableEmojis", true};
|
2018-10-31 19:45:51 +01:00
|
|
|
BoolSetting animateEmotes = {"/emotes/enableGifAnimations", true};
|
2018-01-04 02:19:35 +01:00
|
|
|
FloatSetting emoteScale = {"/emotes/scale", 1.f};
|
2017-12-17 01:19:56 +01:00
|
|
|
|
2018-06-06 01:29:43 +02:00
|
|
|
QStringSetting emojiSet = {"/emotes/emojiSet", "EmojiOne 2"};
|
|
|
|
|
2017-12-17 01:19:56 +01:00
|
|
|
/// Links
|
|
|
|
BoolSetting linksDoubleClickOnly = {"/links/doubleClickToOpen", false};
|
2018-10-31 19:45:51 +01:00
|
|
|
BoolSetting linkInfoTooltip = {"/links/linkInfoTooltip", false};
|
|
|
|
BoolSetting unshortLinks = {"/links/unshortLinks", false};
|
|
|
|
BoolSetting lowercaseDomains = {"/links/linkLowercase", true};
|
2017-12-17 01:19:56 +01:00
|
|
|
|
2018-09-23 20:21:50 +02:00
|
|
|
/// Ignored phrases
|
2018-10-06 17:51:13 +02:00
|
|
|
QStringSetting ignoredPhraseReplace = {"/ignore/ignoredPhraseReplace",
|
|
|
|
"***"};
|
2018-09-23 20:21:50 +02:00
|
|
|
|
2018-01-23 21:33:49 +01:00
|
|
|
/// Ingored Users
|
2018-08-06 21:17:03 +02:00
|
|
|
BoolSetting enableTwitchIgnoredUsers = {"/ignore/enableTwitchIgnoredUsers",
|
|
|
|
true};
|
2018-01-23 21:33:49 +01:00
|
|
|
|
2018-01-13 03:06:10 +01:00
|
|
|
/// Moderation
|
2018-03-24 16:55:28 +01:00
|
|
|
QStringSetting timeoutAction = {"/moderation/timeoutAction", "Disable"};
|
2018-01-13 03:06:10 +01:00
|
|
|
|
2017-12-17 01:19:56 +01:00
|
|
|
/// Highlighting
|
2018-04-27 01:11:09 +02:00
|
|
|
// BoolSetting enableHighlights = {"/highlighting/enabled", true};
|
2017-12-17 01:19:56 +01:00
|
|
|
BoolSetting customHighlightSound = {"/highlighting/useCustomSound", false};
|
2018-08-29 01:21:36 +02:00
|
|
|
BoolSetting enableSelfHighlight = {
|
|
|
|
"/highlighting/selfHighlight/nameIsHighlightKeyword", true};
|
|
|
|
BoolSetting enableSelfHighlightSound = {
|
|
|
|
"/highlighting/selfHighlight/enableSound", true};
|
|
|
|
BoolSetting enableSelfHighlightTaskbar = {
|
|
|
|
"/highlighting/selfHighlight/enableTaskbarFlashing", true};
|
|
|
|
BoolSetting enableWhisperHighlight = {
|
|
|
|
"/highlighting/whisperHighlight/whispersHighlighted", true};
|
|
|
|
BoolSetting enableWhisperHighlightSound = {
|
|
|
|
"/highlighting/whisperHighlight/enableSound", false};
|
|
|
|
BoolSetting enableWhisperHighlightTaskbar = {
|
|
|
|
"/highlighting/whisperHighlight/enableTaskbarFlashing", false};
|
2018-10-01 13:05:50 +02:00
|
|
|
QStringSetting highlightColor = {"/highlighting/color", "#4B282C"};
|
2017-06-11 20:53:43 +02:00
|
|
|
|
2018-10-06 17:51:13 +02:00
|
|
|
BoolSetting longAlerts = {"/highlighting/alerts", false};
|
|
|
|
|
2018-01-28 14:23:55 +01:00
|
|
|
/// Logging
|
|
|
|
BoolSetting enableLogging = {"/logging/enabled", false};
|
|
|
|
|
2018-06-06 20:30:11 +02:00
|
|
|
QStringSetting logPath = {"/logging/path", ""};
|
2018-05-15 19:44:58 +02:00
|
|
|
|
2018-01-04 02:19:35 +01:00
|
|
|
QStringSetting pathHighlightSound = {"/highlighting/highlightSoundPath",
|
|
|
|
"qrc:/sounds/ping2.wav"};
|
2017-12-17 01:19:56 +01:00
|
|
|
|
2018-08-06 21:17:03 +02:00
|
|
|
BoolSetting highlightAlwaysPlaySound = {"/highlighting/alwaysPlaySound",
|
|
|
|
false};
|
2017-12-17 01:19:56 +01:00
|
|
|
|
|
|
|
BoolSetting inlineWhispers = {"/whispers/enableInlineWhispers", true};
|
2017-04-12 17:46:44 +02:00
|
|
|
|
2018-08-09 15:41:03 +02:00
|
|
|
/// Notifications
|
|
|
|
BoolSetting notificationFlashTaskbar = {"/notifications/enableFlashTaskbar",
|
|
|
|
false};
|
|
|
|
BoolSetting notificationPlaySound = {"/notifications/enablePlaySound",
|
|
|
|
false};
|
2018-08-24 18:05:36 +02:00
|
|
|
BoolSetting notificationCustomSound = {"/notifications/customPlaySound",
|
|
|
|
false};
|
|
|
|
QStringSetting notificationPathSound = {"/notifications/highlightSoundPath",
|
|
|
|
"qrc:/sounds/ping3.wav"};
|
|
|
|
|
2018-08-12 18:54:32 +02:00
|
|
|
BoolSetting notificationToast = {"/notifications/enableToast", false};
|
2018-08-09 15:41:03 +02:00
|
|
|
|
2018-05-06 16:33:00 +02:00
|
|
|
/// External tools
|
|
|
|
// Streamlink
|
2018-08-06 21:17:03 +02:00
|
|
|
BoolSetting streamlinkUseCustomPath = {"/external/streamlink/useCustomPath",
|
|
|
|
false};
|
2018-05-06 16:33:00 +02:00
|
|
|
QStringSetting streamlinkPath = {"/external/streamlink/customPath", ""};
|
2018-08-06 21:17:03 +02:00
|
|
|
QStringSetting preferredQuality = {"/external/streamlink/quality",
|
|
|
|
"Choose"};
|
2018-05-06 16:33:00 +02:00
|
|
|
QStringSetting streamlinkOpts = {"/external/streamlink/options", ""};
|
|
|
|
|
2018-06-21 22:02:35 +02:00
|
|
|
/// Misc
|
|
|
|
IntSetting startUpNotification = {"/misc/startUpNotification", 0};
|
2018-06-23 22:17:57 +02:00
|
|
|
QStringSetting currentVersion = {"/misc/currentVersion", ""};
|
2018-06-21 22:02:35 +02:00
|
|
|
|
2018-08-19 16:20:14 +02:00
|
|
|
QStringSetting cachePath = {"/cache/path", ""};
|
|
|
|
|
2017-09-21 12:15:01 +02:00
|
|
|
private:
|
2018-01-17 14:14:31 +01:00
|
|
|
void updateModerationActions();
|
2017-01-05 20:49:13 +01:00
|
|
|
};
|
2017-01-22 23:00:35 +01:00
|
|
|
|
2017-04-14 17:52:22 +02:00
|
|
|
} // namespace chatterino
|