diff options
author | ouwou <26526779+ouwou@users.noreply.github.com> | 2020-09-14 00:17:58 -0400 |
---|---|---|
committer | ouwou <26526779+ouwou@users.noreply.github.com> | 2020-09-14 00:17:58 -0400 |
commit | e5a90b94618bafc6bc99afbbff37f7aa3d6a97cf (patch) | |
tree | 28e9dd46f0a423252133ff3b21e508f37e348d55 /components | |
parent | 2822add5fe791a120c160e188cecac7ce29d9961 (diff) | |
download | abaddon-portaudio-e5a90b94618bafc6bc99afbbff37f7aa3d6a97cf.tar.gz abaddon-portaudio-e5a90b94618bafc6bc99afbbff37f7aa3d6a97cf.zip |
only load 50 messages on channel switch (also fix member menu)
Diffstat (limited to 'components')
-rw-r--r-- | components/chatmessage.cpp | 1 | ||||
-rw-r--r-- | components/chatwindow.cpp | 11 | ||||
-rw-r--r-- | components/chatwindow.hpp | 1 | ||||
-rw-r--r-- | components/memberlist.cpp | 5 | ||||
-rw-r--r-- | components/memberlist.hpp | 1 |
5 files changed, 18 insertions, 1 deletions
diff --git a/components/chatmessage.cpp b/components/chatmessage.cpp index ae1023d..99f391b 100644 --- a/components/chatmessage.cpp +++ b/components/chatmessage.cpp @@ -26,6 +26,7 @@ ChatMessageContainer::ChatMessageContainer(const Message *data) { get_style_context()->add_class("message-container"); m_author->get_style_context()->add_class("message-container-author"); m_timestamp->get_style_context()->add_class("message-container-timestamp"); + m_avatar->get_style_context()->add_class("message-container-avatar"); m_author->set_markup("<span weight=\"bold\">" + Glib::Markup::escape_text(data->Author.Username) + "</span>"); m_author->set_single_line_mode(true); diff --git a/components/chatwindow.cpp b/components/chatwindow.cpp index b7da92d..652844a 100644 --- a/components/chatwindow.cpp +++ b/components/chatwindow.cpp @@ -237,6 +237,17 @@ void ChatWindow::InsertChatInput(std::string text) { m_input->grab_focus(); } +Snowflake ChatWindow::GetOldestListedMessage() { + Snowflake m; + + for (const auto& [id, widget] : m_id_to_widget) { + if (id < m) + m = id; + } + + return m; +} + void ChatWindow::ScrollToBottom() { auto x = m_scroll->get_vadjustment(); x->set_value(x->get_upper()); diff --git a/components/chatwindow.hpp b/components/chatwindow.hpp index 00d5e2b..ba71d2b 100644 --- a/components/chatwindow.hpp +++ b/components/chatwindow.hpp @@ -21,6 +21,7 @@ public: void UpdateMessageContent(Snowflake id); void Clear(); void InsertChatInput(std::string text); + Snowflake GetOldestListedMessage(); protected: void ScrollToBottom(); diff --git a/components/memberlist.cpp b/components/memberlist.cpp index d1d0711..5d8d963 100644 --- a/components/memberlist.cpp +++ b/components/memberlist.cpp @@ -4,6 +4,7 @@ MemberListUserRow::MemberListUserRow(Snowflake guild_id, const User *data) { ID = data->ID; + m_ev = Gtk::manage(new Gtk::EventBox); m_box = Gtk::manage(new Gtk::Box(Gtk::ORIENTATION_HORIZONTAL)); m_label = Gtk::manage(new Gtk::Label); m_avatar = Gtk::manage(new Gtk::Image(Abaddon::Get().GetImageManager().GetPlaceholder(16))); @@ -11,6 +12,7 @@ MemberListUserRow::MemberListUserRow(Snowflake guild_id, const User *data) { get_style_context()->add_class("members-row"); get_style_context()->add_class("members-row-member"); m_label->get_style_context()->add_class("members-row-label"); + m_avatar->get_style_context()->add_class("members-row-avatar"); m_label->set_single_line_mode(true); m_label->set_ellipsize(Pango::ELLIPSIZE_END); @@ -32,7 +34,8 @@ MemberListUserRow::MemberListUserRow(Snowflake guild_id, const User *data) { m_label->set_halign(Gtk::ALIGN_START); m_box->add(*m_avatar); m_box->add(*m_label); - add(*m_box); + m_ev->add(*m_box); + add(*m_ev); show_all(); } diff --git a/components/memberlist.hpp b/components/memberlist.hpp index 3b64bce..2a727e5 100644 --- a/components/memberlist.hpp +++ b/components/memberlist.hpp @@ -12,6 +12,7 @@ public: Snowflake ID; private: + Gtk::EventBox *m_ev; Gtk::Box *m_box; Gtk::Image *m_avatar; Gtk::Label *m_label; |