From e7da5932d276f2564794ec1cc1b0d450d538017c Mon Sep 17 00:00:00 2001 From: mx57 <38256814+mx57@users.noreply.github.com> Date: Fri, 4 Sep 2026 05:16:51 +0000 Subject: [PATCH] Add customizable pet_size setting and dynamic scaling - Add pet_size (50-250px) to ConfigManager default configuration. - Add pet_size slider with live label indicator to SettingsDialog. - Implement set_pet_size on PetWindow and connect with TrayMenu. - Dynamically scale petting interaction radius in InputManager. - Add unit tests for pet_size config and dynamic window/radius scaling. --- src/core/input_manager.py | 5 ++- src/ui/main_window.py | 11 ++++- src/ui/settings_dialog.py | 16 +++++++ src/ui/tray_menu.py | 1 + src/utils/config_manager.py | 3 +- tests/test_utils.py | 50 +++++++++++++++++++++ verification/screenshots/stats_history.png | Bin 22831 -> 22601 bytes 7 files changed, 82 insertions(+), 4 deletions(-) diff --git a/src/core/input_manager.py b/src/core/input_manager.py index 9ca9d10..bf9eda7 100644 --- a/src/core/input_manager.py +++ b/src/core/input_manager.py @@ -410,8 +410,9 @@ def handle_mouse(self, x, y): dy_pet = y - center_y dist_sq_pet = dx_pet * dx_pet + dy_pet * dy_pet - # Оптимизация: сравнение квадрата расстояния (порог 60px -> 3600) - if dist_sq_pet < 3600: + # Динамическое масштабирование радиуса поглаживания на основе размера окна + pet_radius = max(self.window.width(), self.window.height()) * 0.6 + if dist_sq_pet < pet_radius * pet_radius: # Исключаем пассивный фарм (требуем активное поглаживание: активное движение мыши и кулдаун) if self.last_pet_time == 0: self.last_pet_mouse_pos = (x, y) diff --git a/src/ui/main_window.py b/src/ui/main_window.py index e619905..9c83d42 100644 --- a/src/ui/main_window.py +++ b/src/ui/main_window.py @@ -55,7 +55,8 @@ def __init__(self, config_manager=None): self.is_dragging = False self.shake_count = 0 self.last_shake_time = 0 - self.original_size = QSize(100, 100) + pet_size = self.config.get("pet_size") if self.config else 100 + self.original_size = QSize(pet_size, pet_size) # Начальный размер self.resize(self.original_size) @@ -91,6 +92,14 @@ def set_opacity(self, value): """Устанавливает прозрачность окна (0-100)""" self.setWindowOpacity(value / 100.0) + def set_pet_size(self, size_val): + """Динамически изменяет базовый размер питомца.""" + if self.config: + self.config.set("pet_size", size_val) + self.original_size = QSize(size_val, size_val) + self.resize(self.original_size) + self.animation_manager.update_size(self.size()) + def set_always_on_top(self, enabled): """Включает или выключает режим 'Поверх всех окон' динамически""" if self.config: diff --git a/src/ui/settings_dialog.py b/src/ui/settings_dialog.py index 5339824..f1d9378 100644 --- a/src/ui/settings_dialog.py +++ b/src/ui/settings_dialog.py @@ -52,6 +52,21 @@ def __init__(self, config, parent=None): self.opacity_slider.valueChanged.connect(lambda v: self.opacity_val_label.setText(f"{v}%")) layout.addWidget(self.opacity_slider) + # Размер питомца + size_header_layout = QHBoxLayout() + size_header_layout.addWidget(QLabel("Размер питомца:")) + self.size_val_label = QLabel(f"{self.config.get('pet_size')}px") + self.size_val_label.setStyleSheet("font-weight: bold; color: #555;") + size_header_layout.addStretch() + size_header_layout.addWidget(self.size_val_label) + layout.addLayout(size_header_layout) + + self.size_slider = QSlider(Qt.Horizontal) + self.size_slider.setRange(50, 250) + self.size_slider.setValue(self.config.get("pet_size")) + self.size_slider.valueChanged.connect(lambda v: self.size_val_label.setText(f"{v}px")) + layout.addWidget(self.size_slider) + # Интервал растяжки layout.addWidget(QLabel("Интервал растяжки (мин):")) self.stretch_spin = QSpinBox() @@ -168,6 +183,7 @@ def save_settings(self): self.config.set("always_on_top", self.always_on_top_check.isChecked()) self.config.set("volume", self.volume_slider.value()) self.config.set("opacity", self.opacity_slider.value()) + self.config.set("pet_size", self.size_slider.value()) 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 b3d0392..0992f79 100644 --- a/src/ui/tray_menu.py +++ b/src/ui/tray_menu.py @@ -186,6 +186,7 @@ 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")) + self.window.set_pet_size(self.window.config.get("pet_size")) # Обновляем меню скинов self.update_skin_menu() # Обновляем режим "Поверх всех окон" в реальном времени diff --git a/src/utils/config_manager.py b/src/utils/config_manager.py index e6ad878..fb39511 100644 --- a/src/utils/config_manager.py +++ b/src/utils/config_manager.py @@ -12,7 +12,8 @@ class ConfigManager: "volume": 70, "language": "ru", "skin": "default", - "opacity": 100 + "opacity": 100, + "pet_size": 100 } def __init__(self, config_path="settings.json"): diff --git a/tests/test_utils.py b/tests/test_utils.py index 1a72e44..c43324e 100644 --- a/tests/test_utils.py +++ b/tests/test_utils.py @@ -516,5 +516,55 @@ def test_stats_dialog_reset_ui_flow(self): QMessageBox.information = original_information db.close() + def test_pet_size_configuration_and_scaling(self): + os.environ["QT_QPA_PLATFORM"] = "offscreen" + from PySide6.QtWidgets import QApplication + app = QApplication.instance() or QApplication([]) + + config = ConfigManager(self.config_path) + + # 1. Default config value + self.assertEqual(config.get("pet_size"), 100) + + # 2. Window initialization with config value + config.set("pet_size", 150) + window = PetWindow(config) + self.assertEqual(window.original_size.width(), 150) + self.assertEqual(window.original_size.height(), 150) + self.assertEqual(window.width(), 150) + + # 3. Dynamic resizing via set_pet_size + window.set_pet_size(200) + self.assertEqual(window.original_size.width(), 200) + self.assertEqual(window.width(), 200) + self.assertEqual(config.get("pet_size"), 200) + + # 4. InputManager dynamic petting radius scaling test + mock_window = MagicMock() + mock_window.width.return_value = 200 + mock_window.height.return_value = 200 + mock_pos = MagicMock() + mock_pos.x.return_value = 100 + mock_pos.y.return_value = 100 + mock_window.get_cached_pos.return_value = mock_pos + + mock_cursor = MagicMock() + mock_cursor.pos.return_value = QPoint(100, 100) + mock_window.cursor.return_value = mock_cursor + mock_window.animation_manager.current_state = "idle" + + db = DataStore(self.db_path) + im = InputManager(mock_window, db) + + # Mouse outside dynamic radius + im.handle_mouse(350, 350) + self.assertEqual(im.last_pet_time, 0) + + # Mouse inside dynamic radius + im.handle_mouse(250, 250) + self.assertNotEqual(im.last_pet_time, 0) + + db.close() + if __name__ == '__main__': unittest.main() diff --git a/verification/screenshots/stats_history.png b/verification/screenshots/stats_history.png index 1fa59b4d5793668869a36bebd63e723b22c6927b..8c83aa00e3adbd4c9d9e1e4fb6554da7069d383b 100644 GIT binary patch literal 22601 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
    ~#Z^ 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