Add CheckBox in game info to hide games and add hidden filter
This commit is contained in:
parent
1f4493440b
commit
5522a34518
|
@ -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)
|
||||
|
|
|
@ -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
|
||||
)
|
||||
|
|
|
@ -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"))
|
||||
|
|
|
@ -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__":
|
||||
|
|
|
@ -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><html><head/><body><p align="right"><span style=" font-weight:600;">Hide Game</span></p></body></html></string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
</layout>
|
||||
</item>
|
||||
<item>
|
||||
|
|
Loading…
Reference in a new issue