diff --git a/selective-vpn-gui/traffic_mode_dialog.py b/selective-vpn-gui/traffic_mode_dialog.py index 131f398..912be74 100644 --- a/selective-vpn-gui/traffic_mode_dialog.py +++ b/selective-vpn-gui/traffic_mode_dialog.py @@ -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()