8000 FigureCanvasQT key auto repeat by JGoutin · Pull Request #6302 · matplotlib/matplotlib · GitHub
[go: up one dir, main page]

Skip to content

FigureCanvasQT key auto repeat #6302

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Merged
merged 6 commits into from
May 10, 2016
Merged
Changes from 1 commit
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Prev Previous commit
Next Next commit
Update backend_qt5.py
Key auto-repeat for push and release in one attribute.
Auto-repeat On by default for QT5.
  • Loading branch information
JGoutin committed Apr 16, 2016
commit cd59be63e80bd723ca85a309f11120e49c7f440b
39 changes: 13 additions & 26 deletions lib/matplotlib/backends/backend_qt5.py
Original file line number Diff line number Diff line change
Expand Up @@ -172,7 +172,7 @@ def new_figure_manager_given_figure(num, figure):

class TimerQT(TimerBase):
'''
Subclass of :class:`backend_bases.TimerBase` that uses Qt4 timer events.
Subclass of :class:`backend_bases.TimerBase` that uses Qt timer events.

Attributes:
* interval: The time between timer events in milliseconds. Default
Expand Down Expand Up @@ -226,10 +226,6 @@ class FigureCanvasQT(QtWidgets.QWidget, FigureCanvasBase):
# QtCore.Qt.XButton2: None,
}

# Key auto-repeat disabled by default
_keypressautorepeat = False
_keyreleaseautorepeat = False

def __init__(self, figure):
if DEBUG:
print('FigureCanvasQt qt5: ', figure)
Expand All @@ -246,6 +242,9 @@ def __init__(self, figure):
w, h = self.get_width_height()
self.resize(w, h)

# Key auto-repeat enabled by default
self._keyautorepeat = True

def enterEvent(self, event):
FigureCanvasBase.enter_notify_event(self, guiEvent=event)

Expand Down Expand Up @@ -311,29 +310,14 @@ def wheelEvent(self, event):
'steps = %i ' % (event.delta(), steps))

def keyPressEvent(self, event):
if not self._keypressautorepeat and event.isAutoRepeat():
return
key = self._get_key(event)
if key is None:
return
FigureCanvasBase.key_press_event(self, key, guiEvent=event)
if DEBUG:
print('key press', key)

@property
def keyPressAutoRepeat(self):
"""
If True, enable auto-repeat for key press events.
"""
return self._keypressautorepeat

@keyPressAutoRepeat.setter
def keyPressAutoRepeat(self, val):
self._keypressautorepeat = bool(val)

def keyReleaseEvent(self, event):
if not self._keyreleaseautorepeat and event.isAutoRepeat():
return
key = self._get_key(event)
if key is None:
return
Expand All @@ -342,15 +326,15 @@ def keyReleaseEvent(self, event):
print('key release', key)

@property
def keyReleaseAutoRepeat(self):
def keyAutoRepeat(self):
"""
If True, enable auto-repeat for key release events.
If True, enable auto-repeat for key events.
"""
return self._keyreleaseautorepeat
return self._keyautorepeat

@keyReleaseAutoRepeat.setter
def keyReleaseAutoRepeat(self, val):
self._keyreleaseautorepeat = bool(val)
@keyAutoRepeat.setter
def keyAutoRepeat(self, val):
self._keyautorepeat = bool(val)

def resizeEvent(self, event):
w = event.size().width()
Expand All @@ -374,6 +358,9 @@ def minumumSizeHint(self):
return QtCore.QSize(10, 10)

def _get_key(self, event):
if not self._keyautorepeat and event.isAutoRepeat():
return

event_key = event.key()
event_mods = int(event.modifiers()) # actually a bitmask

Expand Down
0