diff options
author | ouwou <26526779+ouwou@users.noreply.github.com> | 2021-11-24 03:14:41 -0500 |
---|---|---|
committer | ouwou <26526779+ouwou@users.noreply.github.com> | 2021-11-24 03:15:22 -0500 |
commit | 4326c5e29b279ba8ca58139848aaea4e3c62fb03 (patch) | |
tree | dd416b391b622cd8dc3050c1c51ccc3cbfc40705 /src/components | |
parent | a51a54bc5979a2491f152abc47ad54e6b63f27c8 (diff) | |
download | abaddon-portaudio-4326c5e29b279ba8ca58139848aaea4e3c62fb03.tar.gz abaddon-portaudio-4326c5e29b279ba8ca58139848aaea4e3c62fb03.zip |
remove SimpleIni as a dependency
use Glib::KeyFile instead which is basically the same file format
also read into and save from struct once, cuz its faster and less redundant
Diffstat (limited to 'src/components')
-rw-r--r-- | src/components/channels.cpp | 14 | ||||
-rw-r--r-- | src/components/chatmessage.cpp | 19 | ||||
-rw-r--r-- | src/components/friendslist.cpp | 3 | ||||
-rw-r--r-- | src/components/memberlist.cpp | 6 |
4 files changed, 14 insertions, 28 deletions
diff --git a/src/components/channels.cpp b/src/components/channels.cpp index da31de0..6d5e1a6 100644 --- a/src/components/channels.cpp +++ b/src/components/channels.cpp @@ -263,11 +263,9 @@ void ChannelList::UpdateGuild(Snowflake id) { const auto guild = Abaddon::Get().GetDiscordClient().GetGuild(id); if (!iter || !guild.has_value()) return; - static const bool show_animations = Abaddon::Get().GetSettings().GetShowAnimations(); - (*iter)[m_columns.m_name] = "<b>" + Glib::Markup::escape_text(guild->Name) + "</b>"; (*iter)[m_columns.m_icon] = img.GetPlaceholder(GuildIconSize); - if (show_animations && guild->HasAnimatedIcon()) { + if (Abaddon::Get().GetSettings().ShowAnimations && guild->HasAnimatedIcon()) { const auto cb = [this, id](const Glib::RefPtr<Gdk::PixbufAnimation> &pb) { auto iter = GetIteratorForGuildFromID(id); if (iter) (*iter)[m_columns.m_icon_anim] = pb; @@ -436,9 +434,7 @@ Gtk::TreeModel::iterator ChannelList::AddGuild(const GuildData &guild) { guild_row[m_columns.m_name] = "<b>" + Glib::Markup::escape_text(guild.Name) + "</b>"; guild_row[m_columns.m_icon] = img.GetPlaceholder(GuildIconSize); - static const bool show_animations = Abaddon::Get().GetSettings().GetShowAnimations(); - - if (show_animations && guild.HasAnimatedIcon()) { + if (Abaddon::Get().GetSettings().ShowAnimations && guild.HasAnimatedIcon()) { const auto cb = [this, id = guild.ID](const Glib::RefPtr<Gdk::PixbufAnimation> &pb) { auto iter = GetIteratorForGuildFromID(id); if (iter) (*iter)[m_columns.m_icon_anim] = pb; @@ -998,7 +994,7 @@ void CellRendererChannels::render_vfunc_guild(const Cairo::RefPtr<Cairo::Context m_renderer_text.render(cr, widget, background_area, text_cell_area, flags); - const static bool hover_only = Abaddon::Get().GetSettings().GetAnimatedGuildHoverOnly(); + const bool hover_only = Abaddon::Get().GetSettings().AnimatedGuildHoverOnly; const bool is_hovered = flags & Gtk::CELL_RENDERER_PRELIT; auto anim = m_property_pixbuf_animation.get_value(); @@ -1069,7 +1065,7 @@ void CellRendererChannels::render_vfunc_category(const Cairo::RefPtr<Cairo::Cont cr->move_to(x1, y1); cr->line_to(x2, y2); cr->line_to(x3, y3); - static const auto expander_color = Gdk::RGBA(Abaddon::Get().GetSettings().GetChannelsExpanderColor()); + const auto expander_color = Gdk::RGBA(Abaddon::Get().GetSettings().ChannelsExpanderColor); cr->set_source_rgb(expander_color.get_red(), expander_color.get_green(), expander_color.get_blue()); cr->stroke(); @@ -1115,7 +1111,7 @@ void CellRendererChannels::render_vfunc_channel(const Cairo::RefPtr<Cairo::Conte Gdk::Rectangle text_cell_area(text_x, text_y, text_w, text_h); - const static auto nsfw_color = Gdk::RGBA(Abaddon::Get().GetSettings().GetNSFWChannelColor()); + const auto nsfw_color = Gdk::RGBA(Abaddon::Get().GetSettings().NSFWChannelColor); if (m_property_nsfw.get_value()) m_renderer_text.property_foreground_rgba() = nsfw_color; m_renderer_text.render(cr, widget, background_area, text_cell_area, flags); diff --git a/src/components/chatmessage.cpp b/src/components/chatmessage.cpp index aa4fc2e..9514c8a 100644 --- a/src/components/chatmessage.cpp +++ b/src/components/chatmessage.cpp @@ -357,7 +357,7 @@ Gtk::Widget *ChatMessageItemContainer::CreateEmbedComponent(const EmbedData &emb } return false; }); - static auto color = Abaddon::Get().GetSettings().GetLinkColor(); + static auto color = Abaddon::Get().GetSettings().LinkColor; title_label->override_color(Gdk::RGBA(color)); title_label->set_markup("<b>" + Glib::Markup::escape_text(*embed.Title) + "</b>"); } @@ -798,7 +798,6 @@ void ChatMessageItemContainer::HandleCustomEmojis(Gtk::TextView &tv) { int mstart, mend; if (!match.fetch_pos(0, mstart, mend)) break; const bool is_animated = match.fetch(0)[1] == 'a'; - const bool show_animations = Abaddon::Get().GetSettings().GetShowAnimations(); const auto chars_start = g_utf8_pointer_to_offset(text.c_str(), text.c_str() + mstart); const auto chars_end = g_utf8_pointer_to_offset(text.c_str(), text.c_str() + mend); @@ -806,7 +805,7 @@ void ChatMessageItemContainer::HandleCustomEmojis(Gtk::TextView &tv) { auto end_it = buf->get_iter_at_offset(chars_end); startpos = mend; - if (is_animated && show_animations) { + if (is_animated && Abaddon::Get().GetSettings().ShowAnimations) { const auto mark_start = buf->create_mark(start_it, false); end_it.backward_char(); const auto mark_end = buf->create_mark(end_it, false); @@ -845,11 +844,8 @@ void ChatMessageItemContainer::HandleCustomEmojis(Gtk::TextView &tv) { } void ChatMessageItemContainer::HandleEmojis(Gtk::TextView &tv) { - static const bool stock_emojis = Abaddon::Get().GetSettings().GetShowStockEmojis(); - static const bool custom_emojis = Abaddon::Get().GetSettings().GetShowCustomEmojis(); - - if (stock_emojis) HandleStockEmojis(tv); - if (custom_emojis) HandleCustomEmojis(tv); + if (Abaddon::Get().GetSettings().ShowStockEmojis) HandleStockEmojis(tv); + if (Abaddon::Get().GetSettings().ShowCustomEmojis) HandleCustomEmojis(tv); } void ChatMessageItemContainer::CleanupEmojis(Glib::RefPtr<Gtk::TextBuffer> buf) { @@ -969,9 +965,6 @@ void ChatMessageItemContainer::HandleLinks(Gtk::TextView &tv) { auto buf = tv.get_buffer(); Glib::ustring text = GetText(buf); - // i'd like to let this be done thru css like .message-link { color: #bitch; } but idk how - static auto link_color = Abaddon::Get().GetSettings().GetLinkColor(); - int startpos = 0; Glib::MatchInfo match; while (rgx->match(text, startpos, match)) { @@ -980,7 +973,7 @@ void ChatMessageItemContainer::HandleLinks(Gtk::TextView &tv) { std::string link = match.fetch(0); auto tag = buf->create_tag(); m_link_tagmap[tag] = link; - tag->property_foreground_rgba() = Gdk::RGBA(link_color); + tag->property_foreground_rgba() = Gdk::RGBA(Abaddon::Get().GetSettings().LinkColor); tag->set_property("underline", 1); // stupid workaround for vcpkg bug (i think) const auto chars_start = g_utf8_pointer_to_offset(text.c_str(), text.c_str() + mstart); @@ -1138,7 +1131,7 @@ ChatMessageHeader::ChatMessageHeader(const Message &data) m_content_box_ev.add_events(Gdk::ENTER_NOTIFY_MASK | Gdk::LEAVE_NOTIFY_MASK); m_meta_ev.add_events(Gdk::ENTER_NOTIFY_MASK | Gdk::LEAVE_NOTIFY_MASK); m_avatar_ev.add_events(Gdk::ENTER_NOTIFY_MASK | Gdk::LEAVE_NOTIFY_MASK); - if (Abaddon::Get().GetSettings().GetShowAnimations()) { + if (Abaddon::Get().GetSettings().ShowAnimations) { m_content_box_ev.signal_enter_notify_event().connect(on_enter_cb); m_content_box_ev.signal_leave_notify_event().connect(on_leave_cb); m_meta_ev.signal_enter_notify_event().connect(on_enter_cb); diff --git a/src/components/friendslist.cpp b/src/components/friendslist.cpp index 3896f02..1331d19 100644 --- a/src/components/friendslist.cpp +++ b/src/components/friendslist.cpp @@ -257,8 +257,7 @@ FriendsListFriendRow::FriendsListFriendRow(RelationshipType type, const UserData auto &discord = Abaddon::Get().GetDiscordClient(); discord.signal_presence_update().connect(sigc::mem_fun(*this, &FriendsListFriendRow::OnPresenceUpdate)); - static bool show_animations = Abaddon::Get().GetSettings().GetShowAnimations(); - if (data.HasAnimatedAvatar() && show_animations) { + if (data.HasAnimatedAvatar() && Abaddon::Get().GetSettings().ShowAnimations) { img->SetAnimated(true); img->SetURL(data.GetAvatarURL("gif", "32")); } else { diff --git a/src/components/memberlist.cpp b/src/components/memberlist.cpp index 0c4d9bc..4f21700 100644 --- a/src/components/memberlist.cpp +++ b/src/components/memberlist.cpp @@ -14,8 +14,7 @@ MemberListUserRow::MemberListUserRow(const std::optional<GuildData> &guild, cons m_avatar = Gtk::manage(new LazyImage(16, 16)); m_status_indicator = Gtk::manage(new StatusIndicator(ID)); - static bool crown = Abaddon::Get().GetSettings().GetShowOwnerCrown(); - if (crown && guild.has_value() && guild->OwnerID == data.ID) { + if (Abaddon::Get().GetSettings().ShowOwnerCrown && guild.has_value() && guild->OwnerID == data.ID) { try { const static auto crown_path = Abaddon::GetResPath("/crown.png"); auto pixbuf = Gdk::Pixbuf::create_from_file(crown_path, 12, 12); @@ -40,9 +39,8 @@ MemberListUserRow::MemberListUserRow(const std::optional<GuildData> &guild, cons m_label->set_single_line_mode(true); m_label->set_ellipsize(Pango::ELLIPSIZE_END); - static bool show_discriminator = Abaddon::Get().GetSettings().GetShowMemberListDiscriminators(); std::string display = data.Username; - if (show_discriminator) + if (Abaddon::Get().GetSettings().ShowMemberListDiscriminators) display += "#" + data.Discriminator; if (guild.has_value()) { if (const auto col_id = data.GetHoistedRole(guild->ID, true); col_id.IsValid()) { |