From c84cf75a1ab7269264af2e5800c6f61d3909ff41 Mon Sep 17 00:00:00 2001 From: Samuel Fries Date: Wed, 25 Mar 2015 11:33:20 -0700 Subject: [PATCH 1/2] Fix control modifier on mac --- vistrails/packages/vtk/vtkcell.py | 46 +++++++++++++++++++++++++------ 1 file changed, 38 insertions(+), 8 deletions(-) diff --git a/vistrails/packages/vtk/vtkcell.py b/vistrails/packages/vtk/vtkcell.py index 0eb18cced..8aee5d982 100644 --- a/vistrails/packages/vtk/vtkcell.py +++ b/vistrails/packages/vtk/vtkcell.py @@ -511,8 +511,13 @@ def mousePressEvent(self,e): if (not self.iren) or (not self.iren.GetEnabled()): return - ctrl = (e.modifiers()&QtCore.Qt.ControlModifier) + if sys.platform == "darwin": + ctrl = (e.modifiers() & QtCore.Qt.MetaModifier) + else: + ctrl = (e.modifiers() & QtCore.Qt.ControlModifier) + isDoubleClick = e.type()==QtCore.QEvent.MouseButtonDblClick + self.iren.SetEventInformationFlipY(e.x(),e.y(), ctrl, (e.modifiers()&QtCore.Qt.ShiftModifier), @@ -543,8 +548,13 @@ def mouseMoveEvent(self,e): if (not self.iren) or (not self.iren.GetEnabled()): return + if sys.platform == "darwin": + ctrl = (e.modifiers() & QtCore.Qt.MetaModifier) + else: + ctrl = (e.modifiers() & QtCore.Qt.ControlModifier) + self.iren.SetEventInformationFlipY(e.x(),e.y(), - (e.modifiers()&QtCore.Qt.ControlModifier), + ctrl, (e.modifiers()&QtCore.Qt.ShiftModifier), chr(0), 0, None) @@ -581,8 +591,13 @@ def mouseReleaseEvent(self,e): if (not self.iren) or (not self.iren.GetEnabled()): return + if sys.platform == "darwin": + ctrl = (e.modifiers() & QtCore.Qt.MetaModifier) + else: + ctrl = (e.modifiers() & QtCore.Qt.ControlModifier) + self.iren.SetEventInformationFlipY(e.x(),e.y(), - (e.modifiers()&QtCore.Qt.ControlModifier), + ctrl, (e.modifiers()&QtCore.Qt.ShiftModifier), chr(0),0,None) @@ -615,7 +630,11 @@ def keyPressEvent(self,e): keysym = self.qt_key_to_key_sym(e.key()) # Ignore 'q' or 'e' or Ctrl-anykey - ctrl = (e.modifiers()&QtCore.Qt.ControlModifier) + if sys.platform == "darwin": + ctrl = (e.modifiers() & QtCore.Qt.MetaModifier) + else: + ctrl = (e.modifiers() & QtCore.Qt.ControlModifier) + shift = (e.modifiers()&QtCore.Qt.ShiftModifier) if (keysym in ['q', 'e'] or ctrl): e.ignore() @@ -649,7 +668,10 @@ def keyReleaseEvent(self,e): keysym = self.qt_key_to_key_sym(e.key()) # Ignore 'q' or 'e' or Ctrl-anykey - ctrl = (e.modifiers()&QtCore.Qt.ControlModifier) + if sys.platform == "darwin": + ctrl = (e.modifiers() & QtCore.Qt.MetaModifier) + else: + ctrl = (e.modifiers() & QtCore.Qt.ControlModifier) shift = (e.modifiers()&QtCore.Qt.ShiftModifier) if (keysym in ['q','e'] or ctrl): e.ignore() @@ -667,9 +689,12 @@ def wheelEvent(self,e): if (not self.iren) or (not self.iren.GetEnabled()): return - + if sys.platform == "darwin": + ctrl = (e.modifiers() & QtCore.Qt.MetaModifier) + else: + ctrl = (e.modifiers() & QtCore.Qt.ControlModifier) self.iren.SetEventInformationFlipY(e.x(),e.y(), - (e.modifiers()&QtCore.Qt.ControlModifier), + ctrl, (e.modifiers()&QtCore.Qt.ShiftModifier), chr(0),0,None) @@ -703,7 +728,12 @@ def contextMenuEvent(self,e): if (not self.iren) or (not self.iren.GetEnabled()): return - ctrl = int(e.modifiers()&QtCore.Qt.ControlModifier) + if sys.platform == "darwin": + ctrl = (e.modifiers() & QtCore.Qt.MetaModifier) + else: + ctrl = (e.modifiers() & QtCore.Qt.ControlModifier) + ctrl = int(ctrl) + shift = int(e.modifiers()&QtCore.Qt.ShiftModifier) self.iren.SetEventInformationFlipY(e.x(),e.y(),ctrl,shift,chr(0),0,None) self.iren.InvokeEvent("ContextMenuEvent") From 14d88b7e75d02def1a6a786b582ebd2c00f7432d Mon Sep 17 00:00:00 2001 From: Samuel Fries Date: Wed, 25 Mar 2015 15:14:12 -0700 Subject: [PATCH 2/2] Allows control click to actually do stuff, and doesn't toggle selection on mac --- .../spreadsheet/spreadsheet_window.py | 3 +- vistrails/packages/vtk/vtkcell.py | 55 +++++++------------ 2 files changed, 20 insertions(+), 38 deletions(-) diff --git a/vistrails/packages/spreadsheet/spreadsheet_window.py b/vistrails/packages/spreadsheet/spreadsheet_window.py index 1afd7afab..2043d429e 100644 --- a/vistrails/packages/spreadsheet/spreadsheet_window.py +++ b/vistrails/packages/spreadsheet/spreadsheet_window.py @@ -420,8 +420,7 @@ def eventFilter(self,q,e): if p and not p.isModal(): pos = p.viewport().mapFromGlobal(e.globalPos()) p.emit(QtCore.SIGNAL('cellActivated(int, int, bool)'), - p.rowAt(pos.y()), p.columnAt(pos.x()), - e.modifiers()==QtCore.Qt.ControlModifier) + p.rowAt(pos.y()), p.columnAt(pos.x()), False) except AttributeError: return False return False diff --git a/vistrails/packages/vtk/vtkcell.py b/vistrails/packages/vtk/vtkcell.py index 8aee5d982..c86ba0e9c 100644 --- a/vistrails/packages/vtk/vtkcell.py +++ b/vistrails/packages/vtk/vtkcell.py @@ -511,16 +511,14 @@ def mousePressEvent(self,e): if (not self.iren) or (not self.iren.GetEnabled()): return - if sys.platform == "darwin": - ctrl = (e.modifiers() & QtCore.Qt.MetaModifier) - else: - ctrl = (e.modifiers() & QtCore.Qt.ControlModifier) + + ctrl = bool(e.modifiers() & QtCore.Qt.ControlModifier) isDoubleClick = e.type()==QtCore.QEvent.MouseButtonDblClick self.iren.SetEventInformationFlipY(e.x(),e.y(), ctrl, - (e.modifiers()&QtCore.Qt.ShiftModifier), + bool(e.modifiers()&QtCore.Qt.ShiftModifier), chr(0), isDoubleClick, None) @@ -532,7 +530,6 @@ def mousePressEvent(self,e): if ctrl: e.ignore() - return self.interacting = self.getActiveRenderer(self.iren) @@ -548,14 +545,12 @@ def mouseMoveEvent(self,e): if (not self.iren) or (not self.iren.GetEnabled()): return - if sys.platform == "darwin": - ctrl = (e.modifiers() & QtCore.Qt.MetaModifier) - else: - ctrl = (e.modifiers() & QtCore.Qt.ControlModifier) + + ctrl = bool(e.modifiers() & QtCore.Qt.ControlModifier) self.iren.SetEventInformationFlipY(e.x(),e.y(), ctrl, - (e.modifiers()&QtCore.Qt.ShiftModifier), + bool(e.modifiers()&QtCore.Qt.ShiftModifier), chr(0), 0, None) self.iren.InvokeEvent("MouseMoveEvent") @@ -591,14 +586,12 @@ def mouseReleaseEvent(self,e): if (not self.iren) or (not self.iren.GetEnabled()): return - if sys.platform == "darwin": - ctrl = (e.modifiers() & QtCore.Qt.MetaModifier) - else: - ctrl = (e.modifiers() & QtCore.Qt.ControlModifier) + + ctrl = bool(e.modifiers() & QtCore.Qt.ControlModifier) self.iren.SetEventInformationFlipY(e.x(),e.y(), ctrl, - (e.modifiers()&QtCore.Qt.ShiftModifier), + bool(e.modifiers()&QtCore.Qt.ShiftModifier), chr(0),0,None) invoke = {QtCore.Qt.LeftButton:"LeftButtonReleaseEvent", @@ -630,12 +623,10 @@ def keyPressEvent(self,e): keysym = self.qt_key_to_key_sym(e.key()) # Ignore 'q' or 'e' or Ctrl-anykey - if sys.platform == "darwin": - ctrl = (e.modifiers() & QtCore.Qt.MetaModifier) - else: - ctrl = (e.modifiers() & QtCore.Qt.ControlModifier) - shift = (e.modifiers()&QtCore.Qt.ShiftModifier) + ctrl = bool(e.modifiers() & QtCore.Qt.ControlModifier) + + shift = bool(e.modifiers()&QtCore.Qt.ShiftModifier) if (keysym in ['q', 'e'] or ctrl): e.ignore() return @@ -668,11 +659,9 @@ def keyReleaseEvent(self,e): keysym = self.qt_key_to_key_sym(e.key()) # Ignore 'q' or 'e' or Ctrl-anykey - if sys.platform == "darwin": - ctrl = (e.modifiers() & QtCore.Qt.MetaModifier) - else: - ctrl = (e.modifiers() & QtCore.Qt.ControlModifier) - shift = (e.modifiers()&QtCore.Qt.ShiftModifier) + + ctrl = bool(e.modifiers() & QtCore.Qt.ControlModifier) + shift = bool(e.modifiers()&QtCore.Qt.ShiftModifier) if (keysym in ['q','e'] or ctrl): e.ignore() return @@ -689,13 +678,11 @@ def wheelEvent(self,e): if (not self.iren) or (not self.iren.GetEnabled()): return - if sys.platform == "darwin": - ctrl = (e.modifiers() & QtCore.Qt.MetaModifier) - else: - ctrl = (e.modifiers() & QtCore.Qt.ControlModifier) + + ctrl = bool(e.modifiers() & QtCore.Qt.ControlModifier) self.iren.SetEventInformationFlipY(e.x(),e.y(), ctrl, - (e.modifiers()&QtCore.Qt.ShiftModifier), + bool(e.modifiers()&QtCore.Qt.ShiftModifier), chr(0),0,None) self.SelectActiveRenderer(self.iren) @@ -728,11 +715,7 @@ def contextMenuEvent(self,e): if (not self.iren) or (not self.iren.GetEnabled()): return - if sys.platform == "darwin": - ctrl = (e.modifiers() & QtCore.Qt.MetaModifier) - else: - ctrl = (e.modifiers() & QtCore.Qt.ControlModifier) - ctrl = int(ctrl) + ctrl = int(e.modifiers() & QtCore.Qt.ControlModifier) shift = int(e.modifiers()&QtCore.Qt.ShiftModifier) self.iren.SetEventInformationFlipY(e.x(),e.y(),ctrl,shift,chr(0),0,None)