diff --git a/src/anonymizer/anonymizer.py b/src/anonymizer/anonymizer.py index 1ac8447..045049d 100644 --- a/src/anonymizer/anonymizer.py +++ b/src/anonymizer/anonymizer.py @@ -1,4 +1,5 @@ import faulthandler +import ctypes import json import logging import os @@ -40,6 +41,13 @@ from anonymizer.view.settings.settings_dialog import SettingsDialog from anonymizer.view.welcome import WelcomeView + +# Enable DPI awareness for Windows (improves scaling on high-DPI/4K monitors) +try: + ctypes.windll.shcore.SetProcessDpiAwareness(1) +except Exception: + pass + faulthandler.enable() logger = logging.getLogger() # ROOT logger @@ -47,6 +55,7 @@ class Anonymizer(ctk.CTk): THEME_FILE = "assets/themes/rsna_theme.json" + DARK_THEME_FILE = "assets/themes/rsna_theme_dark.json" project_open_startup_dwell_time = 100 # milliseconds metrics_loop_interval = 1000 # milliseconds @@ -60,13 +69,20 @@ def get_app_state_path(self) -> Path: def __init__(self, logs_dir: Path): super().__init__() self.logs_dir: Path = logs_dir + ctk.set_appearance_mode("System") # Modes: "System" (standard), "Dark", "Light" - theme = self.THEME_FILE + appearance_mode = ctk.get_appearance_mode() + if appearance_mode == "Light": + theme = self.THEME_FILE + else: + theme = self.DARK_THEME_FILE + if not os.path.exists(theme): logger.error(f"Theme file not found: {theme}, reverting to dark-blue theme") theme = "dark-blue" ctk.set_default_color_theme(theme) - ctk.deactivate_automatic_dpi_awareness() # TODO: implement dpi awareness for all views for Windows OS + # DPI awareness is now enabled globally for Windows above; do not deactivate here + # ctk.deactivate_automatic_dpi_awareness() # Removed for proper DPI scaling logging.info(f"ctk.ThemeManager.theme:\n{pformat(ThemeManager.theme)}") self.mono_font = self._init_mono_font() diff --git "a/src/anonymizer/assets/locales/de/html/1_\303\274bersicht.html" "b/src/anonymizer/assets/locales/de/html/1_\303\274bersicht.html" index bf76a35..26302f9 100644 --- "a/src/anonymizer/assets/locales/de/html/1_\303\274bersicht.html" +++ "b/src/anonymizer/assets/locales/de/html/1_\303\274bersicht.html" @@ -3,7 +3,7 @@ see https://github.com/bauripalash/tkhtmlview?tab=readme-ov-file#html-support -->
-Der RSNA DICOM Anonymizer ist ein plattformübergreifendes, eigenständiges De-Identifikations-Werkzeug. diff --git a/src/anonymizer/assets/locales/de/html/2_deidentifikationsprotokoll.html b/src/anonymizer/assets/locales/de/html/2_deidentifikationsprotokoll.html index 7072fae..9533128 100644 --- a/src/anonymizer/assets/locales/de/html/2_deidentifikationsprotokoll.html +++ b/src/anonymizer/assets/locales/de/html/2_deidentifikationsprotokoll.html @@ -3,7 +3,7 @@ siehe https://github.com/bauripalash/tkhtmlview?tab=readme-ov-file#html-support -->
-diff --git a/src/anonymizer/assets/locales/de/html/3_anonymisierungsprojekte_verwalten.html b/src/anonymizer/assets/locales/de/html/3_anonymisierungsprojekte_verwalten.html index 8635d52..fd8266b 100644 --- a/src/anonymizer/assets/locales/de/html/3_anonymisierungsprojekte_verwalten.html +++ b/src/anonymizer/assets/locales/de/html/3_anonymisierungsprojekte_verwalten.html @@ -3,7 +3,7 @@ siehe https://github.com/bauripalash/tkhtmlview?tab=readme-ov-file#html-support -->
-diff --git a/src/anonymizer/assets/locales/en_US/html/3_managing anonymization projects.html b/src/anonymizer/assets/locales/en_US/html/3_managing anonymization projects.html index f74bc28..f4d8072 100644 --- a/src/anonymizer/assets/locales/en_US/html/3_managing anonymization projects.html +++ b/src/anonymizer/assets/locales/en_US/html/3_managing anonymization projects.html @@ -3,7 +3,7 @@ see https://github.com/bauripalash/tkhtmlview?tab=readme-ov-file#html-support -->
-diff --git "a/src/anonymizer/assets/locales/es/html/3_gesti\303\263n de proyectos.html" "b/src/anonymizer/assets/locales/es/html/3_gesti\303\263n de proyectos.html" index d631beb..50c4330 100755 --- "a/src/anonymizer/assets/locales/es/html/3_gesti\303\263n de proyectos.html" +++ "b/src/anonymizer/assets/locales/es/html/3_gesti\303\263n de proyectos.html" @@ -3,7 +3,7 @@ vea https://github.com/bauripalash/tkhtmlview?tab=readme-ov-file#html-support -->
-diff --git "a/src/anonymizer/assets/locales/es/html_bak/3_gesti\303\263n de proyectos.html" "b/src/anonymizer/assets/locales/es/html_bak/3_gesti\303\263n de proyectos.html" index 54f933c..f8fb16e 100644 --- "a/src/anonymizer/assets/locales/es/html_bak/3_gesti\303\263n de proyectos.html" +++ "b/src/anonymizer/assets/locales/es/html_bak/3_gesti\303\263n de proyectos.html" @@ -3,7 +3,7 @@ ver https://github.com/bauripalash/tkhtmlview?tab=readme-ov-file#html-support -->
-diff --git "a/src/anonymizer/assets/locales/es/html_bak/4_configuraci\303\263n del proyecto.html" "b/src/anonymizer/assets/locales/es/html_bak/4_configuraci\303\263n del proyecto.html" index 3517c1c..de77f95 100644 --- "a/src/anonymizer/assets/locales/es/html_bak/4_configuraci\303\263n del proyecto.html" +++ "b/src/anonymizer/assets/locales/es/html_bak/4_configuraci\303\263n del proyecto.html" @@ -3,7 +3,7 @@ ver https://github.com/bauripalash/tkhtmlview?tab=readme-ov-file#html-support -->
-diff --git a/src/anonymizer/assets/locales/fr/html/3_gestion de projet.html b/src/anonymizer/assets/locales/fr/html/3_gestion de projet.html index 934e8aa..a9973ee 100644 --- a/src/anonymizer/assets/locales/fr/html/3_gestion de projet.html +++ b/src/anonymizer/assets/locales/fr/html/3_gestion de projet.html @@ -3,7 +3,7 @@ voir https://github.com/bauripalash/tkhtmlview?tab=readme-ov-file#html-support -->
-