Activating 'Move window' shortcut during window move ends the action

This commit is contained in:
Rebecca Breu 2023-12-06 21:31:16 +01:00
parent 6942c40615
commit 4ae153b7d7
3 changed files with 18 additions and 7 deletions

View file

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

View file

@ -222,9 +222,9 @@ class BeeGraphicsView(MainControlsMixin,
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 @@ class BeeGraphicsView(MainControlsMixin,
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)

View file

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