コード例 #1
0
 def load_view(self, model: Gtk.TreeModel, treeiter: Gtk.TreeIter, tree: Gtk.TreeView, scroll_into_view=True):
     logger.debug('View selected. Locking and showing Loader.')
     path = model.get_path(treeiter)
     self._lock_trees()
     selected_node = model[treeiter]
     self._init_window_before_view_load(model[treeiter])
     # Show loading stack page in editor stack
     self._editor_stack.set_visible_child(self.builder.get_object('es_loading'))
     # Set current view values for later check (if race conditions between fast switching)
     self._current_view_module = selected_node[2]
     self._current_view_controller_class = selected_node[3]
     self._current_view_item_id = selected_node[4]
     # Fully load the view and the controller
     AsyncTaskRunner.instance().run_task(load_controller(
         self._current_view_module, self._current_view_controller_class, self._current_view_item_id,
         self
     ))
     # Expand the node
     tree.expand_to_path(path)
     # Select node
     tree.get_selection().select_path(path)
     # Scroll node into view
     if scroll_into_view:
         tree.scroll_to_cell(path, None, True, 0.5, 0.5)
     self._last_selected_view_model = model
     self._last_selected_view_iter = treeiter