eric7/EricWidgets/EricApplication.py

Sun, 19 Dec 2021 17:58:08 +0100

author
Detlev Offenbach <detlev@die-offenbachs.de>
date
Sun, 19 Dec 2021 17:58:08 +0100
branch
eric7
changeset 8840
c9fa102d0194
parent 8837
6b4b2acc5324
child 8843
586ee2c4553a
permissions
-rw-r--r--

Fixed an issue during startup.

55
b5c84934de9c Renamed E4Gui to E5Gui.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1 # -*- coding: utf-8 -*-
b5c84934de9c Renamed E4Gui to E5Gui.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
2
7923
91e843545d9a Updated copyright for 2021.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7780
diff changeset
3 # Copyright (c) 2009 - 2021 Detlev Offenbach <detlev@die-offenbachs.de>
55
b5c84934de9c Renamed E4Gui to E5Gui.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
4 #
b5c84934de9c Renamed E4Gui to E5Gui.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
5
b5c84934de9c Renamed E4Gui to E5Gui.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
6 """
b5c84934de9c Renamed E4Gui to E5Gui.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
7 Class implementing a specialized application class.
b5c84934de9c Renamed E4Gui to E5Gui.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
8 """
b5c84934de9c Renamed E4Gui to E5Gui.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
9
8318
962bce857696 Replaced all imports of PyQt5 to PyQt6 and started to replace code using obsoleted methods and adapt to the PyQt6 enum usage.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8312
diff changeset
10 from PyQt6.QtCore import Qt, QCoreApplication
8837
6b4b2acc5324 Added capability to configure the eric application palette via a QSS file (handled internally by eric).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8729
diff changeset
11 from PyQt6.QtGui import QColor, QPalette
8318
962bce857696 Replaced all imports of PyQt5 to PyQt6 and started to replace code using obsoleted methods and adapt to the PyQt6 enum usage.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8312
diff changeset
12 from PyQt6.QtWidgets import QApplication
55
b5c84934de9c Renamed E4Gui to E5Gui.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
13
8143
2c730d5fd177 Changed the use of PyQt enums because the way they were used previously is deprecated since two years and replaced some deprecated Qt stuff.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7984
diff changeset
14 QCoreApplication.setAttribute(
2c730d5fd177 Changed the use of PyQt enums because the way they were used previously is deprecated since two years and replaced some deprecated Qt stuff.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7984
diff changeset
15 Qt.ApplicationAttribute.AA_ShareOpenGLContexts, True)
7589
c1f81fd8c33a E5Application: fixed a warning related to initialisation of Qt.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7502
diff changeset
16
8837
6b4b2acc5324 Added capability to configure the eric application palette via a QSS file (handled internally by eric).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8729
diff changeset
17 from . import EricMessageBox
6b4b2acc5324 Added capability to configure the eric application palette via a QSS file (handled internally by eric).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8729
diff changeset
18
945
8cd4d08fa9f6 Made code mostly PEP 8 compliant (except all whitespace and line length).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 791
diff changeset
19
8356
68ec9c3d4de5 Renamed the modules and classes of the E5Gui package to have the prefix 'Eric' instead of 'E5'.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8318
diff changeset
20 class EricApplication(QApplication):
55
b5c84934de9c Renamed E4Gui to E5Gui.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
21 """
b5c84934de9c Renamed E4Gui to E5Gui.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
22 Eric application class with an object registry.
b5c84934de9c Renamed E4Gui to E5Gui.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
23 """
8837
6b4b2acc5324 Added capability to configure the eric application palette via a QSS file (handled internally by eric).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8729
diff changeset
24 PaletteRoleMapping = {
6b4b2acc5324 Added capability to configure the eric application palette via a QSS file (handled internally by eric).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8729
diff changeset
25 "alternate-base": QPalette.ColorRole.AlternateBase,
6b4b2acc5324 Added capability to configure the eric application palette via a QSS file (handled internally by eric).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8729
diff changeset
26 "base": QPalette.ColorRole.Base,
6b4b2acc5324 Added capability to configure the eric application palette via a QSS file (handled internally by eric).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8729
diff changeset
27 "text": QPalette.ColorRole.Text,
6b4b2acc5324 Added capability to configure the eric application palette via a QSS file (handled internally by eric).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8729
diff changeset
28 "bright-text": QPalette.ColorRole.BrightText,
6b4b2acc5324 Added capability to configure the eric application palette via a QSS file (handled internally by eric).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8729
diff changeset
29 "placeholder-text": QPalette.ColorRole.PlaceholderText,
6b4b2acc5324 Added capability to configure the eric application palette via a QSS file (handled internally by eric).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8729
diff changeset
30 "window": QPalette.ColorRole.Window,
6b4b2acc5324 Added capability to configure the eric application palette via a QSS file (handled internally by eric).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8729
diff changeset
31 " window-text": QPalette.ColorRole.WindowText,
6b4b2acc5324 Added capability to configure the eric application palette via a QSS file (handled internally by eric).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8729
diff changeset
32 "tooltip-base": QPalette.ColorRole.ToolTipBase,
6b4b2acc5324 Added capability to configure the eric application palette via a QSS file (handled internally by eric).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8729
diff changeset
33 "tooltip-text": QPalette.ColorRole.ToolTipText,
6b4b2acc5324 Added capability to configure the eric application palette via a QSS file (handled internally by eric).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8729
diff changeset
34 "button": QPalette.ColorRole.Button,
6b4b2acc5324 Added capability to configure the eric application palette via a QSS file (handled internally by eric).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8729
diff changeset
35 "button-text": QPalette.ColorRole.ButtonText,
6b4b2acc5324 Added capability to configure the eric application palette via a QSS file (handled internally by eric).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8729
diff changeset
36 "highlight": QPalette.ColorRole.Highlight,
6b4b2acc5324 Added capability to configure the eric application palette via a QSS file (handled internally by eric).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8729
diff changeset
37 "highlighted-text": QPalette.ColorRole.HighlightedText,
6b4b2acc5324 Added capability to configure the eric application palette via a QSS file (handled internally by eric).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8729
diff changeset
38 "link": QPalette.ColorRole.Link,
6b4b2acc5324 Added capability to configure the eric application palette via a QSS file (handled internally by eric).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8729
diff changeset
39 "link-visited": QPalette.ColorRole.LinkVisited,
6b4b2acc5324 Added capability to configure the eric application palette via a QSS file (handled internally by eric).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8729
diff changeset
40 }
6b4b2acc5324 Added capability to configure the eric application palette via a QSS file (handled internally by eric).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8729
diff changeset
41
55
b5c84934de9c Renamed E4Gui to E5Gui.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
42 def __init__(self, argv):
b5c84934de9c Renamed E4Gui to E5Gui.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
43 """
b5c84934de9c Renamed E4Gui to E5Gui.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
44 Constructor
b5c84934de9c Renamed E4Gui to E5Gui.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
45
b5c84934de9c Renamed E4Gui to E5Gui.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
46 @param argv command line arguments
7493
1696e91a5393 Added vector icons for the mercurial and subversion plug-ins.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7360
diff changeset
47 @type list
55
b5c84934de9c Renamed E4Gui to E5Gui.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
48 """
8218
7c09585bd960 Applied some more code simplifications suggested by the new Simplify checker (super(Foo, self) => super()).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8205
diff changeset
49 super().__init__(argv)
55
b5c84934de9c Renamed E4Gui to E5Gui.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
50
7984
e48dd1b7b2fa E5Application: did some code cleanup.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7923
diff changeset
51 QCoreApplication.setAttribute(
8143
2c730d5fd177 Changed the use of PyQt enums because the way they were used previously is deprecated since two years and replaced some deprecated Qt stuff.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7984
diff changeset
52 Qt.ApplicationAttribute.AA_DontCreateNativeWidgetSiblings, True)
5767
e899248519e0 Added code to suppress the generation of native widget siblings.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5587
diff changeset
53
55
b5c84934de9c Renamed E4Gui to E5Gui.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
54 self.__objectRegistry = {}
b5c84934de9c Renamed E4Gui to E5Gui.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
55 self.__pluginObjectRegistry = {}
8729
226da2e26a84 Changed the 'small-screen' related code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8358
diff changeset
56
226da2e26a84 Changed the 'small-screen' related code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8358
diff changeset
57 self.__smallScreen = False
226da2e26a84 Changed the 'small-screen' related code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8358
diff changeset
58 if "--small-screen" in argv:
226da2e26a84 Changed the 'small-screen' related code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8358
diff changeset
59 self.__smallScreen = True
226da2e26a84 Changed the 'small-screen' related code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8358
diff changeset
60 argv.remove("--small-screen")
226da2e26a84 Changed the 'small-screen' related code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8358
diff changeset
61 if not self.__smallScreen:
226da2e26a84 Changed the 'small-screen' related code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8358
diff changeset
62 primaryScreenSize = self.primaryScreen().size()
226da2e26a84 Changed the 'small-screen' related code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8358
diff changeset
63 self.__smallScreen = (
226da2e26a84 Changed the 'small-screen' related code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8358
diff changeset
64 primaryScreenSize.width() < 1920 or
226da2e26a84 Changed the 'small-screen' related code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8358
diff changeset
65 primaryScreenSize.height() < 1080
226da2e26a84 Changed the 'small-screen' related code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8358
diff changeset
66 )
226da2e26a84 Changed the 'small-screen' related code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8358
diff changeset
67
226da2e26a84 Changed the 'small-screen' related code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8358
diff changeset
68 def usesSmallScreen(self):
226da2e26a84 Changed the 'small-screen' related code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8358
diff changeset
69 """
226da2e26a84 Changed the 'small-screen' related code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8358
diff changeset
70 Public method to determine, if the application is used on a small
226da2e26a84 Changed the 'small-screen' related code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8358
diff changeset
71 screen.
226da2e26a84 Changed the 'small-screen' related code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8358
diff changeset
72
226da2e26a84 Changed the 'small-screen' related code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8358
diff changeset
73 @return flag indicating the use of a small screen
226da2e26a84 Changed the 'small-screen' related code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8358
diff changeset
74 @rtype bool
226da2e26a84 Changed the 'small-screen' related code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8358
diff changeset
75 """
226da2e26a84 Changed the 'small-screen' related code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8358
diff changeset
76 return self.__smallScreen
7493
1696e91a5393 Added vector icons for the mercurial and subversion plug-ins.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7360
diff changeset
77
5587
ea526b78ee6c Started to fix code style issues detected by the extended style checker.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5389
diff changeset
78 def registerObject(self, name, objectRef):
55
b5c84934de9c Renamed E4Gui to E5Gui.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
79 """
b5c84934de9c Renamed E4Gui to E5Gui.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
80 Public method to register an object in the object registry.
b5c84934de9c Renamed E4Gui to E5Gui.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
81
7493
1696e91a5393 Added vector icons for the mercurial and subversion plug-ins.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7360
diff changeset
82 @param name name of the object
1696e91a5393 Added vector icons for the mercurial and subversion plug-ins.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7360
diff changeset
83 @type str
5587
ea526b78ee6c Started to fix code style issues detected by the extended style checker.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5389
diff changeset
84 @param objectRef reference to the object
7493
1696e91a5393 Added vector icons for the mercurial and subversion plug-ins.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7360
diff changeset
85 @type any
55
b5c84934de9c Renamed E4Gui to E5Gui.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
86 @exception KeyError raised when the given name is already in use
b5c84934de9c Renamed E4Gui to E5Gui.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
87 """
b5c84934de9c Renamed E4Gui to E5Gui.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
88 if name in self.__objectRegistry:
410
e5d1addeb90c Did some more string format conversions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 55
diff changeset
89 raise KeyError('Object "{0}" already registered.'.format(name))
55
b5c84934de9c Renamed E4Gui to E5Gui.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
90 else:
5587
ea526b78ee6c Started to fix code style issues detected by the extended style checker.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5389
diff changeset
91 self.__objectRegistry[name] = objectRef
7493
1696e91a5393 Added vector icons for the mercurial and subversion plug-ins.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7360
diff changeset
92
55
b5c84934de9c Renamed E4Gui to E5Gui.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
93 def getObject(self, name):
b5c84934de9c Renamed E4Gui to E5Gui.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
94 """
b5c84934de9c Renamed E4Gui to E5Gui.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
95 Public method to get a reference to a registered object.
b5c84934de9c Renamed E4Gui to E5Gui.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
96
7493
1696e91a5393 Added vector icons for the mercurial and subversion plug-ins.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7360
diff changeset
97 @param name name of the object
1696e91a5393 Added vector icons for the mercurial and subversion plug-ins.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7360
diff changeset
98 @type str
55
b5c84934de9c Renamed E4Gui to E5Gui.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
99 @return reference to the registered object
7502
426f64d419f0 Regenerated the source docu.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7493
diff changeset
100 @rtype any
55
b5c84934de9c Renamed E4Gui to E5Gui.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
101 @exception KeyError raised when the given name is not known
b5c84934de9c Renamed E4Gui to E5Gui.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
102 """
8205
4a0f1f896341 Applied some code simplifications suggested by the new Simplify checker.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8143
diff changeset
103 if name not in self.__objectRegistry:
410
e5d1addeb90c Did some more string format conversions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 55
diff changeset
104 raise KeyError('Object "{0}" is not registered.'.format(name))
8205
4a0f1f896341 Applied some code simplifications suggested by the new Simplify checker.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8143
diff changeset
105
4a0f1f896341 Applied some code simplifications suggested by the new Simplify checker.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8143
diff changeset
106 return self.__objectRegistry[name]
7493
1696e91a5393 Added vector icons for the mercurial and subversion plug-ins.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7360
diff changeset
107
5587
ea526b78ee6c Started to fix code style issues detected by the extended style checker.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5389
diff changeset
108 def registerPluginObject(self, name, objectRef, pluginType=None):
55
b5c84934de9c Renamed E4Gui to E5Gui.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
109 """
b5c84934de9c Renamed E4Gui to E5Gui.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
110 Public method to register a plugin object in the object registry.
b5c84934de9c Renamed E4Gui to E5Gui.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
111
7493
1696e91a5393 Added vector icons for the mercurial and subversion plug-ins.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7360
diff changeset
112 @param name name of the plugin object
1696e91a5393 Added vector icons for the mercurial and subversion plug-ins.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7360
diff changeset
113 @type str
5587
ea526b78ee6c Started to fix code style issues detected by the extended style checker.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5389
diff changeset
114 @param objectRef reference to the plugin object
7493
1696e91a5393 Added vector icons for the mercurial and subversion plug-ins.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7360
diff changeset
115 @type any
1696e91a5393 Added vector icons for the mercurial and subversion plug-ins.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7360
diff changeset
116 @param pluginType type of the plugin object
1696e91a5393 Added vector icons for the mercurial and subversion plug-ins.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7360
diff changeset
117 @type str
55
b5c84934de9c Renamed E4Gui to E5Gui.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
118 @exception KeyError raised when the given name is already in use
b5c84934de9c Renamed E4Gui to E5Gui.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
119 """
b5c84934de9c Renamed E4Gui to E5Gui.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
120 if name in self.__pluginObjectRegistry:
2990
583beaf0b4b8 Continued to shorten the code lines to max. 79 characters.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2302
diff changeset
121 raise KeyError(
583beaf0b4b8 Continued to shorten the code lines to max. 79 characters.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2302
diff changeset
122 'Pluginobject "{0}" already registered.'.format(name))
55
b5c84934de9c Renamed E4Gui to E5Gui.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
123 else:
5587
ea526b78ee6c Started to fix code style issues detected by the extended style checker.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5389
diff changeset
124 self.__pluginObjectRegistry[name] = (objectRef, pluginType)
7493
1696e91a5393 Added vector icons for the mercurial and subversion plug-ins.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7360
diff changeset
125
55
b5c84934de9c Renamed E4Gui to E5Gui.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
126 def unregisterPluginObject(self, name):
b5c84934de9c Renamed E4Gui to E5Gui.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
127 """
b5c84934de9c Renamed E4Gui to E5Gui.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
128 Public method to unregister a plugin object in the object registry.
b5c84934de9c Renamed E4Gui to E5Gui.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
129
7493
1696e91a5393 Added vector icons for the mercurial and subversion plug-ins.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7360
diff changeset
130 @param name name of the plugin object
1696e91a5393 Added vector icons for the mercurial and subversion plug-ins.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7360
diff changeset
131 @type str
55
b5c84934de9c Renamed E4Gui to E5Gui.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
132 """
b5c84934de9c Renamed E4Gui to E5Gui.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
133 if name in self.__pluginObjectRegistry:
b5c84934de9c Renamed E4Gui to E5Gui.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
134 del self.__pluginObjectRegistry[name]
7493
1696e91a5393 Added vector icons for the mercurial and subversion plug-ins.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7360
diff changeset
135
55
b5c84934de9c Renamed E4Gui to E5Gui.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
136 def getPluginObject(self, name):
b5c84934de9c Renamed E4Gui to E5Gui.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
137 """
b5c84934de9c Renamed E4Gui to E5Gui.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
138 Public method to get a reference to a registered plugin object.
b5c84934de9c Renamed E4Gui to E5Gui.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
139
7493
1696e91a5393 Added vector icons for the mercurial and subversion plug-ins.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7360
diff changeset
140 @param name name of the plugin object
1696e91a5393 Added vector icons for the mercurial and subversion plug-ins.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7360
diff changeset
141 @type str
55
b5c84934de9c Renamed E4Gui to E5Gui.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
142 @return reference to the registered plugin object
7493
1696e91a5393 Added vector icons for the mercurial and subversion plug-ins.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7360
diff changeset
143 @rtype any
55
b5c84934de9c Renamed E4Gui to E5Gui.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
144 @exception KeyError raised when the given name is not known
b5c84934de9c Renamed E4Gui to E5Gui.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
145 """
8205
4a0f1f896341 Applied some code simplifications suggested by the new Simplify checker.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8143
diff changeset
146 if name not in self.__pluginObjectRegistry:
2990
583beaf0b4b8 Continued to shorten the code lines to max. 79 characters.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2302
diff changeset
147 raise KeyError(
583beaf0b4b8 Continued to shorten the code lines to max. 79 characters.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2302
diff changeset
148 'Pluginobject "{0}" is not registered.'.format(name))
8205
4a0f1f896341 Applied some code simplifications suggested by the new Simplify checker.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8143
diff changeset
149
4a0f1f896341 Applied some code simplifications suggested by the new Simplify checker.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8143
diff changeset
150 return self.__pluginObjectRegistry[name][0]
7493
1696e91a5393 Added vector icons for the mercurial and subversion plug-ins.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7360
diff changeset
151
55
b5c84934de9c Renamed E4Gui to E5Gui.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
152 def getPluginObjects(self):
b5c84934de9c Renamed E4Gui to E5Gui.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
153 """
b5c84934de9c Renamed E4Gui to E5Gui.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
154 Public method to get a list of (name, reference) pairs of all
b5c84934de9c Renamed E4Gui to E5Gui.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
155 registered plugin objects.
b5c84934de9c Renamed E4Gui to E5Gui.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
156
b5c84934de9c Renamed E4Gui to E5Gui.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
157 @return list of (name, reference) pairs
7493
1696e91a5393 Added vector icons for the mercurial and subversion plug-ins.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7360
diff changeset
158 @rtype list of (str, any)
55
b5c84934de9c Renamed E4Gui to E5Gui.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
159 """
b5c84934de9c Renamed E4Gui to E5Gui.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
160 objects = []
b5c84934de9c Renamed E4Gui to E5Gui.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
161 for name in self.__pluginObjectRegistry:
b5c84934de9c Renamed E4Gui to E5Gui.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
162 objects.append((name, self.__pluginObjectRegistry[name][0]))
b5c84934de9c Renamed E4Gui to E5Gui.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
163 return objects
7493
1696e91a5393 Added vector icons for the mercurial and subversion plug-ins.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7360
diff changeset
164
55
b5c84934de9c Renamed E4Gui to E5Gui.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
165 def getPluginObjectType(self, name):
b5c84934de9c Renamed E4Gui to E5Gui.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
166 """
b5c84934de9c Renamed E4Gui to E5Gui.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
167 Public method to get the type of a registered plugin object.
b5c84934de9c Renamed E4Gui to E5Gui.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
168
7493
1696e91a5393 Added vector icons for the mercurial and subversion plug-ins.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7360
diff changeset
169 @param name name of the plugin object
1696e91a5393 Added vector icons for the mercurial and subversion plug-ins.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7360
diff changeset
170 @type str
1696e91a5393 Added vector icons for the mercurial and subversion plug-ins.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7360
diff changeset
171 @return type of the plugin object
1696e91a5393 Added vector icons for the mercurial and subversion plug-ins.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7360
diff changeset
172 @rtype str
55
b5c84934de9c Renamed E4Gui to E5Gui.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
173 @exception KeyError raised when the given name is not known
b5c84934de9c Renamed E4Gui to E5Gui.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
174 """
8205
4a0f1f896341 Applied some code simplifications suggested by the new Simplify checker.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8143
diff changeset
175 if name not in self.__pluginObjectRegistry:
2990
583beaf0b4b8 Continued to shorten the code lines to max. 79 characters.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2302
diff changeset
176 raise KeyError(
583beaf0b4b8 Continued to shorten the code lines to max. 79 characters.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2302
diff changeset
177 'Pluginobject "{0}" is not registered.'.format(name))
8205
4a0f1f896341 Applied some code simplifications suggested by the new Simplify checker.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8143
diff changeset
178
4a0f1f896341 Applied some code simplifications suggested by the new Simplify checker.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8143
diff changeset
179 return self.__pluginObjectRegistry[name][1]
7493
1696e91a5393 Added vector icons for the mercurial and subversion plug-ins.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7360
diff changeset
180
8837
6b4b2acc5324 Added capability to configure the eric application palette via a QSS file (handled internally by eric).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8729
diff changeset
181 def setStyleSheetFile(self, filename):
6b4b2acc5324 Added capability to configure the eric application palette via a QSS file (handled internally by eric).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8729
diff changeset
182 """
6b4b2acc5324 Added capability to configure the eric application palette via a QSS file (handled internally by eric).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8729
diff changeset
183 Public method to read a QSS style sheet file and set the application
6b4b2acc5324 Added capability to configure the eric application palette via a QSS file (handled internally by eric).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8729
diff changeset
184 style sheet based on its contents.
6b4b2acc5324 Added capability to configure the eric application palette via a QSS file (handled internally by eric).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8729
diff changeset
185
6b4b2acc5324 Added capability to configure the eric application palette via a QSS file (handled internally by eric).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8729
diff changeset
186 @param filename name of the QSS style sheet file
6b4b2acc5324 Added capability to configure the eric application palette via a QSS file (handled internally by eric).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8729
diff changeset
187 @type str
6b4b2acc5324 Added capability to configure the eric application palette via a QSS file (handled internally by eric).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8729
diff changeset
188 """
6b4b2acc5324 Added capability to configure the eric application palette via a QSS file (handled internally by eric).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8729
diff changeset
189 if filename:
6b4b2acc5324 Added capability to configure the eric application palette via a QSS file (handled internally by eric).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8729
diff changeset
190 try:
6b4b2acc5324 Added capability to configure the eric application palette via a QSS file (handled internally by eric).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8729
diff changeset
191 with open(filename, "r", encoding="utf-8") as f:
6b4b2acc5324 Added capability to configure the eric application palette via a QSS file (handled internally by eric).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8729
diff changeset
192 styleSheet = f.read()
6b4b2acc5324 Added capability to configure the eric application palette via a QSS file (handled internally by eric).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8729
diff changeset
193 except OSError as msg:
6b4b2acc5324 Added capability to configure the eric application palette via a QSS file (handled internally by eric).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8729
diff changeset
194 EricMessageBox.warning(
6b4b2acc5324 Added capability to configure the eric application palette via a QSS file (handled internally by eric).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8729
diff changeset
195 self,
6b4b2acc5324 Added capability to configure the eric application palette via a QSS file (handled internally by eric).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8729
diff changeset
196 QCoreApplication.translate(
6b4b2acc5324 Added capability to configure the eric application palette via a QSS file (handled internally by eric).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8729
diff changeset
197 "EricApplication", "Loading Style Sheet"),
6b4b2acc5324 Added capability to configure the eric application palette via a QSS file (handled internally by eric).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8729
diff changeset
198 QCoreApplication.translate(
6b4b2acc5324 Added capability to configure the eric application palette via a QSS file (handled internally by eric).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8729
diff changeset
199 "EricApplication",
6b4b2acc5324 Added capability to configure the eric application palette via a QSS file (handled internally by eric).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8729
diff changeset
200 """<p>The Qt Style Sheet file <b>{0}</b> could"""
6b4b2acc5324 Added capability to configure the eric application palette via a QSS file (handled internally by eric).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8729
diff changeset
201 """ not be read.<br>Reason: {1}</p>""")
6b4b2acc5324 Added capability to configure the eric application palette via a QSS file (handled internally by eric).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8729
diff changeset
202 .format(filename, str(msg)))
6b4b2acc5324 Added capability to configure the eric application palette via a QSS file (handled internally by eric).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8729
diff changeset
203 return
6b4b2acc5324 Added capability to configure the eric application palette via a QSS file (handled internally by eric).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8729
diff changeset
204 else:
8840
c9fa102d0194 Fixed an issue during startup.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8837
diff changeset
205 styleSheet = ""
8837
6b4b2acc5324 Added capability to configure the eric application palette via a QSS file (handled internally by eric).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8729
diff changeset
206
6b4b2acc5324 Added capability to configure the eric application palette via a QSS file (handled internally by eric).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8729
diff changeset
207 if "QPalette {" in styleSheet:
6b4b2acc5324 Added capability to configure the eric application palette via a QSS file (handled internally by eric).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8729
diff changeset
208 self.__setPaletteFromStyleSheet(styleSheet)
6b4b2acc5324 Added capability to configure the eric application palette via a QSS file (handled internally by eric).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8729
diff changeset
209
6b4b2acc5324 Added capability to configure the eric application palette via a QSS file (handled internally by eric).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8729
diff changeset
210 ericApp().setStyleSheet(styleSheet)
6b4b2acc5324 Added capability to configure the eric application palette via a QSS file (handled internally by eric).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8729
diff changeset
211
6b4b2acc5324 Added capability to configure the eric application palette via a QSS file (handled internally by eric).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8729
diff changeset
212 def __setPaletteFromStyleSheet(self, styleSheet):
6b4b2acc5324 Added capability to configure the eric application palette via a QSS file (handled internally by eric).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8729
diff changeset
213 """
6b4b2acc5324 Added capability to configure the eric application palette via a QSS file (handled internally by eric).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8729
diff changeset
214 Private method to set the palette from a style sheet.
6b4b2acc5324 Added capability to configure the eric application palette via a QSS file (handled internally by eric).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8729
diff changeset
215
6b4b2acc5324 Added capability to configure the eric application palette via a QSS file (handled internally by eric).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8729
diff changeset
216 @param styleSheet style sheet
6b4b2acc5324 Added capability to configure the eric application palette via a QSS file (handled internally by eric).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8729
diff changeset
217 @type str
6b4b2acc5324 Added capability to configure the eric application palette via a QSS file (handled internally by eric).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8729
diff changeset
218 """
6b4b2acc5324 Added capability to configure the eric application palette via a QSS file (handled internally by eric).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8729
diff changeset
219 palette = self.palette()
6b4b2acc5324 Added capability to configure the eric application palette via a QSS file (handled internally by eric).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8729
diff changeset
220
6b4b2acc5324 Added capability to configure the eric application palette via a QSS file (handled internally by eric).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8729
diff changeset
221 paletteStr = styleSheet.split("QPalette {")[1].split("}")[0]
6b4b2acc5324 Added capability to configure the eric application palette via a QSS file (handled internally by eric).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8729
diff changeset
222 paletteLines = paletteStr.strip().splitlines()
6b4b2acc5324 Added capability to configure the eric application palette via a QSS file (handled internally by eric).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8729
diff changeset
223 for line in paletteLines:
6b4b2acc5324 Added capability to configure the eric application palette via a QSS file (handled internally by eric).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8729
diff changeset
224 role, value = line.strip().split()
6b4b2acc5324 Added capability to configure the eric application palette via a QSS file (handled internally by eric).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8729
diff changeset
225 role = role.strip("\t :").lower()
6b4b2acc5324 Added capability to configure the eric application palette via a QSS file (handled internally by eric).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8729
diff changeset
226 value = value.strip("\t ;")
6b4b2acc5324 Added capability to configure the eric application palette via a QSS file (handled internally by eric).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8729
diff changeset
227 if role in self.PaletteRoleMapping and value.startswith("#"):
6b4b2acc5324 Added capability to configure the eric application palette via a QSS file (handled internally by eric).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8729
diff changeset
228 palette.setColor(self.PaletteRoleMapping[role], QColor(value))
6b4b2acc5324 Added capability to configure the eric application palette via a QSS file (handled internally by eric).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8729
diff changeset
229
6b4b2acc5324 Added capability to configure the eric application palette via a QSS file (handled internally by eric).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8729
diff changeset
230 self.setPalette(palette)
6b4b2acc5324 Added capability to configure the eric application palette via a QSS file (handled internally by eric).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8729
diff changeset
231
7493
1696e91a5393 Added vector icons for the mercurial and subversion plug-ins.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7360
diff changeset
232 def usesDarkPalette(self):
1696e91a5393 Added vector icons for the mercurial and subversion plug-ins.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7360
diff changeset
233 """
1696e91a5393 Added vector icons for the mercurial and subversion plug-ins.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7360
diff changeset
234 Public method to check, if the application uses a palette with a dark
1696e91a5393 Added vector icons for the mercurial and subversion plug-ins.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7360
diff changeset
235 background.
1696e91a5393 Added vector icons for the mercurial and subversion plug-ins.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7360
diff changeset
236
1696e91a5393 Added vector icons for the mercurial and subversion plug-ins.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7360
diff changeset
237 @return flag indicating the use of a palette with a dark background
1696e91a5393 Added vector icons for the mercurial and subversion plug-ins.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7360
diff changeset
238 @rtype bool
1696e91a5393 Added vector icons for the mercurial and subversion plug-ins.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7360
diff changeset
239 """
1696e91a5393 Added vector icons for the mercurial and subversion plug-ins.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7360
diff changeset
240 palette = self.palette()
8143
2c730d5fd177 Changed the use of PyQt enums because the way they were used previously is deprecated since two years and replaced some deprecated Qt stuff.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7984
diff changeset
241 lightness = palette.color(QPalette.ColorRole.Window).lightness()
7493
1696e91a5393 Added vector icons for the mercurial and subversion plug-ins.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7360
diff changeset
242 return lightness <= 128
55
b5c84934de9c Renamed E4Gui to E5Gui.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
243
8356
68ec9c3d4de5 Renamed the modules and classes of the E5Gui package to have the prefix 'Eric' instead of 'E5'.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8318
diff changeset
244 ericApp = QCoreApplication.instance

eric ide

mercurial