diff --git a/beeref/main_controls.py b/beeref/main_controls.py index e4fc8a5..fbaccc6 100644 --- a/beeref/main_controls.py +++ b/beeref/main_controls.py @@ -36,13 +36,19 @@ class MainControlsMixin: def init_main_controls(self, main_window): self.main_window = main_window - self.setContextMenuPolicy( - Qt.ContextMenuPolicy.CustomContextMenu) + self.setContextMenuPolicy(Qt.ContextMenuPolicy.CustomContextMenu) self.customContextMenuRequested.connect( self.control_target.on_context_menu) self.setAcceptDrops(True) self.movewin_active = False + def on_action_movewin_mode(self): + if self.movewin_active: + # Pressing the same shortcut again should end the action + self.exit_movewin_mode() + else: + self.enter_movewin_mode() + def enter_movewin_mode(self): logger.debug('Entering movewin mode') self.setMouseTracking(True) diff --git a/beeref/view.py b/beeref/view.py index 2501a12..b21532d 100644 --- a/beeref/view.py +++ b/beeref/view.py @@ -222,9 +222,9 @@ def on_action_show_titlebar(self, checked): def on_action_move_window(self): if self.welcome_overlay.isHidden(): - self.enter_movewin_mode() + self.on_action_movewin_mode() else: - self.welcome_overlay.enter_movewin_mode() + self.welcome_overlay.on_action_movewin_mode() def on_action_undo(self): logger.debug('Undo: %s' % self.undo_stack.undoText()) @@ -404,9 +404,6 @@ def on_action_export_scene(self): filter=';;'.join(('Image Files (*.png *.jpg *.jpeg)', 'PNG (*.png)', 'JPEG (*.jpg *.jpeg)'))) - print(';;'.join(('Image Files (*.png *.jpg *.jpeg)', - 'PNG (*.png)', - 'JPEG (*.jpg *.jpeg)'))) if filename: logger.debug(f'Got export filename {filename}') exporter = SceneToPixmapExporter(self.scene) diff --git a/tests/test_view.py b/tests/test_view.py index 943e02d..29b7cf1 100644 --- a/tests/test_view.py +++ b/tests/test_view.py @@ -657,6 +657,14 @@ def test_on_action_move_window_when_welcome_overlay(cursor_mock, view): assert view.welcome_overlay.event_start == QtCore.QPointF(10.0, 20.0) +def test_on_action_move_window_when_already_active(view): + view.welcome_overlay.event_start = QtCore.QPointF(10.0, 20.0) + view.welcome_overlay.movewin_active = True + view.on_action_move_window() + assert view.welcome_overlay.movewin_active is False + assert view.welcome_overlay.event_start == QtCore.QPointF(10.0, 20.0) + + @patch('beeref.view.BeeGraphicsView.cursor') def test_on_action_move_window_when_scene(cursor_mock, view): cursor_mock.return_value = MagicMock(