ui: split Apps(runtime) into subtabs (Profiles/Run/Marks/Units/Log)

This commit is contained in:
beckline
2026-02-15 21:32:37 +03:00
parent 1a96e849bb
commit f14dd7bc89

View File

@@ -213,6 +213,11 @@ RU: Восстанавливает маршруты/nft из последнег
apps_hint.setStyleSheet("color: gray;")
tab_apps_layout.addWidget(apps_hint)
# EN: Split this UX into subtabs to fit smaller screens (no giant vertical stack).
# RU: Разбиваем на под-вкладки, чтобы помещалось на маленьких экранах.
self.apps_tabs = QTabWidget()
tab_apps_layout.addWidget(self.apps_tabs, stretch=1)
profiles_group = QGroupBox("Added apps (profiles)")
profiles_layout = QVBoxLayout(profiles_group)
@@ -288,7 +293,11 @@ RU: Восстанавливает маршруты/nft из последнег
self.lbl_app_profiles.setStyleSheet("color: gray;")
profiles_layout.addWidget(self.lbl_app_profiles)
tab_apps_layout.addWidget(profiles_group)
tab_profiles = QWidget()
tab_profiles_layout = QVBoxLayout(tab_profiles)
tab_profiles_layout.addWidget(profiles_group)
tab_profiles_layout.addStretch(1)
self.apps_tabs.addTab(tab_profiles, "Profiles")
run_group = QGroupBox("Run app (systemd unit) + apply mark")
run_layout = QVBoxLayout(run_group)
@@ -391,7 +400,11 @@ RU: Восстанавливает маршруты/nft из последнег
run_layout.addWidget(self.lbl_app_last)
self._refresh_last_scope_ui()
tab_apps_layout.addWidget(run_group)
tab_run = QWidget()
tab_run_layout = QVBoxLayout(tab_run)
tab_run_layout.addWidget(run_group)
tab_run_layout.addStretch(1)
self.apps_tabs.addTab(tab_run, "Run")
marks_group = QGroupBox("Active runtime marks (TTL)")
marks_layout = QVBoxLayout(marks_group)
@@ -429,7 +442,11 @@ RU: Восстанавливает маршруты/nft из последнег
self.lbl_marks.setStyleSheet("color: gray;")
marks_layout.addWidget(self.lbl_marks)
tab_apps_layout.addWidget(marks_group)
tab_marks = QWidget()
tab_marks_layout = QVBoxLayout(tab_marks)
tab_marks_layout.addWidget(marks_group)
tab_marks_layout.addStretch(1)
self.apps_tabs.addTab(tab_marks, "Marks")
scopes_group = QGroupBox("Active svpn units (systemd --user)")
scopes_layout = QVBoxLayout(scopes_group)
@@ -476,13 +493,19 @@ RU: Восстанавливает маршруты/nft из последнег
self.lbl_scopes.setStyleSheet("color: gray;")
scopes_layout.addWidget(self.lbl_scopes)
tab_apps_layout.addWidget(scopes_group)
tab_units = QWidget()
tab_units_layout = QVBoxLayout(tab_units)
tab_units_layout.addWidget(scopes_group)
tab_units_layout.addStretch(1)
self.apps_tabs.addTab(tab_units, "Units")
self.txt_app = QPlainTextEdit()
self.txt_app.setReadOnly(True)
tab_apps_layout.addWidget(self.txt_app, stretch=1)
tab_log = QWidget()
tab_log_layout = QVBoxLayout(tab_log)
tab_log_layout.addWidget(self.txt_app, stretch=1)
self.apps_tabs.addTab(tab_log, "Log")
tab_apps_layout.addStretch(1)
self.tabs.addTab(tab_apps, "Apps (runtime)")
tab_adv = QWidget()