add new selector
This commit is contained in:
parent
f1cde595ba
commit
8638c322a3
4
app.py
4
app.py
@ -51,8 +51,8 @@ def _apply_startup_display_defaults():
|
||||
settings.setValue("display/auto_brightness", False)
|
||||
if not settings.contains("display/theme"):
|
||||
settings.setValue("display/theme", "night")
|
||||
if not settings.contains("source/default_mode"):
|
||||
settings.setValue("source/default_mode", "bluetooth")
|
||||
if not settings.contains("media/source_mode"):
|
||||
settings.setValue("media/source_mode", "bluetooth")
|
||||
|
||||
|
||||
def _apply_reset_if_requested():
|
||||
|
||||
@ -54,7 +54,18 @@ class MainWindowNew(QMainWindow):
|
||||
menu = QMenu(self.menu_button)
|
||||
menu.setMinimumWidth(340)
|
||||
self.menu_button.setMenu(menu)
|
||||
|
||||
# Кнопка "Media" - открывает текущий режим
|
||||
self.act_media = menu.addAction("Media")
|
||||
menu.addSeparator()
|
||||
|
||||
# Подменю с переключателями Bluetooth/CarPlay
|
||||
self.menu_source = menu.addMenu("Режим Media")
|
||||
self.act_source_bluetooth = self.menu_source.addAction("Bluetooth")
|
||||
self.act_source_carplay = self.menu_source.addAction("CarPlay")
|
||||
self.act_source_bluetooth.setCheckable(True)
|
||||
self.act_source_carplay.setCheckable(True)
|
||||
|
||||
self.act_car = menu.addAction("Car")
|
||||
self.act_maps = menu.addAction("Maps")
|
||||
|
||||
@ -90,7 +101,7 @@ class MainWindowNew(QMainWindow):
|
||||
self.media_screen = MediaScreen()
|
||||
self.stack.addWidget(self.media_screen) # 0
|
||||
self.stack.addWidget(StubScreen("Car")) # 1
|
||||
self.stack.addWidget(StubScreen("Maps")) # 2
|
||||
self.stack.addWidget(StubScreen("Maps")) # 2
|
||||
self.settings_screen = SettingsScreen()
|
||||
self.stack.addWidget(self.settings_screen) # 3
|
||||
|
||||
@ -99,7 +110,13 @@ class MainWindowNew(QMainWindow):
|
||||
self.settings_title = "Настройки"
|
||||
self.settings_show_back = False
|
||||
|
||||
self.act_media.triggered.connect(lambda: self.go(0))
|
||||
# Читаем режим источника
|
||||
self._source_mode = self._settings.value("media/source_mode", "bluetooth")
|
||||
self._update_source_menu()
|
||||
|
||||
self.act_media.triggered.connect(lambda: self._open_media())
|
||||
self.act_source_bluetooth.triggered.connect(lambda: self._set_source_mode("bluetooth"))
|
||||
self.act_source_carplay.triggered.connect(lambda: self._set_source_mode("carplay"))
|
||||
self.act_car.triggered.connect(lambda: self.go(1))
|
||||
self.act_maps.triggered.connect(lambda: self.go(2))
|
||||
self.media_screen.source_changed.connect(self.lbl_bt.setText)
|
||||
@ -118,6 +135,9 @@ class MainWindowNew(QMainWindow):
|
||||
|
||||
self.apply_theme()
|
||||
self.go(0)
|
||||
# Обновляем заголовок с учётом режима
|
||||
mode_text = "Bluetooth" if self._source_mode == "bluetooth" else "CarPlay"
|
||||
self.lbl_source.setText(f"Media • {mode_text}")
|
||||
self.lbl_bt.setText(self.media_screen.source.text())
|
||||
|
||||
def apply_theme(self):
|
||||
@ -160,6 +180,28 @@ class MainWindowNew(QMainWindow):
|
||||
self.lbl_source.setText("Maps")
|
||||
self._sync_topbar(idx)
|
||||
|
||||
def _open_media(self):
|
||||
"""Открыть экран Media с текущим режимом."""
|
||||
self.go(0)
|
||||
mode_text = "Bluetooth" if self._source_mode == "bluetooth" else "CarPlay"
|
||||
self.lbl_source.setText(f"Media • {mode_text}")
|
||||
self.lbl_bt.setText(self.media_screen.source.text())
|
||||
|
||||
def _set_source_mode(self, mode: str):
|
||||
"""Установить режим источника (Bluetooth/CarPlay)."""
|
||||
self._settings.setValue("media/source_mode", mode)
|
||||
self._source_mode = mode
|
||||
self._update_source_menu()
|
||||
# Обновляем заголовок
|
||||
if self.stack.currentIndex() == 0:
|
||||
mode_text = "Bluetooth" if mode == "bluetooth" else "CarPlay"
|
||||
self.lbl_source.setText(f"Media • {mode_text}")
|
||||
|
||||
def _update_source_menu(self):
|
||||
"""Обновить состояние переключателей в меню."""
|
||||
self.act_source_bluetooth.setChecked(self._source_mode == "bluetooth")
|
||||
self.act_source_carplay.setChecked(self._source_mode == "carplay")
|
||||
|
||||
def _on_settings_view_changed(self, title: str, show_back: bool):
|
||||
self.settings_title = title
|
||||
self.settings_show_back = show_back
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user