Improve method to update log view after search text change
authorRené Stadler <mail@renestadler.de>
Mon, 3 Dec 2007 14:07:05 +0000 (16:07 +0200)
committerStefan Sauer <ensonic@users.sf.net>
Thu, 11 Sep 2014 18:51:42 +0000 (20:51 +0200)
debug-viewer/GstDebugViewer/GUI.py
debug-viewer/GstDebugViewer/Plugins/FindBar.py

index 88fd32c..f83473a 100755 (executable)
@@ -1410,6 +1410,19 @@ class Window (object):
             # the previous visible range.
             self.log_view.scroll_to_cell (path, use_align = True, row_align = .5)
 
+    def update_view (self):
+
+        view = self.log_view
+        model = view.props.model
+
+        start_path, end_path = view.get_visible_range ()
+        start_index, end_index = start_path[0], end_path[0]
+
+        for line_index in range (start_index, end_index + 1):
+            path = (line_index,)
+            tree_iter = model.get_iter (path)
+            model.row_changed (path, tree_iter)
+
     def handle_window_delete_event (self, window, event):
 
         self.actions.close_window.activate ()
index 734f1fd..a22cd36 100644 (file)
@@ -277,6 +277,7 @@ class FindBarFeature (FeatureBase):
 
         column = self.window.column_manager.find_item (name = "message")
         column.highlighters[self] = self.operation.match_func
+        self.window.update_view ()
 
     def handle_match_found (self, model, tree_iter):
 
@@ -308,18 +309,6 @@ class FindBarFeature (FeatureBase):
         else:
             return
 
-        model = self.log_view.props.model
-
-        start_path, end_path = self.log_view.get_visible_range ()
-        start_index, end_index = start_path[0], end_path[0]
-
-        # Update highlighting.  FIXME: Probably not needed/can be done better.
-        for line_index in new_matches:
-            path = (line_index,)
-            tree_iter = model.get_iter (path)
-            if line_index >= start_index and line_index <= end_index:
-                model.row_changed (path, tree_iter)
-
     def clear_results (self):
 
         try: