HeadBar: Default to Mac games
fitler on macOS
This commit is contained in:
parent
1cf53e3b54
commit
c9264c732e
|
@ -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)
|
||||
|
|
|
@ -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)
|
||||
|
|
Loading…
Reference in a new issue