fix settings dev
This commit is contained in:
parent
28a795558e
commit
2fdb506044
@ -13,7 +13,7 @@ DEFAULT_SOUND_VOLUME = 100
|
|||||||
DEFAULT_PREMUTE_VOLUME = 10
|
DEFAULT_PREMUTE_VOLUME = 10
|
||||||
DEFAULT_DUCKING_VOLUME = 35
|
DEFAULT_DUCKING_VOLUME = 35
|
||||||
DEV_MODE_ENABLE = (Path(__file__).resolve().parent / "dev_mode_enable").exists()
|
DEV_MODE_ENABLE = (Path(__file__).resolve().parent / "dev_mode_enable").exists()
|
||||||
BLUETOOTH_MAX_PAIRED_DEVICES = 5
|
BLUETOOTH_MAX_PAIRED_DEVICES = 4
|
||||||
|
|
||||||
|
|
||||||
def get_device_model() -> str:
|
def get_device_model() -> str:
|
||||||
|
|||||||
@ -111,97 +111,11 @@ def _build_sound_toggles() -> QWidget:
|
|||||||
return container
|
return container
|
||||||
|
|
||||||
|
|
||||||
def _build_mock_devices_toggle() -> QWidget:
|
|
||||||
settings = QSettings("car_ui", "ui")
|
|
||||||
|
|
||||||
container = QWidget()
|
|
||||||
layout = QVBoxLayout(container)
|
|
||||||
layout.setContentsMargins(12, 6, 12, 6)
|
|
||||||
layout.setSpacing(8)
|
|
||||||
|
|
||||||
layout.addWidget(
|
|
||||||
_toggle_row(
|
|
||||||
"Mock Bluetooth устройства",
|
|
||||||
settings,
|
|
||||||
"debug/mock_devices",
|
|
||||||
False,
|
|
||||||
flag_path=_mock_devices_flag_path(),
|
|
||||||
)
|
|
||||||
)
|
|
||||||
return container
|
|
||||||
|
|
||||||
|
|
||||||
def _build_persist_toggle() -> QWidget:
|
|
||||||
row = QWidget()
|
|
||||||
layout = QHBoxLayout(row)
|
|
||||||
layout.setContentsMargins(12, 6, 12, 6)
|
|
||||||
layout.setSpacing(12)
|
|
||||||
|
|
||||||
lbl = QLabel("Показывать после перезагрузки")
|
|
||||||
lbl.setFont(QFont("", 14, 600))
|
|
||||||
|
|
||||||
btn = QPushButton("Выкл")
|
|
||||||
btn.setObjectName("SoundToggle")
|
|
||||||
btn.setCheckable(True)
|
|
||||||
btn.setChecked(_dev_flag_path().exists())
|
|
||||||
btn.setMinimumHeight(40)
|
|
||||||
btn.setMinimumWidth(110)
|
|
||||||
btn.setFont(QFont("", 12, 700))
|
|
||||||
|
|
||||||
def _sync_text(is_checked: bool):
|
|
||||||
btn.setText("Вкл" if is_checked else "Выкл")
|
|
||||||
|
|
||||||
def _persist_flag(is_checked: bool):
|
|
||||||
flag_path = _dev_flag_path()
|
|
||||||
if is_checked:
|
|
||||||
flag_path.touch(exist_ok=True)
|
|
||||||
else:
|
|
||||||
if flag_path.exists():
|
|
||||||
flag_path.unlink()
|
|
||||||
|
|
||||||
btn.toggled.connect(_sync_text)
|
|
||||||
btn.toggled.connect(_persist_flag)
|
|
||||||
_sync_text(btn.isChecked())
|
|
||||||
|
|
||||||
layout.addWidget(lbl)
|
|
||||||
layout.addStretch(1)
|
|
||||||
layout.addWidget(btn)
|
|
||||||
return row
|
|
||||||
|
|
||||||
|
|
||||||
def _build_sound_toggles() -> QWidget:
|
|
||||||
settings = QSettings("car_ui", "ui")
|
|
||||||
|
|
||||||
container = QWidget()
|
|
||||||
layout = QVBoxLayout(container)
|
|
||||||
layout.setContentsMargins(12, 6, 12, 6)
|
|
||||||
layout.setSpacing(8)
|
|
||||||
|
|
||||||
layout.addWidget(
|
|
||||||
_toggle_row(
|
|
||||||
"Премут",
|
|
||||||
settings,
|
|
||||||
"sound/premute_enabled",
|
|
||||||
False,
|
|
||||||
)
|
|
||||||
)
|
|
||||||
layout.addWidget(
|
|
||||||
_toggle_row(
|
|
||||||
"Ducking",
|
|
||||||
settings,
|
|
||||||
"sound/ducking_enabled",
|
|
||||||
False,
|
|
||||||
)
|
|
||||||
)
|
|
||||||
return container
|
|
||||||
|
|
||||||
|
|
||||||
def _toggle_row(
|
def _toggle_row(
|
||||||
label: str,
|
label: str,
|
||||||
settings: QSettings,
|
settings: QSettings,
|
||||||
key: str,
|
key: str,
|
||||||
default: bool,
|
default: bool,
|
||||||
flag_path: Path | None = None,
|
|
||||||
) -> QWidget:
|
) -> QWidget:
|
||||||
row = QWidget()
|
row = QWidget()
|
||||||
layout = QHBoxLayout(row)
|
layout = QHBoxLayout(row)
|
||||||
@ -214,9 +128,6 @@ def _toggle_row(
|
|||||||
btn = QPushButton("Выкл")
|
btn = QPushButton("Выкл")
|
||||||
btn.setObjectName("SoundToggle")
|
btn.setObjectName("SoundToggle")
|
||||||
btn.setCheckable(True)
|
btn.setCheckable(True)
|
||||||
if flag_path:
|
|
||||||
btn.setChecked(flag_path.exists())
|
|
||||||
else:
|
|
||||||
btn.setChecked(_read_bool_setting(settings, key, default))
|
btn.setChecked(_read_bool_setting(settings, key, default))
|
||||||
btn.setMinimumHeight(40)
|
btn.setMinimumHeight(40)
|
||||||
btn.setMinimumWidth(110)
|
btn.setMinimumWidth(110)
|
||||||
@ -226,13 +137,6 @@ def _toggle_row(
|
|||||||
btn.setText("Вкл" if is_checked else "Выкл")
|
btn.setText("Вкл" if is_checked else "Выкл")
|
||||||
|
|
||||||
def _persist_flag(is_checked: bool):
|
def _persist_flag(is_checked: bool):
|
||||||
if flag_path:
|
|
||||||
if is_checked:
|
|
||||||
flag_path.touch(exist_ok=True)
|
|
||||||
else:
|
|
||||||
if flag_path.exists():
|
|
||||||
flag_path.unlink()
|
|
||||||
else:
|
|
||||||
settings.setValue(key, is_checked)
|
settings.setValue(key, is_checked)
|
||||||
|
|
||||||
btn.toggled.connect(_sync_text)
|
btn.toggled.connect(_sync_text)
|
||||||
@ -261,8 +165,23 @@ def _dev_flag_path() -> Path:
|
|||||||
return Path(build_info.__file__).resolve().parent / "dev_mode_enable"
|
return Path(build_info.__file__).resolve().parent / "dev_mode_enable"
|
||||||
|
|
||||||
|
|
||||||
def _mock_devices_flag_path() -> Path:
|
def _build_mock_devices_toggle() -> QWidget:
|
||||||
return Path(build_info.__file__).resolve().parent / "mock_devices_enable"
|
settings = QSettings("car_ui", "ui")
|
||||||
|
|
||||||
|
container = QWidget()
|
||||||
|
layout = QVBoxLayout(container)
|
||||||
|
layout.setContentsMargins(12, 6, 12, 6)
|
||||||
|
layout.setSpacing(8)
|
||||||
|
|
||||||
|
layout.addWidget(
|
||||||
|
_toggle_row(
|
||||||
|
"Mock Bluetooth устройства (debug)",
|
||||||
|
settings,
|
||||||
|
"debug/mock_devices",
|
||||||
|
False,
|
||||||
|
)
|
||||||
|
)
|
||||||
|
return container
|
||||||
|
|
||||||
|
|
||||||
def _confirm_exit(on_exit):
|
def _confirm_exit(on_exit):
|
||||||
|
|||||||
@ -7,15 +7,27 @@ from dataclasses import dataclass
|
|||||||
from datetime import datetime
|
from datetime import datetime
|
||||||
from pathlib import Path
|
from pathlib import Path
|
||||||
|
|
||||||
from PySide6.QtCore import QObject, Signal
|
from PySide6.QtCore import QObject, Signal, QSettings
|
||||||
|
|
||||||
import build_info
|
import build_info
|
||||||
|
|
||||||
|
|
||||||
def _is_mock_devices_enabled() -> bool:
|
def _is_mock_devices_enabled() -> bool:
|
||||||
"""Проверить, включён ли режим мок-устройств."""
|
"""Проверить, включён ли режим мок-устройств."""
|
||||||
flag_path = Path(build_info.__file__).resolve().parent / "mock_devices_enable"
|
settings = QSettings("car_ui", "ui")
|
||||||
return flag_path.exists()
|
return _read_bool_setting(settings, "debug/mock_devices", False)
|
||||||
|
|
||||||
|
|
||||||
|
def _read_bool_setting(settings: QSettings, key: str, default: bool) -> bool:
|
||||||
|
raw = settings.value(key, default)
|
||||||
|
if isinstance(raw, bool):
|
||||||
|
return raw
|
||||||
|
if isinstance(raw, str):
|
||||||
|
return raw.strip().lower() in ("1", "true", "yes", "on")
|
||||||
|
try:
|
||||||
|
return bool(int(raw))
|
||||||
|
except (TypeError, ValueError):
|
||||||
|
return default
|
||||||
|
|
||||||
|
|
||||||
@dataclass
|
@dataclass
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user