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

Fix memory leaks in DLC tab.

This commit is contained in:
Stelios Tsampas 2021-09-10 17:36:26 +03:00
parent 4d842e352a
commit 35cbd21bb7
15 changed files with 1194 additions and 525 deletions

View file

@ -79,7 +79,7 @@ class TabWidget(QTabWidget):
# show uninstalled info
self.games_tab.default_widget.game_list.show_uninstalled_info.connect(self.games_tab.show_uninstalled)
# install dlc
self.games_tab.game_info.dlc_tab.install_dlc.connect(
self.games_tab.game_info.dlc.install_dlc.connect(
lambda app_name, update: self.install_game(
InstallOptionsModel(app_name=app_name),
update=update))

View file

@ -10,7 +10,7 @@ from qtawesome import icon
from legendary.core import LegendaryCore
from legendary.models.game import Game, InstalledGame
from rare import data_dir
from rare.components.tabs.games.game_info.dlcs import DlcTab
from rare.components.tabs.games.game_info.game_dlc import GameDlc
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.utils.extra_widgets import SideTabBar
@ -31,14 +31,14 @@ class InfoTabs(QTabWidget):
self.tabBarClicked.connect(lambda x: self.parent().layout.setCurrentIndex(0) if x == 0 else None)
self.info = GameInfo(core, self)
self.addTab(self.info, self.tr("Game Info"))
self.addTab(self.info, self.tr("Information"))
self.settings = GameSettings(core, self)
self.addTab(self.settings, self.tr("Settings"))
self.tabBar().setCurrentIndex(1)
self.dlc_tab = DlcTab(core, self)
self.addTab(self.dlc_tab, self.tr("DLCs"))
self.dlc = GameDlc(core, self)
self.addTab(self.dlc, self.tr("Downloadable Content"))
def update_game(self, app_name, dlcs: list):
@ -51,7 +51,7 @@ class InfoTabs(QTabWidget):
self.setTabEnabled(3, False)
else:
self.setTabEnabled(3, True)
self.dlc_tab.update_dlcs(app_name, dlcs)
self.dlc.update_dlcs(app_name, dlcs)
else:
self.setTabEnabled(3, False)

View file

@ -1,141 +0,0 @@
import os
from PyQt5.QtCore import pyqtSignal, QSettings
from PyQt5.QtGui import QPixmap
from PyQt5.QtWidgets import QGroupBox, QHBoxLayout, QVBoxLayout, QScrollArea, QLabel, QPushButton, QMessageBox
from legendary.core import LegendaryCore
from legendary.models.game import Game
from rare import data_dir
from rare.utils.utils import download_image
class DlcTab(QScrollArea):
install_dlc = pyqtSignal(str, bool)
game: Game
def __init__(self, core: LegendaryCore, parent):
super(DlcTab, self).__init__(parent=parent)
self.core = core
self.widget = QGroupBox("DLCs")
self.widget.setObjectName("group")
self.setWidgetResizable(True)
self.layout = QVBoxLayout()
self.installed_dlcs = [i.app_name for i in self.core.get_installed_dlc_list()]
self.installed_dlc_widget = QGroupBox(self.tr("Installed DLCs"))
self.installed_layout = QVBoxLayout()
self.available_dlcs = QGroupBox(self.tr("Available DLCs"))
self.available_dlcs_layout = QVBoxLayout()
self.installed = []
self.available = []
def update_dlcs(self, app_name, dlcs: list):
self.installed_dlcs = [i.app_name for i in self.core.get_installed_dlc_list()]
self.installed_dlc_widget = QGroupBox(self.tr("Installed DLCs"))
self.installed_layout = QVBoxLayout()
self.available_dlcs = QGroupBox(self.tr("Available DLCs"))
self.available_dlcs_layout = QVBoxLayout()
self.installed = []
self.available = []
QVBoxLayout().addWidget(self.widget)
self.game = self.core.get_game(app_name)
for dlc in sorted(dlcs[self.game.asset_info.catalog_item_id], key=lambda x: x.app_title):
if dlc.app_name in self.installed_dlcs:
w = DLCWidget(dlc, True)
self.installed_layout.addWidget(w)
self.installed.append(dlc)
else:
w = DLCWidget(dlc, False)
w.install.connect(self.install)
self.available_dlcs_layout.addWidget(w)
self.available.append(dlc)
if len(self.installed) == 0:
self.installed_layout.addWidget(QLabel(self.tr("No DLCs are installed")))
if len(self.available) == 0:
self.available_dlcs_layout.addWidget(QLabel(self.tr("No DLCs are available")))
self.widget = QGroupBox("DLCs")
self.layout = QVBoxLayout()
self.installed_dlc_widget.setLayout(self.installed_layout)
self.available_dlcs.setLayout(self.available_dlcs_layout)
self.layout.addWidget(self.installed_dlc_widget)
self.layout.addWidget(self.available_dlcs)
self.layout.addStretch(1)
self.widget.setLayout(self.layout)
self.setWidget(self.widget)
def install(self, app_name):
if not self.core.is_installed(self.game.app_name):
QMessageBox.warning(self, "Error", self.tr("Base Game is not installed. Please install {} first").format(
self.game.app_title))
return
self.install_dlc.emit(app_name, True)
class DLCWidget(QGroupBox):
install = pyqtSignal(str) # Appname
def __init__(self, dlc: Game, installed: bool):
super(DLCWidget, self).__init__()
self.main_layout = QHBoxLayout()
self.dlc = dlc
IMAGE_DIR = QSettings().value("img_dir", os.path.join(data_dir, "images"))
if installed:
if os.path.exists(os.path.join(IMAGE_DIR, dlc.app_name, "FinalArt.png")):
pixmap = QPixmap(os.path.join(IMAGE_DIR, dlc.app_name, "FinalArt.png"))
elif os.path.exists(os.path.join(IMAGE_DIR, dlc.app_name, "DieselGameBoxTall.png")):
pixmap = QPixmap(os.path.join(IMAGE_DIR, dlc.app_name, "DieselGameBoxTall.png"))
elif os.path.exists(os.path.join(IMAGE_DIR, dlc.app_name, "DieselGameBoxLogo.png")):
pixmap = QPixmap(os.path.join(IMAGE_DIR, dlc.app_name, "DieselGameBoxLogo.png"))
else:
print(f"No Image found: {dlc.app_title}")
pixmap = None
if not pixmap or pixmap.isNull():
print(dlc.app_title + " has corrupt Image")
download_image(dlc, force=True)
pixmap = QPixmap(f"{IMAGE_DIR}/{dlc.app_name}/UninstalledArt.png")
else:
if os.path.exists(f"{IMAGE_DIR}/{dlc.app_name}/UninstalledArt.png"):
pixmap = QPixmap(f"{IMAGE_DIR}/{dlc.app_name}/DieselGameBoxTall.png")
else:
pixmap = None
if not pixmap or pixmap.isNull():
print(dlc.app_title + " has corrupt Image")
download_image(dlc, force=True)
pixmap = QPixmap(f"{IMAGE_DIR}/{dlc.app_name}/UninstalledArt.png")
image = QLabel()
image.setPixmap(pixmap)
self.main_layout.addWidget(image)
self.layout = QVBoxLayout()
self.layout.addWidget(QLabel(dlc.app_title))
self.layout.addWidget(QLabel("Version: " + str(dlc.app_version)))
self.layout.addWidget(QLabel("App Name: " + dlc.app_name))
if not installed:
self.install_button = QPushButton(self.tr("Install"))
self.layout.addWidget(self.install_button)
self.install_button.clicked.connect(lambda: self.install.emit(dlc.app_name))
else:
self.layout.addWidget(QLabel(self.tr("Installed. Uninstalling DLCs is not supported")))
self.main_layout.addLayout(self.layout)
self.setLayout(self.main_layout)
self.layout.addStretch(1)
def install_game(self):
self.install_button.setDisabled(True)
self.install_button.setText(self.tr("Installing"))
self.install.emit(self.dlc.app_name)

View file

@ -0,0 +1,116 @@
import os
from PyQt5.QtCore import pyqtSignal, QSettings, QSize
from PyQt5.QtGui import QPixmap
from PyQt5.QtWidgets import QFrame, QWidget, QMessageBox
from legendary.core import LegendaryCore
from legendary.models.game import Game
from rare import data_dir
from rare.utils.utils import download_image
from rare.ui.components.tabs.games.game_info.game_dlc import Ui_GameDlc
from rare.ui.components.tabs.games.game_info.game_dlc_widget import Ui_GameDlcWidget
class GameDlc(QWidget, Ui_GameDlc):
install_dlc = pyqtSignal(str, bool)
game: Game
def __init__(self, core: LegendaryCore, parent=None):
super(GameDlc, self).__init__(parent=parent)
self.setupUi(self)
self.core = core
self.installed_dlcs = list()
self.installed_dlc_widgets = list()
self.available_dlc_widgets = list()
def update_dlcs(self, app_name, dlcs: list):
self.game = self.core.get_game(app_name)
self.game_title.setText(f"<h2>{self.game.app_title}</h2>")
if self.installed_dlc_widgets:
for dlc_widget in self.installed_dlc_widgets:
dlc_widget.deleteLater()
self.installed_dlc_widgets.clear()
if self.available_dlc_widgets:
for dlc_widget in self.available_dlc_widgets:
dlc_widget.install.disconnect()
dlc_widget.deleteLater()
self.available_dlc_widgets.clear()
self.installed_dlcs = [i.app_name for i in self.core.get_installed_dlc_list()]
for dlc in sorted(dlcs[self.game.asset_info.catalog_item_id], key=lambda x: x.app_title):
if dlc.app_name in self.installed_dlcs:
dlc_widget = GameDlcWidget(dlc, True)
self.installed_dlc_widgets.append(dlc_widget)
self.installed_dlc_contents_layout.addWidget(dlc_widget)
else:
dlc_widget = GameDlcWidget(dlc, False)
dlc_widget.install.connect(self.install)
self.available_dlc_widgets.append(dlc_widget)
self.available_dlc_contents_layout.addWidget(dlc_widget)
self.installed_dlc_label.setVisible(not self.installed_dlc_widgets)
self.installed_dlc_scroll.setVisible(bool(self.installed_dlc_widgets))
self.available_dlc_label.setVisible(not self.available_dlc_widgets)
self.available_dlc_scroll.setVisible(bool(self.available_dlc_widgets))
def install(self, app_name):
if not self.core.is_installed(self.game.app_name):
QMessageBox.warning(self, "Error", self.tr("Base Game is not installed. Please install {} first").format(
self.game.app_title))
return
self.install_dlc.emit(app_name, True)
class GameDlcWidget(QFrame, Ui_GameDlcWidget):
install = pyqtSignal(str) # Appname
def __init__(self, dlc: Game, installed: bool, parent=None):
super(GameDlcWidget, self).__init__(parent=parent)
self.setupUi(self)
self.dlc = dlc
image_dir = QSettings().value("img_dir", os.path.join(data_dir, "images"))
if installed:
if os.path.exists(os.path.join(image_dir, dlc.app_name, "FinalArt.png")):
pixmap = QPixmap(os.path.join(image_dir, dlc.app_name, "FinalArt.png"))
elif os.path.exists(os.path.join(image_dir, dlc.app_name, "DieselGameBoxTall.png")):
pixmap = QPixmap(os.path.join(image_dir, dlc.app_name, "DieselGameBoxTall.png"))
elif os.path.exists(os.path.join(image_dir, dlc.app_name, "DieselGameBoxLogo.png")):
pixmap = QPixmap(os.path.join(image_dir, dlc.app_name, "DieselGameBoxLogo.png"))
else:
print(f"No Image found: {dlc.app_title}")
pixmap = None
if not pixmap or pixmap.isNull():
print(dlc.app_title + " has corrupt Image")
download_image(dlc, force=True)
pixmap = QPixmap(f"{image_dir}/{dlc.app_name}/UninstalledArt.png")
else:
if os.path.exists(f"{image_dir}/{dlc.app_name}/UninstalledArt.png"):
pixmap = QPixmap(f"{image_dir}/{dlc.app_name}/DieselGameBoxTall.png")
else:
pixmap = None
if not pixmap or pixmap.isNull():
print(dlc.app_title + " has corrupt Image")
download_image(dlc, force=True)
pixmap = QPixmap(f"{image_dir}/{dlc.app_name}/UninstalledArt.png")
self.image.setPixmap(pixmap.scaledToHeight(pixmap.height()*0.5))
self.dlc_name.setText(dlc.app_title)
self.version.setText(dlc.app_version)
self.app_name.setText(dlc.app_name)
if not installed:
self.install_button.clicked.connect(lambda: self.install.emit(dlc.app_name))
self.status.setText(self.tr("Not installed"))
else:
self.status.setText(self.tr("Installed. Uninstalling DLCs is not supported"))
self.install_button.setVisible(not installed)
def install_game(self):
self.install_button.setDisabled(True)
self.install_button.setText(self.tr("Installing"))
self.install.emit(self.dlc.app_name)

View file

@ -205,7 +205,7 @@ class GameSettings(QWidget, Ui_GameSettings):
wrapper = self.core.lgd.config.get(self.game.app_name, "wrapper", fallback="")
self.wrapper.setText(wrapper)
self.title.setText(f"<h2>{self.game.app_title}</h2>")
self.game_title.setText(f"<h2>{self.game.app_title}</h2>")
if platform.system() != "Windows":
self.linux_settings.update_game(app_name)
self.linux_settings.dxvk.update_settings(app_name)

View file

@ -37,7 +37,6 @@ class RareSettings(QWidget, Ui_RareSettings):
(self.notification, "notification", True),
(self.save_size, "save_size", False),
(self.log_games, "show_console", False),
# (self.image_cache, "cache_images", True)
]
self.settings = QSettings()
@ -45,11 +44,6 @@ class RareSettings(QWidget, Ui_RareSettings):
language = self.settings.value("language", get_lang(), type=str)
self.logdir = os.path.join(cache_dir, "logs")
# Select Image directory
# self.img_dir = PathEdit(self.img_dir_path, file_type=QFileDialog.DirectoryOnly, save_func=self.save_path)
# self.img_dir_layout.addWidget(self.img_dir)
# Select lang
self.lang_select.addItems([i[1] for i in languages])
if language in get_possible_langs():
@ -103,9 +97,9 @@ class RareSettings(QWidget, Ui_RareSettings):
self.save_size.stateChanged.connect(
lambda: self.settings.setValue("save_size", self.save_size.isChecked())
)
# self.image_cache.stateChanged.connect(
# lambda: self.settings.setValue("cache_images", self.image_cache.isChecked())
# )
self.log_games.stateChanged.connect(
lambda: self.settings.setValue("show_console", self.log_games.isChecked())
)
if platform.system() == "Linux":

View file

@ -299,17 +299,17 @@
<context>
<name>DLCWidget</name>
<message>
<location filename="../components/tabs/games/game_info/dlcs.py" line="125"/>
<location filename="../components/tabs/games/game_info/game_dlc.py" line="125"/>
<source>Install</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../components/tabs/games/game_info/dlcs.py" line="130"/>
<location filename="../components/tabs/games/game_info/game_dlc.py" line="130"/>
<source>Installed. Uninstalling DLCs is not supported</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../components/tabs/games/game_info/dlcs.py" line="140"/>
<location filename="../components/tabs/games/game_info/game_dlc.py" line="140"/>
<source>Installing</source>
<translation type="unfinished"></translation>
</message>
@ -371,27 +371,27 @@
<context>
<name>DlcTab</name>
<message>
<location filename="../components/tabs/games/game_info/dlcs.py" line="36"/>
<location filename="../components/tabs/games/game_info/game_dlc.py" line="36"/>
<source>Installed DLCs</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../components/tabs/games/game_info/dlcs.py" line="38"/>
<location filename="../components/tabs/games/game_info/game_dlc.py" line="38"/>
<source>Available DLCs</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../components/tabs/games/game_info/dlcs.py" line="57"/>
<location filename="../components/tabs/games/game_info/game_dlc.py" line="57"/>
<source>No DLCs are installed</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../components/tabs/games/game_info/dlcs.py" line="59"/>
<location filename="../components/tabs/games/game_info/game_dlc.py" line="59"/>
<source>No DLCs are available</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../components/tabs/games/game_info/dlcs.py" line="73"/>
<location filename="../components/tabs/games/game_info/game_dlc.py" line="73"/>
<source>Base Game is not installed. Please install {} first</source>
<translation type="unfinished"></translation>
</message>

View file

@ -0,0 +1,121 @@
# -*- coding: utf-8 -*-
# Form implementation generated from reading ui file 'rare/ui/components/tabs/games/game_info/game_dlc.ui'
#
# Created by: PyQt5 UI code generator 5.15.4
#
# WARNING: Any manual changes made to this file will be lost when pyuic5 is
# run again. Do not edit this file unless you know what you are doing.
from PyQt5 import QtCore, QtGui, QtWidgets
class Ui_GameDlc(object):
def setupUi(self, GameDlc):
GameDlc.setObjectName("GameDlc")
GameDlc.resize(287, 366)
self.game_dlc_layout = QtWidgets.QVBoxLayout(GameDlc)
self.game_dlc_layout.setObjectName("game_dlc_layout")
self.game_title = QtWidgets.QLabel(GameDlc)
sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Preferred, QtWidgets.QSizePolicy.Preferred)
sizePolicy.setHorizontalStretch(0)
sizePolicy.setVerticalStretch(0)
sizePolicy.setHeightForWidth(self.game_title.sizePolicy().hasHeightForWidth())
self.game_title.setSizePolicy(sizePolicy)
self.game_title.setText("error")
self.game_title.setTextInteractionFlags(QtCore.Qt.LinksAccessibleByMouse|QtCore.Qt.TextSelectableByMouse)
self.game_title.setObjectName("game_title")
self.game_dlc_layout.addWidget(self.game_title, 0, QtCore.Qt.AlignTop)
self.installed_dlc_group = QtWidgets.QGroupBox(GameDlc)
sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Preferred, QtWidgets.QSizePolicy.Preferred)
sizePolicy.setHorizontalStretch(0)
sizePolicy.setVerticalStretch(0)
sizePolicy.setHeightForWidth(self.installed_dlc_group.sizePolicy().hasHeightForWidth())
self.installed_dlc_group.setSizePolicy(sizePolicy)
self.installed_dlc_group.setAlignment(QtCore.Qt.AlignLeading|QtCore.Qt.AlignLeft|QtCore.Qt.AlignTop)
self.installed_dlc_group.setObjectName("installed_dlc_group")
self.installed_dlc_group_layout = QtWidgets.QVBoxLayout(self.installed_dlc_group)
self.installed_dlc_group_layout.setObjectName("installed_dlc_group_layout")
self.installed_dlc_label = QtWidgets.QLabel(self.installed_dlc_group)
self.installed_dlc_label.setObjectName("installed_dlc_label")
self.installed_dlc_group_layout.addWidget(self.installed_dlc_label)
self.installed_dlc_scroll = QtWidgets.QScrollArea(self.installed_dlc_group)
self.installed_dlc_scroll.setFocusPolicy(QtCore.Qt.WheelFocus)
self.installed_dlc_scroll.setFrameShape(QtWidgets.QFrame.StyledPanel)
self.installed_dlc_scroll.setFrameShadow(QtWidgets.QFrame.Sunken)
self.installed_dlc_scroll.setHorizontalScrollBarPolicy(QtCore.Qt.ScrollBarAlwaysOff)
self.installed_dlc_scroll.setWidgetResizable(True)
self.installed_dlc_scroll.setAlignment(QtCore.Qt.AlignLeading|QtCore.Qt.AlignLeft|QtCore.Qt.AlignTop)
self.installed_dlc_scroll.setObjectName("installed_dlc_scroll")
self.installed_dlc_contents = QtWidgets.QWidget()
self.installed_dlc_contents.setGeometry(QtCore.QRect(0, 0, 255, 16))
sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Preferred, QtWidgets.QSizePolicy.Maximum)
sizePolicy.setHorizontalStretch(0)
sizePolicy.setVerticalStretch(0)
sizePolicy.setHeightForWidth(self.installed_dlc_contents.sizePolicy().hasHeightForWidth())
self.installed_dlc_contents.setSizePolicy(sizePolicy)
self.installed_dlc_contents.setObjectName("installed_dlc_contents")
self.installed_dlc_contents_layout = QtWidgets.QVBoxLayout(self.installed_dlc_contents)
self.installed_dlc_contents_layout.setSpacing(6)
self.installed_dlc_contents_layout.setObjectName("installed_dlc_contents_layout")
self.installed_dlc_scroll.setWidget(self.installed_dlc_contents)
self.installed_dlc_group_layout.addWidget(self.installed_dlc_scroll)
self.game_dlc_layout.addWidget(self.installed_dlc_group)
self.available_dlc_group = QtWidgets.QGroupBox(GameDlc)
sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Preferred, QtWidgets.QSizePolicy.Preferred)
sizePolicy.setHorizontalStretch(0)
sizePolicy.setVerticalStretch(0)
sizePolicy.setHeightForWidth(self.available_dlc_group.sizePolicy().hasHeightForWidth())
self.available_dlc_group.setSizePolicy(sizePolicy)
self.available_dlc_group.setAlignment(QtCore.Qt.AlignLeading|QtCore.Qt.AlignLeft|QtCore.Qt.AlignTop)
self.available_dlc_group.setObjectName("available_dlc_group")
self.available_dlc_group_layout = QtWidgets.QVBoxLayout(self.available_dlc_group)
self.available_dlc_group_layout.setObjectName("available_dlc_group_layout")
self.available_dlc_label = QtWidgets.QLabel(self.available_dlc_group)
self.available_dlc_label.setObjectName("available_dlc_label")
self.available_dlc_group_layout.addWidget(self.available_dlc_label)
self.available_dlc_scroll = QtWidgets.QScrollArea(self.available_dlc_group)
self.available_dlc_scroll.setFrameShape(QtWidgets.QFrame.StyledPanel)
self.available_dlc_scroll.setFrameShadow(QtWidgets.QFrame.Sunken)
self.available_dlc_scroll.setHorizontalScrollBarPolicy(QtCore.Qt.ScrollBarAlwaysOff)
self.available_dlc_scroll.setWidgetResizable(True)
self.available_dlc_scroll.setAlignment(QtCore.Qt.AlignLeading|QtCore.Qt.AlignLeft|QtCore.Qt.AlignTop)
self.available_dlc_scroll.setObjectName("available_dlc_scroll")
self.available_dlc_contents = QtWidgets.QWidget()
self.available_dlc_contents.setGeometry(QtCore.QRect(0, 0, 255, 16))
sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Preferred, QtWidgets.QSizePolicy.Maximum)
sizePolicy.setHorizontalStretch(0)
sizePolicy.setVerticalStretch(0)
sizePolicy.setHeightForWidth(self.available_dlc_contents.sizePolicy().hasHeightForWidth())
self.available_dlc_contents.setSizePolicy(sizePolicy)
self.available_dlc_contents.setObjectName("available_dlc_contents")
self.available_dlc_contents_layout = QtWidgets.QVBoxLayout(self.available_dlc_contents)
self.available_dlc_contents_layout.setSpacing(6)
self.available_dlc_contents_layout.setObjectName("available_dlc_contents_layout")
self.available_dlc_scroll.setWidget(self.available_dlc_contents)
self.available_dlc_group_layout.addWidget(self.available_dlc_scroll)
self.game_dlc_layout.addWidget(self.available_dlc_group)
spacerItem = QtWidgets.QSpacerItem(20, 40, QtWidgets.QSizePolicy.Minimum, QtWidgets.QSizePolicy.Expanding)
self.game_dlc_layout.addItem(spacerItem)
self.retranslateUi(GameDlc)
QtCore.QMetaObject.connectSlotsByName(GameDlc)
def retranslateUi(self, GameDlc):
_translate = QtCore.QCoreApplication.translate
GameDlc.setWindowTitle(_translate("GameDlc", "GameDlc"))
self.installed_dlc_group.setTitle(_translate("GameDlc", "Installed DLCs"))
self.installed_dlc_label.setText(_translate("GameDlc", "No Downloadable Content has been installed."))
self.available_dlc_group.setTitle(_translate("GameDlc", "Available DLCs"))
self.available_dlc_label.setText(_translate("GameDlc", "No Downloadable Content is available"))
if __name__ == "__main__":
import sys
app = QtWidgets.QApplication(sys.argv)
GameDlc = QtWidgets.QWidget()
ui = Ui_GameDlc()
ui.setupUi(GameDlc)
GameDlc.show()
sys.exit(app.exec_())

View file

@ -0,0 +1,183 @@
<?xml version="1.0" encoding="UTF-8"?>
<ui version="4.0">
<class>GameDlc</class>
<widget class="QWidget" name="GameDlc">
<property name="geometry">
<rect>
<x>0</x>
<y>0</y>
<width>287</width>
<height>366</height>
</rect>
</property>
<property name="windowTitle">
<string>GameDlc</string>
</property>
<layout class="QVBoxLayout" name="game_dlc_layout">
<item alignment="Qt::AlignTop">
<widget class="QLabel" name="game_title">
<property name="sizePolicy">
<sizepolicy hsizetype="Preferred" vsizetype="Preferred">
<horstretch>0</horstretch>
<verstretch>0</verstretch>
</sizepolicy>
</property>
<property name="text">
<string notr="true">error</string>
</property>
<property name="textInteractionFlags">
<set>Qt::LinksAccessibleByMouse|Qt::TextSelectableByMouse</set>
</property>
</widget>
</item>
<item>
<widget class="QGroupBox" name="installed_dlc_group">
<property name="sizePolicy">
<sizepolicy hsizetype="Preferred" vsizetype="Preferred">
<horstretch>0</horstretch>
<verstretch>0</verstretch>
</sizepolicy>
</property>
<property name="title">
<string>Installed DLCs</string>
</property>
<property name="alignment">
<set>Qt::AlignLeading|Qt::AlignLeft|Qt::AlignTop</set>
</property>
<layout class="QVBoxLayout" name="installed_dlc_group_layout">
<item>
<widget class="QLabel" name="installed_dlc_label">
<property name="text">
<string>No Downloadable Content has been installed.</string>
</property>
</widget>
</item>
<item>
<widget class="QScrollArea" name="installed_dlc_scroll">
<property name="focusPolicy">
<enum>Qt::WheelFocus</enum>
</property>
<property name="frameShape">
<enum>QFrame::StyledPanel</enum>
</property>
<property name="frameShadow">
<enum>QFrame::Sunken</enum>
</property>
<property name="horizontalScrollBarPolicy">
<enum>Qt::ScrollBarAlwaysOff</enum>
</property>
<property name="widgetResizable">
<bool>true</bool>
</property>
<property name="alignment">
<set>Qt::AlignLeading|Qt::AlignLeft|Qt::AlignTop</set>
</property>
<widget class="QWidget" name="installed_dlc_contents">
<property name="geometry">
<rect>
<x>0</x>
<y>0</y>
<width>255</width>
<height>16</height>
</rect>
</property>
<property name="sizePolicy">
<sizepolicy hsizetype="Preferred" vsizetype="Maximum">
<horstretch>0</horstretch>
<verstretch>0</verstretch>
</sizepolicy>
</property>
<layout class="QVBoxLayout" name="installed_dlc_contents_layout">
<property name="spacing">
<number>6</number>
</property>
</layout>
</widget>
</widget>
</item>
</layout>
</widget>
</item>
<item>
<widget class="QGroupBox" name="available_dlc_group">
<property name="sizePolicy">
<sizepolicy hsizetype="Preferred" vsizetype="Preferred">
<horstretch>0</horstretch>
<verstretch>0</verstretch>
</sizepolicy>
</property>
<property name="title">
<string>Available DLCs</string>
</property>
<property name="alignment">
<set>Qt::AlignLeading|Qt::AlignLeft|Qt::AlignTop</set>
</property>
<layout class="QVBoxLayout" name="available_dlc_group_layout">
<item>
<widget class="QLabel" name="available_dlc_label">
<property name="text">
<string>No Downloadable Content is available</string>
</property>
</widget>
</item>
<item>
<widget class="QScrollArea" name="available_dlc_scroll">
<property name="frameShape">
<enum>QFrame::StyledPanel</enum>
</property>
<property name="frameShadow">
<enum>QFrame::Sunken</enum>
</property>
<property name="horizontalScrollBarPolicy">
<enum>Qt::ScrollBarAlwaysOff</enum>
</property>
<property name="widgetResizable">
<bool>true</bool>
</property>
<property name="alignment">
<set>Qt::AlignLeading|Qt::AlignLeft|Qt::AlignTop</set>
</property>
<widget class="QWidget" name="available_dlc_contents">
<property name="geometry">
<rect>
<x>0</x>
<y>0</y>
<width>255</width>
<height>16</height>
</rect>
</property>
<property name="sizePolicy">
<sizepolicy hsizetype="Preferred" vsizetype="Maximum">
<horstretch>0</horstretch>
<verstretch>0</verstretch>
</sizepolicy>
</property>
<layout class="QVBoxLayout" name="available_dlc_contents_layout">
<property name="spacing">
<number>6</number>
</property>
</layout>
</widget>
</widget>
</item>
</layout>
</widget>
</item>
<item>
<spacer name="vspacer">
<property name="orientation">
<enum>Qt::Vertical</enum>
</property>
<property name="sizeHint" stdset="0">
<size>
<width>20</width>
<height>40</height>
</size>
</property>
</spacer>
</item>
</layout>
</widget>
<resources/>
<connections/>
</ui>

View file

@ -0,0 +1,154 @@
# -*- coding: utf-8 -*-
# Form implementation generated from reading ui file 'rare/ui/components/tabs/games/game_info/game_dlc_widget.ui'
#
# Created by: PyQt5 UI code generator 5.15.4
#
# WARNING: Any manual changes made to this file will be lost when pyuic5 is
# run again. Do not edit this file unless you know what you are doing.
from PyQt5 import QtCore, QtGui, QtWidgets
class Ui_GameDlcWidget(object):
def setupUi(self, GameDlcWidget):
GameDlcWidget.setObjectName("GameDlcWidget")
GameDlcWidget.resize(424, 162)
sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Preferred, QtWidgets.QSizePolicy.Maximum)
sizePolicy.setHorizontalStretch(0)
sizePolicy.setVerticalStretch(0)
sizePolicy.setHeightForWidth(GameDlcWidget.sizePolicy().hasHeightForWidth())
GameDlcWidget.setSizePolicy(sizePolicy)
GameDlcWidget.setFrameShape(QtWidgets.QFrame.StyledPanel)
GameDlcWidget.setFrameShadow(QtWidgets.QFrame.Raised)
self.dlc_layout = QtWidgets.QHBoxLayout(GameDlcWidget)
self.dlc_layout.setObjectName("dlc_layout")
self.image = QtWidgets.QLabel(GameDlcWidget)
self.image.setFrameShape(QtWidgets.QFrame.StyledPanel)
self.image.setFrameShadow(QtWidgets.QFrame.Sunken)
self.image.setText("")
self.image.setObjectName("image")
self.dlc_layout.addWidget(self.image)
self.dlc_info_layout = QtWidgets.QFormLayout()
self.dlc_info_layout.setLabelAlignment(QtCore.Qt.AlignRight|QtCore.Qt.AlignTrailing|QtCore.Qt.AlignVCenter)
self.dlc_info_layout.setContentsMargins(6, 6, 6, 6)
self.dlc_info_layout.setSpacing(12)
self.dlc_info_layout.setObjectName("dlc_info_layout")
self.dlc_name_label = QtWidgets.QLabel(GameDlcWidget)
sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Minimum, QtWidgets.QSizePolicy.Preferred)
sizePolicy.setHorizontalStretch(0)
sizePolicy.setVerticalStretch(0)
sizePolicy.setHeightForWidth(self.dlc_name_label.sizePolicy().hasHeightForWidth())
self.dlc_name_label.setSizePolicy(sizePolicy)
font = QtGui.QFont()
font.setBold(True)
font.setWeight(75)
self.dlc_name_label.setFont(font)
self.dlc_name_label.setObjectName("dlc_name_label")
self.dlc_info_layout.setWidget(0, QtWidgets.QFormLayout.LabelRole, self.dlc_name_label)
self.dlc_name = QtWidgets.QLabel(GameDlcWidget)
self.dlc_name.setText("error")
self.dlc_name.setTextInteractionFlags(QtCore.Qt.LinksAccessibleByMouse|QtCore.Qt.TextSelectableByMouse)
self.dlc_name.setObjectName("dlc_name")
self.dlc_info_layout.setWidget(0, QtWidgets.QFormLayout.FieldRole, self.dlc_name)
self.version_label = QtWidgets.QLabel(GameDlcWidget)
sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Minimum, QtWidgets.QSizePolicy.Preferred)
sizePolicy.setHorizontalStretch(0)
sizePolicy.setVerticalStretch(0)
sizePolicy.setHeightForWidth(self.version_label.sizePolicy().hasHeightForWidth())
self.version_label.setSizePolicy(sizePolicy)
font = QtGui.QFont()
font.setBold(True)
font.setWeight(75)
self.version_label.setFont(font)
self.version_label.setObjectName("version_label")
self.dlc_info_layout.setWidget(1, QtWidgets.QFormLayout.LabelRole, self.version_label)
self.version = QtWidgets.QLabel(GameDlcWidget)
self.version.setText("error")
self.version.setTextInteractionFlags(QtCore.Qt.LinksAccessibleByMouse|QtCore.Qt.TextSelectableByMouse)
self.version.setObjectName("version")
self.dlc_info_layout.setWidget(1, QtWidgets.QFormLayout.FieldRole, self.version)
self.status_label = QtWidgets.QLabel(GameDlcWidget)
sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Minimum, QtWidgets.QSizePolicy.Preferred)
sizePolicy.setHorizontalStretch(0)
sizePolicy.setVerticalStretch(0)
sizePolicy.setHeightForWidth(self.status_label.sizePolicy().hasHeightForWidth())
self.status_label.setSizePolicy(sizePolicy)
font = QtGui.QFont()
font.setBold(True)
font.setWeight(75)
self.status_label.setFont(font)
self.status_label.setObjectName("status_label")
self.dlc_info_layout.setWidget(3, QtWidgets.QFormLayout.LabelRole, self.status_label)
self.status = QtWidgets.QLabel(GameDlcWidget)
self.status.setText("error")
self.status.setWordWrap(True)
self.status.setTextInteractionFlags(QtCore.Qt.LinksAccessibleByMouse|QtCore.Qt.TextSelectableByMouse)
self.status.setObjectName("status")
self.dlc_info_layout.setWidget(3, QtWidgets.QFormLayout.FieldRole, self.status)
self.actions_label = QtWidgets.QLabel(GameDlcWidget)
sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Minimum, QtWidgets.QSizePolicy.Preferred)
sizePolicy.setHorizontalStretch(0)
sizePolicy.setVerticalStretch(0)
sizePolicy.setHeightForWidth(self.actions_label.sizePolicy().hasHeightForWidth())
self.actions_label.setSizePolicy(sizePolicy)
font = QtGui.QFont()
font.setBold(True)
font.setWeight(75)
self.actions_label.setFont(font)
self.actions_label.setObjectName("actions_label")
self.dlc_info_layout.setWidget(4, QtWidgets.QFormLayout.LabelRole, self.actions_label)
self.install_button = QtWidgets.QPushButton(GameDlcWidget)
sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Minimum, QtWidgets.QSizePolicy.Fixed)
sizePolicy.setHorizontalStretch(0)
sizePolicy.setVerticalStretch(0)
sizePolicy.setHeightForWidth(self.install_button.sizePolicy().hasHeightForWidth())
self.install_button.setSizePolicy(sizePolicy)
self.install_button.setMinimumSize(QtCore.QSize(250, 0))
self.install_button.setStyleSheet("")
self.install_button.setObjectName("install_button")
self.dlc_info_layout.setWidget(4, QtWidgets.QFormLayout.FieldRole, self.install_button)
self.app_name_label = QtWidgets.QLabel(GameDlcWidget)
sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Minimum, QtWidgets.QSizePolicy.Preferred)
sizePolicy.setHorizontalStretch(0)
sizePolicy.setVerticalStretch(0)
sizePolicy.setHeightForWidth(self.app_name_label.sizePolicy().hasHeightForWidth())
self.app_name_label.setSizePolicy(sizePolicy)
font = QtGui.QFont()
font.setBold(True)
font.setWeight(75)
self.app_name_label.setFont(font)
self.app_name_label.setObjectName("app_name_label")
self.dlc_info_layout.setWidget(2, QtWidgets.QFormLayout.LabelRole, self.app_name_label)
self.app_name = QtWidgets.QLabel(GameDlcWidget)
self.app_name.setText("error")
self.app_name.setTextInteractionFlags(QtCore.Qt.LinksAccessibleByMouse|QtCore.Qt.TextSelectableByMouse)
self.app_name.setObjectName("app_name")
self.dlc_info_layout.setWidget(2, QtWidgets.QFormLayout.FieldRole, self.app_name)
self.dlc_layout.addLayout(self.dlc_info_layout)
spacerItem = QtWidgets.QSpacerItem(40, 20, QtWidgets.QSizePolicy.Expanding, QtWidgets.QSizePolicy.Minimum)
self.dlc_layout.addItem(spacerItem)
self.retranslateUi(GameDlcWidget)
QtCore.QMetaObject.connectSlotsByName(GameDlcWidget)
def retranslateUi(self, GameDlcWidget):
_translate = QtCore.QCoreApplication.translate
GameDlcWidget.setWindowTitle(_translate("GameDlcWidget", "GameDlcWidget"))
self.dlc_name_label.setText(_translate("GameDlcWidget", "DLC Name"))
self.version_label.setText(_translate("GameDlcWidget", "Version"))
self.status_label.setText(_translate("GameDlcWidget", "Status"))
self.actions_label.setText(_translate("GameDlcWidget", "Actions"))
self.install_button.setText(_translate("GameDlcWidget", "Install DLC"))
self.app_name_label.setText(_translate("GameDlcWidget", "Application"))
if __name__ == "__main__":
import sys
app = QtWidgets.QApplication(sys.argv)
GameDlcWidget = QtWidgets.QFrame()
ui = Ui_GameDlcWidget()
ui.setupUi(GameDlcWidget)
GameDlcWidget.show()
sys.exit(app.exec_())

View file

@ -0,0 +1,244 @@
<?xml version="1.0" encoding="UTF-8"?>
<ui version="4.0">
<class>GameDlcWidget</class>
<widget class="QFrame" name="GameDlcWidget">
<property name="geometry">
<rect>
<x>0</x>
<y>0</y>
<width>424</width>
<height>162</height>
</rect>
</property>
<property name="sizePolicy">
<sizepolicy hsizetype="Preferred" vsizetype="Maximum">
<horstretch>0</horstretch>
<verstretch>0</verstretch>
</sizepolicy>
</property>
<property name="windowTitle">
<string>GameDlcWidget</string>
</property>
<property name="frameShape">
<enum>QFrame::StyledPanel</enum>
</property>
<property name="frameShadow">
<enum>QFrame::Raised</enum>
</property>
<layout class="QHBoxLayout" name="dlc_layout">
<item>
<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>
<layout class="QFormLayout" name="dlc_info_layout">
<property name="labelAlignment">
<set>Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter</set>
</property>
<property name="horizontalSpacing">
<number>12</number>
</property>
<property name="verticalSpacing">
<number>12</number>
</property>
<property name="leftMargin">
<number>6</number>
</property>
<property name="topMargin">
<number>6</number>
</property>
<property name="rightMargin">
<number>6</number>
</property>
<property name="bottomMargin">
<number>6</number>
</property>
<item row="0" column="0">
<widget class="QLabel" name="dlc_name_label">
<property name="sizePolicy">
<sizepolicy hsizetype="Minimum" vsizetype="Preferred">
<horstretch>0</horstretch>
<verstretch>0</verstretch>
</sizepolicy>
</property>
<property name="font">
<font>
<weight>75</weight>
<bold>true</bold>
</font>
</property>
<property name="text">
<string>DLC Name</string>
</property>
</widget>
</item>
<item row="0" column="1">
<widget class="QLabel" name="dlc_name">
<property name="text">
<string notr="true">error</string>
</property>
<property name="textInteractionFlags">
<set>Qt::LinksAccessibleByMouse|Qt::TextSelectableByMouse</set>
</property>
</widget>
</item>
<item row="1" column="0">
<widget class="QLabel" name="version_label">
<property name="sizePolicy">
<sizepolicy hsizetype="Minimum" vsizetype="Preferred">
<horstretch>0</horstretch>
<verstretch>0</verstretch>
</sizepolicy>
</property>
<property name="font">
<font>
<weight>75</weight>
<bold>true</bold>
</font>
</property>
<property name="text">
<string>Version</string>
</property>
</widget>
</item>
<item row="1" column="1">
<widget class="QLabel" name="version">
<property name="text">
<string notr="true">error</string>
</property>
<property name="textInteractionFlags">
<set>Qt::LinksAccessibleByMouse|Qt::TextSelectableByMouse</set>
</property>
</widget>
</item>
<item row="3" column="0">
<widget class="QLabel" name="status_label">
<property name="sizePolicy">
<sizepolicy hsizetype="Minimum" vsizetype="Preferred">
<horstretch>0</horstretch>
<verstretch>0</verstretch>
</sizepolicy>
</property>
<property name="font">
<font>
<weight>75</weight>
<bold>true</bold>
</font>
</property>
<property name="text">
<string>Status</string>
</property>
</widget>
</item>
<item row="3" column="1">
<widget class="QLabel" name="status">
<property name="text">
<string notr="true">error</string>
</property>
<property name="wordWrap">
<bool>true</bool>
</property>
<property name="textInteractionFlags">
<set>Qt::LinksAccessibleByMouse|Qt::TextSelectableByMouse</set>
</property>
</widget>
</item>
<item row="4" column="0">
<widget class="QLabel" name="actions_label">
<property name="sizePolicy">
<sizepolicy hsizetype="Minimum" vsizetype="Preferred">
<horstretch>0</horstretch>
<verstretch>0</verstretch>
</sizepolicy>
</property>
<property name="font">
<font>
<weight>75</weight>
<bold>true</bold>
</font>
</property>
<property name="text">
<string>Actions</string>
</property>
</widget>
</item>
<item row="4" column="1">
<widget class="QPushButton" name="install_button">
<property name="sizePolicy">
<sizepolicy hsizetype="Minimum" vsizetype="Fixed">
<horstretch>0</horstretch>
<verstretch>0</verstretch>
</sizepolicy>
</property>
<property name="minimumSize">
<size>
<width>250</width>
<height>0</height>
</size>
</property>
<property name="styleSheet">
<string notr="true"/>
</property>
<property name="text">
<string>Install DLC</string>
</property>
</widget>
</item>
<item row="2" column="0">
<widget class="QLabel" name="app_name_label">
<property name="sizePolicy">
<sizepolicy hsizetype="Minimum" vsizetype="Preferred">
<horstretch>0</horstretch>
<verstretch>0</verstretch>
</sizepolicy>
</property>
<property name="font">
<font>
<weight>75</weight>
<bold>true</bold>
</font>
</property>
<property name="text">
<string>Application</string>
</property>
</widget>
</item>
<item row="2" column="1">
<widget class="QLabel" name="app_name">
<property name="text">
<string notr="true">error</string>
</property>
<property name="textInteractionFlags">
<set>Qt::LinksAccessibleByMouse|Qt::TextSelectableByMouse</set>
</property>
</widget>
</item>
</layout>
</item>
<item>
<spacer name="hspacer">
<property name="orientation">
<enum>Qt::Horizontal</enum>
</property>
<property name="sizeHint" stdset="0">
<size>
<width>40</width>
<height>20</height>
</size>
</property>
</spacer>
</item>
</layout>
</widget>
<resources/>
<connections/>
</ui>

View file

@ -1,6 +1,6 @@
# -*- coding: utf-8 -*-
# Form implementation generated from reading ui file 'game_info.ui'
# Form implementation generated from reading ui file 'rare/ui/components/tabs/games/game_info/game_info.ui'
#
# Created by: PyQt5 UI code generator 5.15.4
#
@ -14,75 +14,24 @@ from PyQt5 import QtCore, QtGui, QtWidgets
class Ui_GameInfo(object):
def setupUi(self, GameInfo):
GameInfo.setObjectName("GameInfo")
GameInfo.resize(571, 326)
GameInfo.resize(420, 334)
self.layout_game_info = QtWidgets.QGridLayout(GameInfo)
self.layout_game_info.setObjectName("layout_game_info")
self.layout_game_info_form = QtWidgets.QGridLayout()
self.layout_game_info_form.setContentsMargins(6, 6, 6, 6)
self.layout_game_info_form.setSpacing(12)
self.layout_game_info_form.setObjectName("layout_game_info_form")
self.install_size = QtWidgets.QLabel(GameInfo)
self.install_size.setText("error")
self.install_size.setTextInteractionFlags(QtCore.Qt.LinksAccessibleByMouse|QtCore.Qt.TextSelectableByMouse)
self.install_size.setObjectName("install_size")
self.layout_game_info_form.addWidget(self.install_size, 4, 1, 1, 1)
self.lbl_dev = QtWidgets.QLabel(GameInfo)
sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Minimum, QtWidgets.QSizePolicy.Preferred)
sizePolicy.setHorizontalStretch(0)
sizePolicy.setVerticalStretch(0)
sizePolicy.setHeightForWidth(self.lbl_dev.sizePolicy().hasHeightForWidth())
self.lbl_dev.setSizePolicy(sizePolicy)
font = QtGui.QFont()
font.setBold(True)
font.setWeight(75)
self.lbl_dev.setFont(font)
self.lbl_dev.setObjectName("lbl_dev")
self.layout_game_info_form.addWidget(self.lbl_dev, 0, 0, 1, 1, QtCore.Qt.AlignRight)
self.version = QtWidgets.QLabel(GameInfo)
self.version.setText("error")
self.version.setTextInteractionFlags(QtCore.Qt.LinksAccessibleByMouse|QtCore.Qt.TextSelectableByMouse)
self.version.setObjectName("version")
self.layout_game_info_form.addWidget(self.version, 2, 1, 1, 1)
self.lbl_install_path = QtWidgets.QLabel(GameInfo)
sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Minimum, QtWidgets.QSizePolicy.Preferred)
sizePolicy.setHorizontalStretch(0)
sizePolicy.setVerticalStretch(0)
sizePolicy.setHeightForWidth(self.lbl_install_path.sizePolicy().hasHeightForWidth())
self.lbl_install_path.setSizePolicy(sizePolicy)
font = QtGui.QFont()
font.setBold(True)
font.setWeight(75)
self.lbl_install_path.setFont(font)
self.lbl_install_path.setObjectName("lbl_install_path")
self.layout_game_info_form.addWidget(self.lbl_install_path, 5, 0, 1, 1, QtCore.Qt.AlignRight)
self.lbl_install_size = QtWidgets.QLabel(GameInfo)
sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Minimum, QtWidgets.QSizePolicy.Preferred)
sizePolicy.setHorizontalStretch(0)
sizePolicy.setVerticalStretch(0)
sizePolicy.setHeightForWidth(self.lbl_install_size.sizePolicy().hasHeightForWidth())
self.lbl_install_size.setSizePolicy(sizePolicy)
font = QtGui.QFont()
font.setBold(True)
font.setWeight(75)
self.lbl_install_size.setFont(font)
self.lbl_install_size.setObjectName("lbl_install_size")
self.layout_game_info_form.addWidget(self.lbl_install_size, 4, 0, 1, 1, QtCore.Qt.AlignRight)
spacerItem = QtWidgets.QSpacerItem(0, 20, QtWidgets.QSizePolicy.Expanding, QtWidgets.QSizePolicy.Minimum)
self.layout_game_info_form.addItem(spacerItem, 7, 1, 1, 1)
spacerItem1 = QtWidgets.QSpacerItem(20, 0, QtWidgets.QSizePolicy.Minimum, QtWidgets.QSizePolicy.Expanding)
self.layout_game_info_form.addItem(spacerItem1, 7, 0, 1, 1)
self.lbl_version = QtWidgets.QLabel(GameInfo)
sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Minimum, QtWidgets.QSizePolicy.Preferred)
sizePolicy.setHorizontalStretch(0)
sizePolicy.setVerticalStretch(0)
sizePolicy.setHeightForWidth(self.lbl_version.sizePolicy().hasHeightForWidth())
self.lbl_version.setSizePolicy(sizePolicy)
font = QtGui.QFont()
font.setBold(True)
font.setWeight(75)
self.lbl_version.setFont(font)
self.lbl_version.setObjectName("lbl_version")
self.layout_game_info_form.addWidget(self.lbl_version, 2, 0, 1, 1, QtCore.Qt.AlignRight)
self.game_title = QtWidgets.QLabel(GameInfo)
self.game_title.setText("error")
self.game_title.setTextInteractionFlags(QtCore.Qt.LinksAccessibleByMouse|QtCore.Qt.TextSelectableByMouse)
self.game_title.setObjectName("game_title")
self.layout_game_info.addWidget(self.game_title, 0, 0, 1, 3)
self.image = QtWidgets.QLabel(GameInfo)
self.image.setFrameShape(QtWidgets.QFrame.StyledPanel)
self.image.setFrameShadow(QtWidgets.QFrame.Sunken)
self.image.setText("")
self.image.setObjectName("image")
self.layout_game_info.addWidget(self.image, 2, 0, 1, 1, QtCore.Qt.AlignLeft|QtCore.Qt.AlignTop)
self.game_info_layout = QtWidgets.QGridLayout()
self.game_info_layout.setContentsMargins(6, 6, 6, 6)
self.game_info_layout.setSpacing(12)
self.game_info_layout.setObjectName("game_info_layout")
self.lbl_app_name = QtWidgets.QLabel(GameInfo)
sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Minimum, QtWidgets.QSizePolicy.Preferred)
sizePolicy.setHorizontalStretch(0)
@ -94,47 +43,70 @@ class Ui_GameInfo(object):
font.setWeight(75)
self.lbl_app_name.setFont(font)
self.lbl_app_name.setObjectName("lbl_app_name")
self.layout_game_info_form.addWidget(self.lbl_app_name, 1, 0, 1, 1, QtCore.Qt.AlignRight)
self.dev = QtWidgets.QLabel(GameInfo)
self.dev.setText("error")
self.dev.setTextInteractionFlags(QtCore.Qt.LinksAccessibleByMouse|QtCore.Qt.TextSelectableByMouse)
self.dev.setObjectName("dev")
self.layout_game_info_form.addWidget(self.dev, 0, 1, 1, 1)
self.app_name = QtWidgets.QLabel(GameInfo)
self.app_name.setText("error")
self.app_name.setTextInteractionFlags(QtCore.Qt.LinksAccessibleByMouse|QtCore.Qt.TextSelectableByMouse)
self.app_name.setObjectName("app_name")
self.layout_game_info_form.addWidget(self.app_name, 1, 1, 1, 1)
self.install_path = QtWidgets.QLabel(GameInfo)
self.install_path.setText("error")
self.install_path.setWordWrap(True)
self.install_path.setTextInteractionFlags(QtCore.Qt.LinksAccessibleByMouse|QtCore.Qt.TextSelectableByMouse)
self.install_path.setObjectName("install_path")
self.layout_game_info_form.addWidget(self.install_path, 5, 1, 1, 1)
self.lbl_game_actions = QtWidgets.QLabel(GameInfo)
sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Minimum, QtWidgets.QSizePolicy.Preferred)
sizePolicy.setHorizontalStretch(0)
sizePolicy.setVerticalStretch(0)
sizePolicy.setHeightForWidth(self.lbl_game_actions.sizePolicy().hasHeightForWidth())
self.lbl_game_actions.setSizePolicy(sizePolicy)
font = QtGui.QFont()
font.setBold(True)
font.setWeight(75)
self.lbl_game_actions.setFont(font)
self.lbl_game_actions.setObjectName("lbl_game_actions")
self.layout_game_info_form.addWidget(self.lbl_game_actions, 6, 0, 1, 1, QtCore.Qt.AlignRight)
self.game_info_layout.addWidget(self.lbl_app_name, 1, 0, 1, 1, QtCore.Qt.AlignRight)
self.lbl_grade = QtWidgets.QLabel(GameInfo)
font = QtGui.QFont()
font.setBold(True)
font.setWeight(75)
self.lbl_grade.setFont(font)
self.lbl_grade.setObjectName("lbl_grade")
self.layout_game_info_form.addWidget(self.lbl_grade, 3, 0, 1, 1, QtCore.Qt.AlignRight)
self.game_info_layout.addWidget(self.lbl_grade, 3, 0, 1, 1, QtCore.Qt.AlignRight)
self.lbl_install_size = QtWidgets.QLabel(GameInfo)
sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Minimum, QtWidgets.QSizePolicy.Preferred)
sizePolicy.setHorizontalStretch(0)
sizePolicy.setVerticalStretch(0)
sizePolicy.setHeightForWidth(self.lbl_install_size.sizePolicy().hasHeightForWidth())
self.lbl_install_size.setSizePolicy(sizePolicy)
font = QtGui.QFont()
font.setBold(True)
font.setWeight(75)
self.lbl_install_size.setFont(font)
self.lbl_install_size.setObjectName("lbl_install_size")
self.game_info_layout.addWidget(self.lbl_install_size, 4, 0, 1, 1, QtCore.Qt.AlignRight)
self.install_size = QtWidgets.QLabel(GameInfo)
self.install_size.setText("error")
self.install_size.setTextInteractionFlags(QtCore.Qt.LinksAccessibleByMouse|QtCore.Qt.TextSelectableByMouse)
self.install_size.setObjectName("install_size")
self.game_info_layout.addWidget(self.install_size, 4, 1, 1, 1)
self.version = QtWidgets.QLabel(GameInfo)
self.version.setText("error")
self.version.setTextInteractionFlags(QtCore.Qt.LinksAccessibleByMouse|QtCore.Qt.TextSelectableByMouse)
self.version.setObjectName("version")
self.game_info_layout.addWidget(self.version, 2, 1, 1, 1)
self.grade = QtWidgets.QLabel(GameInfo)
self.grade.setText("error")
self.grade.setTextInteractionFlags(QtCore.Qt.LinksAccessibleByMouse|QtCore.Qt.TextSelectableByMouse)
self.grade.setObjectName("grade")
self.layout_game_info_form.addWidget(self.grade, 3, 1, 1, 1)
self.game_info_layout.addWidget(self.grade, 3, 1, 1, 1)
self.lbl_install_path = QtWidgets.QLabel(GameInfo)
sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Minimum, QtWidgets.QSizePolicy.Preferred)
sizePolicy.setHorizontalStretch(0)
sizePolicy.setVerticalStretch(0)
sizePolicy.setHeightForWidth(self.lbl_install_path.sizePolicy().hasHeightForWidth())
self.lbl_install_path.setSizePolicy(sizePolicy)
font = QtGui.QFont()
font.setBold(True)
font.setWeight(75)
self.lbl_install_path.setFont(font)
self.lbl_install_path.setObjectName("lbl_install_path")
self.game_info_layout.addWidget(self.lbl_install_path, 5, 0, 1, 1, QtCore.Qt.AlignRight)
self.dev = QtWidgets.QLabel(GameInfo)
self.dev.setText("error")
self.dev.setTextInteractionFlags(QtCore.Qt.LinksAccessibleByMouse|QtCore.Qt.TextSelectableByMouse)
self.dev.setObjectName("dev")
self.game_info_layout.addWidget(self.dev, 0, 1, 1, 1)
self.lbl_version = QtWidgets.QLabel(GameInfo)
sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Minimum, QtWidgets.QSizePolicy.Preferred)
sizePolicy.setHorizontalStretch(0)
sizePolicy.setVerticalStretch(0)
sizePolicy.setHeightForWidth(self.lbl_version.sizePolicy().hasHeightForWidth())
self.lbl_version.setSizePolicy(sizePolicy)
font = QtGui.QFont()
font.setBold(True)
font.setWeight(75)
self.lbl_version.setFont(font)
self.lbl_version.setObjectName("lbl_version")
self.game_info_layout.addWidget(self.lbl_version, 2, 0, 1, 1, QtCore.Qt.AlignRight)
self.game_actions_stack = QtWidgets.QStackedWidget(GameInfo)
self.game_actions_stack.setMinimumSize(QtCore.QSize(250, 0))
self.game_actions_stack.setObjectName("game_actions_stack")
@ -188,20 +160,47 @@ class Ui_GameInfo(object):
self.no_install_label.setObjectName("no_install_label")
self.uninstalled_layout.addWidget(self.no_install_label)
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.image = QtWidgets.QLabel(GameInfo)
self.image.setFrameShape(QtWidgets.QFrame.StyledPanel)
self.image.setFrameShadow(QtWidgets.QFrame.Sunken)
self.image.setText("")
self.image.setObjectName("image")
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.setText("error")
self.game_title.setTextInteractionFlags(QtCore.Qt.LinksAccessibleByMouse|QtCore.Qt.TextSelectableByMouse)
self.game_title.setObjectName("game_title")
self.layout_game_info.addWidget(self.game_title, 0, 0, 1, 3)
self.game_info_layout.addWidget(self.game_actions_stack, 6, 1, 1, 1, QtCore.Qt.AlignLeft|QtCore.Qt.AlignTop)
self.lbl_dev = QtWidgets.QLabel(GameInfo)
sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Minimum, QtWidgets.QSizePolicy.Preferred)
sizePolicy.setHorizontalStretch(0)
sizePolicy.setVerticalStretch(0)
sizePolicy.setHeightForWidth(self.lbl_dev.sizePolicy().hasHeightForWidth())
self.lbl_dev.setSizePolicy(sizePolicy)
font = QtGui.QFont()
font.setBold(True)
font.setWeight(75)
self.lbl_dev.setFont(font)
self.lbl_dev.setObjectName("lbl_dev")
self.game_info_layout.addWidget(self.lbl_dev, 0, 0, 1, 1, QtCore.Qt.AlignRight)
self.app_name = QtWidgets.QLabel(GameInfo)
self.app_name.setText("error")
self.app_name.setTextInteractionFlags(QtCore.Qt.LinksAccessibleByMouse|QtCore.Qt.TextSelectableByMouse)
self.app_name.setObjectName("app_name")
self.game_info_layout.addWidget(self.app_name, 1, 1, 1, 1)
self.install_path = QtWidgets.QLabel(GameInfo)
self.install_path.setText("error")
self.install_path.setWordWrap(True)
self.install_path.setTextInteractionFlags(QtCore.Qt.LinksAccessibleByMouse|QtCore.Qt.TextSelectableByMouse)
self.install_path.setObjectName("install_path")
self.game_info_layout.addWidget(self.install_path, 5, 1, 1, 1)
self.lbl_game_actions = QtWidgets.QLabel(GameInfo)
sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Minimum, QtWidgets.QSizePolicy.Preferred)
sizePolicy.setHorizontalStretch(0)
sizePolicy.setVerticalStretch(0)
sizePolicy.setHeightForWidth(self.lbl_game_actions.sizePolicy().hasHeightForWidth())
self.lbl_game_actions.setSizePolicy(sizePolicy)
font = QtGui.QFont()
font.setBold(True)
font.setWeight(75)
self.lbl_game_actions.setFont(font)
self.lbl_game_actions.setObjectName("lbl_game_actions")
self.game_info_layout.addWidget(self.lbl_game_actions, 6, 0, 1, 1, QtCore.Qt.AlignRight)
spacerItem = QtWidgets.QSpacerItem(20, 0, QtWidgets.QSizePolicy.Minimum, QtWidgets.QSizePolicy.Expanding)
self.game_info_layout.addItem(spacerItem, 7, 0, 1, 1)
spacerItem1 = QtWidgets.QSpacerItem(0, 20, QtWidgets.QSizePolicy.Expanding, QtWidgets.QSizePolicy.Minimum)
self.game_info_layout.addItem(spacerItem1, 7, 1, 1, 1)
self.layout_game_info.addLayout(self.game_info_layout, 2, 1, 1, 1)
self.retranslateUi(GameInfo)
self.game_actions_stack.setCurrentIndex(1)
@ -210,20 +209,19 @@ class Ui_GameInfo(object):
def retranslateUi(self, GameInfo):
_translate = QtCore.QCoreApplication.translate
GameInfo.setWindowTitle(_translate("GameInfo", "Game Info"))
self.lbl_dev.setText(_translate("GameInfo", "Developer"))
self.lbl_install_path.setText(_translate("GameInfo", "Installation Path"))
self.lbl_install_size.setText(_translate("GameInfo", "Installation Size"))
self.lbl_version.setText(_translate("GameInfo", "Version"))
GameInfo.setWindowTitle(_translate("GameInfo", "GameInfo"))
self.lbl_app_name.setText(_translate("GameInfo", "Application Name"))
self.lbl_game_actions.setText(_translate("GameInfo", "Actions"))
self.lbl_grade.setText(_translate("GameInfo", "ProtonDB Grade"))
self.lbl_install_size.setText(_translate("GameInfo", "Installation Size"))
self.lbl_install_path.setText(_translate("GameInfo", "Installation Path"))
self.lbl_version.setText(_translate("GameInfo", "Version"))
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"))
self.no_install_label.setText(
_translate("GameInfo", "It is not possible to install the Game. It could be from a third party store"))
self.no_install_label.setText(_translate("GameInfo", "It is not possible to install the Game. It could be from a third party store"))
self.lbl_dev.setText(_translate("GameInfo", "Developer"))
self.lbl_game_actions.setText(_translate("GameInfo", "Actions"))
if __name__ == "__main__":

View file

@ -2,24 +2,47 @@
<ui version="4.0">
<class>GameInfo</class>
<widget class="QWidget" name="GameInfo">
<property name="geometry">
<rect>
<x>0</x>
<y>0</y>
<width>571</width>
<height>326</height>
</rect>
<property name="geometry">
<rect>
<x>0</x>
<y>0</y>
<width>420</width>
<height>334</height>
</rect>
</property>
<property name="windowTitle">
<string>GameInfo</string>
</property>
<layout class="QGridLayout" name="layout_game_info">
<item row="0" column="0" colspan="3">
<widget class="QLabel" name="game_title">
<property name="text">
<string notr="true">error</string>
</property>
<property name="windowTitle">
<string>Game Info</string>
<property name="textInteractionFlags">
<set>Qt::LinksAccessibleByMouse|Qt::TextSelectableByMouse</set>
</property>
<layout class="QGridLayout" name="layout_game_info">
<item row="2" column="1">
<layout class="QGridLayout" name="layout_game_info_form">
<property name="leftMargin">
<number>6</number>
</property>
<property name="topMargin">
</widget>
</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="2" column="1">
<layout class="QGridLayout" name="game_info_layout">
<property name="leftMargin">
<number>6</number>
</property>
<property name="topMargin">
<number>6</number>
</property>
<property name="rightMargin">
@ -31,18 +54,8 @@
<property name="spacing">
<number>12</number>
</property>
<item row="4" column="1">
<widget class="QLabel" name="install_size">
<property name="text">
<string notr="true">error</string>
</property>
<property name="textInteractionFlags">
<set>Qt::LinksAccessibleByMouse|Qt::TextSelectableByMouse</set>
</property>
</widget>
</item>
<item row="0" column="0" alignment="Qt::AlignRight">
<widget class="QLabel" name="lbl_dev">
<item row="1" column="0" alignment="Qt::AlignRight">
<widget class="QLabel" name="lbl_app_name">
<property name="sizePolicy">
<sizepolicy hsizetype="Minimum" vsizetype="Preferred">
<horstretch>0</horstretch>
@ -56,7 +69,49 @@
</font>
</property>
<property name="text">
<string>Developer</string>
<string>Application Name</string>
</property>
</widget>
</item>
<item row="3" column="0" alignment="Qt::AlignRight">
<widget class="QLabel" name="lbl_grade">
<property name="font">
<font>
<weight>75</weight>
<bold>true</bold>
</font>
</property>
<property name="text">
<string>ProtonDB Grade</string>
</property>
</widget>
</item>
<item row="4" column="0" alignment="Qt::AlignRight">
<widget class="QLabel" name="lbl_install_size">
<property name="sizePolicy">
<sizepolicy hsizetype="Minimum" vsizetype="Preferred">
<horstretch>0</horstretch>
<verstretch>0</verstretch>
</sizepolicy>
</property>
<property name="font">
<font>
<weight>75</weight>
<bold>true</bold>
</font>
</property>
<property name="text">
<string>Installation Size</string>
</property>
</widget>
</item>
<item row="4" column="1">
<widget class="QLabel" name="install_size">
<property name="text">
<string notr="true">error</string>
</property>
<property name="textInteractionFlags">
<set>Qt::LinksAccessibleByMouse|Qt::TextSelectableByMouse</set>
</property>
</widget>
</item>
@ -70,6 +125,16 @@
</property>
</widget>
</item>
<item row="3" column="1">
<widget class="QLabel" name="grade">
<property name="text">
<string notr="true">error</string>
</property>
<property name="textInteractionFlags">
<set>Qt::LinksAccessibleByMouse|Qt::TextSelectableByMouse</set>
</property>
</widget>
</item>
<item row="5" column="0" alignment="Qt::AlignRight">
<widget class="QLabel" name="lbl_install_path">
<property name="sizePolicy">
@ -89,51 +154,16 @@
</property>
</widget>
</item>
<item row="4" column="0" alignment="Qt::AlignRight">
<widget class="QLabel" name="lbl_install_size">
<property name="sizePolicy">
<sizepolicy hsizetype="Minimum" vsizetype="Preferred">
<horstretch>0</horstretch>
<verstretch>0</verstretch>
</sizepolicy>
</property>
<property name="font">
<font>
<weight>75</weight>
<bold>true</bold>
</font>
</property>
<item row="0" column="1">
<widget class="QLabel" name="dev">
<property name="text">
<string>Installation Size</string>
<string notr="true">error</string>
</property>
<property name="textInteractionFlags">
<set>Qt::LinksAccessibleByMouse|Qt::TextSelectableByMouse</set>
</property>
</widget>
</item>
<item row="7" column="1">
<spacer name="hs_game_info_form">
<property name="orientation">
<enum>Qt::Horizontal</enum>
</property>
<property name="sizeHint" stdset="0">
<size>
<width>0</width>
<height>20</height>
</size>
</property>
</spacer>
</item>
<item row="7" column="0">
<spacer name="vs_game_info_form">
<property name="orientation">
<enum>Qt::Vertical</enum>
</property>
<property name="sizeHint" stdset="0">
<size>
<width>20</width>
<height>0</height>
</size>
</property>
</spacer>
</item>
<item row="2" column="0" alignment="Qt::AlignRight">
<widget class="QLabel" name="lbl_version">
<property name="sizePolicy">
@ -153,100 +183,6 @@
</property>
</widget>
</item>
<item row="1" column="0" alignment="Qt::AlignRight">
<widget class="QLabel" name="lbl_app_name">
<property name="sizePolicy">
<sizepolicy hsizetype="Minimum" vsizetype="Preferred">
<horstretch>0</horstretch>
<verstretch>0</verstretch>
</sizepolicy>
</property>
<property name="font">
<font>
<weight>75</weight>
<bold>true</bold>
</font>
</property>
<property name="text">
<string>Application Name</string>
</property>
</widget>
</item>
<item row="0" column="1">
<widget class="QLabel" name="dev">
<property name="text">
<string notr="true">error</string>
</property>
<property name="textInteractionFlags">
<set>Qt::LinksAccessibleByMouse|Qt::TextSelectableByMouse</set>
</property>
</widget>
</item>
<item row="1" column="1">
<widget class="QLabel" name="app_name">
<property name="text">
<string notr="true">error</string>
</property>
<property name="textInteractionFlags">
<set>Qt::LinksAccessibleByMouse|Qt::TextSelectableByMouse</set>
</property>
</widget>
</item>
<item row="5" column="1">
<widget class="QLabel" name="install_path">
<property name="text">
<string notr="true">error</string>
</property>
<property name="wordWrap">
<bool>true</bool>
</property>
<property name="textInteractionFlags">
<set>Qt::LinksAccessibleByMouse|Qt::TextSelectableByMouse</set>
</property>
</widget>
</item>
<item row="6" column="0" alignment="Qt::AlignRight">
<widget class="QLabel" name="lbl_game_actions">
<property name="sizePolicy">
<sizepolicy hsizetype="Minimum" vsizetype="Preferred">
<horstretch>0</horstretch>
<verstretch>0</verstretch>
</sizepolicy>
</property>
<property name="font">
<font>
<weight>75</weight>
<bold>true</bold>
</font>
</property>
<property name="text">
<string>Actions</string>
</property>
</widget>
</item>
<item row="3" column="0" alignment="Qt::AlignRight">
<widget class="QLabel" name="lbl_grade">
<property name="font">
<font>
<weight>75</weight>
<bold>true</bold>
</font>
</property>
<property name="text">
<string>ProtonDB Grade</string>
</property>
</widget>
</item>
<item row="3" column="1">
<widget class="QLabel" name="grade">
<property name="text">
<string notr="true">error</string>
</property>
<property name="textInteractionFlags">
<set>Qt::LinksAccessibleByMouse|Qt::TextSelectableByMouse</set>
</property>
</widget>
</item>
<item row="6" column="1" alignment="Qt::AlignLeft|Qt::AlignTop">
<widget class="QStackedWidget" name="game_actions_stack">
<property name="minimumSize">
@ -256,29 +192,29 @@
</size>
</property>
<property name="currentIndex">
<number>1</number>
<number>1</number>
</property>
<widget class="QWidget" name="installed_page">
<layout class="QVBoxLayout" name="installed_layout">
<property name="leftMargin">
<number>0</number>
</property>
<property name="topMargin">
<number>0</number>
</property>
<property name="rightMargin">
<number>0</number>
</property>
<property name="bottomMargin">
<number>0</number>
</property>
<item>
<widget class="QStackedWidget" name="verify_widget">
<property name="currentIndex">
<number>0</number>
</property>
<widget class="QWidget" name="page_verify_button">
<layout class="QVBoxLayout" name="layout_verify_button">
<widget class="QWidget" name="installed_page">
<layout class="QVBoxLayout" name="installed_layout">
<property name="leftMargin">
<number>0</number>
</property>
<property name="topMargin">
<number>0</number>
</property>
<property name="rightMargin">
<number>0</number>
</property>
<property name="bottomMargin">
<number>0</number>
</property>
<item>
<widget class="QStackedWidget" name="verify_widget">
<property name="currentIndex">
<number>0</number>
</property>
<widget class="QWidget" name="page_verify_button">
<layout class="QVBoxLayout" name="layout_verify_button">
<property name="spacing">
<number>0</number>
</property>
@ -341,7 +277,7 @@
<item>
<widget class="QPushButton" name="uninstall_button">
<property name="styleSheet">
<string notr="true"/>
<string notr="true"/>
</property>
<property name="text">
<string>Uninstall Game</string>
@ -351,56 +287,120 @@
</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"/>
</property>
<property name="text">
<string>Install Game</string>
</property>
</widget>
</item>
<item>
<widget class="QLabel" name="no_install_label">
<property name="text">
<string>It is not possible to install the Game. It could be from a third party store</string>
</property>
<property name="wordWrap">
<bool>true</bool>
</property>
</widget>
</item>
</layout>
<layout class="QVBoxLayout" name="uninstalled_layout">
<item>
<widget class="QPushButton" name="install_button">
<property name="styleSheet">
<string notr="true"/>
</property>
<property name="text">
<string>Install Game</string>
</property>
</widget>
</item>
<item>
<widget class="QLabel" name="no_install_label">
<property name="text">
<string>It is not possible to install the Game. It could be from a third party store</string>
</property>
<property name="wordWrap">
<bool>true</bool>
</property>
</widget>
</item>
</layout>
</widget>
</widget>
</item>
<item row="0" column="0" alignment="Qt::AlignRight">
<widget class="QLabel" name="lbl_dev">
<property name="sizePolicy">
<sizepolicy hsizetype="Minimum" vsizetype="Preferred">
<horstretch>0</horstretch>
<verstretch>0</verstretch>
</sizepolicy>
</property>
<property name="font">
<font>
<weight>75</weight>
<bold>true</bold>
</font>
</property>
<property name="text">
<string>Developer</string>
</property>
</widget>
</item>
<item row="1" column="1">
<widget class="QLabel" name="app_name">
<property name="text">
<string notr="true">error</string>
</property>
<property name="textInteractionFlags">
<set>Qt::LinksAccessibleByMouse|Qt::TextSelectableByMouse</set>
</property>
</widget>
</item>
<item row="5" column="1">
<widget class="QLabel" name="install_path">
<property name="text">
<string notr="true">error</string>
</property>
<property name="wordWrap">
<bool>true</bool>
</property>
<property name="textInteractionFlags">
<set>Qt::LinksAccessibleByMouse|Qt::TextSelectableByMouse</set>
</property>
</widget>
</item>
<item row="6" column="0" alignment="Qt::AlignRight">
<widget class="QLabel" name="lbl_game_actions">
<property name="sizePolicy">
<sizepolicy hsizetype="Minimum" vsizetype="Preferred">
<horstretch>0</horstretch>
<verstretch>0</verstretch>
</sizepolicy>
</property>
<property name="font">
<font>
<weight>75</weight>
<bold>true</bold>
</font>
</property>
<property name="text">
<string>Actions</string>
</property>
</widget>
</item>
<item row="7" column="0">
<spacer name="vs_game_info_form">
<property name="orientation">
<enum>Qt::Vertical</enum>
</property>
<property name="sizeHint" stdset="0">
<size>
<width>20</width>
<height>0</height>
</size>
</property>
</spacer>
</item>
<item row="7" column="1">
<spacer name="hs_game_info_form">
<property name="orientation">
<enum>Qt::Horizontal</enum>
</property>
<property name="sizeHint" stdset="0">
<size>
<width>0</width>
<height>20</height>
</size>
</property>
</spacer>
</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>
</widget>
<resources/>

View file

@ -17,11 +17,11 @@ class Ui_GameSettings(object):
GameSettings.resize(759, 617)
self.game_settings_layout = QtWidgets.QVBoxLayout(GameSettings)
self.game_settings_layout.setObjectName("game_settings_layout")
self.title = QtWidgets.QLabel(GameSettings)
self.title.setText("error")
self.title.setTextInteractionFlags(QtCore.Qt.LinksAccessibleByMouse|QtCore.Qt.TextSelectableByMouse)
self.title.setObjectName("title")
self.game_settings_layout.addWidget(self.title)
self.game_title = QtWidgets.QLabel(GameSettings)
self.game_title.setText("error")
self.game_title.setTextInteractionFlags(QtCore.Qt.LinksAccessibleByMouse|QtCore.Qt.TextSelectableByMouse)
self.game_title.setObjectName("game_title")
self.game_settings_layout.addWidget(self.game_title, 0, QtCore.Qt.AlignTop)
self.launch_settings_groupbox = QtWidgets.QGroupBox(GameSettings)
self.launch_settings_groupbox.setObjectName("launch_settings_groupbox")
self.launch_settings_layout = QtWidgets.QFormLayout(self.launch_settings_groupbox)

View file

@ -14,8 +14,8 @@
<string>GameSettings</string>
</property>
<layout class="QVBoxLayout" name="game_settings_layout">
<item>
<widget class="QLabel" name="title">
<item alignment="Qt::AlignTop">
<widget class="QLabel" name="game_title">
<property name="text">
<string notr="true">error</string>
</property>