Wed, 08 Dec 2021 19:52:00 +0100
Started implementing a manager for color themes.
8817
92214d84beef
Started implementing a manager for color themes.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
1 | # -*- coding: utf-8 -*- |
92214d84beef
Started implementing a manager for color themes.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
2 | |
92214d84beef
Started implementing a manager for color themes.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
3 | # Copyright (c) 2021 Detlev Offenbach <detlev@die-offenbachs.de> |
92214d84beef
Started implementing a manager for color themes.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
4 | # |
92214d84beef
Started implementing a manager for color themes.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
5 | |
92214d84beef
Started implementing a manager for color themes.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
6 | """ |
92214d84beef
Started implementing a manager for color themes.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
7 | Module implementing a manager object for color themes. |
92214d84beef
Started implementing a manager for color themes.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
8 | """ |
92214d84beef
Started implementing a manager for color themes.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
9 | |
92214d84beef
Started implementing a manager for color themes.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
10 | import re |
92214d84beef
Started implementing a manager for color themes.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
11 | |
92214d84beef
Started implementing a manager for color themes.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
12 | from PyQt6.QtCore import QObject |
92214d84beef
Started implementing a manager for color themes.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
13 | |
92214d84beef
Started implementing a manager for color themes.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
14 | import Preferences |
92214d84beef
Started implementing a manager for color themes.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
15 | |
92214d84beef
Started implementing a manager for color themes.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
16 | |
92214d84beef
Started implementing a manager for color themes.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
17 | class ThemeManager(QObject): |
92214d84beef
Started implementing a manager for color themes.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
18 | """ |
92214d84beef
Started implementing a manager for color themes.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
19 | Class implementing a manager object for color themes. |
92214d84beef
Started implementing a manager for color themes.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
20 | """ |
92214d84beef
Started implementing a manager for color themes.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
21 | KeyPatternList = [ |
92214d84beef
Started implementing a manager for color themes.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
22 | "Diff/.*Color", |
92214d84beef
Started implementing a manager for color themes.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
23 | "Editor/Colour/", |
92214d84beef
Started implementing a manager for color themes.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
24 | "IRC/.*Colou?r", |
92214d84beef
Started implementing a manager for color themes.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
25 | "Project/Colour", |
92214d84beef
Started implementing a manager for color themes.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
26 | "Scintilla/.*color", |
92214d84beef
Started implementing a manager for color themes.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
27 | "Scintilla/.*paper", |
92214d84beef
Started implementing a manager for color themes.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
28 | "WebBrowser/.*Colou?r", |
92214d84beef
Started implementing a manager for color themes.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
29 | ] |
92214d84beef
Started implementing a manager for color themes.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
30 | KeyList = [ |
92214d84beef
Started implementing a manager for color themes.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
31 | "Debugger/BgColorChanged", |
92214d84beef
Started implementing a manager for color themes.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
32 | "Debugger/BgColorNew", |
92214d84beef
Started implementing a manager for color themes.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
33 | "UI/IconBarColor", |
92214d84beef
Started implementing a manager for color themes.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
34 | "UI/LogStdErrColour", |
92214d84beef
Started implementing a manager for color themes.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
35 | "UI/NotificationCriticalBackground", |
92214d84beef
Started implementing a manager for color themes.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
36 | "UI/NotificationCriticalForeground", |
92214d84beef
Started implementing a manager for color themes.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
37 | "UI/NotificationWarningBackground", |
92214d84beef
Started implementing a manager for color themes.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
38 | "UI/NotificationWarningForeground", |
92214d84beef
Started implementing a manager for color themes.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
39 | ] |
92214d84beef
Started implementing a manager for color themes.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
40 | |
92214d84beef
Started implementing a manager for color themes.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
41 | def __init__(self, parent=None): |
92214d84beef
Started implementing a manager for color themes.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
42 | """ |
92214d84beef
Started implementing a manager for color themes.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
43 | Constructor |
92214d84beef
Started implementing a manager for color themes.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
44 | |
92214d84beef
Started implementing a manager for color themes.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
45 | @param parent reference to the parent object (defaults to None) |
92214d84beef
Started implementing a manager for color themes.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
46 | @type QObject (optional) |
92214d84beef
Started implementing a manager for color themes.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
47 | """ |
92214d84beef
Started implementing a manager for color themes.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
48 | super().__init__(parent) |
92214d84beef
Started implementing a manager for color themes.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
49 | |
92214d84beef
Started implementing a manager for color themes.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
50 | def importTheme(self): |
92214d84beef
Started implementing a manager for color themes.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
51 | """ |
92214d84beef
Started implementing a manager for color themes.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
52 | Public method to import a theme file and set the colors. |
92214d84beef
Started implementing a manager for color themes.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
53 | """ |
92214d84beef
Started implementing a manager for color themes.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
54 | # TODO: not yet implemented |
92214d84beef
Started implementing a manager for color themes.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
55 | |
92214d84beef
Started implementing a manager for color themes.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
56 | def exportTheme(self): |
92214d84beef
Started implementing a manager for color themes.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
57 | """ |
92214d84beef
Started implementing a manager for color themes.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
58 | Public method to export the current colors to a theme file. |
92214d84beef
Started implementing a manager for color themes.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
59 | """ |
92214d84beef
Started implementing a manager for color themes.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
60 | # TODO: not yet implemented |
92214d84beef
Started implementing a manager for color themes.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
61 | settings = Preferences.getSettings() |
92214d84beef
Started implementing a manager for color themes.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
62 | keyFilterRe = re.compile("|".join( |
92214d84beef
Started implementing a manager for color themes.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
63 | ThemeManager.KeyPatternList + ThemeManager.KeyList)) |
92214d84beef
Started implementing a manager for color themes.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
64 | |
92214d84beef
Started implementing a manager for color themes.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
65 | keys = [k for k in settings.allKeys() if keyFilterRe.match(k)] |
92214d84beef
Started implementing a manager for color themes.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
66 | themeDict = {} |
92214d84beef
Started implementing a manager for color themes.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
67 | for key in keys: |
92214d84beef
Started implementing a manager for color themes.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
68 | themeDict[key] = settings.value(key) |
92214d84beef
Started implementing a manager for color themes.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
69 | |
92214d84beef
Started implementing a manager for color themes.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
70 | # TODO: save to a json file *.ethj |