1
0
Fork 0
mirror of synced 2024-09-30 09:17:37 +13:00

While we are here, adjust UninstalledInfo to match GameInfo. Make it easier to unify them in the future.

This commit is contained in:
Stelios Tsampas 2021-05-21 21:54:26 +03:00
parent 1131edda20
commit eb461529f7
4 changed files with 497 additions and 486 deletions

View file

@ -7,7 +7,7 @@ from PyQt5.QtWidgets import QWidget, QTabWidget, QMessageBox
from qtawesome import icon from qtawesome import icon
from custom_legendary.core import LegendaryCore from custom_legendary.core import LegendaryCore
from custom_legendary.models.game import InstalledGame, Game from custom_legendary.models.game import Game, InstalledGame
from rare.components.tabs.games.game_info.dlcs import DlcTab from rare.components.tabs.games.game_info.dlcs import DlcTab
from rare.components.tabs.games.game_info.game_settings import GameSettings from rare.components.tabs.games.game_info.game_settings import GameSettings
from rare.ui.components.tabs.games.game_info.game_info import Ui_GameInfo from rare.ui.components.tabs.games.game_info.game_info import Ui_GameInfo
@ -65,22 +65,26 @@ class GameInfo(QWidget, Ui_GameInfo):
def __init__(self, core: LegendaryCore, parent): def __init__(self, core: LegendaryCore, parent):
super(GameInfo, self).__init__(parent=parent) super(GameInfo, self).__init__(parent=parent)
self.setupUi(self) self.setupUi(self)
self.ratings = {"platinum": self.tr("Platimum"), self.core = core
self.ratings = {"platinum": self.tr("Platinum"),
"gold": self.tr("Gold"), "gold": self.tr("Gold"),
"silver": self.tr("Silver"), "silver": self.tr("Silver"),
"bronze": self.tr("Bronze"), "bronze": self.tr("Bronze"),
"fail": self.tr("Could not get grade from ProtonDB"), "fail": self.tr("Could not get grade"),
"pending": "Not enough reports"} "pending": self.tr("Not enough reports")}
if os.path.exists(p := os.path.expanduser("~/.cache/rare/game_list.json")): if os.path.exists(p := os.path.expanduser("~/.cache/rare/game_list.json")):
self.grade_table = json.load(open(p)) self.grade_table = json.load(open(p))
else: else:
self.grade_table = {} self.grade_table = {}
self.widget = QWidget()
self.core = core
if os.name == "nt": if os.name == "nt":
self.lbl_grade.setVisible(False) self.lbl_grade.setVisible(False)
self.grade.setVisible(False) self.grade.setVisible(False)
self.game_actions_stack.setCurrentIndex(0)
self.game_actions_stack.resize(self.game_actions_stack.minimumSize())
self.uninstall_button.clicked.connect(self.uninstall) self.uninstall_button.clicked.connect(self.uninstall)
self.verify_button.clicked.connect(self.verify) self.verify_button.clicked.connect(self.verify)
self.repair_button.clicked.connect(self.repair) self.repair_button.clicked.connect(self.repair)
@ -153,14 +157,15 @@ class GameInfo(QWidget, Ui_GameInfo):
if os.name != "nt" and self.grade_table: if os.name != "nt" and self.grade_table:
try: try:
grade = self.ratings.get(self.grade_table[app_name].get("grade")) grade = self.grade_table[app_name]["grade"]
except KeyError: except KeyError:
grade = (self.tr("Error")) grade = "fail"
self.grade.setText(grade) self.grade.setText(self.ratings[grade])
if len(self.verify_threads.keys()) == 0 or not self.verify_threads.get(app_name): if len(self.verify_threads.keys()) == 0 or not self.verify_threads.get(app_name):
self.verify_widget.setCurrentIndex(0) self.verify_widget.setCurrentIndex(0)
elif self.verify_threads.get(app_name): elif self.verify_threads.get(app_name):
self.verify_widget.setCurrentIndex(1) self.verify_widget.setCurrentIndex(1)
self.verify_progress.setValue( self.verify_progress.setValue(
self.verify_threads[app_name].num / self.verify_threads[app_name].total * 100) self.verify_threads[app_name].num / self.verify_threads[app_name].total * 100
)

View file

@ -1,15 +1,17 @@
import json import json
import os import os
from PyQt5.QtCore import pyqtSignal, QSettings, Qt from PyQt5.QtCore import Qt, pyqtSignal
from PyQt5.QtGui import QPixmap, QKeyEvent from PyQt5.QtGui import QPixmap, QKeyEvent
from PyQt5.QtWidgets import QWidget, QVBoxLayout, QHBoxLayout, QPushButton, QLabel, QTabWidget, QTreeView from PyQt5.QtWidgets import QWidget, QTabWidget, QTreeView
from qtawesome import icon from qtawesome import icon
from custom_legendary.core import LegendaryCore from custom_legendary.core import LegendaryCore
from custom_legendary.models.game import Game from custom_legendary.models.game import Game
from rare.ui.components.tabs.games.game_info.game_info import Ui_GameInfo
from rare.utils.extra_widgets import SideTabBar from rare.utils.extra_widgets import SideTabBar
from rare.utils.json_formatter import QJsonModel from rare.utils.json_formatter import QJsonModel
from rare.utils.utils import IMAGE_DIR
class UninstalledTabInfo(QTabWidget): class UninstalledTabInfo(QTabWidget):
@ -18,7 +20,6 @@ class UninstalledTabInfo(QTabWidget):
self.app_name = "" self.app_name = ""
self.core = core self.core = core
self.setTabBar(SideTabBar()) self.setTabBar(SideTabBar())
self.setTabPosition(QTabWidget.West) self.setTabPosition(QTabWidget.West)
self.addTab(QWidget(), icon("mdi.keyboard-backspace", color="white"), self.tr("Back")) self.addTab(QWidget(), icon("mdi.keyboard-backspace", color="white"), self.tr("Back"))
@ -49,69 +50,44 @@ class UninstalledTabInfo(QTabWidget):
self.parent().layout.setCurrentIndex(0) self.parent().layout.setCurrentIndex(0)
class UninstalledInfo(QWidget): class UninstalledInfo(QWidget, Ui_GameInfo):
game: Game game: Game
install_game = pyqtSignal(str) install_game = pyqtSignal(str)
def __init__(self, core: LegendaryCore, parent): def __init__(self, core: LegendaryCore, parent=None):
super(UninstalledInfo, self).__init__(parent=parent) super(UninstalledInfo, self).__init__(parent=parent)
self.layout = QVBoxLayout() self.setupUi(self)
self.core = core
if os.path.exists(p := os.path.expanduser("~/.cache/rare/game_list.json")):
self.grade_table = json.load(open(p))
else:
self.grade_table = {}
self.ratings = {"platinum": self.tr("Platinum"), self.ratings = {"platinum": self.tr("Platinum"),
"gold": self.tr("Gold"), "gold": self.tr("Gold"),
"silver": self.tr("Silver"), "silver": self.tr("Silver"),
"bronze": self.tr("Bronze"), "bronze": self.tr("Bronze"),
"fail": self.tr("Could not get grade from ProtonDB"), "fail": self.tr("Could not get grade"),
"pending": "Not enough reports"} "pending": self.tr("Not enough reports")}
if os.path.exists(p := os.path.expanduser("~/.cache/rare/game_list.json")):
self.grade_table = json.load(open(p))
else:
self.grade_table = {}
self.core = core if os.name == "nt":
self.lbl_grade.setVisible(False)
self.grade.setVisible(False)
self.settings = QSettings() self.install_size.setEnabled(False)
self.lbl_install_size.setEnabled(False)
self.install_path.setEnabled(False)
self.lbl_install_path.setEnabled(False)
self.top_layout = QHBoxLayout() self.game_actions_stack.setCurrentIndex(1)
left_layout = QVBoxLayout() self.game_actions_stack.resize(self.game_actions_stack.minimumSize())
self.image = QLabel()
left_layout.addWidget(self.image)
left_layout.addStretch(1)
self.top_layout.addLayout(left_layout)
self.right_layout = QVBoxLayout()
self.title = QLabel("Error")
self.right_layout.addWidget(self.title)
self.app_name = QLabel("Error")
self.right_layout.addWidget(self.app_name)
if os.name != "nt":
self.rating = QLabel("Rating: Error")
self.right_layout.addWidget(self.rating)
self.install_button = QPushButton(self.tr("Install"))
self.install_button.setFixedWidth(300)
self.install_button.setStyleSheet("""background-color: #090""")
self.install_button.clicked.connect(lambda: self.install_game.emit(self.game.app_name)) self.install_button.clicked.connect(lambda: self.install_game.emit(self.game.app_name))
self.right_layout.addWidget(self.install_button)
self.version = QLabel("Error")
self.right_layout.addWidget(self.version)
self.right_layout.addStretch(1)
self.top_layout.addLayout(self.right_layout)
self.top_layout.addStretch(1)
self.layout.addLayout(self.top_layout)
self.setLayout(self.layout)
def update_game(self, app_name): def update_game(self, app_name):
self.game = self.core.get_game(app_name) self.game = self.core.get_game(app_name)
self.title.setText(f"<h2>{self.game.app_title}</h2>") self.game_title.setText(f"<h2>{self.game.app_title}</h2>")
self.app_name.setText("Appname: " + app_name)
IMAGE_DIR = self.settings.value("img_dir", os.path.expanduser("~/.cache/rare/images"), str)
if os.path.exists(f"{IMAGE_DIR}/{self.game.app_name}/FinalArt.png"): if os.path.exists(f"{IMAGE_DIR}/{self.game.app_name}/FinalArt.png"):
pixmap = QPixmap(f"{IMAGE_DIR}/{self.game.app_name}/FinalArt.png") pixmap = QPixmap(f"{IMAGE_DIR}/{self.game.app_name}/FinalArt.png")
@ -127,13 +103,15 @@ class UninstalledInfo(QWidget):
pixmap = pixmap.scaled(w, int(w * 4 / 3)) pixmap = pixmap.scaled(w, int(w * 4 / 3))
self.image.setPixmap(pixmap) self.image.setPixmap(pixmap)
self.version.setText(self.game.asset_info.build_version) self.app_name.setText(self.game.app_name)
if self.grade_table and (not os.name == "nt"): self.version.setText(self.game.app_version)
self.dev.setText(self.game.metadata["developer"])
self.install_size.setText("N/A")
self.install_path.setText("N/A")
if os.name != "nt" and self.grade_table:
try: try:
rating = self.grade_table[app_name]["grade"] grade = self.grade_table[app_name]["grade"]
except KeyError: except KeyError:
rating = "fail" grade = "fail"
if rating not in ["fail", "pending"]: self.grade.setText(self.ratings[grade])
self.rating.setText(self.tr("Rating from ProtonDB: ") + self.ratings[rating])
else:
self.rating.setText(self.ratings[rating])

View file

@ -22,7 +22,7 @@ class Ui_GameInfo(object):
self.layout_game_info_form.setObjectName("layout_game_info_form") self.layout_game_info_form.setObjectName("layout_game_info_form")
self.install_size = QtWidgets.QLabel(GameInfo) self.install_size = QtWidgets.QLabel(GameInfo)
self.install_size.setText("error") self.install_size.setText("error")
self.install_size.setTextInteractionFlags(QtCore.Qt.LinksAccessibleByMouse | QtCore.Qt.TextSelectableByMouse) self.install_size.setTextInteractionFlags(QtCore.Qt.LinksAccessibleByMouse|QtCore.Qt.TextSelectableByMouse)
self.install_size.setObjectName("install_size") self.install_size.setObjectName("install_size")
self.layout_game_info_form.addWidget(self.install_size, 4, 1, 1, 1) self.layout_game_info_form.addWidget(self.install_size, 4, 1, 1, 1)
self.lbl_dev = QtWidgets.QLabel(GameInfo) self.lbl_dev = QtWidgets.QLabel(GameInfo)
@ -39,7 +39,7 @@ class Ui_GameInfo(object):
self.layout_game_info_form.addWidget(self.lbl_dev, 0, 0, 1, 1, QtCore.Qt.AlignRight) self.layout_game_info_form.addWidget(self.lbl_dev, 0, 0, 1, 1, QtCore.Qt.AlignRight)
self.version = QtWidgets.QLabel(GameInfo) self.version = QtWidgets.QLabel(GameInfo)
self.version.setText("error") self.version.setText("error")
self.version.setTextInteractionFlags(QtCore.Qt.LinksAccessibleByMouse | QtCore.Qt.TextSelectableByMouse) self.version.setTextInteractionFlags(QtCore.Qt.LinksAccessibleByMouse|QtCore.Qt.TextSelectableByMouse)
self.version.setObjectName("version") self.version.setObjectName("version")
self.layout_game_info_form.addWidget(self.version, 2, 1, 1, 1) self.layout_game_info_form.addWidget(self.version, 2, 1, 1, 1)
self.lbl_install_path = QtWidgets.QLabel(GameInfo) self.lbl_install_path = QtWidgets.QLabel(GameInfo)
@ -70,43 +70,6 @@ class Ui_GameInfo(object):
self.layout_game_info_form.addItem(spacerItem, 7, 1, 1, 1) self.layout_game_info_form.addItem(spacerItem, 7, 1, 1, 1)
spacerItem1 = QtWidgets.QSpacerItem(20, 0, QtWidgets.QSizePolicy.Minimum, QtWidgets.QSizePolicy.Expanding) spacerItem1 = QtWidgets.QSpacerItem(20, 0, QtWidgets.QSizePolicy.Minimum, QtWidgets.QSizePolicy.Expanding)
self.layout_game_info_form.addItem(spacerItem1, 7, 0, 1, 1) self.layout_game_info_form.addItem(spacerItem1, 7, 0, 1, 1)
self.wg_game_actions = QtWidgets.QWidget(GameInfo)
self.wg_game_actions.setMinimumSize(QtCore.QSize(250, 0))
self.wg_game_actions.setObjectName("wg_game_actions")
self.layout_game_actions = QtWidgets.QVBoxLayout(self.wg_game_actions)
self.layout_game_actions.setContentsMargins(0, 0, 0, 0)
self.layout_game_actions.setObjectName("layout_game_actions")
self.uninstall_button = QtWidgets.QPushButton(self.wg_game_actions)
self.uninstall_button.setObjectName("uninstall_button")
self.layout_game_actions.addWidget(self.uninstall_button)
self.verify_widget = QtWidgets.QStackedWidget(self.wg_game_actions)
self.verify_widget.setObjectName("verify_widget")
self.page_verify_button = QtWidgets.QWidget()
self.page_verify_button.setObjectName("page_verify_button")
self.layout_verify_button = QtWidgets.QVBoxLayout(self.page_verify_button)
self.layout_verify_button.setContentsMargins(0, 0, 0, 0)
self.layout_verify_button.setSpacing(0)
self.layout_verify_button.setObjectName("layout_verify_button")
self.verify_button = QtWidgets.QPushButton(self.page_verify_button)
self.verify_button.setObjectName("verify_button")
self.layout_verify_button.addWidget(self.verify_button)
self.verify_widget.addWidget(self.page_verify_button)
self.page_verify_progress = QtWidgets.QWidget()
self.page_verify_progress.setObjectName("page_verify_progress")
self.layout_verify_progress = QtWidgets.QVBoxLayout(self.page_verify_progress)
self.layout_verify_progress.setContentsMargins(0, 0, 0, 0)
self.layout_verify_progress.setSpacing(0)
self.layout_verify_progress.setObjectName("layout_verify_progress")
self.verify_progress = QtWidgets.QProgressBar(self.page_verify_progress)
self.verify_progress.setProperty("value", 24)
self.verify_progress.setObjectName("verify_progress")
self.layout_verify_progress.addWidget(self.verify_progress)
self.verify_widget.addWidget(self.page_verify_progress)
self.layout_game_actions.addWidget(self.verify_widget)
self.repair_button = QtWidgets.QPushButton(self.wg_game_actions)
self.repair_button.setObjectName("repair_button")
self.layout_game_actions.addWidget(self.repair_button)
self.layout_game_info_form.addWidget(self.wg_game_actions, 6, 1, 1, 1, QtCore.Qt.AlignLeft | QtCore.Qt.AlignTop)
self.lbl_version = QtWidgets.QLabel(GameInfo) self.lbl_version = QtWidgets.QLabel(GameInfo)
sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Minimum, QtWidgets.QSizePolicy.Preferred) sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Minimum, QtWidgets.QSizePolicy.Preferred)
sizePolicy.setHorizontalStretch(0) sizePolicy.setHorizontalStretch(0)
@ -133,18 +96,18 @@ class Ui_GameInfo(object):
self.layout_game_info_form.addWidget(self.lbl_app_name, 1, 0, 1, 1, QtCore.Qt.AlignRight) self.layout_game_info_form.addWidget(self.lbl_app_name, 1, 0, 1, 1, QtCore.Qt.AlignRight)
self.dev = QtWidgets.QLabel(GameInfo) self.dev = QtWidgets.QLabel(GameInfo)
self.dev.setText("error") self.dev.setText("error")
self.dev.setTextInteractionFlags(QtCore.Qt.LinksAccessibleByMouse | QtCore.Qt.TextSelectableByMouse) self.dev.setTextInteractionFlags(QtCore.Qt.LinksAccessibleByMouse|QtCore.Qt.TextSelectableByMouse)
self.dev.setObjectName("dev") self.dev.setObjectName("dev")
self.layout_game_info_form.addWidget(self.dev, 0, 1, 1, 1) self.layout_game_info_form.addWidget(self.dev, 0, 1, 1, 1)
self.app_name = QtWidgets.QLabel(GameInfo) self.app_name = QtWidgets.QLabel(GameInfo)
self.app_name.setText("error") self.app_name.setText("error")
self.app_name.setTextInteractionFlags(QtCore.Qt.LinksAccessibleByMouse | QtCore.Qt.TextSelectableByMouse) self.app_name.setTextInteractionFlags(QtCore.Qt.LinksAccessibleByMouse|QtCore.Qt.TextSelectableByMouse)
self.app_name.setObjectName("app_name") self.app_name.setObjectName("app_name")
self.layout_game_info_form.addWidget(self.app_name, 1, 1, 1, 1) self.layout_game_info_form.addWidget(self.app_name, 1, 1, 1, 1)
self.install_path = QtWidgets.QLabel(GameInfo) self.install_path = QtWidgets.QLabel(GameInfo)
self.install_path.setText("error") self.install_path.setText("error")
self.install_path.setWordWrap(True) self.install_path.setWordWrap(True)
self.install_path.setTextInteractionFlags(QtCore.Qt.LinksAccessibleByMouse | QtCore.Qt.TextSelectableByMouse) self.install_path.setTextInteractionFlags(QtCore.Qt.LinksAccessibleByMouse|QtCore.Qt.TextSelectableByMouse)
self.install_path.setObjectName("install_path") self.install_path.setObjectName("install_path")
self.layout_game_info_form.addWidget(self.install_path, 5, 1, 1, 1) self.layout_game_info_form.addWidget(self.install_path, 5, 1, 1, 1)
self.lbl_game_actions = QtWidgets.QLabel(GameInfo) self.lbl_game_actions = QtWidgets.QLabel(GameInfo)
@ -168,23 +131,74 @@ class Ui_GameInfo(object):
self.layout_game_info_form.addWidget(self.lbl_grade, 3, 0, 1, 1, QtCore.Qt.AlignRight) self.layout_game_info_form.addWidget(self.lbl_grade, 3, 0, 1, 1, QtCore.Qt.AlignRight)
self.grade = QtWidgets.QLabel(GameInfo) self.grade = QtWidgets.QLabel(GameInfo)
self.grade.setText("error") self.grade.setText("error")
self.grade.setTextInteractionFlags(QtCore.Qt.LinksAccessibleByMouse | QtCore.Qt.TextSelectableByMouse) self.grade.setTextInteractionFlags(QtCore.Qt.LinksAccessibleByMouse|QtCore.Qt.TextSelectableByMouse)
self.grade.setObjectName("grade") self.grade.setObjectName("grade")
self.layout_game_info_form.addWidget(self.grade, 3, 1, 1, 1) self.layout_game_info_form.addWidget(self.grade, 3, 1, 1, 1)
self.game_actions_stack = QtWidgets.QStackedWidget(GameInfo)
self.game_actions_stack.setMinimumSize(QtCore.QSize(250, 0))
self.game_actions_stack.setObjectName("game_actions_stack")
self.installed_page = QtWidgets.QWidget()
self.installed_page.setObjectName("installed_page")
self.installed_layout = QtWidgets.QVBoxLayout(self.installed_page)
self.installed_layout.setContentsMargins(0, 0, 0, 0)
self.installed_layout.setObjectName("installed_layout")
self.verify_widget = QtWidgets.QStackedWidget(self.installed_page)
self.verify_widget.setObjectName("verify_widget")
self.page_verify_button = QtWidgets.QWidget()
self.page_verify_button.setObjectName("page_verify_button")
self.layout_verify_button = QtWidgets.QVBoxLayout(self.page_verify_button)
self.layout_verify_button.setContentsMargins(0, 0, 0, 0)
self.layout_verify_button.setSpacing(0)
self.layout_verify_button.setObjectName("layout_verify_button")
self.verify_button = QtWidgets.QPushButton(self.page_verify_button)
self.verify_button.setObjectName("verify_button")
self.layout_verify_button.addWidget(self.verify_button)
self.verify_widget.addWidget(self.page_verify_button)
self.page_verify_progress = QtWidgets.QWidget()
self.page_verify_progress.setObjectName("page_verify_progress")
self.layout_verify_progress = QtWidgets.QVBoxLayout(self.page_verify_progress)
self.layout_verify_progress.setContentsMargins(0, 0, 0, 0)
self.layout_verify_progress.setSpacing(0)
self.layout_verify_progress.setObjectName("layout_verify_progress")
self.verify_progress = QtWidgets.QProgressBar(self.page_verify_progress)
self.verify_progress.setProperty("value", 24)
self.verify_progress.setObjectName("verify_progress")
self.layout_verify_progress.addWidget(self.verify_progress)
self.verify_widget.addWidget(self.page_verify_progress)
self.installed_layout.addWidget(self.verify_widget)
self.repair_button = QtWidgets.QPushButton(self.installed_page)
self.repair_button.setObjectName("repair_button")
self.installed_layout.addWidget(self.repair_button)
self.uninstall_button = QtWidgets.QPushButton(self.installed_page)
self.uninstall_button.setStyleSheet("background-color: #900")
self.uninstall_button.setObjectName("uninstall_button")
self.installed_layout.addWidget(self.uninstall_button)
self.game_actions_stack.addWidget(self.installed_page)
self.uninstalled_page = QtWidgets.QWidget()
self.uninstalled_page.setObjectName("uninstalled_page")
self.uninstalled_layout = QtWidgets.QVBoxLayout(self.uninstalled_page)
self.uninstalled_layout.setObjectName("uninstalled_layout")
self.install_button = QtWidgets.QPushButton(self.uninstalled_page)
self.install_button.setStyleSheet("background-color: #090")
self.install_button.setObjectName("install_button")
self.uninstalled_layout.addWidget(self.install_button)
self.game_actions_stack.addWidget(self.uninstalled_page)
self.layout_game_info_form.addWidget(self.game_actions_stack, 6, 1, 1, 1, QtCore.Qt.AlignLeft|QtCore.Qt.AlignTop)
self.layout_game_info.addLayout(self.layout_game_info_form, 2, 1, 1, 1) self.layout_game_info.addLayout(self.layout_game_info_form, 2, 1, 1, 1)
self.image = QtWidgets.QLabel(GameInfo) self.image = QtWidgets.QLabel(GameInfo)
self.image.setFrameShape(QtWidgets.QFrame.StyledPanel) self.image.setFrameShape(QtWidgets.QFrame.StyledPanel)
self.image.setFrameShadow(QtWidgets.QFrame.Sunken) self.image.setFrameShadow(QtWidgets.QFrame.Sunken)
self.image.setText("") self.image.setText("")
self.image.setObjectName("image") self.image.setObjectName("image")
self.layout_game_info.addWidget(self.image, 2, 0, 1, 1, QtCore.Qt.AlignLeft | QtCore.Qt.AlignTop) self.layout_game_info.addWidget(self.image, 2, 0, 1, 1, QtCore.Qt.AlignLeft|QtCore.Qt.AlignTop)
self.game_title = QtWidgets.QLabel(GameInfo) self.game_title = QtWidgets.QLabel(GameInfo)
self.game_title.setText("error") self.game_title.setText("error")
self.game_title.setTextInteractionFlags(QtCore.Qt.LinksAccessibleByMouse | QtCore.Qt.TextSelectableByMouse) self.game_title.setTextInteractionFlags(QtCore.Qt.LinksAccessibleByMouse|QtCore.Qt.TextSelectableByMouse)
self.game_title.setObjectName("game_title") self.game_title.setObjectName("game_title")
self.layout_game_info.addWidget(self.game_title, 0, 0, 1, 3) self.layout_game_info.addWidget(self.game_title, 0, 0, 1, 3)
self.retranslateUi(GameInfo) self.retranslateUi(GameInfo)
self.game_actions_stack.setCurrentIndex(0)
self.verify_widget.setCurrentIndex(0) self.verify_widget.setCurrentIndex(0)
QtCore.QMetaObject.connectSlotsByName(GameInfo) QtCore.QMetaObject.connectSlotsByName(GameInfo)
@ -194,18 +208,18 @@ class Ui_GameInfo(object):
self.lbl_dev.setText(_translate("GameInfo", "Developer")) self.lbl_dev.setText(_translate("GameInfo", "Developer"))
self.lbl_install_path.setText(_translate("GameInfo", "Installation Path")) self.lbl_install_path.setText(_translate("GameInfo", "Installation Path"))
self.lbl_install_size.setText(_translate("GameInfo", "Installation Size")) self.lbl_install_size.setText(_translate("GameInfo", "Installation Size"))
self.uninstall_button.setText(_translate("GameInfo", "Uninstall Game"))
self.verify_button.setText(_translate("GameInfo", "Verify Installation"))
self.repair_button.setText(_translate("GameInfo", "Repair Instalation"))
self.lbl_version.setText(_translate("GameInfo", "Version")) self.lbl_version.setText(_translate("GameInfo", "Version"))
self.lbl_app_name.setText(_translate("GameInfo", "Application Name")) self.lbl_app_name.setText(_translate("GameInfo", "Application Name"))
self.lbl_game_actions.setText(_translate("GameInfo", "Actions")) self.lbl_game_actions.setText(_translate("GameInfo", "Actions"))
self.lbl_grade.setText(_translate("GameInfo", "ProtonDB Grade")) self.lbl_grade.setText(_translate("GameInfo", "ProtonDB Grade"))
self.verify_button.setText(_translate("GameInfo", "Verify Installation"))
self.repair_button.setText(_translate("GameInfo", "Repair Instalation"))
self.uninstall_button.setText(_translate("GameInfo", "Uninstall Game"))
self.install_button.setText(_translate("GameInfo", "Install Game"))
if __name__ == "__main__": if __name__ == "__main__":
import sys import sys
app = QtWidgets.QApplication(sys.argv) app = QtWidgets.QApplication(sys.argv)
GameInfo = QtWidgets.QWidget() GameInfo = QtWidgets.QWidget()
ui = Ui_GameInfo() ui = Ui_GameInfo()

View file

@ -1,376 +1,390 @@
<?xml version="1.0" encoding="UTF-8"?> <?xml version="1.0" encoding="UTF-8"?>
<ui version="4.0"> <ui version="4.0">
<class>GameInfo</class> <class>GameInfo</class>
<widget class="QWidget" name="GameInfo"> <widget class="QWidget" name="GameInfo">
<property name="geometry"> <property name="windowTitle">
<rect> <string>Game Info</string>
<x>0</x> </property>
<y>0</y> <layout class="QGridLayout" name="layout_game_info">
<width>436</width> <item row="2" column="1">
<height>317</height> <layout class="QGridLayout" name="layout_game_info_form">
</rect> <property name="leftMargin">
</property> <number>6</number>
<property name="windowTitle"> </property>
<string>Game Info</string> <property name="topMargin">
</property> <number>6</number>
<layout class="QGridLayout" name="layout_game_info"> </property>
<item row="2" column="1"> <property name="rightMargin">
<layout class="QGridLayout" name="layout_game_info_form"> <number>6</number>
<property name="leftMargin"> </property>
<number>6</number> <property name="bottomMargin">
</property> <number>6</number>
<property name="topMargin"> </property>
<number>6</number> <property name="spacing">
</property> <number>12</number>
<property name="rightMargin"> </property>
<number>6</number> <item row="4" column="1">
</property> <widget class="QLabel" name="install_size">
<property name="bottomMargin"> <property name="text">
<number>6</number> <string notr="true">error</string>
</property> </property>
<property name="spacing"> <property name="textInteractionFlags">
<number>12</number> <set>Qt::LinksAccessibleByMouse|Qt::TextSelectableByMouse</set>
</property> </property>
<item row="4" column="1"> </widget>
<widget class="QLabel" name="install_size"> </item>
<property name="text"> <item row="0" column="0" alignment="Qt::AlignRight">
<string notr="true">error</string> <widget class="QLabel" name="lbl_dev">
</property> <property name="sizePolicy">
<property name="textInteractionFlags"> <sizepolicy hsizetype="Minimum" vsizetype="Preferred">
<set>Qt::LinksAccessibleByMouse|Qt::TextSelectableByMouse</set> <horstretch>0</horstretch>
</property> <verstretch>0</verstretch>
</widget> </sizepolicy>
</item> </property>
<item row="0" column="0" alignment="Qt::AlignRight"> <property name="font">
<widget class="QLabel" name="lbl_dev"> <font>
<property name="sizePolicy"> <weight>75</weight>
<sizepolicy hsizetype="Minimum" vsizetype="Preferred"> <bold>true</bold>
<horstretch>0</horstretch> </font>
<verstretch>0</verstretch> </property>
</sizepolicy> <property name="text">
</property> <string>Developer</string>
<property name="font"> </property>
<font> </widget>
<weight>75</weight> </item>
<bold>true</bold> <item row="2" column="1">
</font> <widget class="QLabel" name="version">
</property> <property name="text">
<property name="text"> <string notr="true">error</string>
<string>Developer</string> </property>
</property> <property name="textInteractionFlags">
</widget> <set>Qt::LinksAccessibleByMouse|Qt::TextSelectableByMouse</set>
</item> </property>
<item row="2" column="1"> </widget>
<widget class="QLabel" name="version"> </item>
<property name="text"> <item row="5" column="0" alignment="Qt::AlignRight">
<string notr="true">error</string> <widget class="QLabel" name="lbl_install_path">
</property> <property name="sizePolicy">
<property name="textInteractionFlags"> <sizepolicy hsizetype="Minimum" vsizetype="Preferred">
<set>Qt::LinksAccessibleByMouse|Qt::TextSelectableByMouse</set> <horstretch>0</horstretch>
</property> <verstretch>0</verstretch>
</widget> </sizepolicy>
</item> </property>
<item row="5" column="0" alignment="Qt::AlignRight"> <property name="font">
<widget class="QLabel" name="lbl_install_path"> <font>
<property name="sizePolicy"> <weight>75</weight>
<sizepolicy hsizetype="Minimum" vsizetype="Preferred"> <bold>true</bold>
<horstretch>0</horstretch> </font>
<verstretch>0</verstretch> </property>
</sizepolicy> <property name="text">
</property> <string>Installation Path</string>
<property name="font"> </property>
<font> </widget>
<weight>75</weight> </item>
<bold>true</bold> <item row="4" column="0" alignment="Qt::AlignRight">
</font> <widget class="QLabel" name="lbl_install_size">
</property> <property name="sizePolicy">
<property name="text"> <sizepolicy hsizetype="Minimum" vsizetype="Preferred">
<string>Installation Path</string> <horstretch>0</horstretch>
</property> <verstretch>0</verstretch>
</widget> </sizepolicy>
</item> </property>
<item row="4" column="0" alignment="Qt::AlignRight"> <property name="font">
<widget class="QLabel" name="lbl_install_size"> <font>
<property name="sizePolicy"> <weight>75</weight>
<sizepolicy hsizetype="Minimum" vsizetype="Preferred"> <bold>true</bold>
<horstretch>0</horstretch> </font>
<verstretch>0</verstretch> </property>
</sizepolicy> <property name="text">
</property> <string>Installation Size</string>
<property name="font"> </property>
<font> </widget>
<weight>75</weight> </item>
<bold>true</bold> <item row="7" column="1">
</font> <spacer name="hs_game_info_form">
</property> <property name="orientation">
<property name="text"> <enum>Qt::Horizontal</enum>
<string>Installation Size</string> </property>
</property> <property name="sizeHint" stdset="0">
</widget> <size>
</item> <width>0</width>
<item row="7" column="1"> <height>20</height>
<spacer name="hs_game_info_form"> </size>
<property name="orientation"> </property>
<enum>Qt::Horizontal</enum> </spacer>
</property> </item>
<property name="sizeHint" stdset="0"> <item row="7" column="0">
<size> <spacer name="vs_game_info_form">
<width>0</width> <property name="orientation">
<height>20</height> <enum>Qt::Vertical</enum>
</size> </property>
</property> <property name="sizeHint" stdset="0">
</spacer> <size>
</item> <width>20</width>
<item row="7" column="0"> <height>0</height>
<spacer name="vs_game_info_form"> </size>
<property name="orientation"> </property>
<enum>Qt::Vertical</enum> </spacer>
</property> </item>
<property name="sizeHint" stdset="0"> <item row="2" column="0" alignment="Qt::AlignRight">
<size> <widget class="QLabel" name="lbl_version">
<width>20</width> <property name="sizePolicy">
<height>0</height> <sizepolicy hsizetype="Minimum" vsizetype="Preferred">
</size> <horstretch>0</horstretch>
</property> <verstretch>0</verstretch>
</spacer> </sizepolicy>
</item> </property>
<item row="6" column="1" alignment="Qt::AlignLeft|Qt::AlignTop"> <property name="font">
<widget class="QWidget" name="wg_game_actions" native="true"> <font>
<property name="minimumSize"> <weight>75</weight>
<size> <bold>true</bold>
<width>250</width> </font>
<height>0</height> </property>
</size> <property name="text">
</property> <string>Version</string>
<layout class="QVBoxLayout" name="layout_game_actions"> </property>
<property name="leftMargin"> </widget>
<number>0</number> </item>
</property> <item row="1" column="0" alignment="Qt::AlignRight">
<property name="topMargin"> <widget class="QLabel" name="lbl_app_name">
<number>0</number> <property name="sizePolicy">
</property> <sizepolicy hsizetype="Minimum" vsizetype="Preferred">
<property name="rightMargin"> <horstretch>0</horstretch>
<number>0</number> <verstretch>0</verstretch>
</property> </sizepolicy>
<property name="bottomMargin"> </property>
<number>0</number> <property name="font">
</property> <font>
<item> <weight>75</weight>
<widget class="QPushButton" name="uninstall_button"> <bold>true</bold>
<property name="text"> </font>
<string>Uninstall Game</string> </property>
</property> <property name="text">
</widget> <string>Application Name</string>
</item> </property>
<item> </widget>
<widget class="QStackedWidget" name="verify_widget"> </item>
<property name="currentIndex"> <item row="0" column="1">
<number>0</number> <widget class="QLabel" name="dev">
</property> <property name="text">
<widget class="QWidget" name="page_verify_button"> <string notr="true">error</string>
<layout class="QVBoxLayout" name="layout_verify_button"> </property>
<property name="spacing"> <property name="textInteractionFlags">
<number>0</number> <set>Qt::LinksAccessibleByMouse|Qt::TextSelectableByMouse</set>
</property> </property>
<property name="leftMargin"> </widget>
<number>0</number> </item>
</property> <item row="1" column="1">
<property name="topMargin"> <widget class="QLabel" name="app_name">
<number>0</number> <property name="text">
</property> <string notr="true">error</string>
<property name="rightMargin"> </property>
<number>0</number> <property name="textInteractionFlags">
</property> <set>Qt::LinksAccessibleByMouse|Qt::TextSelectableByMouse</set>
<property name="bottomMargin"> </property>
<number>0</number> </widget>
</property> </item>
<item> <item row="5" column="1">
<widget class="QPushButton" name="verify_button"> <widget class="QLabel" name="install_path">
<property name="text"> <property name="text">
<string>Verify Installation</string> <string notr="true">error</string>
</property> </property>
</widget> <property name="wordWrap">
</item> <bool>true</bool>
</layout> </property>
</widget> <property name="textInteractionFlags">
<widget class="QWidget" name="page_verify_progress"> <set>Qt::LinksAccessibleByMouse|Qt::TextSelectableByMouse</set>
<layout class="QVBoxLayout" name="layout_verify_progress"> </property>
<property name="spacing"> </widget>
<number>0</number> </item>
</property> <item row="6" column="0" alignment="Qt::AlignRight">
<property name="leftMargin"> <widget class="QLabel" name="lbl_game_actions">
<number>0</number> <property name="sizePolicy">
</property> <sizepolicy hsizetype="Minimum" vsizetype="Preferred">
<property name="topMargin"> <horstretch>0</horstretch>
<number>0</number> <verstretch>0</verstretch>
</property> </sizepolicy>
<property name="rightMargin"> </property>
<number>0</number> <property name="font">
</property> <font>
<property name="bottomMargin"> <weight>75</weight>
<number>0</number> <bold>true</bold>
</property> </font>
<item> </property>
<widget class="QProgressBar" name="verify_progress"> <property name="text">
<property name="value"> <string>Actions</string>
<number>24</number> </property>
</property> </widget>
</widget> </item>
</item> <item row="3" column="0" alignment="Qt::AlignRight">
</layout> <widget class="QLabel" name="lbl_grade">
</widget> <property name="font">
</widget> <font>
</item> <weight>75</weight>
<item> <bold>true</bold>
<widget class="QPushButton" name="repair_button"> </font>
<property name="text"> </property>
<string>Repair Instalation</string> <property name="text">
</property> <string>ProtonDB Grade</string>
</widget> </property>
</item> </widget>
</layout> </item>
</widget> <item row="3" column="1">
</item> <widget class="QLabel" name="grade">
<item row="2" column="0" alignment="Qt::AlignRight"> <property name="text">
<widget class="QLabel" name="lbl_version"> <string notr="true">error</string>
<property name="sizePolicy"> </property>
<sizepolicy hsizetype="Minimum" vsizetype="Preferred"> <property name="textInteractionFlags">
<horstretch>0</horstretch> <set>Qt::LinksAccessibleByMouse|Qt::TextSelectableByMouse</set>
<verstretch>0</verstretch> </property>
</sizepolicy> </widget>
</property> </item>
<property name="font"> <item row="6" column="1" alignment="Qt::AlignLeft|Qt::AlignTop">
<font> <widget class="QStackedWidget" name="game_actions_stack">
<weight>75</weight> <property name="minimumSize">
<bold>true</bold> <size>
</font> <width>250</width>
</property> <height>0</height>
<property name="text"> </size>
<string>Version</string> </property>
</property> <property name="currentIndex">
</widget> <number>0</number>
</item> </property>
<item row="1" column="0" alignment="Qt::AlignRight"> <widget class="QWidget" name="installed_page" native="true">
<widget class="QLabel" name="lbl_app_name"> <layout class="QVBoxLayout" name="installed_layout">
<property name="sizePolicy"> <property name="leftMargin">
<sizepolicy hsizetype="Minimum" vsizetype="Preferred"> <number>0</number>
<horstretch>0</horstretch> </property>
<verstretch>0</verstretch> <property name="topMargin">
</sizepolicy> <number>0</number>
</property> </property>
<property name="font"> <property name="rightMargin">
<font> <number>0</number>
<weight>75</weight> </property>
<bold>true</bold> <property name="bottomMargin">
</font> <number>0</number>
</property> </property>
<property name="text"> <item>
<string>Application Name</string> <widget class="QStackedWidget" name="verify_widget">
</property> <property name="currentIndex">
</widget> <number>0</number>
</item> </property>
<item row="0" column="1"> <widget class="QWidget" name="page_verify_button">
<widget class="QLabel" name="dev"> <layout class="QVBoxLayout" name="layout_verify_button">
<property name="text"> <property name="spacing">
<string notr="true">error</string> <number>0</number>
</property> </property>
<property name="textInteractionFlags"> <property name="leftMargin">
<set>Qt::LinksAccessibleByMouse|Qt::TextSelectableByMouse</set> <number>0</number>
</property> </property>
</widget> <property name="topMargin">
</item> <number>0</number>
<item row="1" column="1"> </property>
<widget class="QLabel" name="app_name"> <property name="rightMargin">
<property name="text"> <number>0</number>
<string notr="true">error</string> </property>
</property> <property name="bottomMargin">
<property name="textInteractionFlags"> <number>0</number>
<set>Qt::LinksAccessibleByMouse|Qt::TextSelectableByMouse</set> </property>
</property> <item>
</widget> <widget class="QPushButton" name="verify_button">
</item> <property name="text">
<item row="5" column="1"> <string>Verify Installation</string>
<widget class="QLabel" name="install_path"> </property>
<property name="text"> </widget>
<string notr="true">error</string> </item>
</property> </layout>
<property name="wordWrap"> </widget>
<bool>true</bool> <widget class="QWidget" name="page_verify_progress">
</property> <layout class="QVBoxLayout" name="layout_verify_progress">
<property name="textInteractionFlags"> <property name="spacing">
<set>Qt::LinksAccessibleByMouse|Qt::TextSelectableByMouse</set> <number>0</number>
</property> </property>
</widget> <property name="leftMargin">
</item> <number>0</number>
<item row="6" column="0" alignment="Qt::AlignRight"> </property>
<widget class="QLabel" name="lbl_game_actions"> <property name="topMargin">
<property name="sizePolicy"> <number>0</number>
<sizepolicy hsizetype="Minimum" vsizetype="Preferred"> </property>
<horstretch>0</horstretch> <property name="rightMargin">
<verstretch>0</verstretch> <number>0</number>
</sizepolicy> </property>
</property> <property name="bottomMargin">
<property name="font"> <number>0</number>
<font> </property>
<weight>75</weight> <item>
<bold>true</bold> <widget class="QProgressBar" name="verify_progress">
</font> <property name="value">
</property> <number>24</number>
<property name="text"> </property>
<string>Actions</string> </widget>
</property> </item>
</widget> </layout>
</item> </widget>
<item row="3" column="0" alignment="Qt::AlignRight"> </widget>
<widget class="QLabel" name="lbl_grade"> </item>
<property name="font"> <item>
<font> <widget class="QPushButton" name="repair_button">
<weight>75</weight> <property name="text">
<bold>true</bold> <string>Repair Instalation</string>
</font> </property>
</property> </widget>
<property name="text"> </item>
<string>ProtonDB Grade</string> <item>
</property> <widget class="QPushButton" name="uninstall_button">
</widget> <property name="styleSheet">
</item> <string notr="true">background-color: #900</string>
<item row="3" column="1"> </property>
<widget class="QLabel" name="grade"> <property name="text">
<property name="text"> <string>Uninstall Game</string>
<string notr="true">error</string> </property>
</property> </widget>
<property name="textInteractionFlags"> </item>
<set>Qt::LinksAccessibleByMouse|Qt::TextSelectableByMouse</set>
</property>
</widget>
</item>
</layout>
</item>
<item row="2" column="0" alignment="Qt::AlignLeft|Qt::AlignTop">
<widget class="QLabel" name="image">
<property name="frameShape">
<enum>QFrame::StyledPanel</enum>
</property>
<property name="frameShadow">
<enum>QFrame::Sunken</enum>
</property>
<property name="text">
<string notr="true"/>
</property>
</widget>
</item>
<item row="0" column="0" colspan="3">
<widget class="QLabel" name="game_title">
<property name="text">
<string notr="true">error</string>
</property>
<property name="textInteractionFlags">
<set>Qt::LinksAccessibleByMouse|Qt::TextSelectableByMouse</set>
</property>
</widget>
</item>
</layout> </layout>
</widget>
<widget class="QWidget" name="uninstalled_page">
<layout class="QVBoxLayout" name="uninstalled_layout">
<item>
<widget class="QPushButton" name="install_button">
<property name="styleSheet">
<string notr="true">background-color: #090</string>
</property>
<property name="text">
<string>Install Game</string>
</property>
</widget>
</item>
</layout>
</widget>
</widget>
</item>
</layout>
</item>
<item row="2" column="0" alignment="Qt::AlignLeft|Qt::AlignTop">
<widget class="QLabel" name="image">
<property name="frameShape">
<enum>QFrame::StyledPanel</enum>
</property>
<property name="frameShadow">
<enum>QFrame::Sunken</enum>
</property>
<property name="text">
<string notr="true"/>
</property>
</widget> </widget>
<resources/> </item>
<connections/> <item row="0" column="0" colspan="3">
<widget class="QLabel" name="game_title">
<property name="text">
<string notr="true">error</string>
</property>
<property name="textInteractionFlags">
<set>Qt::LinksAccessibleByMouse|Qt::TextSelectableByMouse</set>
</property>
</widget>
</item>
</layout>
</widget>
<resources/>
<connections/>
</ui> </ui>