Skip to content

Commit 3effb65

Browse files
committed
Update color mode handling in config.py
1 parent d089ade commit 3effb65

File tree

1 file changed

+31
-7
lines changed

1 file changed

+31
-7
lines changed

plotpy/config.py

+31-7
Original file line numberDiff line numberDiff line change
@@ -14,6 +14,8 @@
1414
from __future__ import annotations
1515

1616
import os.path as osp
17+
import warnings
18+
from typing import Literal
1719

1820
from guidata import qthelpers
1921
from guidata.configtools import add_image_module_path, get_translation
@@ -777,13 +779,8 @@ def update_plotpy_defaults() -> None:
777779
CONF.update_defaults(DEFAULTS)
778780

779781

780-
def set_plotpy_dark_mode(state: bool) -> None:
781-
"""Set dark mode for Qt application
782-
783-
Args:
784-
state (bool): True to enable dark mode
785-
"""
786-
qthelpers.set_dark_mode(state)
782+
def update_plotpy_color_mode() -> None:
783+
"""Update the color mode for Plotpy"""
787784
update_plotpy_defaults()
788785

789786
# Iterate over all `BasePlot` widgets by browsing the QApplication:
@@ -797,3 +794,30 @@ def set_plotpy_dark_mode(state: bool) -> None:
797794
for widget in app.topLevelWidgets():
798795
for child in widget.findChildren(BasePlot):
799796
child.update_color_mode()
797+
798+
799+
def set_plotpy_dark_mode(state: bool) -> None:
800+
"""Set dark mode for Qt application
801+
802+
Args:
803+
state (bool): True to enable dark mode
804+
"""
805+
mode = "dark" if state else "light"
806+
warnings.warn(
807+
f"`set_plotpy_dark_mode` is deprecated and will be removed in a future "
808+
f"version. Use `set_plotpy_color_mode('{mode}')` instead.",
809+
DeprecationWarning,
810+
)
811+
qthelpers.set_dark_mode(state) # guidata 3.6.0
812+
update_plotpy_color_mode()
813+
814+
815+
def set_plotpy_color_mode(mode: Literal["light", "dark", "auto"] | None = None):
816+
"""Set the color mode for Plotpy
817+
818+
Args:
819+
mode: Color mode ('light', 'dark' or 'auto'). If 'auto', the system color mode
820+
is used. If None, the `QT_COLOR_MODE` environment variable is used.
821+
"""
822+
qthelpers.set_color_mode(mode) # guidata >= 3.6.1
823+
update_plotpy_color_mode()

0 commit comments

Comments
 (0)