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.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)
|
||||||
|
|
|
@ -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)
|
||||||
|
|
Loading…
Reference in a new issue