1
0
Fork 0
mirror of synced 2024-05-18 19:42:54 +12:00

HeadBar: Default to Mac games fitler on macOS

This commit is contained in:
loathingKernel 2023-12-16 21:57:09 +02:00
parent 1cf53e3b54
commit c9264c732e
No known key found for this signature in database
GPG key ID: CE0C72D0B53821FD
2 changed files with 24 additions and 45 deletions

View file

@ -34,8 +34,6 @@ class GamesTab(QStackedWidget):
self.image_manager = ImageManagerSingleton()
self.settings = QSettings()
self.active_filter: int = 0
self.games_page = QWidget(parent=self)
games_page_layout = QVBoxLayout(self.games_page)
self.addWidget(self.games_page)
@ -99,10 +97,7 @@ class GamesTab(QStackedWidget):
self.head_bar.refresh_list.clicked.connect(self.library_controller.update_list)
self.head_bar.view.toggled.connect(self.toggle_view)
f = self.settings.value("filter", 0, int)
if f >= len(self.head_bar.available_filters):
f = 0
self.active_filter = self.head_bar.available_filters[f]
self.active_filter: str = self.head_bar.filter.currentData(Qt.UserRole)
# signals
self.signals.game.installed.connect(self.update_count_games_label)
@ -158,7 +153,7 @@ class GamesTab(QStackedWidget):
for rgame in self.rcore.games:
icon_widget, list_widget = self.add_library_widget(rgame)
if not icon_widget or not list_widget:
logger.warning(f"Excluding {rgame.app_name} from the game list")
logger.warning("Excluding %s from the game list", rgame.app_title)
continue
self.icon_view.layout().addWidget(icon_widget)
self.list_view.layout().addWidget(list_widget)
@ -169,8 +164,7 @@ class GamesTab(QStackedWidget):
try:
icon_widget, list_widget = self.library_controller.add_game(rgame)
except Exception as e:
raise e
logger.error(f"{rgame.app_name} is broken. Don't add it to game list: {e}")
logger.error("Could not add widget for %s to library: %s", rgame.app_name, e)
return None, None
icon_widget.show_info.connect(self.show_game_info)
list_widget.show_info.connect(self.show_game_info)

View file

@ -1,4 +1,6 @@
from PyQt5.QtCore import QSettings, pyqtSignal, pyqtSlot
import platform as pf
from PyQt5.QtCore import QSettings, pyqtSignal, pyqtSlot, Qt
from PyQt5.QtWidgets import (
QLabel,
QPushButton,
@ -22,45 +24,28 @@ class GameListHeadBar(QWidget):
def __init__(self, parent=None):
super(GameListHeadBar, self).__init__(parent=parent)
self.rcore = RareCore.instance()
self.settings = QSettings()
self.settings = QSettings(self)
self.filter = QComboBox()
self.filter.addItems(
[
self.tr("All games"),
self.tr("Installed only"),
self.tr("Offline Games"),
# self.tr("Hidden")
]
)
self.available_filters = [
"all",
"installed",
"offline",
# "hidden"
]
self.filter = QComboBox(self)
self.filter.addItem(self.tr("All games"), "all")
self.filter.addItem(self.tr("Installed only"), "installed")
self.filter.addItem(self.tr("Offline Games"), "offline")
# self.filter.addItem(self.tr("Hidden"), "hidden")
if self.rcore.bit32_games:
self.filter.addItem(self.tr("32 Bit Games"))
self.available_filters.append("32bit")
self.filter.addItem(self.tr("32 Bit Games"), "32bit")
if self.rcore.mac_games:
self.filter.addItem(self.tr("Mac games"))
self.available_filters.append("mac")
self.filter.addItem(self.tr("Mac games"), "mac")
if self.rcore.origin_games:
self.filter.addItem(self.tr("Exclude Origin"))
self.available_filters.append("installable")
self.filter.addItem(self.tr("Include Unreal Engine"))
self.available_filters.append("include_ue")
self.filter.addItem(self.tr("Exclude Origin"), "installable")
self.filter.addItem(self.tr("Include Unreal Engine"), "include_ue")
filter_default = "mac" if pf.system() == "Darwin" else "all"
filter_index = i if (i := self.filter.findData(filter_default, Qt.UserRole)) >= 0 else 0
try:
self.filter.setCurrentIndex(self.settings.value("filter", 0, int))
self.filter.setCurrentIndex(self.settings.value("library_filter", filter_index, int))
except TypeError:
self.settings.setValue("filter", 0)
self.filter.setCurrentIndex(0)
self.settings.setValue("library_filter", filter_index)
self.filter.setCurrentIndex(filter_index)
self.filter.currentIndexChanged.connect(self.filter_changed)
integrations_menu = QMenu(self)
@ -139,6 +124,6 @@ class GameListHeadBar(QWidget):
self.rcore.fetch()
@pyqtSlot(int)
def filter_changed(self, i: int):
self.filterChanged.emit(self.available_filters[i])
self.settings.setValue("filter", i)
def filter_changed(self, index: int):
self.filterChanged.emit(self.filter.itemData(index, Qt.UserRole))
self.settings.setValue("library_filter", index)