From 0e72cd62e346ada2940176c6573997a0b42fa975 Mon Sep 17 00:00:00 2001 From: Felanbird <41973452+Felanbird@users.noreply.github.com> Date: Sun, 18 Dec 2022 06:30:21 -0500 Subject: [PATCH] Add even more tooltips when hovering settings (#4230) * Add unshortenLinks tooltip `NEEDS LINK EXAMPLE` * Add `linksDoubleClickOnly` tooltip * Add `highlightInlineWhispers` tooltip * Add `removeSpacesBetweenEmotes` tooltip * Add a TODO comment for 7TV unlisted emote tooltip * Add shortened link example * Add `usernameDisplayModes` tooltip * Add `highlightMentions` tooltip * Add `attachExtensionToAnyProcess` tooltip * Fix true/false-ing * Add `showTabCloseButton` tooltip * Add `showReplyButton` tooltip * Use a different unicode for `showTabCloseButton` * Don't use a unicode because it upsets the formatter * Add `showTabLive` tooltip * minor fixes * unicode freakout distracted me from testing this setting * Add `alternateMessages` tooltip * Add `showLastMessageIndicator` tooltip * Add `seperateMessages` tooltip * Add `hideModerated` tooltip * Add `hideDeletionActions` tooltip * Don't mention a default line color for `showLastMessageIndicator` * Better explain and display localized in `usernameDisplayMode` * Respect keybind for `showTabCloseButton` * Remove extra brackets * nitpick * Invert `hideModerated` setting * Rename and update `showTabLive` --- src/widgets/settingspages/GeneralPage.cpp | 88 ++++++++++++++++++----- 1 file changed, 70 insertions(+), 18 deletions(-) diff --git a/src/widgets/settingspages/GeneralPage.cpp b/src/widgets/settingspages/GeneralPage.cpp index 079b1d8d4..3ba79516e 100644 --- a/src/widgets/settingspages/GeneralPage.cpp +++ b/src/widgets/settingspages/GeneralPage.cpp @@ -194,8 +194,22 @@ void GeneralPage::initLayout(GeneralPageView &layout) "Show message reply context", s.hideReplyContext, true, "This setting will only affect how messages are shown. You can reply " "to a message regardless of this setting."); - layout.addCheckbox("Show message reply button", s.showReplyButton); - layout.addCheckbox("Show tab close button", s.showTabCloseButton); + layout.addCheckbox("Show message reply button", s.showReplyButton, false, + "Show a reply button next to every chat message"); + + auto removeTabSeq = getApp()->hotkeys->getDisplaySequence( + HotkeyCategory::Window, "removeTab"); + QString removeTabShortcut = "an assigned hotkey (Window -> remove tab)"; + if (!removeTabSeq.isEmpty()) + { + removeTabShortcut = + removeTabSeq.toString(QKeySequence::SequenceFormat::NativeText); + } + layout.addCheckbox( + "Show tab close button", s.showTabCloseButton, false, + "When disabled, the x to close a tab will be hidden.\nTabs can still " + "be closed by right-clicking or pressing " + + removeTabShortcut + "."); layout.addCheckbox("Always on top", s.windowTopMost, false, "Always keep Chatterino as the top window."); #ifdef USEWINSDK @@ -218,7 +232,9 @@ void GeneralPage::initLayout(GeneralPageView &layout) s.hidePreferencesButton, true); layout.addCheckbox("Show user button", s.hideUserButton, true); } - layout.addCheckbox("Show which channels are live in tabs", s.showTabLive); + layout.addCheckbox("Mark tabs with live channels", s.showTabLive, false, + "Shows a red dot in the top right corner of a tab to " + "indicate one of the channels in the tab is live."); layout.addTitle("Chat"); @@ -284,9 +300,15 @@ void GeneralPage::initLayout(GeneralPageView &layout) "message limits"); layout.addTitle("Messages"); - layout.addCheckbox("Separate with lines", s.separateMessages); - layout.addCheckbox("Alternate background color", s.alternateMessages); - layout.addCheckbox("Show deleted messages", s.hideModerated, true); + layout.addCheckbox( + "Separate with lines", s.separateMessages, false, + "Adds a line inbetween each message to help better tell them apart."); + layout.addCheckbox("Alternate background color", s.alternateMessages, false, + "Slightly change the background behind every other " + "message to help better tell them apart."); + layout.addCheckbox("Hide deleted messages", s.hideModerated, false, + "When enabled, messages deleted by moderators will " + "be hidden."); layout.addDropdown( "Timestamp format", {"Disable", "h:mm", "hh:mm", "h:mm a", "hh:mm a", "h:mm:ss", "hh:mm:ss", @@ -318,7 +340,9 @@ void GeneralPage::initLayout(GeneralPageView &layout) layout.addSeperator(); layout.addCheckbox("Draw a line below the most recent message before " "switching applications.", - s.showLastMessageIndicator); + s.showLastMessageIndicator, false, + "Adds an underline below the most recent message " + "sent before you tabbed out of Chatterino."); layout.addDropdown::type>( "Line style", {"Dotted", "Solid"}, s.lastMessagePattern, [](int value) { @@ -367,8 +391,13 @@ void GeneralPage::initLayout(GeneralPageView &layout) }); layout.addCheckbox("Remove spaces between emotes", - s.removeSpacesBetweenEmotes); + s.removeSpacesBetweenEmotes, false, + "When enabled, adjacent emotes will no longer have an " + "added space seperating them."); layout.addCheckbox("Show unlisted 7TV emotes", s.showUnlistedSevenTVEmotes); + // TODO: Add a tooltip explaining what an unlisted 7TV emote is + // but wait until https://github.com/Chatterino/wiki/pull/255 is resolved, + // as an official description from 7TV devs is best s.showUnlistedSevenTVEmotes.connect( []() { getApp()->twitch->forEachChannelAndSpecialChannels( @@ -556,8 +585,11 @@ void GeneralPage::initLayout(GeneralPageView &layout) layout.addDescription("Chatterino only attaches to known browsers to avoid " "attaching to other windows by accident."); - layout.addCheckbox("Attach to any browser (may cause issues)", - s.attachExtensionToAnyProcess); + layout.addCheckbox( + "Attach to any browser (may cause issues)", + s.attachExtensionToAnyProcess, false, + "Attempt to force the Chatterino Browser Extension to work in certain " + "browsers that do not work automatically.\ne.g. Librewolf"); #endif layout.addTitle("AppData & Cache"); @@ -729,7 +761,9 @@ void GeneralPage::initLayout(GeneralPageView &layout) "Show moderation messages", s.hideModerationActions, true, "Show messages for timeouts, bans, and other moderator actions."); layout.addCheckbox("Show deletions of single messages", - s.hideDeletionActions, true); + s.hideDeletionActions, true, + "Show when a single message is deleted.\ne.g. A message " + "from TreuKS was deleted: abc"); layout.addCheckbox( "Colorize users without color set (gray names)", s.colorizeNicknames, false, @@ -779,7 +813,13 @@ void GeneralPage::initLayout(GeneralPageView &layout) [](auto args) { return args.index + 1; }, - false); + false, + "Customizes how you see Asian Language names.\nUsing an option " + "that includes \"localized\" will display the username in it's " + "respective Asian language.\ne.g. " + "Username and localized: testaccount_420(테스트계정420)\n" + "Username: testaccount_420\n" + "Localized name: 테스트계정420"); nameDropdown->setMinimumWidth(nameDropdown->minimumSizeHint().width()); layout.addDropdown( @@ -794,8 +834,15 @@ void GeneralPage::initLayout(GeneralPageView &layout) return fuzzyToFloat(args.value, 63.f); }); layout.addCheckbox("Double click to open links and other elements in chat", - s.linksDoubleClickOnly); - layout.addCheckbox("Unshorten links", s.unshortLinks); + s.linksDoubleClickOnly, false, + "When enabled, opening links/usercards requires " + "double-clicking.\nUseful making sure you don't " + "accidentally click on suspicious links."); + layout.addCheckbox( + "Unshorten links", s.unshortLinks, false, + "When enabled, \"right-click + copy link\" will copy the unshortened " + "version of the link.\ne.g. https://bit.ly/mrfors -> " + "https://forsen.tv/"); layout.addCheckbox( "Only search for emote autocompletion at the start of emote names", @@ -812,8 +859,10 @@ void GeneralPage::initLayout(GeneralPageView &layout) layout.addCheckbox("Show Twitch whispers inline", s.inlineWhispers, false, "Show whispers as messages in all splits instead " "of just /whispers."); - layout.addCheckbox("Highlight received inline whispers", - s.highlightInlineWhispers); + layout.addCheckbox( + "Highlight received inline whispers", s.highlightInlineWhispers, false, + "Highlight the whispers shown in all splits.\nIf \"Show Twitch " + "whispers inline\" is disabled, this setting will do nothing."); layout.addCheckbox("Load message history on connect", s.loadTwitchMessageHistoryOnConnect); // TODO: Change phrasing to use better english once we can tag settings, right now it's kept as history instead of historical so that the setting shows up when the user searches for history @@ -845,8 +894,11 @@ void GeneralPage::initLayout(GeneralPageView &layout) layout.addCheckbox("Combine multiple bit tips into one", s.stackBits, false, "Combine consecutive cheermotes (sent in a single " "message) into one cheermote."); - layout.addCheckbox("Messages in /mentions highlights tab", - s.highlightMentions); + layout.addCheckbox( + "Messages in /mentions highlights tab", s.highlightMentions, false, + // update this tooltip if https://github.com/Chatterino/chatterino2/pull/1557 is ever merged + "When disabled, the /mentions tab will not highlight in " + "red when you are mentioned."); layout.addCheckbox( "Strip leading mention in replies", s.stripReplyMention, false, "When disabled, messages sent in reply threads will include the "