From 6f1bd0014cad37f2f0b43a9b83733d9f65a91406 Mon Sep 17 00:00:00 2001
From: ouwou <26526779+ouwou@users.noreply.github.com>
Date: Tue, 13 Jun 2023 21:28:18 -0400
Subject: refactor, update user mention handling
---
src/windows/guildsettings/auditlogpane.cpp | 18 +++++++++---------
1 file changed, 9 insertions(+), 9 deletions(-)
(limited to 'src/windows/guildsettings/auditlogpane.cpp')
diff --git a/src/windows/guildsettings/auditlogpane.cpp b/src/windows/guildsettings/auditlogpane.cpp
index 53bfd15..7402c55 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)->GetEscapedBoldString();
+ user_markup = discord.GetUser(*entry.UserID)->GetUsernameEscapedBold();
}
// spaghetti moment
@@ -177,7 +177,7 @@ void GuildSettingsAuditLogPane::OnAuditLogFetch(const AuditLogData &data) {
const auto target_user = discord.GetUser(entry.TargetID);
markup = user_markup +
" kicked " +
- target_user->GetEscapedString() +
+ target_user->GetUsernameEscaped() +
"";
} break;
case AuditLogActionType::MEMBER_PRUNE: {
@@ -193,21 +193,21 @@ void GuildSettingsAuditLogPane::OnAuditLogFetch(const AuditLogData &data) {
const auto target_user = discord.GetUser(entry.TargetID);
markup = user_markup +
" banned " +
- target_user->GetEscapedString() +
+ target_user->GetUsernameEscaped() +
"";
} break;
case AuditLogActionType::MEMBER_BAN_REMOVE: {
const auto target_user = discord.GetUser(entry.TargetID);
markup = user_markup +
" removed the ban for " +
- target_user->GetEscapedString() +
+ target_user->GetUsernameEscaped() +
"";
} break;
case AuditLogActionType::MEMBER_UPDATE: {
const auto target_user = discord.GetUser(entry.TargetID);
markup = user_markup +
" updated " +
- target_user->GetEscapedString() +
+ target_user->GetUsernameEscaped() +
"";
if (entry.Changes.has_value())
for (const auto &change : *entry.Changes) {
@@ -227,7 +227,7 @@ void GuildSettingsAuditLogPane::OnAuditLogFetch(const AuditLogData &data) {
const auto target_user = discord.GetUser(entry.TargetID);
markup = user_markup +
" updated roles for " +
- target_user->GetEscapedString() + "";
+ target_user->GetUsernameEscaped() + "";
if (entry.Changes.has_value())
for (const auto &change : *entry.Changes) {
if (change.Key == "$remove" && change.NewValue.has_value()) {
@@ -262,7 +262,7 @@ void GuildSettingsAuditLogPane::OnAuditLogFetch(const AuditLogData &data) {
const auto target_user = discord.GetUser(entry.TargetID);
markup = user_markup +
" added " +
- target_user->GetEscapedString() +
+ target_user->GetUsernameEscaped() +
" to the server";
} break;
case AuditLogActionType::ROLE_CREATE: {
@@ -450,14 +450,14 @@ void GuildSettingsAuditLogPane::OnAuditLogFetch(const AuditLogData &data) {
const auto target_user = discord.GetUser(entry.TargetID);
markup = user_markup +
" pinned a message by " +
- target_user->GetEscapedString() +
+ target_user->GetUsernameEscaped() +
"";
} break;
case AuditLogActionType::MESSAGE_UNPIN: {
const auto target_user = discord.GetUser(entry.TargetID);
markup = user_markup +
" unpinned a message by " +
- target_user->GetEscapedString() +
+ target_user->GetUsernameEscaped() +
"";
} break;
case AuditLogActionType::STAGE_INSTANCE_CREATE: {
--
cgit v1.2.3
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/windows/guildsettings/auditlogpane.cpp')
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