From 268d00af320775140eecf6cf4246551cf2caa35b Mon Sep 17 00:00:00 2001 From: Rebecca Breu Date: Wed, 24 Mar 2021 09:54:14 +0100 Subject: [PATCH] Code cleanup --- beeref/__main__.py | 3 +-- beeref/gui.py | 5 +++-- beeref/items.py | 13 ++----------- beeref/scene.py | 2 +- beeref/selection.py | 17 +++++++++++++++++ setup.py | 2 +- tests/test_bee_json.py | 1 - tests/test_scene.py | 3 --- 8 files changed, 25 insertions(+), 21 deletions(-) diff --git a/beeref/__main__.py b/beeref/__main__.py index 6e05f43..15041e3 100755 --- a/beeref/__main__.py +++ b/beeref/__main__.py @@ -65,12 +65,11 @@ def handle_sigint(signum, frame): def main(): - logger = logging.getLogger('BeeRef') logging.basicConfig(level=logging.DEBUG) app = QtWidgets.QApplication(sys.argv) filename = sys.argv[1] if len(sys.argv) > 1 else None - bee = BeeRefMainWindow(app, filename) + bee = BeeRefMainWindow(app, filename) # NOQA:F841 signal.signal(signal.SIGINT, handle_sigint) # Repeatedly run python-noop to give the interpreter time to diff --git a/beeref/gui.py b/beeref/gui.py index 5a5fe12..1cc9aa8 100644 --- a/beeref/gui.py +++ b/beeref/gui.py @@ -15,7 +15,7 @@ import logging -from PyQt6 import QtCore, QtGui, QtWidgets +from PyQt6 import QtWidgets from PyQt6.QtCore import Qt @@ -34,7 +34,8 @@ class WelcomeOverlay(QtWidgets.QWidget): self.setAttribute(Qt.WidgetAttribute.WA_TransparentForMouseEvents) label = QtWidgets.QLabel(self) label.setText(self.txt) - label.setAlignment(Qt.Alignment.AlignVCenter | Qt.Alignment.AlignCenter) + label.setAlignment(Qt.Alignment.AlignVCenter + | Qt.Alignment.AlignCenter) layout = QtWidgets.QVBoxLayout() layout.addWidget(label) self.setLayout(layout) diff --git a/beeref/items.py b/beeref/items.py index 3c33b97..699a98c 100644 --- a/beeref/items.py +++ b/beeref/items.py @@ -103,21 +103,12 @@ class BeePixmapItem(QtWidgets.QGraphicsPixmapItem): return item - def activate_selection(self): - if self.childItems(): - self.childItems()[0].setVisible(True) - else: - SelectionItem(self) - - def clear_selection(self): - self.childItems()[0].setVisible(False) - def itemChange(self, change, value): if change == self.GraphicsItemChange.ItemSelectedChange: if value: logger.debug(f'Item selected {self.filename}') - self.activate_selection() + SelectionItem.activate_selection(self) else: logger.debug(f'Item deselected {self.filename}') - self.clear_selection() + SelectionItem.clear_selection(self) return super().itemChange(change, value) diff --git a/beeref/scene.py b/beeref/scene.py index 91bf198..40c53dc 100644 --- a/beeref/scene.py +++ b/beeref/scene.py @@ -16,7 +16,7 @@ import logging import math -from PyQt6 import QtCore, QtWidgets +from PyQt6 import QtWidgets from PyQt6.QtCore import Qt diff --git a/beeref/selection.py b/beeref/selection.py index a404f88..ac1a491 100644 --- a/beeref/selection.py +++ b/beeref/selection.py @@ -104,3 +104,20 @@ class SelectionItem(QtWidgets.QGraphicsItem): def mouseMoveEvent(self, event): print('*******mousemove') + + @classmethod + def activate_selection(cls, item): + """Activates/creates the selection for a given item.""" + if item.childItems(): + item.childItems()[0].setVisible(True) + else: + cls(item) + + @classmethod + def clear_selection(cls, item): + """Deactives the selection for a given item.""" + # Is it a performance issue to keep the selection items and just + # hide them? + # Deleting them might have been the cause of segfaults when + # they are in the middle of receiving events... + item.childItems()[0].setVisible(False) diff --git a/setup.py b/setup.py index 2ad71e4..6ad7fa5 100644 --- a/setup.py +++ b/setup.py @@ -17,7 +17,7 @@ setup( 'beeref = beeref.__main__:main' ] }, - package_data = { + package_data={ 'assets': ['*.png', '*.svg'], }, ) diff --git a/tests/test_bee_json.py b/tests/test_bee_json.py index 400a765..b483654 100644 --- a/tests/test_bee_json.py +++ b/tests/test_bee_json.py @@ -4,7 +4,6 @@ from PyQt6 import QtGui from beeref import bee_json from beeref.items import BeePixmapItem -from beeref.scene import BeeGraphicsScene from .base import BeeTestCase diff --git a/tests/test_scene.py b/tests/test_scene.py index 5796c9c..1e6b3d7 100644 --- a/tests/test_scene.py +++ b/tests/test_scene.py @@ -1,9 +1,6 @@ import math from unittest.mock import patch, MagicMock -from PyQt6 import QtGui - -from beeref.items import BeePixmapItem from beeref.scene import BeeGraphicsScene from .base import BeeTestCase