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)
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
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)
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()
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()
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()
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()
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()
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()
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)
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()
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)
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)
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
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()