1
0
Fork 0
mirror of synced 2024-06-02 10:44:40 +12:00

Add CheckBox in game info to hide games and add hidden filter

This commit is contained in:
lennard 2023-05-08 19:29:38 +02:00
parent 1f4493440b
commit 5522a34518
No known key found for this signature in database
GPG key ID: AB6010FE63C7C2B1
5 changed files with 48 additions and 9 deletions

View file

@ -50,6 +50,8 @@ class GamesTab(QStackedWidget):
self.game_info_page.import_clicked.connect(self.show_import)
self.addWidget(self.game_info_page)
self.game_info_page.info_tab.hidden_changed.connect(lambda: self.filter_games(None))
self.integrations_page = IntegrationsTabs(self)
self.integrations_page.back_clicked.connect(lambda: self.setCurrentWidget(self.games_page))
self.addWidget(self.integrations_page)

View file

@ -31,6 +31,7 @@ logger = getLogger("GameInfo")
class GameInfo(QWidget, SideTabContents):
# str: app_name
import_clicked = pyqtSignal(str)
hidden_changed = pyqtSignal()
def __init__(self, parent=None):
super(GameInfo, self).__init__(parent=parent)
@ -67,6 +68,8 @@ class GameInfo(QWidget, SideTabContents):
self.move_game_pop_up.move_clicked.connect(self.ui.move_button.menu().close)
self.move_game_pop_up.move_clicked.connect(self.__on_move)
self.ui.hide_game_check.stateChanged.connect(self.update_hidden)
self.steam_grade_ratings = {
"platinum": self.tr("Platinum"),
"gold": self.tr("Gold"),
@ -81,6 +84,16 @@ class GameInfo(QWidget, SideTabContents):
# lk: requirements is unused so hide it
self.ui.requirements_group.setVisible(False)
# TODO better ui
@pyqtSlot()
def update_hidden(self):
if self.ui.hide_game_check.isChecked():
self.rgame.metadata.tags.add("hidden")
else:
self.rgame.metadata.tags.remove("hidden")
self.hidden_changed.emit()
@pyqtSlot()
def __on_install(self):
if self.rgame.is_non_asset:
@ -282,6 +295,8 @@ class GameInfo(QWidget, SideTabContents):
(not self.rgame.is_installed or self.rgame.is_non_asset) and self.rgame.is_idle
)
self.ui.hide_game_check.setChecked("hidden" in self.rgame.metadata.tags)
self.ui.import_button.setEnabled(
(not self.rgame.is_installed or self.rgame.is_non_asset) and self.rgame.is_idle
)

View file

@ -30,7 +30,7 @@ class GameListHeadBar(QWidget):
self.tr("All games"),
self.tr("Installed only"),
self.tr("Offline Games"),
# self.tr("Hidden")
self.tr("Hidden")
]
)
@ -38,7 +38,7 @@ class GameListHeadBar(QWidget):
"all",
"installed",
"offline",
# "hidden"
"hidden"
]
if self.rcore.bit32_games:
self.filter.addItem(self.tr("32 Bit Games"))

View file

@ -14,7 +14,7 @@ from PyQt5 import QtCore, QtGui, QtWidgets
class Ui_GameInfo(object):
def setupUi(self, GameInfo):
GameInfo.setObjectName("GameInfo")
GameInfo.resize(408, 340)
GameInfo.resize(410, 361)
self.main_layout = QtWidgets.QHBoxLayout(GameInfo)
self.main_layout.setObjectName("main_layout")
self.left_layout = QtWidgets.QVBoxLayout()
@ -165,7 +165,7 @@ class Ui_GameInfo(object):
self.lbl_game_actions.setFont(font)
self.lbl_game_actions.setAlignment(QtCore.Qt.AlignRight|QtCore.Qt.AlignTrailing|QtCore.Qt.AlignVCenter)
self.lbl_game_actions.setObjectName("lbl_game_actions")
self.info_layout.setWidget(7, QtWidgets.QFormLayout.LabelRole, self.lbl_game_actions)
self.info_layout.setWidget(8, QtWidgets.QFormLayout.LabelRole, self.lbl_game_actions)
self.game_actions_stack = QtWidgets.QStackedWidget(GameInfo)
sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Preferred, QtWidgets.QSizePolicy.Fixed)
sizePolicy.setHorizontalStretch(0)
@ -257,7 +257,14 @@ class Ui_GameInfo(object):
spacerItem = QtWidgets.QSpacerItem(0, 0, QtWidgets.QSizePolicy.Minimum, QtWidgets.QSizePolicy.Expanding)
self.uninstalled_layout.addItem(spacerItem)
self.game_actions_stack.addWidget(self.uninstalled_page)
self.info_layout.setWidget(7, QtWidgets.QFormLayout.FieldRole, self.game_actions_stack)
self.info_layout.setWidget(8, QtWidgets.QFormLayout.FieldRole, self.game_actions_stack)
self.hide_game_check = QtWidgets.QCheckBox(GameInfo)
self.hide_game_check.setText("")
self.hide_game_check.setObjectName("hide_game_check")
self.info_layout.setWidget(7, QtWidgets.QFormLayout.FieldRole, self.hide_game_check)
self.label = QtWidgets.QLabel(GameInfo)
self.label.setObjectName("label")
self.info_layout.setWidget(7, QtWidgets.QFormLayout.LabelRole, self.label)
self.right_layout.addLayout(self.info_layout)
self.requirements_group = QtWidgets.QFrame(GameInfo)
sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Expanding, QtWidgets.QSizePolicy.Fixed)
@ -297,6 +304,7 @@ class Ui_GameInfo(object):
self.uninstall_button.setText(_translate("GameInfo", "Uninstall Game"))
self.install_button.setText(_translate("GameInfo", "Install Game"))
self.import_button.setText(_translate("GameInfo", "Import Game"))
self.label.setText(_translate("GameInfo", "<html><head/><body><p align=\"right\"><span style=\" font-weight:600;\">Hide Game</span></p></body></html>"))
if __name__ == "__main__":

View file

@ -6,8 +6,8 @@
<rect>
<x>0</x>
<y>0</y>
<width>408</width>
<height>340</height>
<width>410</width>
<height>361</height>
</rect>
</property>
<property name="windowTitle">
@ -266,7 +266,7 @@
</property>
</widget>
</item>
<item row="7" column="0">
<item row="8" column="0">
<widget class="QLabel" name="lbl_game_actions">
<property name="sizePolicy">
<sizepolicy hsizetype="Fixed" vsizetype="Preferred">
@ -288,7 +288,7 @@
</property>
</widget>
</item>
<item row="7" column="1">
<item row="8" column="1">
<widget class="QStackedWidget" name="game_actions_stack">
<property name="sizePolicy">
<sizepolicy hsizetype="Preferred" vsizetype="Fixed">
@ -519,6 +519,20 @@
</widget>
</widget>
</item>
<item row="7" column="1">
<widget class="QCheckBox" name="hide_game_check">
<property name="text">
<string/>
</property>
</widget>
</item>
<item row="7" column="0">
<widget class="QLabel" name="label">
<property name="text">
<string>&lt;html&gt;&lt;head/&gt;&lt;body&gt;&lt;p align=&quot;right&quot;&gt;&lt;span style=&quot; font-weight:600;&quot;&gt;Hide Game&lt;/span&gt;&lt;/p&gt;&lt;/body&gt;&lt;/html&gt;</string>
</property>
</widget>
</item>
</layout>
</item>
<item>