3 #include <pajlada/settings/setting.hpp> 4 #include <pajlada/settings/settinglistener.hpp> 23 class HighlightPhrase;
24 class HighlightBlacklistUser;
51 void mute(
const QString &channelName);
52 void unmute(
const QString &channelName);
83 Settings(
const QString &settingsDirectory);
88 BoolSetting showTimestamps = {
"/appearance/messages/showTimestamps",
true};
90 "/appearance/enableAnimationsWhenFocused",
false};
94 "/appearance/messages/showLastMessageIndicator",
false};
96 "/appearance/messages/lastMessagePattern", Qt::SolidPattern};
99 BoolSetting showEmptyInput = {
"/appearance/showEmptyInputBox",
true};
100 BoolSetting showMessageLength = {
"/appearance/messages/showMessageLength",
104 BoolSetting separateMessages = {
"/appearance/messages/separateMessages",
106 BoolSetting hideModerated = {
"/appearance/messages/hideModerated",
false};
108 "/appearance/messages/hideModerationActions",
false};
110 "/appearance/messages/hideDeletionActions",
false};
111 BoolSetting colorizeNicknames = {
"/appearance/messages/colorizeNicknames",
114 "/appearance/messages/usernameDisplayMode",
122 BoolSetting showReplyButton = {
"/appearance/showReplyButton",
false};
123 BoolSetting stripReplyMention = {
"/appearance/stripReplyMention",
true};
125 "/appearance/messages/collapseMessagesMinLines", 0};
127 "/appearance/messages/alternateMessageBackground",
false};
129 BoolSetting showTabCloseButton = {
"/appearance/showTabCloseButton",
true};
130 BoolSetting showTabLive = {
"/appearance/showTabLiveButton",
true};
131 BoolSetting hidePreferencesButton = {
"/appearance/hidePreferencesButton",
133 BoolSetting hideUserButton = {
"/appearance/hideUserButton",
false};
134 BoolSetting enableSmoothScrolling = {
"/appearance/smoothScrolling",
true};
136 "/appearance/smoothScrollingNewMessages",
false};
137 BoolSetting boldUsernames = {
"/appearance/messages/boldUsernames",
true};
138 BoolSetting colorUsernames = {
"/appearance/messages/colorUsernames",
true};
139 BoolSetting findAllUsernames = {
"/appearance/messages/findAllUsernames",
142 BoolSetting headerViewerCount = {
"/appearance/splitheader/showViewerCount",
144 BoolSetting headerStreamTitle = {
"/appearance/splitheader/showTitle",
146 BoolSetting headerGame = {
"/appearance/splitheader/showGame",
false};
147 BoolSetting headerUptime = {
"/appearance/splitheader/showUptime",
false};
148 FloatSetting customThemeMultiplier = {
"/appearance/customThemeMultiplier",
155 "/appearance/badges/GlobalAuthority",
true};
156 BoolSetting showBadgesPredictions = {
"/appearance/badges/predictions",
159 "/appearance/badges/ChannelAuthority",
true};
160 BoolSetting showBadgesSubscription = {
"/appearance/badges/subscription",
162 BoolSetting showBadgesVanity = {
"/appearance/badges/vanity",
true};
163 BoolSetting showBadgesChatterino = {
"/appearance/badges/chatterino",
true};
166 "/appearance/badges/useCustomFfzModeratorBadges",
true};
168 "/appearance/badges/useCustomFfzVipBadges",
true};
169 BoolSetting showBadgesSevenTV = {
"/appearance/badges/seventv",
true};
172 BoolSetting allowDuplicateMessages = {
"/behaviour/allowDuplicateMessages",
174 BoolSetting mentionUsersWithAt = {
"/behaviour/mentionUsersWithAt",
false};
177 FloatSetting mouseScrollMultiplier = {
"/behaviour/mouseScrollMultiplier",
179 BoolSetting autoCloseUserPopup = {
"/behaviour/autoCloseUserPopup",
true};
180 BoolSetting autoCloseThreadPopup = {
"/behaviour/autoCloseThreadPopup",
187 "/behaviour/autocompletion/onlyFetchChattersForSmallerStreamers",
true};
189 "/behaviour/autocompletion/smallStreamerLimit", 1000};
191 "/behaviour/autocompletion/prefixOnlyCompletion",
true};
193 "/behaviour/autocompletion/userCompletionOnlyWithAt",
false};
195 "/behaviour/autocompletion/emoteCompletionWithColon",
true};
197 "/behaviour/autocompletion/showUsernameCompletionMenu",
true};
199 FloatSetting pauseOnHoverDuration = {
"/behaviour/pauseOnHoverDuration", 0};
201 "/behaviour/pauseChatModifier", Qt::KeyboardModifier::NoModifier};
203 BoolSetting mentionUsersWithComma = {
"/behaviour/mentionUsersWithComma",
207 BoolSetting allowCommandsAtEnd = {
"/commands/allowCommandsAtEnd",
false};
210 BoolSetting scaleEmotesByLineHeight = {
"/emotes/scaleEmotesByLineHeight",
212 BoolSetting enableEmoteImages = {
"/emotes/enableEmoteImages",
true};
213 BoolSetting animateEmotes = {
"/emotes/enableGifAnimations",
true};
216 "/emotes/showUnlistedSevenTVEmotes",
false};
222 "/emotes/removeSpacesBetweenEmotes",
false};
224 BoolSetting enableBTTVGlobalEmotes = {
"/emotes/bttv/global",
true};
225 BoolSetting enableBTTVChannelEmotes = {
"/emotes/bttv/channel",
true};
227 BoolSetting enableFFZChannelEmotes = {
"/emotes/ffz/channel",
true};
228 BoolSetting enableSevenTVGlobalEmotes = {
"/emotes/seventv/global",
true};
229 BoolSetting enableSevenTVChannelEmotes = {
"/emotes/seventv/channel",
true};
230 BoolSetting enableSevenTVEventAPI = {
"/emotes/seventv/eventapi",
true};
233 BoolSetting linksDoubleClickOnly = {
"/links/doubleClickToOpen",
false};
236 IntSetting thumbnailSizeStream = {
"/appearance/thumbnailSizeStream", 2};
244 "/streamerMode/hideUsercardAvatars",
true};
246 "/streamerMode/hideLinkThumbnails",
true};
248 "/streamerMode/hideViewerCountAndDuration",
false};
249 BoolSetting streamerModeHideModActions = {
"/streamerMode/hideModActions",
251 BoolSetting streamerModeMuteMentions = {
"/streamerMode/muteMentions",
true};
253 "/streamerMode/supressLiveNotifications",
false};
255 "/streamerMode/suppressInlineWhispers",
true};
262 BoolSetting enableTwitchBlockedUsers = {
"/ignore/enableTwitchBlockedUsers",
264 IntSetting showBlockedUsersMessages = {
"/ignore/showBlockedUsers", 0};
269 "/moderation/timeoutStackStyle",
274 BoolSetting customHighlightSound = {
"/highlighting/useCustomSound",
false};
277 "/highlighting/selfHighlight/nameIsHighlightKeyword",
true};
279 "/highlighting/selfHighlight/showSelfHighlightInMentions",
true};
281 "/highlighting/selfHighlight/enableSound",
true};
283 "/highlighting/selfHighlight/enableTaskbarFlashing",
true};
285 "/highlighting/selfHighlightSoundUrl",
""};
290 "/highlighting/whisperHighlight/whispersHighlighted",
true};
292 "/highlighting/whisperHighlight/enableSound",
false};
294 "/highlighting/whisperHighlight/enableTaskbarFlashing",
false};
296 "/highlighting/whisperHighlightSoundUrl",
""};
298 "/highlighting/whisperHighlightColor",
""};
301 "/highlighting/redeemedHighlight/highlighted",
true};
307 "/highlighting/redeemedHighlightSoundUrl",
""};
309 "/highlighting/redeemedHighlightColor",
""};
312 "/highlighting/firstMessageHighlight/highlighted",
true};
318 "/highlighting/firstMessageHighlightSoundUrl",
""};
320 "/highlighting/firstMessageHighlightColor",
""};
323 "/highlighting/elevatedMessageHighlight/highlighted",
true};
329 "/highlighting/elevatedMessageHighlight/soundUrl",
""};
331 "/highlighting/elevatedMessageHighlight/color",
""};
334 "/highlighting/subHighlight/subsHighlighted",
true};
336 "/highlighting/subHighlight/enableSound",
false};
338 "/highlighting/subHighlight/enableTaskbarFlashing",
false};
344 "/highlighting/thread/nameIsHighlightKeyword",
true};
346 "/highlighting/thread/showSelfHighlightInMentions",
true};
348 "/highlighting/thread/enableSound",
true};
350 "/highlighting/thread/enableTaskbarFlashing",
true};
352 "/highlighting/threadHighlightSoundUrl",
""};
364 "/filtering/excludeUserMessages",
false};
374 BoolSetting highlightAlwaysPlaySound = {
"/highlighting/alwaysPlaySound",
377 BoolSetting inlineWhispers = {
"/whispers/enableInlineWhispers",
true};
378 BoolSetting highlightInlineWhispers = {
"/whispers/highlightInlineWhispers",
382 BoolSetting notificationFlashTaskbar = {
"/notifications/enableFlashTaskbar",
384 BoolSetting notificationPlaySound = {
"/notifications/enablePlaySound",
386 BoolSetting notificationCustomSound = {
"/notifications/customPlaySound",
389 "qrc:/sounds/ping3.wav"};
390 BoolSetting notificationOnAnyChannel = {
"/notifications/onAnyChannel",
393 BoolSetting notificationToast = {
"/notifications/enableToast",
false};
399 BoolSetting streamlinkUseCustomPath = {
"/external/streamlink/useCustomPath",
410 BoolSetting imageUploaderEnabled = {
"/external/imageUploader/enabled",
414 "/external/imageUploader/formField",
""};
419 "/external/imageUploader/deletionLink",
""};
424 BoolSetting useKeyring = {
"/misc/useKeyring",
true};
426 BoolSetting enableExperimentalIrc = {
"/misc/experimentalIrc",
false};
428 IntSetting startUpNotification = {
"/misc/startUpNotification", 0};
432 "/misc/twitch/loadMessageHistoryOnConnect",
true};
434 "/misc/twitch/messageHistoryLimit",
438 "/misc/scrollback/splitLimit",
442 "/misc/scrollback/usercardLimit",
448 "/misc/twitch/helix-timegate/raid",
452 "/misc/twitch/helix-timegate/whisper",
456 "/misc/twitch/helix-timegate/vips",
460 "/misc/twitch/helix-timegate/moderators",
465 "/misc/twitch/helix-timegate/commercial",
469 IntSetting emotesTooltipPreview = {
"/misc/emotesTooltipPreview", 1};
475 "/misc/attachExtensionToAnyProcess",
false};
477 BoolSetting informOnTabVisibilityToggle = {
"/misc/askOnTabVisibilityToggle",
479 BoolSetting lockNotebookLayout = {
"/misc/lockNotebookLayout",
false};
482 BoolSetting showUnhandledIrcMessages = {
"/debug/showUnhandledIrcMessages",
487 IntSetting lastSelectChannelTab = {
"/ui/lastSelectChannelTab", 0};
491 BoolSetting similarityEnabled = {
"/similarity/similarityEnabled",
false};
492 BoolSetting colorSimilarDisabled = {
"/similarity/colorSimilarDisabled",
495 BoolSetting hideSimilarBySameUser = {
"/similarity/hideSimilarBySameUser",
497 BoolSetting hideSimilarMyself = {
"/similarity/hideSimilarMyself",
false};
499 "/similarity/shownSimilarTriggerHighlights",
false};
500 FloatSetting similarityPercentage = {
"/similarity/similarityPercentage",
502 IntSetting hideSimilarMaxDelay = {
"/similarity/hideSimilarMaxDelay", 5};
504 "/similarity/hideSimilarMaxMessagesToCheck", 3};
509 "/timeouts/timeoutButtons",
520 void updateModerationActions();
Definition: Settings.hpp:59
Definition: Settings.hpp:58
SignalVector< IgnorePhrase > & ignoredMessages
Definition: Settings.hpp:39
SignalVector< ModerationAction > & moderationActions
Definition: Settings.hpp:43
SignalVector< QString > & mutedChannels
Definition: Settings.hpp:40
Definition: Settings.hpp:73
bool isHighlightedUser(const QString &username)
Definition: Settings.cpp:41
Definition: Application.cpp:48
Definition: SplitInput.hpp:29
HelixTimegateOverride
Definition: Settings.hpp:63
Definition: Settings.hpp:70
Definition: StreamerMode.hpp:10
SignalVector< HighlightBlacklistUser > & blacklistedUsers
Definition: Settings.hpp:38
SignalVector< FilterRecordPtr > & filterRecords
Definition: Settings.hpp:41
bool toggleMutedChannel(const QString &channelName)
Definition: Settings.cpp:99
Definition: Settings.hpp:60
Settings which are available for reading on all threads.
Definition: Settings.hpp:30
bool isMutedChannel(const QString &channelName)
Definition: Settings.cpp:67
Settings which are availlable for reading and writing on the gui thread.
Definition: Settings.hpp:78
SignalVector< HighlightBadge > & highlightedBadges
Definition: Settings.hpp:37
SignalVector< HighlightPhrase > & highlightedMessages
Definition: Settings.hpp:35
SignalVector< Nickname > & nicknames
Definition: Settings.hpp:42
bool isBlacklistedUser(const QString &username)
Definition: Settings.cpp:54
ConcurrentSettings()
Definition: Settings.cpp:17
std::pair< QString, int > TimeoutButton
Definition: Settings.hpp:19
Definition: Notebook.hpp:20
SignalVector< HighlightPhrase > & highlightedUsers
Definition: Settings.hpp:36
UsernameDisplayMode
Definition: Settings.hpp:57
ConcurrentSettings & getCSettings()
Definition: Settings.cpp:113
Definition: Settings.hpp:67