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

Reply via email to