fix: fix slider size on autoinstall
Signed-off-by: Boris Yumankulov <boria138@altlinux.org>
This commit is contained in:
@@ -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)
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user