Add setting for username display style (#2891)

This commit is contained in:
Mm2PL 2021-06-13 12:13:19 +00:00 committed by GitHub
parent 91b0170241
commit eb8ddfc1d3
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
5 changed files with 23 additions and 11 deletions

View file

@ -3,6 +3,7 @@
## Unversioned ## Unversioned
- Major: Added ability to toggle visibility of Channel Tabs - This can be done by right-clicking the tab area or pressing the keyboard shortcut (default: Ctrl+U). (#2600) - Major: Added ability to toggle visibility of Channel Tabs - This can be done by right-clicking the tab area or pressing the keyboard shortcut (default: Ctrl+U). (#2600)
- Minor: Add setting for username style (#2889, #2891)
- Minor: Searching for users in the viewer list now searches anywhere in the user's name. (#2861) - Minor: Searching for users in the viewer list now searches anywhere in the user's name. (#2861)
- Minor: Added moderation buttons to search popup when searching in a split with moderation mode enabled. (#2148, #2803) - Minor: Added moderation buttons to search popup when searching in a split with moderation mode enabled. (#2148, #2803)
- Minor: Made "#channel" in `/mentions` tab show in usercards and in the search popup. (#2802) - Minor: Made "#channel" in `/mentions` tab show in usercards and in the search popup. (#2802)

View file

@ -674,11 +674,7 @@ void TwitchMessageBuilder::appendUsername()
// The full string that will be rendered in the chat widget // The full string that will be rendered in the chat widget
QString usernameText; QString usernameText;
pajlada::Settings::Setting<int> usernameDisplayMode( switch (getSettings()->usernameDisplayMode.getValue())
"/appearance/messages/usernameDisplayMode",
UsernameDisplayMode::UsernameAndLocalizedName);
switch (usernameDisplayMode.getValue())
{ {
case UsernameDisplayMode::Username: { case UsernameDisplayMode::Username: {
usernameText = username; usernameText = username;

View file

@ -28,12 +28,6 @@ struct TwitchEmoteOccurence {
class TwitchMessageBuilder : public SharedMessageBuilder class TwitchMessageBuilder : public SharedMessageBuilder
{ {
public: public:
enum UsernameDisplayMode : int {
Username = 1, // Username
LocalizedName = 2, // Localized name
UsernameAndLocalizedName = 3, // Username (Localized name)
};
TwitchMessageBuilder() = delete; TwitchMessageBuilder() = delete;
explicit TwitchMessageBuilder(Channel *_channel, explicit TwitchMessageBuilder(Channel *_channel,

View file

@ -52,6 +52,11 @@ private:
ConcurrentSettings &getCSettings(); ConcurrentSettings &getCSettings();
enum UsernameDisplayMode : int {
Username = 1, // Username
LocalizedName = 2, // Localized name
UsernameAndLocalizedName = 3, // Username (Localized name)
};
/// Settings which are availlable for reading and writing on the gui thread. /// Settings which are availlable for reading and writing on the gui thread.
// These settings are still accessed concurrently in the code but it is bad practice. // These settings are still accessed concurrently in the code but it is bad practice.
class Settings : public ABSettings, public ConcurrentSettings class Settings : public ABSettings, public ConcurrentSettings
@ -88,6 +93,9 @@ public:
"/appearance/messages/hideDeletionActions", false}; "/appearance/messages/hideDeletionActions", false};
BoolSetting colorizeNicknames = {"/appearance/messages/colorizeNicknames", BoolSetting colorizeNicknames = {"/appearance/messages/colorizeNicknames",
true}; true};
EnumSetting<UsernameDisplayMode> usernameDisplayMode = {
"/appearance/messages/usernameDisplayMode",
UsernameDisplayMode::UsernameAndLocalizedName};
IntSetting tabDirection = {"/appearance/tabDirection", IntSetting tabDirection = {"/appearance/tabDirection",
NotebookTabDirection::Horizontal}; NotebookTabDirection::Horizontal};

View file

@ -612,6 +612,19 @@ void GeneralPage::initLayout(GeneralPageView &layout)
layout.addCheckbox("Color @usernames", s.colorUsernames); layout.addCheckbox("Color @usernames", s.colorUsernames);
layout.addCheckbox("Try to find usernames without @ prefix", layout.addCheckbox("Try to find usernames without @ prefix",
s.findAllUsernames); s.findAllUsernames);
const QStringList usernameDisplayModes = {"Username", "Localized name",
"Username and localized name"};
layout.addDropdown<std::underlying_type<UsernameDisplayMode>::type>(
"Username style", usernameDisplayModes, s.usernameDisplayMode,
[usernameDisplayModes](auto val) {
return usernameDisplayModes.at(val - 1);
// UsernameDisplayMode enum indexes from 1
},
[](auto args) {
return args.index + 1;
},
false);
layout.addDropdown<float>( layout.addDropdown<float>(
"Username font weight", {"50", "Default", "75", "100"}, s.boldScale, "Username font weight", {"50", "Default", "75", "100"}, s.boldScale,
[](auto val) { [](auto val) {