Skip to content

Commit

Permalink
Fix: Move Window shortcut not working on empty scene
Browse files Browse the repository at this point in the history
  • Loading branch information
rbreu committed Nov 26, 2023
1 parent d6b7fd7 commit 050451a
Show file tree
Hide file tree
Showing 4 changed files with 50 additions and 23 deletions.
2 changes: 2 additions & 0 deletions CHANGELOG.rst
Original file line number Diff line number Diff line change
Expand Up @@ -21,6 +21,8 @@ Fixed

* Fixed a bug where the binary data of deleted images would still hang
around in the bee file.
* Fixed: The shortcut to move the BeeRef window (Ctrl + Alt + Drag)
not working on an empty scene


0.3.0 - 2023-11-23
Expand Down
29 changes: 28 additions & 1 deletion beeref/main_controls.py
Original file line number Diff line number Diff line change
Expand Up @@ -33,12 +33,14 @@ class MainControlsMixin:
* Dropping files
"""

def init_main_controls(self):
def init_main_controls(self, main_window):
self.main_window = main_window
self.setContextMenuPolicy(
Qt.ContextMenuPolicy.CustomContextMenu)
self.customContextMenuRequested.connect(
self.control_target.on_context_menu)
self.setAcceptDrops(True)
self.movewin_active = False

def dragEnterEvent(self, event):
mimedata = event.mimeData()
Expand Down Expand Up @@ -76,3 +78,28 @@ def dropEvent(self, event):
commands.InsertItems(self.control_target.scene, [item], pos))
else:
logger.info('Drop not an image')

def mousePressEventMainControls(self, event):
if (event.button() == Qt.MouseButton.LeftButton
and event.modifiers() == (Qt.KeyboardModifier.ControlModifier
| Qt.KeyboardModifier.AltModifier)):
self.movewin_active = True
self.event_start = self.mapToGlobal(event.position())
event.accept()
return True

def mouseMoveEventMainControls(self, event):
if self.movewin_active:
pos = self.mapToGlobal(event.position())
delta = pos - self.event_start
self.event_start = pos
self.main_window.move(self.main_window.x() + int(delta.x()),
self.main_window.y() + int(delta.y()))
event.accept()
return True

def mouseReleaseEventMainControls(self, event):
if self.movewin_active:
self.movewin_active = False
event.accept()
return True
25 changes: 4 additions & 21 deletions beeref/view.py
Original file line number Diff line number Diff line change
Expand Up @@ -61,7 +61,6 @@ def __init__(self, app, parent=None):
self.previous_transform = None
self.pan_active = False
self.zoom_active = False
self.movewin_active = False

self.scene = BeeGraphicsScene(self.undo_stack)
self.scene.changed.connect(self.on_scene_changed)
Expand All @@ -71,7 +70,7 @@ def __init__(self, app, parent=None):
# Context menu and actions
self.build_menu_and_actions()
self.control_target = self
self.init_main_controls()
self.init_main_controls(main_window=parent)

# Load file given via command line
if commandline_args.filename:
Expand Down Expand Up @@ -646,14 +645,8 @@ def mousePressEvent(self, event):
event.accept()
return

if (event.button() == Qt.MouseButton.LeftButton
and event.modifiers() == (Qt.KeyboardModifier.ControlModifier
| Qt.KeyboardModifier.AltModifier)):
self.movewin_active = True
self.event_start = self.mapToGlobal(event.position())
event.accept()
if self.mousePressEventMainControls(event):
return

super().mousePressEvent(event)

def mouseMoveEvent(self, event):
Expand All @@ -674,15 +667,8 @@ def mouseMoveEvent(self, event):
event.accept()
return

if self.movewin_active:
pos = self.mapToGlobal(event.position())
delta = pos - self.event_start
self.event_start = pos
self.parent.move(self.parent.x() + int(delta.x()),
self.parent.y() + int(delta.y()))
event.accept()
if self.mouseMoveEventMainControls(event):
return

super().mouseMoveEvent(event)

def mouseReleaseEvent(self, event):
Expand All @@ -695,11 +681,8 @@ def mouseReleaseEvent(self, event):
self.zoom_active = False
event.accept()
return
if self.movewin_active:
self.movewin_active = False
event.accept()
if self.mouseReleaseEventMainControls(event):
return

super().mouseReleaseEvent(event)

def resizeEvent(self, event):
Expand Down
17 changes: 16 additions & 1 deletion beeref/widgets/__init__.py
Original file line number Diff line number Diff line change
Expand Up @@ -95,7 +95,7 @@ def __init__(self, parent):
super().__init__(parent)
self.control_target = parent
self.setAttribute(Qt.WidgetAttribute.WA_NoSystemBackground)
self.init_main_controls()
self.init_main_controls(main_window=parent.parent)

# Recent files
self.files_layout = QtWidgets.QVBoxLayout()
Expand Down Expand Up @@ -123,6 +123,21 @@ def show(self):
self.layout.insertLayout(0, self.files_layout)
super().show()

def mousePressEvent(self, event):
if self.mousePressEventMainControls(event):
return
super().mousePressEvent(event)

def mouseMoveEvent(self, event):
if self.mouseMoveEventMainControls(event):
return
super().mouseMoveEvent(event)

def mouseReleaseEvent(self, event):
if self.mouseReleaseEventMainControls(event):
return
super().mouseReleaseEvent(event)


class BeeProgressDialog(QtWidgets.QProgressDialog):

Expand Down

0 comments on commit 050451a

Please sign in to comment.