From 43a4087d29e1d6b68d77c3edc455fe492641784b Mon Sep 17 00:00:00 2001 From: falkTX Date: Sun, 17 May 2020 02:57:35 +0100 Subject: [PATCH] Fix canvas groups getting stuck out of screen with last commits Signed-off-by: falkTX --- source/frontend/patchcanvas/canvasbox.py | 8 +------- source/frontend/patchcanvas/patchcanvas.py | 6 ++++-- source/frontend/patchcanvas/scene.py | 2 +- 3 files changed, 6 insertions(+), 10 deletions(-) diff --git a/source/frontend/patchcanvas/canvasbox.py b/source/frontend/patchcanvas/canvasbox.py index 2b731288f..57198d984 100644 --- a/source/frontend/patchcanvas/canvasbox.py +++ b/source/frontend/patchcanvas/canvasbox.py @@ -279,7 +279,7 @@ class CanvasBox(QGraphicsObject): return qCritical("PatchCanvas::CanvasBox.removeLineFromGroup(%i) - unable to find line to remove" % connection_id) - def checkItemPos(self, blockSignals): + def checkItemPos(self): if canvas.size_rect.isNull(): return @@ -288,9 +288,6 @@ class CanvasBox(QGraphicsObject): canvas.size_rect.contains(pos + QPointF(self.p_width, self.p_height))): return - if blockSignals: - self.blockSignals(True) - if pos.x() < canvas.size_rect.x(): self.setPos(canvas.size_rect.x(), pos.y()) elif pos.x() + self.p_width > canvas.size_rect.width(): @@ -302,9 +299,6 @@ class CanvasBox(QGraphicsObject): elif pos.y() + self.p_height > canvas.size_rect.height(): self.setPos(pos.x(), canvas.size_rect.height() - self.p_height) - if blockSignals: - self.blockSignals(False) - def removeIconFromScene(self): if self.icon_svg is None: return diff --git a/source/frontend/patchcanvas/patchcanvas.py b/source/frontend/patchcanvas/patchcanvas.py index 435aafdf0..f971dad98 100644 --- a/source/frontend/patchcanvas/patchcanvas.py +++ b/source/frontend/patchcanvas/patchcanvas.py @@ -373,7 +373,7 @@ def addGroup(group_id, group_name, split=SPLIT_UNDEF, icon=ICON_APPLICATION): if options.eyecandy == EYECANDY_FULL and not options.auto_hide_groups: CanvasItemFX(group_sbox, True, False) - group_sbox.checkItemPos(True) + group_sbox.checkItemPos() else: group_box.setSplit(False) @@ -387,7 +387,7 @@ def addGroup(group_id, group_name, split=SPLIT_UNDEF, icon=ICON_APPLICATION): horizontal = bool(icon == ICON_HARDWARE or icon == ICON_LADISH_ROOM) group_box.setPos(CanvasGetNewGroupPos(horizontal)) - group_box.checkItemPos(True) + group_box.checkItemPos() canvas.last_z_value += 1 group_box.setZValue(canvas.last_z_value) @@ -704,11 +704,13 @@ def setGroupPosFull(group_id, group_pos_x_o, group_pos_y_o, group_pos_x_i, group if group.group_id == group_id: group.widgets[0].blockSignals(True) group.widgets[0].setPos(group_pos_x_o, group_pos_y_o) + group.widgets[0].checkItemPos() group.widgets[0].blockSignals(False) if group.split and group.widgets[1]: group.widgets[1].blockSignals(True) group.widgets[1].setPos(group_pos_x_i, group_pos_y_i) + group.widgets[1].checkItemPos() group.widgets[1].blockSignals(False) QTimer.singleShot(0, canvas.scene.update) diff --git a/source/frontend/patchcanvas/scene.py b/source/frontend/patchcanvas/scene.py index 99f26df12..58ecbf5cf 100644 --- a/source/frontend/patchcanvas/scene.py +++ b/source/frontend/patchcanvas/scene.py @@ -366,7 +366,7 @@ class PatchScene(QGraphicsScene): items_list = self.selectedItems() for item in items_list: if item and item.isVisible() and item.type() == CanvasBoxType: - item.checkItemPos(False) + item.checkItemPos() if len(items_list) > 1: canvas.scene.update()