RefactoringRope/ConfigurationPage/MouseClickHandlerRopePage.py

Wed, 26 May 2021 19:07:42 +0200

author
Detlev Offenbach <detlev@die-offenbachs.de>
date
Wed, 26 May 2021 19:07:42 +0200
branch
eric7
changeset 365
f740b50380df
parent 347
b5048b5ff454
child 369
ae43998a0cf8
permissions
-rw-r--r--

Ported the plug-in to PyQt6 for eric7.

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

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

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

from PyQt6.QtCore import pyqtSlot
from PyQt6.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("MouseClickHandlerRopePage")
        
        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.DialogCode.Accepted:
            self.__modifiers["goto"] = dlg.getClick()
            self.gotoClickEdit.setText(
                MouseUtilities.MouseButtonModifier2String(
                    *self.__modifiers["goto"]))

eric ide

mercurial