fix: fix slider size on autoinstall
All checks were successful
Code check / Check code (push) Successful in 1m19s
renovate / renovate (push) Successful in 33s

Signed-off-by: Boris Yumankulov <boria138@altlinux.org>
This commit is contained in:
2025-12-27 00:13:13 +05:00
parent 613b28a751
commit aa0c0a5675

View File

@@ -6,7 +6,7 @@ from typing import Protocol, cast, Any
from evdev import InputDevice, InputEvent, UInput, ecodes, list_devices, ff from evdev import InputDevice, InputEvent, UInput, ecodes, list_devices, ff
from enum import Enum from enum import Enum
from pyudev import Context, Monitor, Device, Devices from pyudev import Context, Monitor, Device, Devices
from PySide6.QtWidgets import QWidget, QStackedWidget, QApplication, QScrollArea, QLineEdit, QDialog, QMenu, QComboBox, QListView, QMessageBox, QListWidget, QTableWidget, QAbstractItemView, QTableWidgetItem from PySide6.QtWidgets import QWidget, QStackedWidget, QApplication, QScrollArea, QLineEdit, QDialog, QMenu, QComboBox, QListView, QMessageBox, QListWidget, QTableWidget, QAbstractItemView, QTableWidgetItem, QSlider
from PySide6.QtCore import Qt, QObject, QEvent, QPoint, Signal, Slot, QTimer from PySide6.QtCore import Qt, QObject, QEvent, QPoint, Signal, Slot, QTimer
from PySide6.QtGui import QKeyEvent, QMouseEvent from PySide6.QtGui import QKeyEvent, QMouseEvent
from portprotonqt.logger import get_logger from portprotonqt.logger import get_logger
@@ -35,6 +35,8 @@ class MainWindowProtocol(Protocol):
... ...
def on_slider_released(self) -> None: def on_slider_released(self) -> None:
... ...
def on_auto_slider_released(self) -> None:
...
def isActiveWindow(self) -> bool: def isActiveWindow(self) -> bool:
... ...
def refreshGames(self) -> None: def refreshGames(self) -> None:
@@ -46,6 +48,8 @@ class MainWindowProtocol(Protocol):
currentDetailPage: QWidget | None currentDetailPage: QWidget | None
current_exec_line: str | None current_exec_line: str | None
current_add_game_dialog: AddGameDialog | None current_add_game_dialog: AddGameDialog | None
game_library_manager: Any # GameLibraryManager - using Any to avoid circular import
auto_size_slider: QSlider | None
# Mapping of actions to evdev button codes, includes Xbox, PlayStation and Nintendo Switch controllers # Mapping of actions to evdev button codes, includes Xbox, PlayStation and Nintendo Switch controllers
# https://github.com/torvalds/linux/blob/master/drivers/hid/hid-playstation.c # https://github.com/torvalds/linux/blob/master/drivers/hid/hid-playstation.c
@@ -1411,20 +1415,38 @@ class InputManager(QObject):
idx = (self._parent.stackedWidget.currentIndex() + 1) % len(self._parent.tabButtons) idx = (self._parent.stackedWidget.currentIndex() + 1) % len(self._parent.tabButtons)
self._parent.switchTab(idx) self._parent.switchTab(idx)
self._parent.tabButtons[idx].setFocus(Qt.FocusReason.OtherFocusReason) self._parent.tabButtons[idx].setFocus(Qt.FocusReason.OtherFocusReason)
elif button_code in BUTTONS['increase_size'] and self._parent.stackedWidget.currentIndex() == 0: elif button_code in BUTTONS['increase_size']:
# Increase card size with RT (Xbox) / R2 (PS) current_tab = self._parent.stackedWidget.currentIndex()
size_slider = getattr(self._parent, 'sizeSlider', None) if current_tab == 0: # Main games library
if size_slider: if hasattr(self._parent, 'game_library_manager') and self._parent.game_library_manager:
new_value = min(size_slider.value() + 10, size_slider.maximum()) size_slider = getattr(self._parent.game_library_manager, 'sizeSlider', None)
size_slider.setValue(new_value) if size_slider:
self._parent.on_slider_released() new_value = min(size_slider.value() + 10, size_slider.maximum())
elif button_code in BUTTONS['decrease_size'] and self._parent.stackedWidget.currentIndex() == 0: size_slider.setValue(new_value)
# Decrease card size with LT (Xbox) / L2 (PS) self._parent.on_slider_released()
size_slider = getattr(self._parent, 'sizeSlider', None) elif current_tab == 1: # Auto-install tab
if size_slider: auto_size_slider = getattr(self._parent, 'auto_size_slider', None)
new_value = max(size_slider.value() - 10, size_slider.minimum()) if auto_size_slider:
size_slider.setValue(new_value) new_value = min(auto_size_slider.value() + 10, auto_size_slider.maximum())
self._parent.on_slider_released() auto_size_slider.setValue(new_value)
if hasattr(self._parent, 'on_auto_slider_released'):
self._parent.on_auto_slider_released()
elif button_code in BUTTONS['decrease_size']:
current_tab = self._parent.stackedWidget.currentIndex()
if current_tab == 0: # Main games library
if hasattr(self._parent, 'game_library_manager') and self._parent.game_library_manager:
size_slider = getattr(self._parent.game_library_manager, 'sizeSlider', None)
if size_slider:
new_value = max(size_slider.value() - 10, size_slider.minimum())
size_slider.setValue(new_value)
self._parent.on_slider_released()
elif current_tab == 1: # Auto-install tab
auto_size_slider = getattr(self._parent, 'auto_size_slider', None)
if auto_size_slider:
new_value = max(auto_size_slider.value() - 10, auto_size_slider.minimum())
auto_size_slider.setValue(new_value)
if hasattr(self._parent, 'on_auto_slider_released'):
self._parent.on_auto_slider_released()
except Exception as e: except Exception as e:
logger.error(f"Error in handle_button_slot: {e}", exc_info=True) logger.error(f"Error in handle_button_slot: {e}", exc_info=True)