mirror of
https://github.com/celisej567/abaddon.git
synced 2026-09-13 20:18:50 +03:00
only load 50 messages on channel switch (also fix member menu)
This commit is contained in:
@@ -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);
|
||||
|
||||
@@ -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());
|
||||
|
||||
@@ -21,6 +21,7 @@ public:
|
||||
void UpdateMessageContent(Snowflake id);
|
||||
void Clear();
|
||||
void InsertChatInput(std::string text);
|
||||
Snowflake GetOldestListedMessage();
|
||||
|
||||
protected:
|
||||
void ScrollToBottom();
|
||||
|
||||
@@ -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();
|
||||
}
|
||||
|
||||
|
||||
@@ -12,6 +12,7 @@ public:
|
||||
Snowflake ID;
|
||||
|
||||
private:
|
||||
Gtk::EventBox *m_ev;
|
||||
Gtk::Box *m_box;
|
||||
Gtk::Image *m_avatar;
|
||||
Gtk::Label *m_label;
|
||||
|
||||
Reference in New Issue
Block a user