From c98d2c96b4f3544481ca0f7ccdd3b309b0fabd83 Mon Sep 17 00:00:00 2001 From: ouwou <26526779+ouwou@users.noreply.github.com> Date: Tue, 13 Jun 2023 21:48:57 -0400 Subject: remove dumb template stuff --- src/components/chatwindow.cpp | 2 +- src/dialogs/friendpicker.cpp | 2 +- src/discord/user.cpp | 29 ++++++++++++++++++++++------- src/discord/user.hpp | 15 ++------------- src/misc/chatutil.cpp | 6 +++--- src/windows/guildsettings/auditlogpane.cpp | 2 +- src/windows/guildsettings/memberspane.cpp | 4 ++-- src/windows/profile/mutualfriendspane.cpp | 2 +- 8 files changed, 33 insertions(+), 29 deletions(-) (limited to 'src') diff --git a/src/components/chatwindow.cpp b/src/components/chatwindow.cpp index 8f59944..e51d491 100644 --- a/src/components/chatwindow.cpp +++ b/src/components/chatwindow.cpp @@ -301,7 +301,7 @@ void ChatWindow::StartReplying(Snowflake message_id) { m_is_replying = true; m_input->StartReplying(); if (author.has_value()) - m_input_indicator->SetCustomMarkup("Replying to " + author->GetUsernameEscapedBold()); + m_input_indicator->SetCustomMarkup("Replying to " + author->GetUsernameEscapedBold()); else m_input_indicator->SetCustomMarkup("Replying..."); } diff --git a/src/dialogs/friendpicker.cpp b/src/dialogs/friendpicker.cpp index 873ddbd..fe52b77 100644 --- a/src/dialogs/friendpicker.cpp +++ b/src/dialogs/friendpicker.cpp @@ -62,7 +62,7 @@ FriendPickerDialogItem::FriendPickerDialogItem(Snowflake user_id) , m_layout(Gtk::ORIENTATION_HORIZONTAL) { auto user = *Abaddon::Get().GetDiscordClient().GetUser(user_id); - m_name.set_markup(user.GetUsernameEscapedBold()); + m_name.set_markup(user.GetUsernameEscapedBold()); m_name.set_single_line_mode(true); m_avatar.property_pixbuf() = Abaddon::Get().GetImageManager().GetPlaceholder(32); diff --git a/src/discord/user.cpp b/src/discord/user.cpp index 38157e7..1d5d15a 100644 --- a/src/discord/user.cpp +++ b/src/discord/user.cpp @@ -89,6 +89,14 @@ std::string UserData::GetDisplayName() const { return Username; } +std::string UserData::GetDisplayNameEscaped() const { + return Glib::Markup::escape_text(GetDisplayName()); +} + +std::string UserData::GetDisplayNameEscapedBold() const { + return "" + Glib::Markup::escape_text(GetDisplayName()) + ""; +} + std::string UserData::GetUsername() const { if (IsPomelo()) { return Username; @@ -97,19 +105,26 @@ std::string UserData::GetUsername() const { return Username + "#" + Discriminator; } -std::string UserData::GetDisplayNameEscaped() const { - return Glib::Markup::escape_text(GetDisplayName()); +std::string UserData::GetUsernameEscaped() const { + if (IsPomelo()) { + return Glib::Markup::escape_text(Username); + } + + return Glib::Markup::escape_text(Username) + "#" + Discriminator; } -std::string UserData::GetDisplayNameEscapedBold() const { - return "" + Glib::Markup::escape_text(GetDisplayName()) + ""; +std::string UserData::GetUsernameEscapedBold() const { + if (IsPomelo()) { + return "" + Glib::Markup::escape_text(Username) + ""; + } + return "" + Glib::Markup::escape_text(Username) + "#" + Discriminator; } -std::string UserData::GetUsernameEscaped() const { +std::string UserData::GetUsernameEscapedBoldAt() const { if (IsPomelo()) { - return GetDisplayNameEscaped(); + return "@" + Glib::Markup::escape_text(Username) + ""; } - return Glib::Markup::escape_text(GetDisplayName()) + "#" + Discriminator; + return "@" + Glib::Markup::escape_text(Username) + "#" + Discriminator; } void from_json(const nlohmann::json &j, UserData &m) { diff --git a/src/discord/user.hpp b/src/discord/user.hpp index d2c1002..19a0bf9 100644 --- a/src/discord/user.hpp +++ b/src/discord/user.hpp @@ -84,17 +84,6 @@ struct UserData { [[nodiscard]] std::string GetDisplayNameEscapedBold() const; [[nodiscard]] std::string GetUsername() const; [[nodiscard]] std::string GetUsernameEscaped() const; - template - [[nodiscard]] inline std::string GetUsernameEscapedBold() const { - // stupid microoptimization (nanooptimization) that shouldnt exist - if constexpr (with_at) { - std::string r = "@" + Glib::Markup::escape_text(Username) + ""; - if (!IsPomelo()) r += "#" + Discriminator; - return r; - } else { - std::string r = "" + Glib::Markup::escape_text(Username) + ""; - if (!IsPomelo()) r += "#" + Discriminator; - return r; - } - } + [[nodiscard]] std::string GetUsernameEscapedBold() const; + [[nodiscard]] std::string GetUsernameEscapedBoldAt() const; }; diff --git a/src/misc/chatutil.cpp b/src/misc/chatutil.cpp index b5917ca..e61d32b 100644 --- a/src/misc/chatutil.cpp +++ b/src/misc/chatutil.cpp @@ -76,15 +76,15 @@ void HandleUserMentions(const Glib::RefPtr &buf, Snowflake chan if (plain) { replacement = "@" + user->GetUsername(); } else { - replacement = user->GetUsernameEscapedBold(); + replacement = user->GetUsernameEscapedBoldAt(); } } else { const auto role_id = user->GetHoistedRole(*channel->GuildID, true); const auto role = discord.GetRole(role_id); if (!role.has_value()) - replacement = user->GetUsernameEscapedBold(); + replacement = user->GetUsernameEscapedBoldAt(); else - replacement = "Color) + "\">" + user->GetUsernameEscapedBold() + ""; + replacement = "Color) + "\">" + user->GetUsernameEscapedBoldAt() + ""; } // regex returns byte positions and theres no straightforward way in the c++ bindings to deal with that :( diff --git a/src/windows/guildsettings/auditlogpane.cpp b/src/windows/guildsettings/auditlogpane.cpp index 7402c55..f2f4a17 100644 --- a/src/windows/guildsettings/auditlogpane.cpp +++ b/src/windows/guildsettings/auditlogpane.cpp @@ -38,7 +38,7 @@ void GuildSettingsAuditLogPane::OnAuditLogFetch(const AuditLogData &data) { Glib::ustring user_markup = "Unknown User"; if (entry.UserID.has_value()) { if (auto user = discord.GetUser(*entry.UserID); user.has_value()) - user_markup = discord.GetUser(*entry.UserID)->GetUsernameEscapedBold(); + user_markup = discord.GetUser(*entry.UserID)->GetUsernameEscapedBold(); } // spaghetti moment diff --git a/src/windows/guildsettings/memberspane.cpp b/src/windows/guildsettings/memberspane.cpp index ab4ec1a..c6fb7c2 100644 --- a/src/windows/guildsettings/memberspane.cpp +++ b/src/windows/guildsettings/memberspane.cpp @@ -150,9 +150,9 @@ void GuildSettingsMembersListItem::UpdateColor() { const auto user = *discord.GetUser(UserID); if (auto color_id = discord.GetMemberHoistedRole(GuildID, UserID, true); color_id.IsValid()) { auto role = *discord.GetRole(color_id); - m_name.set_markup("" + user.GetUsernameEscapedBold() + ""); + m_name.set_markup("" + user.GetUsernameEscapedBold() + ""); } else - m_name.set_markup(user.GetUsernameEscapedBold()); + m_name.set_markup(user.GetUsernameEscapedBold()); } GuildSettingsMembersPaneInfo::GuildSettingsMembersPaneInfo(Snowflake guild_id) diff --git a/src/windows/profile/mutualfriendspane.cpp b/src/windows/profile/mutualfriendspane.cpp index 2983fd5..75fb4a6 100644 --- a/src/windows/profile/mutualfriendspane.cpp +++ b/src/windows/profile/mutualfriendspane.cpp @@ -22,7 +22,7 @@ MutualFriendItem::MutualFriendItem(const UserData &user) img.LoadFromURL(user.GetAvatarURL("png", "32"), sigc::track_obj(cb, *this)); } - m_name.set_markup(user.GetUsernameEscapedBold()); + m_name.set_markup(user.GetUsernameEscapedBold()); m_name.set_valign(Gtk::ALIGN_CENTER); add(m_avatar); -- cgit v1.2.3