1
0
Fork 0
mirror of synced 2024-06-17 01:54:46 +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.image_manager = ImageManagerSingleton()
self.settings = QSettings() self.settings = QSettings()
self.active_filter: int = 0
self.games_page = QWidget(parent=self) self.games_page = QWidget(parent=self)
games_page_layout = QVBoxLayout(self.games_page) games_page_layout = QVBoxLayout(self.games_page)
self.addWidget(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.refresh_list.clicked.connect(self.library_controller.update_list)
self.head_bar.view.toggled.connect(self.toggle_view) self.head_bar.view.toggled.connect(self.toggle_view)
f = self.settings.value("filter", 0, int) self.active_filter: str = self.head_bar.filter.currentData(Qt.UserRole)
if f >= len(self.head_bar.available_filters):
f = 0
self.active_filter = self.head_bar.available_filters[f]
# signals # signals
self.signals.game.installed.connect(self.update_count_games_label) self.signals.game.installed.connect(self.update_count_games_label)
@ -158,7 +153,7 @@ class GamesTab(QStackedWidget):
for rgame in self.rcore.games: for rgame in self.rcore.games:
icon_widget, list_widget = self.add_library_widget(rgame) icon_widget, list_widget = self.add_library_widget(rgame)
if not icon_widget or not list_widget: 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 continue
self.icon_view.layout().addWidget(icon_widget) self.icon_view.layout().addWidget(icon_widget)
self.list_view.layout().addWidget(list_widget) self.list_view.layout().addWidget(list_widget)
@ -169,8 +164,7 @@ class GamesTab(QStackedWidget):
try: try:
icon_widget, list_widget = self.library_controller.add_game(rgame) icon_widget, list_widget = self.library_controller.add_game(rgame)
except Exception as e: except Exception as e:
raise e logger.error("Could not add widget for %s to library: %s", rgame.app_name, e)
logger.error(f"{rgame.app_name} is broken. Don't add it to game list: {e}")
return None, None return None, None
icon_widget.show_info.connect(self.show_game_info) icon_widget.show_info.connect(self.show_game_info)
list_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 ( from PyQt5.QtWidgets import (
QLabel, QLabel,
QPushButton, QPushButton,
@ -22,45 +24,28 @@ class GameListHeadBar(QWidget):
def __init__(self, parent=None): def __init__(self, parent=None):
super(GameListHeadBar, self).__init__(parent=parent) super(GameListHeadBar, self).__init__(parent=parent)
self.rcore = RareCore.instance() self.rcore = RareCore.instance()
self.settings = QSettings() self.settings = QSettings(self)
self.filter = QComboBox() self.filter = QComboBox(self)
self.filter.addItems( self.filter.addItem(self.tr("All games"), "all")
[ self.filter.addItem(self.tr("Installed only"), "installed")
self.tr("All games"), self.filter.addItem(self.tr("Offline Games"), "offline")
self.tr("Installed only"), # self.filter.addItem(self.tr("Hidden"), "hidden")
self.tr("Offline Games"),
# self.tr("Hidden")
]
)
self.available_filters = [
"all",
"installed",
"offline",
# "hidden"
]
if self.rcore.bit32_games: if self.rcore.bit32_games:
self.filter.addItem(self.tr("32 Bit Games")) self.filter.addItem(self.tr("32 Bit Games"), "32bit")
self.available_filters.append("32bit")
if self.rcore.mac_games: if self.rcore.mac_games:
self.filter.addItem(self.tr("Mac games")) self.filter.addItem(self.tr("Mac games"), "mac")
self.available_filters.append("mac")
if self.rcore.origin_games: if self.rcore.origin_games:
self.filter.addItem(self.tr("Exclude Origin")) self.filter.addItem(self.tr("Exclude Origin"), "installable")
self.available_filters.append("installable") self.filter.addItem(self.tr("Include Unreal Engine"), "include_ue")
self.filter.addItem(self.tr("Include Unreal Engine"))
self.available_filters.append("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: try:
self.filter.setCurrentIndex(self.settings.value("filter", 0, int)) self.filter.setCurrentIndex(self.settings.value("library_filter", filter_index, int))
except TypeError: except TypeError:
self.settings.setValue("filter", 0) self.settings.setValue("library_filter", filter_index)
self.filter.setCurrentIndex(0) self.filter.setCurrentIndex(filter_index)
self.filter.currentIndexChanged.connect(self.filter_changed) self.filter.currentIndexChanged.connect(self.filter_changed)
integrations_menu = QMenu(self) integrations_menu = QMenu(self)
@ -139,6 +124,6 @@ class GameListHeadBar(QWidget):
self.rcore.fetch() self.rcore.fetch()
@pyqtSlot(int) @pyqtSlot(int)
def filter_changed(self, i: int): def filter_changed(self, index: int):
self.filterChanged.emit(self.available_filters[i]) self.filterChanged.emit(self.filter.itemData(index, Qt.UserRole))
self.settings.setValue("filter", i) self.settings.setValue("library_filter", index)