From 82a21bd08558ba3e067f490525431be30f978b25 Mon Sep 17 00:00:00 2001 From: ouwou <26526779+ouwou@users.noreply.github.com> Date: Tue, 25 Aug 2020 22:10:39 -0400 Subject: fix guild order, add copy id guild, add broken zlib, start member list --- abaddon.cpp | 56 ++++++++++++++++++++++++++++++++++---------------------- 1 file changed, 34 insertions(+), 22 deletions(-) (limited to 'abaddon.cpp') diff --git a/abaddon.cpp b/abaddon.cpp index 74d980d..04d80ac 100644 --- a/abaddon.cpp +++ b/abaddon.cpp @@ -107,37 +107,49 @@ void Abaddon::ActionSetToken() { } void Abaddon::ActionMoveGuildUp(Snowflake id) { - UserSettingsData d = m_discord.GetUserSettings(); - std::vector &pos = d.GuildPositions; - if (pos.size() == 0) { - auto x = m_discord.GetUserSortedGuilds(); - for (const auto &pair : x) - pos.push_back(pair.first); + auto order = m_discord.GetUserSortedGuilds(); + // get iter to target + decltype(order)::iterator target_iter; + for (auto it = order.begin(); it != order.end(); it++) { + if (it->first == id) { + target_iter = it; + break; + } } - auto it = std::find(pos.begin(), pos.end(), id); - assert(it != pos.end()); - std::vector::iterator left = it - 1; - std::swap(*left, *it); + decltype(order)::iterator left = target_iter - 1; + std::swap(*left, *target_iter); - m_discord.UpdateSettingsGuildPositions(pos); + std::vector new_sort; + for (const auto& x : order) + new_sort.push_back(x.first); + + m_discord.UpdateSettingsGuildPositions(new_sort); } void Abaddon::ActionMoveGuildDown(Snowflake id) { - UserSettingsData d = m_discord.GetUserSettings(); - std::vector &pos = d.GuildPositions; - if (pos.size() == 0) { - auto x = m_discord.GetUserSortedGuilds(); - for (const auto &pair : x) - pos.push_back(pair.first); + auto order = m_discord.GetUserSortedGuilds(); + // get iter to target + decltype(order)::iterator target_iter; + for (auto it = order.begin(); it != order.end(); it++) { + if (it->first == id) { + target_iter = it; + break; + } } - auto it = std::find(pos.begin(), pos.end(), id); - assert(it != pos.end()); - std::vector::iterator right = it + 1; - std::swap(*right, *it); + decltype(order)::iterator right = target_iter + 1; + std::swap(*right, *target_iter); + + std::vector new_sort; + for (const auto &x : order) + new_sort.push_back(x.first); + + m_discord.UpdateSettingsGuildPositions(new_sort); +} - m_discord.UpdateSettingsGuildPositions(pos); +void Abaddon::ActionCopyGuildID(Snowflake id) { + Gtk::Clipboard::get()->set_text(std::to_string(id)); } void Abaddon::ActionListChannelItemClick(Snowflake id) { -- cgit v1.2.3