Philipp Hörist pushed to branch mainwindow at gajim / gajim
Commits: 56f4d5eb by lovetox at 2021-04-04T17:50:50+02:00 Fix completion state - - - - - 4 changed files: - gajim/chat_control_base.py - gajim/gtk/conversation/rows/scroll_hint.py - gajim/gtk/conversation/scrolled.py - gajim/gtk/conversation/view.py Changes: ===================================== gajim/chat_control_base.py ===================================== @@ -1413,7 +1413,7 @@ def fetch_n_lines_history(self, _scrolled, n_lines): n_lines) if not messages: - self._scrolled_view.set_history_complete() + self._scrolled_view.set_history_complete(True) return for msg in messages: ===================================== gajim/gtk/conversation/rows/scroll_hint.py ===================================== @@ -29,6 +29,7 @@ def __init__(self, account, history_mode=False): self.type = 'system' self.timestamp = datetime.fromtimestamp(0) + self._history_mode = history_mode self.get_style_context().add_class('conversation-system-row') @@ -36,14 +37,16 @@ def __init__(self, account, history_mode=False): self.label.set_hexpand(True) self.label.get_style_context().add_class( 'conversation-meta') + self.grid.attach(self.label, 0, 1, 1, 1) + + self.set_history_complete(False) - if history_mode: + def set_history_complete(self, complete): + if self._history_mode: self.label.set_text(_('Use the calendar to select a specific date')) - self.grid.attach(self.label, 0, 1, 1, 1) return - self.label.set_text(_('Scroll up to load more chat history…')) - self.grid.attach(self.label, 0, 1, 1, 1) - - def set_history_complete(self): - self.label.set_text(_('There is no more history')) + if complete: + self.label.set_text(_('There is no more history')) + else: + self.label.set_text(_('Scroll up to load more chat history…')) ===================================== gajim/gtk/conversation/scrolled.py ===================================== @@ -56,13 +56,15 @@ def __init__(self, *args, **kwargs): vadjustment.connect('notify::upper', self._on_adj_upper_changed) vadjustment.connect('notify::value', self._on_adj_value_changed) - @property - def autoscroll(self): + def get_autoscroll(self): return self._autoscroll - def set_history_complete(self): - self._complete = True - self.get_child().get_child().set_history_complete() + def get_view(self): + return self.get_child().get_child() + + def set_history_complete(self, complete): + self._complete = complete + self.get_view().set_history_complete(complete) def _on_adj_upper_changed(self, adj, *args): upper = adj.get_upper() @@ -72,6 +74,7 @@ def _on_adj_upper_changed(self, adj, *args): self._current_upper = upper if self._autoscroll: adj.set_value(adj.get_upper() - adj.get_page_size()) + else: # Workaround # https://gitlab.gnome.org/GNOME/gtk/merge_requests/395 ===================================== gajim/gtk/conversation/view.py ===================================== @@ -108,8 +108,8 @@ def get_first_message_row(self): return row return None - def set_history_complete(self): - self._scroll_hint_row.set_history_complete() + def set_history_complete(self, complete): + self._scroll_hint_row.set_history_complete(complete) def _reset_conversation_view(self): self._first_date = None @@ -203,10 +203,6 @@ def add_message(self, self._insert_message(message, kind, history) - # Check for maximum message count - # if self.autoscroll and self._row_count > self._max_row_count: - # self._reduce_message_count() - def _get_avatar(self, kind, name): scale = self.get_scale_factor() if self._contact.is_groupchat: @@ -344,7 +340,8 @@ def _is_mergeable(row1, row2): return True return False - def _reduce_message_count(self): + def reduce_message_count(self): + successful = False while self._row_count > self._max_row_count: # We want to keep relevant DateRows when removing rows row1 = self.get_row_at_index(1) @@ -354,6 +351,7 @@ def _reduce_message_count(self): # First two rows are date rows, # it’s safe to remove the fist row self.remove(row1) + successful = True self._timestamps_inserted.remove(row1.timestamp) self._first_date = row2.timestamp.strftime('%a, %d %b %Y') self._row_count -= 1 @@ -363,6 +361,7 @@ def _reduce_message_count(self): # First one is a date row, keep it and # remove the second row instead self.remove(row2) + successful = True self._timestamps_inserted.remove(row2.timestamp) if row2.message_id: self._message_ids_inserted.pop(row2.message_id) @@ -377,6 +376,7 @@ def _reduce_message_count(self): if row1.type != 'date': # Not a date row, safe to remove self.remove(row1) + successful = True self._timestamps_inserted.remove(row1.timestamp) if row1.message_id: self._message_ids_inserted.pop(row1.message_id) @@ -390,6 +390,8 @@ def _reduce_message_count(self): self.first_message_timestamp = None self._row_count -= 1 + return successful + def _get_row_by_message_id(self, id_): for row in self.get_children(): if row.message_id == id_: View it on GitLab: https://dev.gajim.org/gajim/gajim/-/commit/56f4d5ebe9fc9444b024cb921a77056155ad40ca -- View it on GitLab: https://dev.gajim.org/gajim/gajim/-/commit/56f4d5ebe9fc9444b024cb921a77056155ad40ca You're receiving this email because of your account on dev.gajim.org.
_______________________________________________ Commits mailing list Commits@gajim.org https://lists.gajim.org/cgi-bin/listinfo/commits