8 """ |
8 """ |
9 |
9 |
10 from PyQt6.QtCore import pyqtSlot |
10 from PyQt6.QtCore import pyqtSlot |
11 from PyQt6.QtWidgets import QDialog |
11 from PyQt6.QtWidgets import QDialog |
12 |
12 |
13 from Preferences.ConfigurationPages.ConfigurationPageBase import ( |
13 from Preferences.ConfigurationPages.ConfigurationPageBase import ConfigurationPageBase |
14 ConfigurationPageBase |
|
15 ) |
|
16 |
14 |
17 from .Ui_EditorMouseClickHandlerJediPage import ( |
15 from .Ui_EditorMouseClickHandlerJediPage import Ui_EditorMouseClickHandlerJediPage |
18 Ui_EditorMouseClickHandlerJediPage |
|
19 ) |
|
20 |
16 |
21 from Utilities import MouseUtilities |
17 from Utilities import MouseUtilities |
22 |
18 |
23 import Preferences |
19 import Preferences |
24 from Preferences.MouseClickDialog import MouseClickDialog |
20 from Preferences.MouseClickDialog import MouseClickDialog |
25 |
21 |
26 |
22 |
27 class EditorMouseClickHandlerJediPage(ConfigurationPageBase, |
23 class EditorMouseClickHandlerJediPage( |
28 Ui_EditorMouseClickHandlerJediPage): |
24 ConfigurationPageBase, Ui_EditorMouseClickHandlerJediPage |
|
25 ): |
29 """ |
26 """ |
30 Class implementing the Jedi Mouse Click Handler configuration page. |
27 Class implementing the Jedi Mouse Click Handler configuration page. |
31 """ |
28 """ |
|
29 |
32 def __init__(self): |
30 def __init__(self): |
33 """ |
31 """ |
34 Constructor |
32 Constructor |
35 """ |
33 """ |
36 super().__init__() |
34 super().__init__() |
37 self.setupUi(self) |
35 self.setupUi(self) |
38 self.setObjectName("MouseClickHandlerJediPage") |
36 self.setObjectName("MouseClickHandlerJediPage") |
39 |
37 |
40 # set initial values |
38 # set initial values |
41 self.__modifiers = { |
39 self.__modifiers = { |
42 "goto": ( |
40 "goto": ( |
43 Preferences.getJedi("MouseClickGotoModifiers"), |
41 Preferences.getJedi("MouseClickGotoModifiers"), |
44 Preferences.getJedi("MouseClickGotoButton") |
42 Preferences.getJedi("MouseClickGotoButton"), |
45 ) |
43 ) |
46 } |
44 } |
47 |
45 |
48 self.jediClickHandlerCheckBox.setChecked( |
46 self.jediClickHandlerCheckBox.setChecked( |
49 Preferences.getJedi("MouseClickEnabled")) |
47 Preferences.getJedi("MouseClickEnabled") |
50 self.gotoClickEdit.setText(MouseUtilities.MouseButtonModifier2String( |
48 ) |
51 *self.__modifiers["goto"])) |
49 self.gotoClickEdit.setText( |
52 |
50 MouseUtilities.MouseButtonModifier2String(*self.__modifiers["goto"]) |
|
51 ) |
|
52 |
53 def save(self): |
53 def save(self): |
54 """ |
54 """ |
55 Public slot to save the Jedi Mouse Click Handler configuration. |
55 Public slot to save the Jedi Mouse Click Handler configuration. |
56 """ |
56 """ |
57 Preferences.setJedi( |
57 Preferences.setJedi( |
58 "MouseClickEnabled", self.jediClickHandlerCheckBox.isChecked()) |
58 "MouseClickEnabled", self.jediClickHandlerCheckBox.isChecked() |
59 Preferences.setJedi( |
59 ) |
60 "MouseClickGotoModifiers", self.__modifiers["goto"][0]) |
60 Preferences.setJedi("MouseClickGotoModifiers", self.__modifiers["goto"][0]) |
61 Preferences.setJedi( |
61 Preferences.setJedi("MouseClickGotoButton", self.__modifiers["goto"][1]) |
62 "MouseClickGotoButton", self.__modifiers["goto"][1]) |
62 |
63 |
|
64 @pyqtSlot() |
63 @pyqtSlot() |
65 def on_changeGotoButton_clicked(self): |
64 def on_changeGotoButton_clicked(self): |
66 """ |
65 """ |
67 Private slot to change the 'goto' mouse click sequence. |
66 Private slot to change the 'goto' mouse click sequence. |
68 """ |
67 """ |
69 dlg = MouseClickDialog(*self.__modifiers["goto"]) |
68 dlg = MouseClickDialog(*self.__modifiers["goto"]) |
70 if dlg.exec() == QDialog.DialogCode.Accepted: |
69 if dlg.exec() == QDialog.DialogCode.Accepted: |
71 self.__modifiers["goto"] = dlg.getClick() |
70 self.__modifiers["goto"] = dlg.getClick() |
72 self.gotoClickEdit.setText( |
71 self.gotoClickEdit.setText( |
73 MouseUtilities.MouseButtonModifier2String( |
72 MouseUtilities.MouseButtonModifier2String(*self.__modifiers["goto"]) |
74 *self.__modifiers["goto"])) |
73 ) |
75 |
74 |
76 |
75 |
77 def create(dlg): |
76 def create(dlg): |
78 """ |
77 """ |
79 Module function to create the configuration page. |
78 Module function to create the configuration page. |
80 |
79 |
81 @param dlg reference to the configuration dialog |
80 @param dlg reference to the configuration dialog |
82 @return reference to the instantiated page (ConfigurationPageBase) |
81 @return reference to the instantiated page (ConfigurationPageBase) |
83 """ |
82 """ |
84 page = EditorMouseClickHandlerJediPage() |
83 page = EditorMouseClickHandlerJediPage() |
85 return page |
84 return page |