mirror of
https://gitlab.freedesktop.org/gstreamer/gstreamer.git
synced 2025-02-13 09:45:27 +00:00
Always use a filtered log model in the log view
Preparing to phase out RangeFilteredLogModel.
This commit is contained in:
parent
01ce89639e
commit
f47260fbc4
2 changed files with 24 additions and 20 deletions
|
@ -286,10 +286,10 @@ class FilteredLogModel (FilteredLogModelBase):
|
||||||
|
|
||||||
def reset (self):
|
def reset (self):
|
||||||
|
|
||||||
del self.line_offsets[:]
|
range_model = self.super_model
|
||||||
self.line_offsets += self.super_model.line_offsets
|
self.line_offsets = range_model.line_offsets
|
||||||
del self.line_levels[:]
|
self.line_levels = range_model.line_levels
|
||||||
self.line_levels += self.super_model.line_levels
|
self.__old_super_model_range = range_model.line_index_range
|
||||||
|
|
||||||
del self.super_index[:]
|
del self.super_index[:]
|
||||||
self.from_super_index.clear ()
|
self.from_super_index.clear ()
|
||||||
|
@ -419,6 +419,15 @@ class FilteredLogModel (FilteredLogModelBase):
|
||||||
def super_model_changed_range (self):
|
def super_model_changed_range (self):
|
||||||
|
|
||||||
range_model = self.super_model
|
range_model = self.super_model
|
||||||
|
|
||||||
|
if isinstance (self.line_offsets, SubRange):
|
||||||
|
# FIXME: Can only take this shortcut when shrinking the range.
|
||||||
|
self.line_offsets = range_model.line_offsets
|
||||||
|
self.line_levels = range_model.line_levels
|
||||||
|
self.__old_super_model_range = range_model.line_index_range
|
||||||
|
assert self.__old_super_model_range is not None
|
||||||
|
return
|
||||||
|
|
||||||
old_start, old_stop = self.__old_super_model_range
|
old_start, old_stop = self.__old_super_model_range
|
||||||
super_start, super_stop = range_model.line_index_range
|
super_start, super_stop = range_model.line_index_range
|
||||||
|
|
||||||
|
|
|
@ -269,7 +269,9 @@ class Window (object):
|
||||||
self.actions.add_group (self.column_manager.action_group)
|
self.actions.add_group (self.column_manager.action_group)
|
||||||
|
|
||||||
self.log_file = None
|
self.log_file = None
|
||||||
self.setup_model (LazyLogModel ())
|
self.log_model = None
|
||||||
|
self.log_range = None
|
||||||
|
self.log_filter = None
|
||||||
|
|
||||||
self.widget_factory = Common.GUI.WidgetFactory (Main.Paths.data_dir)
|
self.widget_factory = Common.GUI.WidgetFactory (Main.Paths.data_dir)
|
||||||
self.widgets = self.widget_factory.make ("main-window.ui", "main_window")
|
self.widgets = self.widget_factory.make ("main-window.ui", "main_window")
|
||||||
|
@ -304,16 +306,12 @@ class Window (object):
|
||||||
self.attach ()
|
self.attach ()
|
||||||
self.column_manager.attach (self.log_view)
|
self.column_manager.attach (self.log_view)
|
||||||
|
|
||||||
def setup_model (self, model, filter = False):
|
def setup_model (self, model):
|
||||||
|
|
||||||
self.log_model = model
|
self.log_model = model
|
||||||
self.log_range = RangeFilteredLogModel (self.log_model)
|
self.log_range = RangeFilteredLogModel (self.log_model)
|
||||||
if filter:
|
|
||||||
self.log_filter = FilteredLogModel (self.log_range)
|
self.log_filter = FilteredLogModel (self.log_range)
|
||||||
self.log_filter.handle_process_finished = self.handle_log_filter_process_finished
|
self.log_filter.handle_process_finished = self.handle_log_filter_process_finished
|
||||||
else:
|
|
||||||
self.log_filter = None
|
|
||||||
|
|
||||||
def get_top_attach_point (self):
|
def get_top_attach_point (self):
|
||||||
|
|
||||||
return self.widgets.vbox_main
|
return self.widgets.vbox_main
|
||||||
|
@ -598,7 +596,6 @@ class Window (object):
|
||||||
start_index = first_index
|
start_index = first_index
|
||||||
stop_index = last_index + 1
|
stop_index = last_index + 1
|
||||||
self.log_range.set_range (start_index, stop_index)
|
self.log_range.set_range (start_index, stop_index)
|
||||||
if self.log_filter:
|
|
||||||
self.log_filter.super_model_changed_range ()
|
self.log_filter.super_model_changed_range ()
|
||||||
self.update_model ()
|
self.update_model ()
|
||||||
self.pop_view_state ()
|
self.pop_view_state ()
|
||||||
|
@ -609,9 +606,10 @@ class Window (object):
|
||||||
|
|
||||||
self.logger.info ("restoring model filter to show all lines")
|
self.logger.info ("restoring model filter to show all lines")
|
||||||
self.push_view_state ()
|
self.push_view_state ()
|
||||||
|
self.log_view.set_model (None)
|
||||||
self.log_range.reset ()
|
self.log_range.reset ()
|
||||||
self.log_filter = None
|
self.log_filter.reset ()
|
||||||
self.update_model (self.log_range)
|
self.update_model (self.log_filter)
|
||||||
self.pop_view_state (scroll_to_selection = True)
|
self.pop_view_state (scroll_to_selection = True)
|
||||||
self.actions.show_hidden_lines.props.sensitive = False
|
self.actions.show_hidden_lines.props.sensitive = False
|
||||||
|
|
||||||
|
@ -701,9 +699,6 @@ class Window (object):
|
||||||
# things down for nothing.
|
# things down for nothing.
|
||||||
self.push_view_state ()
|
self.push_view_state ()
|
||||||
self.log_view.set_model (None)
|
self.log_view.set_model (None)
|
||||||
if self.log_filter is None:
|
|
||||||
self.log_filter = FilteredLogModel (self.log_range)
|
|
||||||
self.log_filter.handle_process_finished = self.handle_log_filter_process_finished
|
|
||||||
self.log_filter.add_filter (filter, dispatcher = dispatcher)
|
self.log_filter.add_filter (filter, dispatcher = dispatcher)
|
||||||
|
|
||||||
gobject.timeout_add (250, self.update_filter_progress)
|
gobject.timeout_add (250, self.update_filter_progress)
|
||||||
|
@ -902,7 +897,7 @@ class Window (object):
|
||||||
|
|
||||||
self.log_model.set_log (self.log_file)
|
self.log_model.set_log (self.log_file)
|
||||||
self.log_range.reset ()
|
self.log_range.reset ()
|
||||||
self.log_filter = None
|
self.log_filter.reset ()
|
||||||
|
|
||||||
self.actions.reload_file.props.sensitive = True
|
self.actions.reload_file.props.sensitive = True
|
||||||
self.actions.groups["RowActions"].props.sensitive = True
|
self.actions.groups["RowActions"].props.sensitive = True
|
||||||
|
|
Loading…
Reference in a new issue