Skip to content

Commit fc82847

Browse files
addressed requested changes + minor fixes
1 parent 748b11b commit fc82847

File tree

3 files changed

+15
-15
lines changed

3 files changed

+15
-15
lines changed

tagstudio/src/qt/main_window.py

+1-1
Original file line numberDiff line numberDiff line change
@@ -27,7 +27,7 @@
2727
from src.qt.pagination import Pagination
2828
from src.qt.widgets.landing import LandingWidget
2929

30-
from . import theme
30+
from src.qt import theme
3131

3232
# Only import for type checking/autocompletion, will not be imported at runtime.
3333
if typing.TYPE_CHECKING:

tagstudio/src/qt/qt_logger.py

-3
This file was deleted.

tagstudio/src/qt/theme.py

+14-11
Original file line numberDiff line numberDiff line change
@@ -1,11 +1,12 @@
11
from collections.abc import Callable
22
from typing import Literal
33

4+
import structlog
45
from PySide6.QtCore import QSettings, Qt
56
from PySide6.QtGui import QColor, QPalette
67
from PySide6.QtWidgets import QApplication
78

8-
from .qt_logger import logger
9+
logger = structlog.get_logger("theme")
910

1011
theme_update_hooks: list[Callable[[], None]] = []
1112
"List of callables that will be called when any theme is changed."
@@ -52,7 +53,7 @@ def _load_palette_from_file(file_path: str, default_palette: QPalette) -> QPalet
5253
for role in list(QPalette.ColorRole)[:-1]: # remove last color role (NColorRoles)
5354
for group in color_groups:
5455
value: str | None = theme.value(f"{role.name}/{group.name}", None, str) # type: ignore
55-
if value is not None and QColor.isValidColor(value):
56+
if value is not None and QColor.isValidColorName(value):
5657
pal.setColor(group, role, QColor(value))
5758

5859
return pal
@@ -95,6 +96,8 @@ def _save_palette_to_file(file_path: str, palette: QPalette) -> None:
9596
theme.setValue(group.name, palette.color(group, role).name())
9697
theme.endGroup()
9798

99+
theme.sync()
100+
98101

99102
def update_palette() -> None:
100103
"""Update the application palette based on the settings.
@@ -116,33 +119,33 @@ def update_palette() -> None:
116119
settings: QSettings = driver.settings
117120

118121
settings.beginGroup("Appearance")
119-
dark_mode_value: str = settings.value("DarkMode", "-1") # type: ignore
122+
dark_mode_value: str = settings.value("DarkMode", "auto") # type: ignore
120123
dark_theme_file: str | None = settings.value("DarkThemeFile", None) # type: ignore
121124
light_theme_file: str | None = settings.value("LightThemeFile", None) # type: ignore
122125
settings.endGroup()
123126
# endregion
124127

125128
# TODO: get values of following from settings.
126129
# dark_mode: bool | Literal[-1]
127-
# "True: Dark mode. False: Light mode. -1: System mode."
130+
# "True: Dark mode. False: Light mode. auto: System mode."
128131
# dark_theme_file: str | None
129132
# "Path to the dark theme file."
130133
# light_theme_file: str | None
131134
# "Path to the light theme file."
132135

133136
dark_mode: bool | Literal[-1]
134-
true_values = ("1", "yes", "true", "on")
135-
false_values = ("0", "no", "false", "off")
136137

137-
if dark_mode_value.lower() in true_values:
138+
if dark_mode_value.lower() == "true":
138139
dark_mode = True
139-
elif dark_mode_value.lower() in false_values:
140+
elif dark_mode_value.lower() == "false":
140141
dark_mode = False
141-
elif dark_mode_value == "-1":
142+
elif dark_mode_value == "auto":
142143
dark_mode = -1
143144
else:
144-
logger.error(f"""Invalid value for DarkMode: {dark_mode_value}. Defaulting to -1.
145-
possible values: {true_values=}, {false_values=}, system=-1""")
145+
logger.warning(
146+
f"Invalid value for DarkMode: {dark_mode_value}. Defaulting to auto."
147+
+ 'possible values: "true", "false", "auto".'
148+
)
146149
dark_mode = -1
147150

148151
if dark_mode == -1:

0 commit comments

Comments
 (0)