Example #1
0
 def _on_view_selection_changed(self):
     view = self.view
     assert view
     selection = view.selection
     self.event_manager.handle(
         DiagramSelectionChanged(view, selection.focused_item,
                                 selection.selected_items))
Example #2
0
 def _on_switch_page(self, notebook, page, new_page_num):
     current_page_num = notebook.get_current_page()
     if current_page_num >= 0:
         self._clear_ui_settings(notebook.get_nth_page(current_page_num))
     self._add_ui_settings(page)
     view = page.diagram_page.view
     self.event_manager.handle(
         DiagramSelectionChanged(view, view.focused_item,
                                 view.selected_items))
Example #3
0
    def paste_action(self):
        view = self.diagrams.get_current_view()
        diagram = self.diagrams.get_current_diagram()
        if not (view and view.is_focus()):
            return

        if not copy_buffer:
            return

        new_items = self.paste(diagram)

        selection = view.selection
        selection.unselect_all()
        selection.select_items(*new_items)

        self.event_manager.handle(DiagramSelectionChanged(view, None, new_items))
Example #4
0
    def create_tab(self, title, widget):
        """Creates a new Notebook tab with a label and close button.

        Args:
            title (str): The title of the tab, the diagram name.
            widget (Gtk.Widget): The child widget of the tab.
        """

        page_num = self._notebook.append_page(child=widget,
                                              tab_label=self.tab_label(
                                                  title, widget))
        self._notebook.set_current_page(page_num)
        self._notebook.set_tab_reorderable(widget, True)

        view = widget.diagram_page.view
        self.event_manager.handle(
            DiagramSelectionChanged(view, view.focused_item,
                                    view.selected_items))
Example #5
0
    def paste_action(self):
        view = self.diagrams.get_current_view()
        diagram = self.diagrams.get_current_diagram()
        if not view:
            return

        if not self.copy_buffer:
            return

        new_items = self.paste(diagram)

        view.unselect_all()

        for item in new_items:
            view.select_item(item)

        self.event_manager.handle(
            DiagramSelectionChanged(view, None, new_items))
Example #6
0
    def paste_action(self):
        view = self.diagrams.get_current_view()
        diagram = self.diagrams.get_current_diagram()
        if not view:
            return

        new_items = self.paste(diagram)

        focused_item = view.focused_item
        view.unselect_all()

        for item in new_items.values():
            view.select_item(item)

        new_focused_item = (new_items[focused_item.id]
                            if focused_item else new_items.pop())

        self.event_manager.handle(
            DiagramSelectionChanged(view, new_focused_item, new_items))
Example #7
0
 def _on_view_selection_changed(self, view, selection_or_focus):
     self.event_manager.handle(
         DiagramSelectionChanged(view, view.focused_item,
                                 view.selected_items))