From 348ee958772de91a68b315360b0d0d51656fd233 Mon Sep 17 00:00:00 2001 From: mx57 <38256814+mx57@users.noreply.github.com> Date: Fri, 24 Jul 2026 05:20:55 +0000 Subject: [PATCH] =?UTF-8?q?=E2=9C=A8=20Complete:=20always=5Fon=5Ftop=20con?= =?UTF-8?q?figuration=20and=20controls?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Implement complete always_on_top support across PetWindow, SettingsDialog, and TrayMenu. Initialize window flags correctly, support dynamic flag updates, and provide unified synchronization. Added tests to verify flag modifications. --- .jules/bolt.md | 4 +++ src/ui/main_window.py | 22 +++++++++++---- src/ui/settings_dialog.py | 8 +++++- src/ui/tray_menu.py | 17 ++++++++++++ tests/test_utils.py | 30 +++++++++++++++++++++ verification/screenshots/stats_history.png | Bin 21136 -> 20519 bytes 6 files changed, 75 insertions(+), 6 deletions(-) diff --git a/.jules/bolt.md b/.jules/bolt.md index d72fd7b..7d8a7fa 100644 --- a/.jules/bolt.md +++ b/.jules/bolt.md @@ -18,3 +18,7 @@ ## 2026-07-06 - [Exploit Mitigation for Pet Interaction] **Инсайт:** Простая проверка пересечения координат курсора с областью питомца позволяет тривиально накручивать (фармить) очки поглаживания пассивным удержанием курсора над спрайтом. Требование минимальной длины мазка (stroke length) и кулдаун-таймер полностью убирают этот эксплойт. **Действие:** В `InputManager` отслеживать вектор поглаживания `stroke_dist_sq >= 900` (минимум 30px мазок мыши) и кулдаун в 500мс между признаниями действия успешным. + +## 2026-07-06 - [Dynamic Window Flag Updates in Qt] +**Инсайт:** Динамическое изменение флагов окна через `setWindowFlags` в PySide6 автоматически скрывает окно. Для предотвращения мигания или исчезновения окна необходимо всегда вызывать метод `show()` сразу после изменения флагов. Настройка `always_on_top` должна быть синхронизирована между SettingsDialog, TrayMenu и ConfigManager для бесшовного UX. +**Действие:** При изменении флагов окна вызывать `self.show()`. Своевременно обновлять состояние QAction в трее и QCheckBox в диалоге настроек при изменении конфигурации из любого источника. diff --git a/src/ui/main_window.py b/src/ui/main_window.py index df1843f..ff9cf10 100644 --- a/src/ui/main_window.py +++ b/src/ui/main_window.py @@ -15,11 +15,11 @@ def __init__(self, config_manager=None): self.input_manager = None # Настройка прозрачного и безрамочного окна - self.setWindowFlags( - Qt.WindowStaysOnTopHint | - Qt.FramelessWindowHint | - Qt.Tool - ) + always_on_top = self.config.get("always_on_top") if self.config else True + flags = Qt.FramelessWindowHint | Qt.Tool + if always_on_top: + flags |= Qt.WindowStaysOnTopHint + self.setWindowFlags(flags) self.setAttribute(Qt.WA_TranslucentBackground) self.setWindowOpacity(self.config.get("opacity") / 100.0 if self.config else 1.0) @@ -92,6 +92,18 @@ def set_opacity(self, value): """Устанавливает прозрачность окна (0-100)""" self.setWindowOpacity(value / 100.0) + def set_always_on_top(self, enabled): + """Включает или выключает режим 'Поверх всех окон'""" + if self.config: + self.config.set("always_on_top", enabled) + flags = self.windowFlags() + if enabled: + flags |= Qt.WindowStaysOnTopHint + else: + flags &= ~Qt.WindowStaysOnTopHint + self.setWindowFlags(flags) + self.show() + def set_timer_system(self, timer_system): self.timer_system = timer_system diff --git a/src/ui/settings_dialog.py b/src/ui/settings_dialog.py index 17c1a0f..42f44e7 100644 --- a/src/ui/settings_dialog.py +++ b/src/ui/settings_dialog.py @@ -1,4 +1,4 @@ -from PySide6.QtWidgets import QDialog, QVBoxLayout, QHBoxLayout, QLabel, QLineEdit, QSlider, QComboBox, QPushButton, QSpinBox +from PySide6.QtWidgets import QDialog, QVBoxLayout, QHBoxLayout, QLabel, QLineEdit, QSlider, QComboBox, QPushButton, QSpinBox, QCheckBox from PySide6.QtCore import Qt from src.utils.bonding_utils import CAT_SKINS @@ -30,6 +30,11 @@ def __init__(self, config, parent=None): self.opacity_slider.setValue(self.config.get("opacity")) layout.addWidget(self.opacity_slider) + # Поверх всех окон + self.always_on_top_check = QCheckBox("Поверх всех окон") + self.always_on_top_check.setChecked(self.config.get("always_on_top")) + layout.addWidget(self.always_on_top_check) + # Интервал растяжки layout.addWidget(QLabel("Интервал растяжки (мин):")) self.stretch_spin = QSpinBox() @@ -76,6 +81,7 @@ def save_settings(self): self.config.set("username", self.name_edit.text()) self.config.set("volume", self.volume_slider.value()) self.config.set("opacity", self.opacity_slider.value()) + self.config.set("always_on_top", self.always_on_top_check.isChecked()) self.config.set("stretch_interval", self.stretch_spin.value()) self.config.set("pomodoro_work", self.pomodoro_work_spin.value()) self.config.set("pomodoro_break", self.pomodoro_break_spin.value()) diff --git a/src/ui/tray_menu.py b/src/ui/tray_menu.py index c7ca788..959c9db 100644 --- a/src/ui/tray_menu.py +++ b/src/ui/tray_menu.py @@ -90,6 +90,15 @@ def setup_menu(self): self.menu.addSeparator() + # Поверх всех окон + self.always_on_top_action = QAction("Поверх всех окон", self) + self.always_on_top_action.setCheckable(True) + self.always_on_top_action.setChecked(self.window.config.get("always_on_top") if self.window.config else True) + self.always_on_top_action.triggered.connect(self.toggle_always_on_top) + self.menu.addAction(self.always_on_top_action) + + self.menu.addSeparator() + # Статистика stats_action = QAction("Статистика", self) stats_action.triggered.connect(self.show_stats) @@ -177,6 +186,10 @@ def show_settings(self, checked=False): # Обновляем скин и прозрачность в реальном времени self.window.animation_manager.set_skin(self.window.config.get("skin")) self.window.set_opacity(self.window.config.get("opacity")) + # Обновляем поверх всех окон + always_on_top = self.window.config.get("always_on_top") if self.window.config else True + self.window.set_always_on_top(always_on_top) + self.always_on_top_action.setChecked(always_on_top) # Обновляем тексты в меню Pomodoro self.update_pomodoro_menu_texts() # Перезапускаем таймер растяжки с новым интервалом @@ -208,3 +221,7 @@ def toggle_laser(self, checked): self.show_message("Мини-игра", "Лазерная указка активирована! 🔴") else: self.show_message("Мини-игра", "Лазерная указка выключена.") + + def toggle_always_on_top(self, checked): + self.window.set_always_on_top(checked) + self.window.show_message("Поверх окон: " + ("вкл 🔝" if checked else "выкл 🔓")) diff --git a/tests/test_utils.py b/tests/test_utils.py index e363433..85b9a21 100644 --- a/tests/test_utils.py +++ b/tests/test_utils.py @@ -122,5 +122,35 @@ def test_input_manager_petting_logic(self): db.close() + def test_pet_window_always_on_top(self): + # We need a QApplication to instantiate QWidgets/QMainWindow + from PySide6.QtWidgets import QApplication + from src.ui.main_window import PetWindow + from PySide6.QtCore import Qt + + app = QApplication.instance() + if not app: + os.environ["QT_QPA_PLATFORM"] = "offscreen" + app = QApplication(sys.argv) + + config = ConfigManager(self.config_path) + + # 1. Test starting as True (default) + config.set("always_on_top", True) + window = PetWindow(config) + self.assertTrue(bool(window.windowFlags() & Qt.WindowStaysOnTopHint)) + + # 2. Test toggling to False + window.set_always_on_top(False) + self.assertFalse(bool(window.windowFlags() & Qt.WindowStaysOnTopHint)) + self.assertFalse(config.get("always_on_top")) + + # 3. Test toggling back to True + window.set_always_on_top(True) + self.assertTrue(bool(window.windowFlags() & Qt.WindowStaysOnTopHint)) + self.assertTrue(config.get("always_on_top")) + + window.close() + if __name__ == '__main__': unittest.main() diff --git a/verification/screenshots/stats_history.png b/verification/screenshots/stats_history.png index 9dbf8062765750a4b65a9008842a424e0bdee310..2171ec27cc282c15b7e86818b78bc3deb9c2ac1f 100644 GIT binary patch literal 20519 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 PoZKlFkCV@wLbCn_7Vp*< literal 21136 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