예제 #1
0
 def mouseReleaseEvent(self, event):
     if self.isEnabled():
         self.add_button.setDown(False)
         ctrl.ui.set_scope(self.key)
         ctrl.deselect_objects()
         ctrl.call_watchers(self, 'scope_changed')
     QtWidgets.QFrame.mouseReleaseEvent(self, event)
예제 #2
0
 def mouseReleaseEvent(self, event):
     if self.isEnabled():
         self.add_button.setDown(False)
         ctrl.ui.set_scope(self.key)
         ctrl.deselect_objects()
         ctrl.call_watchers(self, 'scope_changed')
     QtWidgets.QFrame.mouseReleaseEvent(self, event)
예제 #3
0
 def click(self, event=None):
     """
     :type event: QMouseEvent
      """
     self._dragging = False
     if self._drag_hint:
         return False
     ctrl.deselect_objects()
     self.clicked.emit()
     return True
예제 #4
0
 def method(self):
     group = self.get_host()
     group.persistent = False
     ctrl.ui.close_group_label_editing(group)
     if ctrl.ui.selection_group is group:
         ctrl.deselect_objects()
         # deselecting will remove the (temporary) selection group
     else:
         ctrl.ui.remove_ui_for(group)
         ctrl.ui.remove_ui(group)
예제 #5
0
 def method(self):
     group = self.get_host()
     group.persistent = False
     ctrl.ui.close_group_label_editing(group)
     if ctrl.ui.selection_group is group:
         ctrl.deselect_objects()
         # deselecting will remove the (temporary) selection group
     else:
         ctrl.ui.remove_ui_for(group)
         ctrl.ui.remove_ui(group)
예제 #6
0
 def click(self, event=None):
     """
     :type event: QMouseEvent
      """
     self._dragging = False
     if self._drag_hint:
         return False
     ctrl.deselect_objects()
     self.clicked.emit()
     return True
예제 #7
0
파일: tree_edit.py 프로젝트: jpurma/Kataja
 def method(self, node_uid: int):
     """ If triggered node is triangle node, restore it to normal
     :param node_uid: int or string, node's unique identifier
     :return: None
     """
     ctrl.release_editor_focus()
     node = ctrl.forest.nodes[node_uid]
     Triangle.remove_triangle_from(node)
     ctrl.deselect_objects()
     node.update_label()
예제 #8
0
파일: tree_edit.py 프로젝트: jpurma/Kataja
 def method(self, node_uid):
     """ Turn triggering node into triangle node
     :param node_uid: int or string, node's unique identifier
     :return: None
     """
     ctrl.release_editor_focus()
     node = ctrl.forest.nodes[node_uid]
     Triangle.add_or_update_triangle_for(node)
     ctrl.deselect_objects()
     node.update_label()
예제 #9
0
 def method(self):
     """ If triggered node is triangle node, restore it to normal
     :return: None
     """
     ctrl.release_editor_focus()
     node = self.get_host()
     if not node:
         return
     log.info('unfolding from %s' % node.as_bracket_string())
     ctrl.free_drawing.remove_triangle_from(node)
     ctrl.deselect_objects()
예제 #10
0
파일: tree_edit.py 프로젝트: osagha/Kataja
 def method(self):
     """ If triggered node is triangle node, restore it to normal
     :return: None
     """
     ctrl.release_editor_focus()
     node = self.get_host()
     if not node:
         return
     log.info('unfolding from %s' % node.as_bracket_string())
     ctrl.free_drawing.remove_triangle_from(node)
     ctrl.deselect_objects()
     node.update_label()
예제 #11
0
 def method(self):
     """ Turn triggering node into triangle node
     :return: None
     """
     ctrl.release_editor_focus()
     node = self.get_host()
     if not node:
         return
     log.info('folding in %s' % node.as_bracket_string())
     ctrl.free_drawing.add_triangle_to(node)
     node.update_label()
     ctrl.deselect_objects()
예제 #12
0
파일: tree_edit.py 프로젝트: osagha/Kataja
 def method(self):
     """ Turn triggering node into triangle node
     :return: None
     """
     ctrl.release_editor_focus()
     node = self.get_host()
     if not node:
         return
     log.info('folding in %s' % node.as_bracket_string())
     ctrl.free_drawing.add_or_update_triangle_for(node)
     ctrl.deselect_objects()
     node.update_label()
예제 #13
0
    def method(self):
        """ """
        sender = self.sender()
        if sender:
            embed = sender.parent()
            group = self.get_host() or ctrl.ui.selection_group
            ctrl.ui.close_group_label_editing(group)
            group.set_label_text(embed.input_line_edit.text())
            group.update_shape()
            name = group.get_label_text() or ctrl.cm.get_color_name(group.color_key)
            if not group.persistent:
                ctrl.forest.drawing.turn_selection_group_to_group(group)
                ctrl.deselect_objects()

            log.info("Saved group '%s'" % name)
예제 #14
0
파일: TouchArea.py 프로젝트: jpurma/Kataja
    def drop(self, node_or_string):
        """
        :param dropped_node:
        """
        drop_args = {}
        if isinstance(node_or_string, str) and node_or_string.startswith('kataja:'):
            foo, command, ntype = node_or_string.split(':')
            ntype = int(ntype)
            drop_args['new_type'] = ntype
        else:
            drop_args['node_uid'] = getattr(node_or_string, 'uid')

        da = ctrl.ui.get_action(self.drop_action)
        if da:
            da.run_command(self.host.uid, **drop_args)
        ctrl.deselect_objects()
예제 #15
0
    def method(self):
        """ """
        sender = self.sender()
        if sender:
            embed = sender.parent()
            group = self.get_host() or ctrl.ui.selection_group
            ctrl.ui.close_group_label_editing(group)
            group.set_label_text(embed.input_line_edit.text())
            group.update_shape()
            name = group.get_label_text() or ctrl.cm.get_color_name(
                group.color_key)
            if not group.persistent:
                ctrl.forest.free_drawing.turn_selection_group_to_group(group)
                ctrl.deselect_objects()

            log.info("Saved group '%s'" % name)
예제 #16
0
 def method(self, object_uid):
     """ Select node, edge or other forest object
     :param object_uid: int or str uid of item to select, or list of uids for selecting
      multiple objects, or None to empty the current selection.
     :return: None
     """
     if object_uid is None:
         ctrl.deselect_objects()
     elif isinstance(object_uid, (list, tuple)):
         objs = []
         for uid in object_uid:
             obj = ctrl.forest.get_object_by_uid(uid)
             if obj:
                 objs.append(obj)
         ctrl.select(objs)
     else:
         obj = ctrl.forest.get_object_by_uid(object_uid)
         ctrl.select(obj)
예제 #17
0
    def mouseReleaseEvent(self, event):
        super().mouseReleaseEvent(event)
        if event.isAccepted():
            return
        # No object was pressed -- either clicking on nothing or ending a selection drag

        # click on empty place means select nothing, unless we are shift+selecting
        if event.modifiers() != Qt.ShiftModifier:
            ctrl.deselect_objects()

        if self.graph_view.selection_mode:
            ctrl.area_selection = True
            ctrl.multiselection_start()
            ctrl.deselect_objects()
            # prioritize nodes in multiple selection. e.g. if there are nodes and edges in
            # selected area, select only nodes. If there are multiple edges and no nodes, then
            # take edges
            for item in self.selectedItems():
                if hasattr(item, 'select'):
                    item.select(event, multi=True)

            ctrl.multiselection_end()
            ctrl.area_selection = False
예제 #18
0
    def mouseReleaseEvent(self, event):
        super().mouseReleaseEvent(event)
        if event.isAccepted():
            return
        # No object was pressed -- either clicking on nothing or ending a selection drag

        # click on empty place means select nothing, unless we are shift+selecting
        if event.modifiers() != Qt.ShiftModifier:
            ctrl.deselect_objects()

        if self.graph_view.selection_mode:
            ctrl.area_selection = True
            ctrl.multiselection_start()
            ctrl.deselect_objects()
            # prioritize nodes in multiple selection. e.g. if there are nodes and edges in
            # selected area, select only nodes. If there are multiple edges and no nodes, then
            # take edges
            for item in self.selectedItems():
                if hasattr(item, 'select'):
                    item.select(event, multi=True)

            ctrl.multiselection_end()
            ctrl.area_selection = False
예제 #19
0
 def select(self, event=None, multi=False):
     """ Scene has decided that this node has been clicked
     :param event:
     :param multi: assume multiple selection (append, don't replace)
     """
     if not self.persistent:
         return
     ctrl.multiselection_start()
     if (event and event.modifiers() == QtCore.Qt.ShiftModifier) or multi:
         # multiple selection
         if ctrl.is_selected(self):
             ctrl.remove_from_selection(self)
         else:
             ctrl.add_to_selection(self)
             for item in self.selection:
                 ctrl.add_to_selection(item)
     elif ctrl.is_selected(self):
         ctrl.deselect_objects()
     else:
         ctrl.deselect_objects()
         ctrl.add_to_selection(self)
         for item in self.selection:
             ctrl.add_to_selection(item)
     ctrl.multiselection_end()
예제 #20
0
파일: Group.py 프로젝트: osagha/Kataja
 def select(self, event=None, multi=False):
     """ Scene has decided that this node has been clicked
     :param event:
     :param multi: assume multiple selection (append, don't replace)
     """
     if not self.persistent:
         return
     ctrl.multiselection_start()
     if (event and event.modifiers() == QtCore.Qt.ShiftModifier) or multi:
         # multiple selection
         if ctrl.is_selected(self):
             ctrl.remove_from_selection(self)
         else:
             ctrl.add_to_selection(self)
             for item in self.selection:
                 ctrl.add_to_selection(item)
     elif ctrl.is_selected(self):
         ctrl.deselect_objects()
     else:
         ctrl.deselect_objects()
         ctrl.add_to_selection(self)
         for item in self.selection:
             ctrl.add_to_selection(item)
     ctrl.multiselection_end()