RefactoringRope/ConfigurationPage/MouseClickHandlerRopePage.py

Sat, 27 Jun 2015 11:15:48 +0200

author
Detlev Offenbach <detlev@die-offenbachs.de>
date
Sat, 27 Jun 2015 11:15:48 +0200
changeset 129
23ee57a96ea3
child 132
5384651b27c7
permissions
-rw-r--r--

Added capability to go to the definition of a class or function by clicking on it (while holding the Ctrl key or another configurable modifier sequence) (needs eric 6.1.0).

# -*- coding: utf-8 -*-

# Copyright (c) 2015 Detlev Offenbach <detlev@die-offenbachs.de>
#

"""
Module implementing the Rope Mouse Click Handler configuration page.
"""

from PyQt5.QtCore import pyqtSlot
from PyQt5.QtWidgets import QDialog

from Preferences.ConfigurationPages.ConfigurationPageBase import \
    ConfigurationPageBase
from .Ui_MouseClickHandlerRopePage import Ui_MouseClickHandlerRopePage

from Utilities import MouseUtilities
from Preferences.MouseClickDialog import MouseClickDialog


class MouseClickHandlerRopePage(ConfigurationPageBase,
                                Ui_MouseClickHandlerRopePage):
    """
    Class implementing the Rope Mouse Click Handler configuration page.
    """
    def __init__(self, plugin):
        """
        Constructor
        
        @param plugin reference to the plugin object
        @type RefactoringRopePlugin
        """
        ConfigurationPageBase.__init__(self)
        self.setupUi(self)
        self.setObjectName("AutoCompletionRopePage")
        
        self.__plugin = plugin
        
        # set initial values
        self.__modifiers = {
            "goto": (
                self.__plugin.getPreferences("MouseClickGotoModifiers"),
                self.__plugin.getPreferences("MouseClickGotoButton")
            )
        }
        
        self.ropeClickHandlerCheckBox.setChecked(
            self.__plugin.getPreferences("MouseClickEnabled"))
        self.gotoClickEdit.setText(MouseUtilities.MouseButtonModifier2String(
            *self.__modifiers["goto"]))
    
    def save(self):
        """
        Public slot to save the Rope Mouse Click Handler configuration.
        """
        self.__plugin.setPreferences("MouseClickEnabled",
            self.ropeClickHandlerCheckBox.isChecked())
        self.__plugin.setPreferences("MouseClickGotoModifiers",
            int(self.__modifiers["goto"][0]))
        self.__plugin.setPreferences("MouseClickGotoButton",
            int(self.__modifiers["goto"][1]))
    
    @pyqtSlot()
    def on_changeGotoButton_clicked(self):
        """
        Private slot to change the 'goto' mouse click sequence.
        """
        dlg = MouseClickDialog(*self.__modifiers["goto"])
        if dlg.exec_() == QDialog.Accepted:
            self.__modifiers["goto"] = dlg.getClick()
            self.gotoClickEdit.setText(
                MouseUtilities.MouseButtonModifier2String(
                    *self.__modifiers["goto"]))

eric ide

mercurial