mirror of
https://github.com/Flowseal/tg-ws-proxy.git
synced 2026-05-22 23:41:44 +03:00
Мелкие фиксы настроек и пара багов (#805)
This commit is contained in:
committed by
GitHub
parent
1cbc7dee7d
commit
e3d2229f7f
31
windows.py
31
windows.py
@@ -436,7 +436,11 @@ def _on_edit_config(icon=None, item=None) -> None:
|
||||
def _on_open_logs(icon=None, item=None) -> None:
|
||||
log.info("Opening log file: %s", LOG_FILE)
|
||||
if LOG_FILE.exists():
|
||||
os.startfile(str(LOG_FILE))
|
||||
try:
|
||||
os.startfile(str(LOG_FILE))
|
||||
except Exception as exc:
|
||||
log.error("Failed to open log file: %s", exc)
|
||||
_show_error(f"Не удалось открыть файл логов:\n{exc}")
|
||||
else:
|
||||
_show_info("Файл логов ещё не создан.")
|
||||
|
||||
@@ -485,16 +489,31 @@ def _edit_config_dialog() -> None:
|
||||
autostart_value=cfg.get("autostart", False),
|
||||
)
|
||||
|
||||
_original_appearance = ctk.get_appearance_mode()
|
||||
|
||||
def _finish() -> None:
|
||||
root.destroy()
|
||||
done.set()
|
||||
|
||||
def _cancel() -> None:
|
||||
ctk.set_appearance_mode(_original_appearance)
|
||||
_finish()
|
||||
|
||||
def on_save() -> None:
|
||||
from tkinter import messagebox
|
||||
merged = validate_config_form(widgets, DEFAULT_CONFIG, include_autostart=_supports_autostart())
|
||||
if isinstance(merged, str):
|
||||
messagebox.showerror("TG WS Proxy — Ошибка", merged, parent=root)
|
||||
return
|
||||
|
||||
_ui_only_keys = {"appearance", "autostart", "check_updates"}
|
||||
config_changed = any(merged.get(k) != cfg.get(k) for k in merged)
|
||||
proxy_changed = any(merged.get(k) != cfg.get(k) for k in merged if k not in _ui_only_keys)
|
||||
|
||||
if not config_changed:
|
||||
_finish()
|
||||
return
|
||||
|
||||
save_config(merged)
|
||||
_config.update(merged)
|
||||
log.info("Config saved: %s", merged)
|
||||
@@ -502,6 +521,10 @@ def _edit_config_dialog() -> None:
|
||||
set_autostart_enabled(bool(merged.get("autostart", False)))
|
||||
_tray_icon.menu = _build_menu()
|
||||
|
||||
if not proxy_changed:
|
||||
_finish()
|
||||
return
|
||||
|
||||
do_restart = messagebox.askyesno(
|
||||
"Перезапустить?",
|
||||
"Настройки сохранены.\n\nПерезапустить прокси сейчас?",
|
||||
@@ -511,8 +534,8 @@ def _edit_config_dialog() -> None:
|
||||
if do_restart:
|
||||
threading.Thread(target=lambda: restart_proxy(_config, _show_error), daemon=True).start()
|
||||
|
||||
root.protocol("WM_DELETE_WINDOW", _finish)
|
||||
install_tray_config_buttons(ctk, footer, theme, on_save=on_save, on_cancel=_finish)
|
||||
root.protocol("WM_DELETE_WINDOW", _cancel)
|
||||
install_tray_config_buttons(ctk, footer, theme, on_save=on_save, on_cancel=_cancel)
|
||||
|
||||
ctk_run_dialog(_build)
|
||||
|
||||
@@ -578,7 +601,7 @@ def run_tray() -> None:
|
||||
|
||||
_config = load_config()
|
||||
|
||||
if is_windows_dark_theme:
|
||||
if is_windows_dark_theme():
|
||||
apply_windows_dark_theme()
|
||||
|
||||
bootstrap(_config)
|
||||
|
||||
Reference in New Issue
Block a user