qcanvas 1.1.0__py3-none-any.whl → 1.2.0a1__py3-none-any.whl
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Potentially problematic release.
This version of qcanvas might be problematic. Click here for more details.
- qcanvas/app_start/__init__.py +6 -1
- qcanvas/icons/__init__.py +2 -0
- qcanvas/icons/file-downloaded.svg +4 -4
- qcanvas/icons/icons.qrc +2 -0
- qcanvas/icons/logo-transparent-dark.svg +303 -0
- qcanvas/icons/logo-transparent-light.svg +304 -0
- qcanvas/icons/rc_icons.py +726 -173
- qcanvas/ui/course_viewer/content_tree.py +13 -0
- qcanvas/ui/course_viewer/course_viewer.py +14 -5
- qcanvas/ui/course_viewer/tabs/assignment_tab/assignment_tree.py +9 -12
- qcanvas/ui/course_viewer/tabs/file_tab/__init__.py +1 -0
- qcanvas/ui/course_viewer/tabs/file_tab/file_tab.py +46 -0
- qcanvas/ui/course_viewer/tabs/file_tab/file_tree.py +95 -0
- qcanvas/ui/course_viewer/tabs/file_tab/pages_file_tree.py +50 -0
- qcanvas/ui/course_viewer/tabs/mail_tab/mail_tree.py +4 -7
- qcanvas/ui/course_viewer/tabs/page_tab/page_tree.py +7 -9
- qcanvas/ui/course_viewer/tabs/util.py +10 -0
- qcanvas/ui/main_ui/course_viewer_container.py +45 -3
- qcanvas/ui/main_ui/status_bar_progress_display.py +17 -8
- qcanvas/util/file_icons.py +36 -0
- qcanvas/util/themes/__init__.py +2 -0
- qcanvas/util/themes/_colour_scheme_helper.py +38 -0
- qcanvas/util/themes/_selected_theme.py +10 -0
- qcanvas/util/themes/_theme_changed_event.py +17 -0
- qcanvas/util/themes/_theme_changer.py +74 -0
- {qcanvas-1.1.0.dist-info → qcanvas-1.2.0a1.dist-info}/METADATA +6 -2
- {qcanvas-1.1.0.dist-info → qcanvas-1.2.0a1.dist-info}/RECORD +29 -18
- qcanvas/util/themes.py +0 -27
- {qcanvas-1.1.0.dist-info → qcanvas-1.2.0a1.dist-info}/WHEEL +0 -0
- {qcanvas-1.1.0.dist-info → qcanvas-1.2.0a1.dist-info}/entry_points.txt +0 -0
|
@@ -0,0 +1,74 @@
|
|
|
1
|
+
import logging
|
|
2
|
+
|
|
3
|
+
import qdarktheme
|
|
4
|
+
from qtpy.QtCore import Slot
|
|
5
|
+
from qtpy.QtWidgets import QApplication, QStyleFactory
|
|
6
|
+
|
|
7
|
+
from qcanvas.util.themes._colour_scheme_helper import (
|
|
8
|
+
colour_scheme_changed,
|
|
9
|
+
is_dark_colour_scheme,
|
|
10
|
+
)
|
|
11
|
+
from qcanvas.util.themes._selected_theme import SelectedTheme
|
|
12
|
+
from qcanvas.util.themes._theme_changed_event import theme_changed
|
|
13
|
+
|
|
14
|
+
_logger = logging.getLogger(__name__)
|
|
15
|
+
|
|
16
|
+
default_theme = "auto"
|
|
17
|
+
_is_dark_mode: bool | None = None
|
|
18
|
+
_selected_theme: SelectedTheme | None = None
|
|
19
|
+
|
|
20
|
+
|
|
21
|
+
def apply(theme: str) -> None:
|
|
22
|
+
global _is_dark_mode, _selected_theme
|
|
23
|
+
|
|
24
|
+
theme = ensure_theme_is_valid(theme)
|
|
25
|
+
was_dark_mode = _is_dark_mode
|
|
26
|
+
|
|
27
|
+
if theme != "native":
|
|
28
|
+
if theme == "auto":
|
|
29
|
+
_is_dark_mode = is_dark_colour_scheme()
|
|
30
|
+
_selected_theme = SelectedTheme.AUTO
|
|
31
|
+
selected_colour_scheme = "dark" if _is_dark_mode else "light"
|
|
32
|
+
else:
|
|
33
|
+
_is_dark_mode = theme == "dark"
|
|
34
|
+
_selected_theme = SelectedTheme.OVERRIDE
|
|
35
|
+
selected_colour_scheme = theme
|
|
36
|
+
|
|
37
|
+
qdarktheme.setup_theme(
|
|
38
|
+
selected_colour_scheme,
|
|
39
|
+
custom_colors={"primary": "e02424"},
|
|
40
|
+
)
|
|
41
|
+
|
|
42
|
+
QApplication.setStyle(QStyleFactory.create("Fusion"))
|
|
43
|
+
else:
|
|
44
|
+
_is_dark_mode = is_dark_colour_scheme()
|
|
45
|
+
_selected_theme = SelectedTheme.NATIVE
|
|
46
|
+
|
|
47
|
+
if was_dark_mode != _is_dark_mode:
|
|
48
|
+
theme_changed().emit()
|
|
49
|
+
|
|
50
|
+
|
|
51
|
+
def is_dark_mode() -> bool:
|
|
52
|
+
return _is_dark_mode
|
|
53
|
+
|
|
54
|
+
|
|
55
|
+
def ensure_theme_is_valid(theme: str) -> str:
|
|
56
|
+
if theme not in ["auto", "light", "dark", "native"]:
|
|
57
|
+
return default_theme
|
|
58
|
+
else:
|
|
59
|
+
return theme
|
|
60
|
+
|
|
61
|
+
|
|
62
|
+
@Slot()
|
|
63
|
+
def _scheme_changed():
|
|
64
|
+
global _selected_theme, _is_dark_mode
|
|
65
|
+
|
|
66
|
+
if _selected_theme == SelectedTheme.AUTO:
|
|
67
|
+
apply("auto")
|
|
68
|
+
elif _selected_theme == SelectedTheme.NATIVE:
|
|
69
|
+
# noinspection PyTestUnpassedFixture
|
|
70
|
+
_is_dark_mode = is_dark_colour_scheme()
|
|
71
|
+
theme_changed().emit()
|
|
72
|
+
|
|
73
|
+
|
|
74
|
+
colour_scheme_changed().connect(_scheme_changed)
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.1
|
|
2
2
|
Name: qcanvas
|
|
3
|
-
Version: 1.
|
|
3
|
+
Version: 1.2.0a1
|
|
4
4
|
Summary: QCanvas is a desktop client for Canvas LMS.
|
|
5
5
|
Author: QCanvas
|
|
6
6
|
Author-email: QCanvas@noreply.codeberg.org
|
|
@@ -15,7 +15,7 @@ Requires-Dist: platformdirs (>=4.2.2,<5.0.0)
|
|
|
15
15
|
Requires-Dist: pyqtdarktheme-fork (>=2.3.2,<3.0.0)
|
|
16
16
|
Requires-Dist: qasync (>=0.27.1,<0.28.0)
|
|
17
17
|
Requires-Dist: qcanvas-api-clients (>=0.3.0,<0.4.0)
|
|
18
|
-
Requires-Dist: qcanvas-backend (>=0.2.
|
|
18
|
+
Requires-Dist: qcanvas-backend (>=0.2.2,<0.3.0)
|
|
19
19
|
Requires-Dist: qtpy (>=2.4.1,<3.0.0)
|
|
20
20
|
Requires-Dist: sqlalchemy (>=2.0.31,<3.0.0)
|
|
21
21
|
Requires-Dist: validators (>=0.33.0,<0.34.0)
|
|
@@ -25,6 +25,10 @@ Description-Content-Type: text/markdown
|
|
|
25
25
|
|
|
26
26
|
QCanvas is an **unofficial** desktop client for Canvas LMS.
|
|
27
27
|
|
|
28
|
+
https://codeberg.org/QCanvas/QCanvas
|
|
29
|
+
|
|
30
|
+
https://github.com/QCanvas/QCanvasApp
|
|
31
|
+
|
|
28
32
|
# Downloads
|
|
29
33
|
|
|
30
34
|
Download it from [releases](https://github.com/QCanvas/QCanvasApp/releases)
|
|
@@ -1,45 +1,51 @@
|
|
|
1
1
|
qcanvas/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
2
|
-
qcanvas/app_start/__init__.py,sha256=
|
|
2
|
+
qcanvas/app_start/__init__.py,sha256=r16bg9Otw8Sy6MYLmIt5Nu-oSwyYP8Y2kzMtbmeF6m0,1437
|
|
3
3
|
qcanvas/backend_connectors/__init__.py,sha256=Wj8cmxQng3SSlmlXJyzHaPmvxbkauwsxINckPb7WuHc,108
|
|
4
4
|
qcanvas/backend_connectors/frontend_resource_manager.py,sha256=87oszxCle0Y9AUAHH3wn_7oilY45ddMET-4EnpTtjn0,1322
|
|
5
5
|
qcanvas/backend_connectors/qcanvas_task_master.py,sha256=CTPBvf_9w-livscKNspnd98mNvFLYTYHef0RQSUkfFc,742
|
|
6
|
-
qcanvas/icons/__init__.py,sha256=
|
|
6
|
+
qcanvas/icons/__init__.py,sha256=HQJzW9BXiWqj8yRHRvevlSWZ-TLB7vUbVlwuQKgX_Lk,356
|
|
7
7
|
qcanvas/icons/file-download-failed.svg,sha256=lhDf8ul__T2ByRcd5KZicNtUVl4BdSqeZ3yOR6DvCLk,1091
|
|
8
|
-
qcanvas/icons/file-downloaded.svg,sha256=
|
|
8
|
+
qcanvas/icons/file-downloaded.svg,sha256=fWDcSy0PwQX3LZwaEVJLE3fUVg7q1TO3n44svyUyb64,1091
|
|
9
9
|
qcanvas/icons/file-not-downloaded.svg,sha256=7zl_Gmx2IHZrugFYAUjBCSwmfXM0pvlshj8GhewxY5Q,1091
|
|
10
10
|
qcanvas/icons/file-unknown.svg,sha256=9xlN244HJX3zM_MqdMTnNbKlqLjOFgCx3ZdM4Wc4zC0,1729
|
|
11
|
-
qcanvas/icons/icons.qrc,sha256=
|
|
11
|
+
qcanvas/icons/icons.qrc,sha256=tI5HDO3a9eMWhkrEfdQrnIkEAH7L4-kpDu-t-wstE10,375
|
|
12
|
+
qcanvas/icons/logo-transparent-dark.svg,sha256=1bVg8AK9FepOvWTcu_zDLX2eZ1inYuAMBwZRi252-5o,18660
|
|
13
|
+
qcanvas/icons/logo-transparent-light.svg,sha256=DsNOFWHGAVCZ-ue-pf1iatQ1t_IBmnyxs3FNw-UUukg,18647
|
|
12
14
|
qcanvas/icons/main_icon.svg,sha256=st2sfA8HIETmoacJ2Oq84iJzfnNHH-T03ijB-J419_s,16104
|
|
13
|
-
qcanvas/icons/rc_icons.py,sha256=
|
|
15
|
+
qcanvas/icons/rc_icons.py,sha256=AlCluQJETsrxGHG4lBrZnDpJY5oVt9OzTj0qIODkYSE,44764
|
|
14
16
|
qcanvas/icons/sync.svg,sha256=J-7_KnFbQL3uh-RrTy0_wSJUVW4Cc6ZSTacld6ULv1w,2829
|
|
15
17
|
qcanvas/run.py,sha256=tP5bplaPa_Z8DaKqP59bwYaIEccW5B18xoyXgKJsrf8,1681
|
|
16
18
|
qcanvas/ui/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
17
19
|
qcanvas/ui/course_viewer/__init__.py,sha256=XkoFnh4ULw3_i-GDsOlueEWido0PkoDcN9_EX6-nkXY,76
|
|
18
|
-
qcanvas/ui/course_viewer/content_tree.py,sha256=
|
|
20
|
+
qcanvas/ui/course_viewer/content_tree.py,sha256=QS0mcyxLDdXt27TBzdCTYu2fuchPO-j6z6VPJT6rhkA,4478
|
|
19
21
|
qcanvas/ui/course_viewer/course_tree.py,sha256=LkzquiAIKzFwB9dkOx-QmIp7CkKJ8R5Kk0aeYHQLu5s,2709
|
|
20
|
-
qcanvas/ui/course_viewer/course_viewer.py,sha256=
|
|
22
|
+
qcanvas/ui/course_viewer/course_viewer.py,sha256=n7d4KjWJAPJcHjy0BQcRLOsV5fyM1vWIdYA_AmxMlSE,3922
|
|
21
23
|
qcanvas/ui/course_viewer/tabs/__init__.py,sha256=SlfWUzk6_E5uM9GIV-y9BVeKMwqn3pRx_xWhMyb1dfI,54
|
|
22
24
|
qcanvas/ui/course_viewer/tabs/assignment_tab/__init__.py,sha256=w936dW7za10Fh6rN0zVA-7Kyiup3kd6C-mPAFHtxmy0,42
|
|
23
25
|
qcanvas/ui/course_viewer/tabs/assignment_tab/assignment_tab.py,sha256=_de3IPBCe27Bt8MoabcX1ZchBbVb-_QHVeYMvL3wzr8,1986
|
|
24
|
-
qcanvas/ui/course_viewer/tabs/assignment_tab/assignment_tree.py,sha256=
|
|
26
|
+
qcanvas/ui/course_viewer/tabs/assignment_tab/assignment_tree.py,sha256=z6-8SHBh6OvVy8lH-YeR28cGEh7V0wOi1_EQcw5hFcc,2691
|
|
25
27
|
qcanvas/ui/course_viewer/tabs/content_tab.py,sha256=CAfzUYawDde0lhL7R7dFu07uS1XEG39VIleS2Cpu30g,3540
|
|
28
|
+
qcanvas/ui/course_viewer/tabs/file_tab/__init__.py,sha256=mMebnrNw_V-lQ-eBXS_kFinL-ZdUAXa459NmuyuCu6s,30
|
|
29
|
+
qcanvas/ui/course_viewer/tabs/file_tab/file_tab.py,sha256=DOpnSDg7vDRvLc4LFf94BHkx0cRy6InYLpKH7n_p4IU,1404
|
|
30
|
+
qcanvas/ui/course_viewer/tabs/file_tab/file_tree.py,sha256=Q5lRr619ktn_CDs4yr5Lv276-BH8JK907fJTn2cDEz0,3199
|
|
31
|
+
qcanvas/ui/course_viewer/tabs/file_tab/pages_file_tree.py,sha256=UDoTkZp1IJTQBevveCXATDQmAYCC6Yf1HivmN2ifHdw,1605
|
|
26
32
|
qcanvas/ui/course_viewer/tabs/mail_tab/__init__.py,sha256=68iRUUWEP7mudbaxa4ZBKMra4rvs2oZKaZkBWwmUrsI,30
|
|
27
33
|
qcanvas/ui/course_viewer/tabs/mail_tab/mail_tab.py,sha256=fw0FORJiH19rAGsjBFJHZlNrVCMbwG4n3AFV3wbhwGM,1840
|
|
28
|
-
qcanvas/ui/course_viewer/tabs/mail_tab/mail_tree.py,sha256=
|
|
34
|
+
qcanvas/ui/course_viewer/tabs/mail_tab/mail_tree.py,sha256=K7RLLZ8KwqJrzsrcxBSAJ9MlJ34O1zqMRsPuL_wMoPQ,1639
|
|
29
35
|
qcanvas/ui/course_viewer/tabs/page_tab/__init__.py,sha256=lcafxlSEVZ0wqZySxT6hTrvExX-GU2AfcZQbp6W8haU,30
|
|
30
36
|
qcanvas/ui/course_viewer/tabs/page_tab/page_tab.py,sha256=cv-pCDri7thRJZv-gWUZrL2FUQAHe7vZthRAhejsqWY,771
|
|
31
|
-
qcanvas/ui/course_viewer/tabs/page_tab/page_tree.py,sha256=
|
|
37
|
+
qcanvas/ui/course_viewer/tabs/page_tab/page_tree.py,sha256=ffM-IFdNPBdTggmJCnseuO35xs7zqo9C78580p209Jw,1967
|
|
32
38
|
qcanvas/ui/course_viewer/tabs/resource_rich_browser.py,sha256=dTRsJO_xeo72vsX0FrT1XHfr9VlFjnM9woeFxVg0dDw,6649
|
|
33
|
-
qcanvas/ui/course_viewer/tabs/util.py,sha256=
|
|
39
|
+
qcanvas/ui/course_viewer/tabs/util.py,sha256=Cg8FmPbkiTepV9IlTZQSWtcUaovv66iAD4_BUYJjIAY,344
|
|
34
40
|
qcanvas/ui/main_ui/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
35
|
-
qcanvas/ui/main_ui/course_viewer_container.py,sha256=
|
|
41
|
+
qcanvas/ui/main_ui/course_viewer_container.py,sha256=EJo0QnlD-Rz04Yy_k1md4YjYTGOwg1dxdsPMPHtCVFA,3277
|
|
36
42
|
qcanvas/ui/main_ui/options/__init__.py,sha256=SlfWUzk6_E5uM9GIV-y9BVeKMwqn3pRx_xWhMyb1dfI,54
|
|
37
43
|
qcanvas/ui/main_ui/options/auto_download_resources_option.py,sha256=W9BleGh6egfN9d9awnjEAAFq6_6DyXyD-rIopkofVDw,1284
|
|
38
44
|
qcanvas/ui/main_ui/options/quick_sync_option.py,sha256=qEfmtLllO32ejc-bydCvFRjal5RUlk2HtC5Ld4mT7ss,753
|
|
39
45
|
qcanvas/ui/main_ui/options/sync_on_start_option.py,sha256=zFFAAyGZEa6qBchJJIm7bJpOwxcntnto9Ee-lzCiHX4,731
|
|
40
46
|
qcanvas/ui/main_ui/options/theme_selection_menu.py,sha256=MVudpolTToR1TRAtqfaFMUH__G0gc4oyqDAL5BH-7RY,1263
|
|
41
47
|
qcanvas/ui/main_ui/qcanvas_window.py,sha256=aaN2gIyKpjcdd6NKp9E0DPt6YHBT-DX7RVRqnWSJVaQ,8554
|
|
42
|
-
qcanvas/ui/main_ui/status_bar_progress_display.py,sha256=
|
|
48
|
+
qcanvas/ui/main_ui/status_bar_progress_display.py,sha256=vbuZwMR4It1qH8EY4ZiBz7akSDfaYZ_V18eS-pBgYq4,5047
|
|
43
49
|
qcanvas/ui/memory_tree/__init__.py,sha256=-XLitM6teC0zmwPrGf-Q-A53-zgmIPASExdOtaLIvPU,107
|
|
44
50
|
qcanvas/ui/memory_tree/_tree_memory.py,sha256=CMKfCnrHj22ervaq7xB5U4AiKijYvghUK5ZL0MJIFmQ,1805
|
|
45
51
|
qcanvas/ui/memory_tree/memory_tree_widget.py,sha256=OT3TnYsUSbMowqR9my19QG4AuAdhTb29SGSa2406-SE,4432
|
|
@@ -50,6 +56,7 @@ qcanvas/ui/setup/setup_dialog.py,sha256=0oYk5chmMUo2fR6tmu-HkM8QXPkFdewXyx1n_X_W
|
|
|
50
56
|
qcanvas/util/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
51
57
|
qcanvas/util/auto_downloader.py,sha256=WGawgc849qpPf7ufe_yxRYhwVf2Aj15wTAAQvToxmHg,1842
|
|
52
58
|
qcanvas/util/basic_fonts.py,sha256=1NK5_kejgH45mENwiTWvE5oOuAvGqWMX3hg9tTUCBi4,243
|
|
59
|
+
qcanvas/util/file_icons.py,sha256=Cf7l3xV5XecAS-jEUtzTs7S-Vym6bs9E2JfUXnGtFFM,1017
|
|
53
60
|
qcanvas/util/html_cleaner.py,sha256=O9_PhvZZw3RcPjdXZagAbNmp8Hfyq9fydBH-ee-DfII,615
|
|
54
61
|
qcanvas/util/layouts.py,sha256=7wQ0-DAbRHPPcfVIQoOmVhPdhGqcF-6qWE1-P86e7ys,1351
|
|
55
62
|
qcanvas/util/logs.py,sha256=VZKFITiW2WR2POEFVv5GRpEXic23Pzjehry-vH3g3Gk,138
|
|
@@ -60,10 +67,14 @@ qcanvas/util/settings/__init__.py,sha256=ivc8bczhQdEJsWse6fc81Xyz0i2YX57pL4UubM3
|
|
|
60
67
|
qcanvas/util/settings/_client_settings.py,sha256=HyUpXoc7TinOviEd-eCo8g8Fbw8TqGAH2KfCkgPr9N0,1413
|
|
61
68
|
qcanvas/util/settings/_mapped_setting.py,sha256=Z6635FfDll9cCLfSkVg-unsDLvUWuKT5MmxJEiUkd2k,1823
|
|
62
69
|
qcanvas/util/settings/_ui_settings.py,sha256=zlWMjpntuqm7ZN3aBEROGrXc4bhtKOfWijmiGkdt1UA,804
|
|
63
|
-
qcanvas/util/themes.py,sha256=
|
|
70
|
+
qcanvas/util/themes/__init__.py,sha256=Ng-Rii7cFKrhSoE03J5tSYeaMY4UebFubKCBsWxouYM,134
|
|
71
|
+
qcanvas/util/themes/_colour_scheme_helper.py,sha256=QTrQ5c9AduBJMUuXp8sG-WPmYU82cF1tXjGDKhpI10w,1063
|
|
72
|
+
qcanvas/util/themes/_selected_theme.py,sha256=w1CXvMuLM8wKDgANOhcvNnlEXDyjdgnWO0TtA3vGomY,150
|
|
73
|
+
qcanvas/util/themes/_theme_changed_event.py,sha256=dIu1857h2ytSqmcRb2CABro3Gc0s9bm5DHdT23jyuk8,317
|
|
74
|
+
qcanvas/util/themes/_theme_changer.py,sha256=ybMgKT2sL_orvH0OYXPOlA5w6hociMjMQbbTJgNw1Us,1993
|
|
64
75
|
qcanvas/util/ui_tools.py,sha256=bSM1xrmZPn847YEbXAC9VIAv--8hMLMWrsEMWGA5p3E,916
|
|
65
76
|
qcanvas/util/url_checker.py,sha256=gaV_KZZsG5bfJaGBv9jbHJjq0rVxIH55HRtucT6Qkx8,144
|
|
66
|
-
qcanvas-1.
|
|
67
|
-
qcanvas-1.
|
|
68
|
-
qcanvas-1.
|
|
69
|
-
qcanvas-1.
|
|
77
|
+
qcanvas-1.2.0a1.dist-info/METADATA,sha256=DvxP1JLD7MNLfjfpxZ6hOOiEKzV88TS4WiUwbrtER3o,1794
|
|
78
|
+
qcanvas-1.2.0a1.dist-info/WHEEL,sha256=sP946D7jFCHeNz5Iq4fL4Lu-PrWrFsgfLXbbkciIZwg,88
|
|
79
|
+
qcanvas-1.2.0a1.dist-info/entry_points.txt,sha256=46VbnhQ9w2CYdfhYcPfWgjXYHjsKshu0asQ1B_sAMac,44
|
|
80
|
+
qcanvas-1.2.0a1.dist-info/RECORD,,
|
qcanvas/util/themes.py
DELETED
|
@@ -1,27 +0,0 @@
|
|
|
1
|
-
import logging
|
|
2
|
-
|
|
3
|
-
import qdarktheme
|
|
4
|
-
from qtpy.QtWidgets import QApplication, QStyleFactory
|
|
5
|
-
|
|
6
|
-
_logger = logging.getLogger(__name__)
|
|
7
|
-
|
|
8
|
-
default_theme = "auto"
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
def ensure_theme_is_valid(theme: str) -> str:
|
|
12
|
-
if theme not in ["auto", "light", "dark", "native"]:
|
|
13
|
-
return default_theme
|
|
14
|
-
else:
|
|
15
|
-
return theme
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
def apply(theme: str) -> None:
|
|
19
|
-
theme = ensure_theme_is_valid(theme)
|
|
20
|
-
|
|
21
|
-
if theme != "native":
|
|
22
|
-
QApplication.setStyle(QStyleFactory.create("Fusion"))
|
|
23
|
-
|
|
24
|
-
qdarktheme.setup_theme(
|
|
25
|
-
theme,
|
|
26
|
-
custom_colors={"primary": "e02424"},
|
|
27
|
-
)
|
|
File without changes
|
|
File without changes
|