Exemplo n.º 1
0
    def eventFilter(self, obj, event):
        """ Reimplemented to trap key presses.
        """
        if (self.__editor.control and obj == self.__editor.control and
                event.type() == QtCore.QEvent.FocusOut):
            # Hack for Traits UI compatibility.
            self.__editor.control.emit(QtCore.SIGNAL('lostFocus'))

        elif (self.__editor.control and obj == self.__editor.control.code and
                event.type() == QtCore.QEvent.KeyPress):
            # Pyface doesn't seem to be Unicode aware.  Only keep the key code
            # if it corresponds to a single Latin1 character.
            kstr = event.text()
            try:
                kcode = ord(str(kstr))
            except:
                kcode = 0

            mods = event.modifiers()
            self.key_pressed = KeyPressedEvent(
                alt_down     = ((mods & QtCore.Qt.AltModifier) ==
                                QtCore.Qt.AltModifier),
                control_down = ((mods & QtCore.Qt.ControlModifier) ==
                                QtCore.Qt.ControlModifier),
                shift_down   = ((mods & QtCore.Qt.ShiftModifier) ==
                                QtCore.Qt.ShiftModifier),
                key_code     = kcode,
                event        = event)

        return super(PythonEditorEventFilter, self).eventFilter(obj, event)
Exemplo n.º 2
0
    def _wx_on_char(self, event):
        """ Called whenever a change is made to the text of the document. """

        # This was originally in the python_shell plugin, but is toolkit
        # specific.
        if event.m_altDown and event.m_keyCode == 317:
            zoom = self.shell.control.GetZoom()
            if zoom != 20:
                self.control.SetZoom(zoom+1)

        elif event.m_altDown and event.m_keyCode == 319:
            zoom = self.shell.control.GetZoom()
            if zoom != -10:
                self.control.SetZoom(zoom-1)

        self.key_pressed = KeyPressedEvent(
            alt_down     = event.m_altDown == 1,
            control_down = event.m_controlDown == 1,
            shift_down   = event.m_shiftDown == 1,
            key_code     = event.m_keyCode,
            event        = event
        )

        # Give other event handlers a chance.
        event.Skip()
Exemplo n.º 3
0
    def eventFilter(self, obj, e):
        """ Adds any event listeners required by the window. """

        window = self._window

        # Sanity check.
        if obj is not window.control:
            return False

        if e.type() == QtCore.QEvent.Close:
            # Do not destroy the window during its event handler.
            GUI.invoke_later(window.close)

            if window.control is not None:
                e.ignore()

            return True

        if e.type() == QtCore.QEvent.WindowActivate:
            window.activated = window

        elif e.type() == QtCore.QEvent.WindowDeactivate:
            window.deactivated = window

        elif e.type() == QtCore.QEvent.Resize:
            # Get the new size and set the shadow trait without performing
            # notification.
            size = e.size()
            window._size = (size.width(), size.height())

        elif e.type() == QtCore.QEvent.Move:
            # Get the real position and set the trait without performing
            # notification. Don't use event.pos(), as this excludes the window
            # frame geometry.
            pos = window.control.pos()
            window._position = (pos.x(), pos.y())

        elif e.type() == QtCore.QEvent.KeyPress:
            # Pyface doesn't seem to be Unicode aware.  Only keep the key code
            # if it corresponds to a single Latin1 character.
            kstr = e.text()
            try:
                kcode = ord(str(kstr))
            except:
                kcode = 0

            mods = e.modifiers()
            window.key_pressed = KeyPressedEvent(
                alt_down=((mods
                           & QtCore.Qt.AltModifier) == QtCore.Qt.AltModifier),
                control_down=((
                    mods
                    & QtCore.Qt.ControlModifier) == QtCore.Qt.ControlModifier),
                shift_down=(
                    (mods
                     & QtCore.Qt.ShiftModifier) == QtCore.Qt.ShiftModifier),
                key_code=kcode,
                event=e)

        return False
Exemplo n.º 4
0
    def _wx_on_char(self, event):
        """ Called when a key is pressed when the tree has focus. """

        self.key_pressed = KeyPressedEvent(
            alt_down=event.m_altDown == 1,
            control_down=event.m_controlDown == 1,
            shift_down=event.m_shiftDown == 1,
            key_code=event.m_keyCode,
            event=event)

        event.Skip()
Exemplo n.º 5
0
    def _on_char(self, event):
        """ Called when a key is pressed when the tree has focus. """

        self.key_pressed = KeyPressedEvent(
            alt_down=event.altDown,
            control_down=event.controlDown,
            shift_down=event.shiftDown,
            key_code=event.KeyCode,
        )

        event.Skip()
    def _wx_on_char(self, event):
        """ Called whenever a change is made to the text of the document. """
        self.key_pressed = KeyPressedEvent(
            alt_down=event.AltDown() == 1,
            control_down=event.ControlDown() == 1,
            shift_down=event.ShiftDown() == 1,
            key_code=event.GetKeyCode(),
            event=event)

        # Give other event handlers a chance.
        event.Skip()
Exemplo n.º 7
0
    def _on_char(self, event):
        """ Called when a key is pressed when the tree has focus. """

        self.key_pressed = KeyPressedEvent(alt_down=event.AltDown(),
                                           control_down=event.ControlDown(),
                                           shift_down=event.ShiftDown(),
                                           key_code=event.KeyCode)

        event.Skip()

        return
Exemplo n.º 8
0
    def _on_char(self, event):
        """ Called whenever a change is made to the text of the document. """

        self.key_pressed = KeyPressedEvent(
            alt_down=event.m_altDown == 1,
            control_down=event.m_controlDown == 1,
            shift_down=event.m_shiftDown == 1,
            key_code=event.m_keyCode,
            event=event)

        # Give other event handlers a chance.
        event.Skip()

        return
Exemplo n.º 9
0
    def keyPressEvent(self, event):
        """ Reimplemented to generate Pyface key press events.
        """
        # Pyface doesn't seem to be Unicode aware.  Only keep the key code if it
        # corresponds to a single Latin1 character.
        kstr = event.text()
        try:
            kcode = ord(str(kstr))
        except:
            kcode = 0

        mods = event.modifiers()
        self._pyface_widget.key_pressed = KeyPressedEvent(
            alt_down=((mods & QtCore.Qt.AltModifier) == QtCore.Qt.AltModifier),
            control_down=(
                (mods
                 & QtCore.Qt.ControlModifier) == QtCore.Qt.ControlModifier),
            shift_down=((
                mods & QtCore.Qt.ShiftModifier) == QtCore.Qt.ShiftModifier),
            key_code=kcode,
            event=event)

        super(PyfacePythonWidget, self).keyPressEvent(event)
Exemplo n.º 10
0
    def eventFilter(self, obj, e):
        """ Adds any event listeners required by the window. """

        window = self._window()

        # Sanity check.
        if window is None or obj is not window.control:
            return False

        typ = e.type()

        if typ == QtCore.QEvent.Type.Close:
            # Do not destroy the window during its event handler.
            GUI.invoke_later(window.close)

            if window.control is not None:
                e.ignore()

            return True

        if typ == QtCore.QEvent.Type.WindowActivate:
            window.activated = window

        elif typ == QtCore.QEvent.Type.WindowDeactivate:
            window.deactivated = window

        elif typ in {QtCore.QEvent.Type.Show, QtCore.QEvent.Type.Hide}:
            window.visible = window.control.isVisible()

        elif typ == QtCore.QEvent.Type.Resize:
            # Get the new size and set the shadow trait without performing
            # notification.
            size = e.size()
            window._size = (size.width(), size.height())

        elif typ == QtCore.QEvent.Type.Move:
            # Get the real position and set the trait without performing
            # notification. Don't use event.pos(), as this excludes the window
            # frame geometry.
            pos = window.control.pos()
            window._position = (pos.x(), pos.y())

        elif typ == QtCore.QEvent.Type.KeyPress:
            # Pyface doesn't seem to be Str aware.  Only keep the key code
            # if it corresponds to a single Latin1 character.
            kstr = e.text()
            try:
                kcode = ord(str(kstr))
            except:
                kcode = 0

            mods = e.modifiers()
            window.key_pressed = KeyPressedEvent(
                alt_down=((mods & QtCore.Qt.KeyboardModifier.AltModifier
                           ) == QtCore.Qt.KeyboardModifier.AltModifier),
                control_down=((mods
                               & QtCore.Qt.KeyboardModifier.ControlModifier) ==
                              QtCore.Qt.KeyboardModifier.ControlModifier),
                shift_down=((mods & QtCore.Qt.KeyboardModifier.ShiftModifier
                             ) == QtCore.Qt.KeyboardModifier.ShiftModifier),
                key_code=kcode,
                event=e,
            )

        elif typ == QtCore.QEvent.Type.WindowStateChange:
            # set the size_state of the window.
            state = obj.windowState()
            if state & QtCore.Qt.WindowState.WindowMaximized:
                window.size_state = "maximized"
            else:
                window.size_state = "normal"

        return False