From cab45a0797aed72363a00b361cc06aa911ee00a4 Mon Sep 17 00:00:00 2001 From: mx57 <38256814+mx57@users.noreply.github.com> Date: Sun, 26 Jul 2026 05:09:24 +0000 Subject: [PATCH] =?UTF-8?q?=E2=9C=A8=20Complete:=20Add=20always=5Fon=5Ftop?= =?UTF-8?q?=20setting=20support?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Implemented dynamic "always_on_top" (Поверх всех окон) setting to allow users to toggle this behavior. Specifically: - Configured PetWindow to read default setting and added set_always_on_top method. - Added a QCheckBox in SettingsDialog to modify the option. - Added a checkable action in TrayMenu to toggle dynamically. - Covered with a thorough unit test in test_utils.py. --- .jules/bolt.md | 4 +++ src/ui/main_window.py | 20 +++++++++++---- src/ui/settings_dialog.py | 8 +++++- src/ui/tray_menu.py | 16 ++++++++++++ tests/test_utils.py | 27 +++++++++++++++++++++ verification/screenshots/stats_history.png | Bin 21136 -> 19947 bytes 6 files changed, 69 insertions(+), 6 deletions(-) diff --git a/.jules/bolt.md b/.jules/bolt.md index d72fd7b..4f963e0 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 Qt Window Flag Manipulation] +**Инсайт:** Динамическое изменение флагов окна (например, toggling Qt.WindowStaysOnTopHint для опции "Поверх всех окон") через `setWindowFlags` в PySide6 скрывает текущее окно, так как пересоздает его системный дескриптор. Для пользователя это выглядит как неожиданное исчезновение окна. +**Действие:** После вызова `setWindowFlags` всегда явно вызывать метод `show()` для перепоказа окна в его текущем состоянии. diff --git a/src/ui/main_window.py b/src/ui/main_window.py index df1843f..2c59117 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,16 @@ 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 = Qt.FramelessWindowHint | Qt.Tool + if enabled: + 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..34df5a9 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 @@ -61,6 +61,11 @@ def __init__(self, config, parent=None): self.skin_combo.setCurrentIndex(index) layout.addWidget(self.skin_combo) + # Поверх всех окон + self.always_on_top_checkbox = QCheckBox("Поверх всех окон") + self.always_on_top_checkbox.setChecked(self.config.get("always_on_top")) + layout.addWidget(self.always_on_top_checkbox) + # Кнопки btn_layout = QHBoxLayout() save_btn = QPushButton("Сохранить") @@ -80,4 +85,5 @@ def save_settings(self): self.config.set("pomodoro_work", self.pomodoro_work_spin.value()) self.config.set("pomodoro_break", self.pomodoro_break_spin.value()) self.config.set("skin", self.skin_combo.currentData()) + self.config.set("always_on_top", self.always_on_top_checkbox.isChecked()) self.accept() diff --git a/src/ui/tray_menu.py b/src/ui/tray_menu.py index c7ca788..4795eaa 100644 --- a/src/ui/tray_menu.py +++ b/src/ui/tray_menu.py @@ -88,6 +88,14 @@ def setup_menu(self): peek_action.triggered.connect(lambda checked=False: self.window.toggle_peek_mode()) self.menu.addAction(peek_action) + # Поверх всех окон + self.always_on_top_action = QAction("Поверх всех окон", self) + self.always_on_top_action.setCheckable(True) + always_on_top = self.window.config.get("always_on_top") if self.window.config else True + self.always_on_top_action.setChecked(always_on_top) + self.always_on_top_action.triggered.connect(self.toggle_always_on_top) + self.menu.addAction(self.always_on_top_action) + self.menu.addSeparator() # Статистика @@ -150,6 +158,10 @@ def stop_pomodoro(self, checked=False): self.window.timer_system.stop_pomodoro() self.window.show_message("Таймер остановлен ⏹️") + def toggle_always_on_top(self, checked): + self.window.set_always_on_top(checked) + self.window.show_message("Поверх всех окон: " + ("Вкл" if checked else "Выкл") + " 📌") + def quit_app(self, checked=False): self.window.close() QApplication.instance().quit() @@ -177,6 +189,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() # Перезапускаем таймер растяжки с новым интервалом diff --git a/tests/test_utils.py b/tests/test_utils.py index e363433..5587f3a 100644 --- a/tests/test_utils.py +++ b/tests/test_utils.py @@ -122,5 +122,32 @@ def test_input_manager_petting_logic(self): db.close() + def test_always_on_top_logic(self): + config = ConfigManager(self.config_path) + config.set("always_on_top", True) + + from PySide6.QtWidgets import QApplication + from PySide6.QtCore import Qt + + app = QApplication.instance() or QApplication([]) + + from src.ui.main_window import PetWindow + window = PetWindow(config) + + # Проверяем начальные флаги + self.assertTrue(bool(window.windowFlags() & Qt.WindowStaysOnTopHint)) + + # Выключаем поверх всех окон + window.set_always_on_top(False) + self.assertFalse(bool(window.windowFlags() & Qt.WindowStaysOnTopHint)) + self.assertFalse(config.get("always_on_top")) + + # Включаем обратно + 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..a33b70fb17e2626f4b05fdcfb83f2ce168269313 100644 GIT binary patch literal 19947 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 LNkvXXu0mjf&_wEk literal 21136 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