RefactoringRope/ConfigurationPage/MouseClickHandlerRopePage.py

Tue, 10 Dec 2024 15:49:01 +0100

author
Detlev Offenbach <detlev@die-offenbachs.de>
date
Tue, 10 Dec 2024 15:49:01 +0100
branch
eric7
changeset 426
7592a1c052e8
parent 423
9dfc89a5aadf
permissions
-rw-r--r--

Updated copyright for 2025.

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

# Copyright (c) 2015 - 2025 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 eric7.Preferences.ConfigurationPages.ConfigurationPageBase import (
    ConfigurationPageBase,
)
from eric7.Preferences.MouseClickDialog import MouseClickDialog
from eric7.Utilities import MouseUtilities

from .Ui_MouseClickHandlerRopePage import Ui_MouseClickHandlerRopePage


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", self.__modifiers["goto"][0]
        )
        self.__plugin.setPreferences(
            "MouseClickGotoButton", self.__modifiers["goto"][1]
        )

    @pyqtSlot()
    def on_changeGotoButton_clicked(self):
        """
        Private slot to change the 'goto' mouse click sequence.
        """
        dlg = MouseClickDialog(*self.__modifiers["goto"], parent=self)
        if dlg.exec() == QDialog.DialogCode.Accepted:
            self.__modifiers["goto"] = dlg.getClick()
            self.gotoClickEdit.setText(
                MouseUtilities.MouseButtonModifier2String(*self.__modifiers["goto"])
            )

eric ide

mercurial