Mon, 12 Oct 2020 18:23:44 +0200
Performed some code cleanup.
2190
abd65b78425e
Added a notification system and updated the source documentation.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
1 | # -*- coding: utf-8 -*- |
abd65b78425e
Added a notification system and updated the source documentation.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
2 | |
7360
9190402e4505
Updated copyright for 2020.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7229
diff
changeset
|
3 | # Copyright (c) 2012 - 2020 Detlev Offenbach <detlev@die-offenbachs.de> |
2190
abd65b78425e
Added a notification system and updated the source documentation.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
4 | # |
abd65b78425e
Added a notification system and updated the source documentation.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
5 | |
abd65b78425e
Added a notification system and updated the source documentation.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
6 | """ |
abd65b78425e
Added a notification system and updated the source documentation.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
7 | Module implementing the Notifications configuration page. |
abd65b78425e
Added a notification system and updated the source documentation.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
8 | """ |
abd65b78425e
Added a notification system and updated the source documentation.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
9 | |
3656
441956d8fce5
Started porting eric5 to PyQt5.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
3484
diff
changeset
|
10 | from PyQt5.QtCore import pyqtSlot, QPoint |
441956d8fce5
Started porting eric5 to PyQt5.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
3484
diff
changeset
|
11 | from PyQt5.QtWidgets import QApplication |
2190
abd65b78425e
Added a notification system and updated the source documentation.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
12 | |
abd65b78425e
Added a notification system and updated the source documentation.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
13 | from .ConfigurationPageBase import ConfigurationPageBase |
abd65b78425e
Added a notification system and updated the source documentation.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
14 | from .Ui_NotificationsPage import Ui_NotificationsPage |
abd65b78425e
Added a notification system and updated the source documentation.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
15 | |
abd65b78425e
Added a notification system and updated the source documentation.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
16 | import Preferences |
abd65b78425e
Added a notification system and updated the source documentation.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
17 | import UI.PixmapCache |
abd65b78425e
Added a notification system and updated the source documentation.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
18 | |
6911
8f4a050c6895
Changed some code to avoid obsolete Qt functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6645
diff
changeset
|
19 | from Globals import qVersionTuple |
8f4a050c6895
Changed some code to avoid obsolete Qt functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6645
diff
changeset
|
20 | |
2190
abd65b78425e
Added a notification system and updated the source documentation.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
21 | |
abd65b78425e
Added a notification system and updated the source documentation.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
22 | class NotificationsPage(ConfigurationPageBase, Ui_NotificationsPage): |
abd65b78425e
Added a notification system and updated the source documentation.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
23 | """ |
abd65b78425e
Added a notification system and updated the source documentation.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
24 | Class implementing the Notifications configuration page. |
abd65b78425e
Added a notification system and updated the source documentation.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
25 | """ |
abd65b78425e
Added a notification system and updated the source documentation.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
26 | def __init__(self): |
abd65b78425e
Added a notification system and updated the source documentation.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
27 | """ |
abd65b78425e
Added a notification system and updated the source documentation.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
28 | Constructor |
abd65b78425e
Added a notification system and updated the source documentation.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
29 | """ |
2525
8b507a9a2d40
Script changes: Future import added, super calls modified and unicode behavior for str.
T.Rzepka <Tobias.Rzepka@gmail.com>
parents:
2408
diff
changeset
|
30 | super(NotificationsPage, self).__init__() |
2190
abd65b78425e
Added a notification system and updated the source documentation.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
31 | self.setupUi(self) |
abd65b78425e
Added a notification system and updated the source documentation.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
32 | self.setObjectName("NotificationsPage") |
abd65b78425e
Added a notification system and updated the source documentation.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
33 | |
2224
c681f765d64d
Fixed an issue configuring the notification position on multi screen computers.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2190
diff
changeset
|
34 | minX, maxX = self.xSpinBox.maximum(), self.xSpinBox.minimum() |
2280
8e85ca3fabe7
Fixed a few PEP-8 related issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2224
diff
changeset
|
35 | minY, maxY = self.ySpinBox.maximum(), self.ySpinBox.minimum() |
6911
8f4a050c6895
Changed some code to avoid obsolete Qt functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6645
diff
changeset
|
36 | if qVersionTuple() >= (5, 10, 0): |
8f4a050c6895
Changed some code to avoid obsolete Qt functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6645
diff
changeset
|
37 | for screen in QApplication.screens(): |
8f4a050c6895
Changed some code to avoid obsolete Qt functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6645
diff
changeset
|
38 | geom = screen.availableGeometry() |
8f4a050c6895
Changed some code to avoid obsolete Qt functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6645
diff
changeset
|
39 | minX = min(minX, geom.x()) |
8f4a050c6895
Changed some code to avoid obsolete Qt functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6645
diff
changeset
|
40 | maxX = max(maxX, geom.x() + geom.width()) |
8f4a050c6895
Changed some code to avoid obsolete Qt functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6645
diff
changeset
|
41 | minY = min(minY, geom.y()) |
8f4a050c6895
Changed some code to avoid obsolete Qt functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6645
diff
changeset
|
42 | maxY = max(maxY, geom.y() + geom.height()) |
8f4a050c6895
Changed some code to avoid obsolete Qt functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6645
diff
changeset
|
43 | else: |
8f4a050c6895
Changed some code to avoid obsolete Qt functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6645
diff
changeset
|
44 | desk = QApplication.desktop() |
8f4a050c6895
Changed some code to avoid obsolete Qt functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6645
diff
changeset
|
45 | for screen in range(desk.screenCount()): |
8f4a050c6895
Changed some code to avoid obsolete Qt functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6645
diff
changeset
|
46 | geom = desk.availableGeometry(screen) |
8f4a050c6895
Changed some code to avoid obsolete Qt functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6645
diff
changeset
|
47 | minX = min(minX, geom.x()) |
8f4a050c6895
Changed some code to avoid obsolete Qt functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6645
diff
changeset
|
48 | maxX = max(maxX, geom.x() + geom.width()) |
8f4a050c6895
Changed some code to avoid obsolete Qt functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6645
diff
changeset
|
49 | minY = min(minY, geom.y()) |
8f4a050c6895
Changed some code to avoid obsolete Qt functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6645
diff
changeset
|
50 | maxY = max(maxY, geom.y() + geom.height()) |
2224
c681f765d64d
Fixed an issue configuring the notification position on multi screen computers.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2190
diff
changeset
|
51 | self.xSpinBox.setMinimum(minX) |
c681f765d64d
Fixed an issue configuring the notification position on multi screen computers.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2190
diff
changeset
|
52 | self.xSpinBox.setMaximum(maxX) |
c681f765d64d
Fixed an issue configuring the notification position on multi screen computers.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2190
diff
changeset
|
53 | self.ySpinBox.setMinimum(minY) |
c681f765d64d
Fixed an issue configuring the notification position on multi screen computers.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2190
diff
changeset
|
54 | self.ySpinBox.setMaximum(maxY) |
2190
abd65b78425e
Added a notification system and updated the source documentation.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
55 | |
abd65b78425e
Added a notification system and updated the source documentation.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
56 | self.__notification = None |
abd65b78425e
Added a notification system and updated the source documentation.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
57 | |
abd65b78425e
Added a notification system and updated the source documentation.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
58 | # set initial values |
3010
befeff46ec0f
Continued to shorten the code lines to max. 79 characters.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2964
diff
changeset
|
59 | self.enableCheckBox.setChecked( |
befeff46ec0f
Continued to shorten the code lines to max. 79 characters.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2964
diff
changeset
|
60 | Preferences.getUI("NotificationsEnabled")) |
2190
abd65b78425e
Added a notification system and updated the source documentation.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
61 | self.timeoutSpinBox.setValue(Preferences.getUI("NotificationTimeout")) |
abd65b78425e
Added a notification system and updated the source documentation.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
62 | point = Preferences.getUI("NotificationPosition") |
abd65b78425e
Added a notification system and updated the source documentation.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
63 | self.xSpinBox.setValue(point.x()) |
abd65b78425e
Added a notification system and updated the source documentation.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
64 | self.ySpinBox.setValue(point.y()) |
abd65b78425e
Added a notification system and updated the source documentation.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
65 | |
abd65b78425e
Added a notification system and updated the source documentation.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
66 | def save(self): |
abd65b78425e
Added a notification system and updated the source documentation.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
67 | """ |
abd65b78425e
Added a notification system and updated the source documentation.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
68 | Public slot to save the Notifications configuration. |
abd65b78425e
Added a notification system and updated the source documentation.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
69 | """ |
3010
befeff46ec0f
Continued to shorten the code lines to max. 79 characters.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2964
diff
changeset
|
70 | Preferences.setUI( |
befeff46ec0f
Continued to shorten the code lines to max. 79 characters.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2964
diff
changeset
|
71 | "NotificationsEnabled", self.enableCheckBox.isChecked()) |
2190
abd65b78425e
Added a notification system and updated the source documentation.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
72 | Preferences.setUI("NotificationTimeout", self.timeoutSpinBox.value()) |
abd65b78425e
Added a notification system and updated the source documentation.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
73 | Preferences.setUI("NotificationPosition", QPoint( |
abd65b78425e
Added a notification system and updated the source documentation.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
74 | self.xSpinBox.value(), self.ySpinBox.value())) |
abd65b78425e
Added a notification system and updated the source documentation.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
75 | |
abd65b78425e
Added a notification system and updated the source documentation.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
76 | @pyqtSlot(bool) |
abd65b78425e
Added a notification system and updated the source documentation.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
77 | def on_visualButton_clicked(self, checked): |
abd65b78425e
Added a notification system and updated the source documentation.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
78 | """ |
abd65b78425e
Added a notification system and updated the source documentation.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
79 | Private slot to select the position visually. |
abd65b78425e
Added a notification system and updated the source documentation.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
80 | |
abd65b78425e
Added a notification system and updated the source documentation.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
81 | @param checked state of the button (boolean) |
abd65b78425e
Added a notification system and updated the source documentation.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
82 | """ |
abd65b78425e
Added a notification system and updated the source documentation.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
83 | if checked: |
2408
dc3a7c9d8f6e
Continued implementing the delayed import.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2302
diff
changeset
|
84 | from UI.NotificationWidget import NotificationWidget |
3010
befeff46ec0f
Continued to shorten the code lines to max. 79 characters.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2964
diff
changeset
|
85 | self.__notification = NotificationWidget( |
befeff46ec0f
Continued to shorten the code lines to max. 79 characters.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2964
diff
changeset
|
86 | parent=self, setPosition=True) |
befeff46ec0f
Continued to shorten the code lines to max. 79 characters.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2964
diff
changeset
|
87 | self.__notification.setPixmap( |
7533
88261c96484b
Removed the '.png' extension from all call to get an icon or a pixmap from the PixmapCache because this is not needed anymore.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7360
diff
changeset
|
88 | UI.PixmapCache.getPixmap("notification48")) |
3190
a9a94491c4fd
Changed the code to use QObject.tr() instead of QObject.trUtf8().
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
3160
diff
changeset
|
89 | self.__notification.setHeading(self.tr("Visual Selection")) |
3010
befeff46ec0f
Continued to shorten the code lines to max. 79 characters.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2964
diff
changeset
|
90 | self.__notification.setText( |
3190
a9a94491c4fd
Changed the code to use QObject.tr() instead of QObject.trUtf8().
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
3160
diff
changeset
|
91 | self.tr("Drag the notification window to" |
a9a94491c4fd
Changed the code to use QObject.tr() instead of QObject.trUtf8().
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
3160
diff
changeset
|
92 | " the desired place and release the button.")) |
3010
befeff46ec0f
Continued to shorten the code lines to max. 79 characters.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2964
diff
changeset
|
93 | self.__notification.move( |
befeff46ec0f
Continued to shorten the code lines to max. 79 characters.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2964
diff
changeset
|
94 | QPoint(self.xSpinBox.value(), self.ySpinBox.value())) |
2190
abd65b78425e
Added a notification system and updated the source documentation.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
95 | self.__notification.show() |
abd65b78425e
Added a notification system and updated the source documentation.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
96 | else: |
abd65b78425e
Added a notification system and updated the source documentation.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
97 | # retrieve the position |
abd65b78425e
Added a notification system and updated the source documentation.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
98 | point = self.__notification.frameGeometry().topLeft() |
abd65b78425e
Added a notification system and updated the source documentation.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
99 | self.xSpinBox.setValue(point.x()) |
abd65b78425e
Added a notification system and updated the source documentation.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
100 | self.ySpinBox.setValue(point.y()) |
abd65b78425e
Added a notification system and updated the source documentation.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
101 | self.__notification.close() |
abd65b78425e
Added a notification system and updated the source documentation.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
102 | self.__notification = None |
abd65b78425e
Added a notification system and updated the source documentation.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
103 | |
abd65b78425e
Added a notification system and updated the source documentation.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
104 | |
abd65b78425e
Added a notification system and updated the source documentation.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
105 | def create(dlg): |
abd65b78425e
Added a notification system and updated the source documentation.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
106 | """ |
abd65b78425e
Added a notification system and updated the source documentation.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
107 | Module function to create the configuration page. |
abd65b78425e
Added a notification system and updated the source documentation.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
108 | |
abd65b78425e
Added a notification system and updated the source documentation.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
109 | @param dlg reference to the configuration dialog |
2964
84b65fb9e780
Continued correcting doc strings by using the new doc string checker.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2408
diff
changeset
|
110 | @return reference to the instantiated page (ConfigurationPageBase) |
2190
abd65b78425e
Added a notification system and updated the source documentation.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
111 | """ |
abd65b78425e
Added a notification system and updated the source documentation.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
112 | page = NotificationsPage() |
abd65b78425e
Added a notification system and updated the source documentation.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
113 | return page |