From b02483eb80015b436d1c99ee0f9b3da70358a691 Mon Sep 17 00:00:00 2001
From: loathingKernel <142770+loathingKernel@users.noreply.github.com>
Date: Tue, 24 Jan 2023 18:16:23 +0200
Subject: [PATCH] GameInfo: Refactor the move game stack to re-use the existing
widgets
instead of adding them again to the layout. Move game should still
switch to RareGame, similar to the way it works for verifing.
Also add non-functional "Import Game" button
---
.../tabs/games/game_info/game_info.py | 49 ++----
.../tabs/games/game_info/move_game.py | 20 +--
.../tabs/games/game_info/game_info.py | 147 ++++++++++--------
.../tabs/games/game_info/game_info.ui | 124 ++++++++++++---
4 files changed, 211 insertions(+), 129 deletions(-)
diff --git a/rare/components/tabs/games/game_info/game_info.py b/rare/components/tabs/games/game_info/game_info.py
index 0d865bcb..2b3e741b 100644
--- a/rare/components/tabs/games/game_info/game_info.py
+++ b/rare/components/tabs/games/game_info/game_info.py
@@ -7,14 +7,12 @@ from typing import Optional, Union
from PyQt5.QtCore import (
Qt,
- pyqtSignal,
QThreadPool,
pyqtSlot,
)
from PyQt5.QtWidgets import (
QHBoxLayout,
QMenu,
- QProgressBar,
QPushButton,
QWidget,
QMessageBox,
@@ -43,9 +41,6 @@ logger = getLogger("GameInfo")
class GameInfo(QWidget):
- # verification_finished = pyqtSignal(InstalledGame)
- # uninstalled = pyqtSignal(str)
-
def __init__(self, game_utils, parent=None):
super(GameInfo, self).__init__(parent=parent)
self.ui = Ui_GameInfo()
@@ -58,8 +53,6 @@ class GameInfo(QWidget):
self.game_utils = game_utils
self.rgame: Optional[RareGame] = None
- # self.game: Optional[Game] = None
- # self.igame: Optional[InstalledGame] = None
self.image = ImageWidget(self)
self.image.setFixedSize(ImageSize.Display)
@@ -94,19 +87,11 @@ class GameInfo(QWidget):
self.ui.move_button.setMenu(QMenu())
self.ui.move_button.menu().addAction(self.move_action)
- self.progress_of_moving = QProgressBar()
self.existing_game_dir = False
self.is_moving = False
self.game_moving = None
self.dest_path_with_suffix = None
- self.widget_container = QWidget()
- box_layout = QHBoxLayout()
- box_layout.setContentsMargins(0, 0, 0, 0)
- box_layout.addWidget(self.ui.move_button)
- self.widget_container.setLayout(box_layout)
- index = self.ui.move_stack.addWidget(self.widget_container)
- self.ui.move_stack.setCurrentIndex(index)
self.move_game_pop_up.browse_done.connect(self.show_menu_after_browse)
self.move_game_pop_up.move_clicked.connect(self.ui.move_button.menu().close)
self.move_game_pop_up.move_clicked.connect(self.move_game)
@@ -195,7 +180,7 @@ class GameInfo(QWidget):
self.verify_game(self.rgame)
def verify_game(self, rgame: RareGame):
- self.ui.verify_widget.setCurrentIndex(1)
+ self.ui.verify_stack.setCurrentWidget(self.ui.verify_progress_page)
verify_worker = VerifyWorker(self.core, self.args, rgame)
verify_worker.signals.progress.connect(self.__on_verify_progress)
verify_worker.signals.result.connect(self.__on_verify_result)
@@ -207,7 +192,7 @@ class GameInfo(QWidget):
def verify_cleanup(self, rgame: RareGame):
rgame.active_worker = None
- self.ui.verify_widget.setCurrentIndex(0)
+ self.ui.verify_stack.setCurrentWidget(self.ui.verify_button_page)
self.ui.move_button.setEnabled(True)
self.ui.verify_button.setEnabled(True)
@@ -235,7 +220,6 @@ class GameInfo(QWidget):
self.tr("{} has been verified successfully. "
"No missing or corrupt files found").format(rgame.title),
)
- # self.verification_finished.emit(rgame.igame)
else:
ans = QMessageBox.question(
self,
@@ -283,8 +267,7 @@ class GameInfo(QWidget):
else:
return
- self.ui.move_stack.addWidget(self.progress_of_moving)
- self.ui.move_stack.setCurrentWidget(self.progress_of_moving)
+ self.ui.move_stack.setCurrentWidget(self.ui.move_progress)
self.game_moving = self.rgame.app_name
self.is_moving = True
@@ -299,8 +282,8 @@ class GameInfo(QWidget):
shutil.move(self.rgame.igame.install_path, dest_path)
self.set_new_game(self.dest_path_with_suffix)
- def update_progressbar(self, progress_int):
- self.progress_of_moving.setValue(progress_int)
+ def __on_move_progress(self, progress_int):
+ self.ui.move_progress.setValue(progress_int)
def start_copy_diff_drive(self):
copy_worker = CopyGameInstallation(
@@ -310,13 +293,13 @@ class GameInfo(QWidget):
igame=self.rgame.igame,
)
- copy_worker.signals.progress.connect(self.update_progressbar)
+ copy_worker.signals.progress.connect(self.__on_move_progress)
copy_worker.signals.finished.connect(self.set_new_game)
copy_worker.signals.no_space_left.connect(self.warn_no_space_left)
QThreadPool.globalInstance().start(copy_worker)
def move_helper_clean_up(self):
- self.ui.move_stack.setCurrentWidget(self.ui.move_button)
+ self.ui.move_stack.setCurrentWidget(self.ui.move_button_page)
self.move_game_pop_up.refresh_indicator()
self.is_moving = False
self.game_moving = None
@@ -364,11 +347,11 @@ class GameInfo(QWidget):
self.rgame.signals.game.uninstalled.connect(self.update_game)
if (worker := self.rgame.active_worker) is not None:
if isinstance(worker, VerifyWorker):
- self.ui.verify_widget.setCurrentIndex(1)
+ self.ui.verify_stack.setCurrentWidget(self.ui.verify_progress_page)
self.ui.verify_progress.setValue(self.rgame.progress)
worker.signals.progress.connect(self.__on_verify_progress)
else:
- self.ui.verify_widget.setCurrentIndex(0)
+ self.ui.verify_stack.setCurrentWidget(self.ui.verify_button_page)
self.title.setTitle(self.rgame.app_title)
self.image.setPixmap(rgame.pixmap)
@@ -394,20 +377,20 @@ class GameInfo(QWidget):
self.ui.verify_button.setEnabled(bool(self.rgame.igame))
self.ui.repair_button.setEnabled(bool(self.rgame.igame))
- if not self.rgame.igame:
- self.ui.game_actions_stack.setCurrentIndex(1)
+ if not self.rgame.is_installed or self.rgame.is_origin:
+ self.ui.game_actions_stack.setCurrentWidget(self.ui.uninstalled_page)
if self.rgame.is_origin:
self.ui.version.setText("N/A")
self.ui.version.setEnabled(False)
self.ui.install_button.setText(self.tr("Link to Origin/Launch"))
else:
- self.ui.install_button.setText(self.tr("Install"))
+ self.ui.install_button.setText(self.tr("Install Game"))
else:
if not self.args.offline:
self.ui.repair_button.setDisabled(
not os.path.exists(os.path.join(self.core.lgd.get_tmp_path(), f"{self.rgame.app_name}.repair"))
)
- self.ui.game_actions_stack.setCurrentIndex(0)
+ self.ui.game_actions_stack.setCurrentWidget(self.ui.installed_page)
grade_visible = not self.rgame.is_unreal and platform.system() != "Windows"
self.ui.grade.setVisible(grade_visible)
@@ -422,11 +405,9 @@ class GameInfo(QWidget):
# Otherwhise, we show the move tool button.
if self.rgame.igame is not None:
if self.game_moving == self.rgame.app_name:
- index = self.ui.move_stack.addWidget(self.progress_of_moving)
- self.ui.move_stack.setCurrentIndex(index)
+ self.ui.move_stack.setCurrentWidget(self.ui.move_progress_page)
else:
- index = self.ui.move_stack.addWidget(self.ui.move_button)
- self.ui.move_stack.setCurrentIndex(index)
+ self.ui.move_stack.setCurrentWidget(self.ui.move_button_page)
# If a game is verifying or moving, disable both verify and moving buttons.
if rgame.active_worker is not None:
diff --git a/rare/components/tabs/games/game_info/move_game.py b/rare/components/tabs/games/game_info/move_game.py
index 666502c9..2645d2bb 100644
--- a/rare/components/tabs/games/game_info/move_game.py
+++ b/rare/components/tabs/games/game_info/move_game.py
@@ -21,22 +21,21 @@ class MoveGamePopUp(QWidget):
def __init__(self, parent=None):
super(MoveGamePopUp, self).__init__(parent=parent)
- layout: QVBoxLayout = QVBoxLayout()
- self.install_path = str()
self.core = LegendaryCoreSingleton()
- self.move_path_edit = PathEdit(str(), QFileDialog.Directory, edit_func=self.edit_func_move_game)
+ self.install_path = ""
+ self.move_path_edit = PathEdit("", QFileDialog.Directory, edit_func=self.edit_func_move_game)
self.move_path_edit.path_select.clicked.connect(self.emit_browse_done_signal)
- self.move_game = QPushButton(self.tr("Move"))
- self.move_game.setMaximumWidth(50)
- self.move_game.clicked.connect(self.emit_move_game_signal)
+ self.move_button = QPushButton(self.tr("Move"))
+ self.move_button.setFixedSize(self.move_path_edit.path_select.sizeHint())
+ self.move_button.clicked.connect(self.emit_move_game_signal)
self.warn_overwriting = QLabel()
middle_layout = QHBoxLayout()
middle_layout.setAlignment(Qt.AlignRight)
middle_layout.addWidget(self.warn_overwriting, stretch=1)
- middle_layout.addWidget(self.move_game)
+ middle_layout.addWidget(self.move_button)
bottom_layout = QVBoxLayout()
self.aval_space_label = QLabel()
@@ -44,6 +43,7 @@ class MoveGamePopUp(QWidget):
bottom_layout.addWidget(self.aval_space_label)
bottom_layout.addWidget(self.req_space_label)
+ layout: QVBoxLayout = QVBoxLayout()
layout.addWidget(self.move_path_edit)
layout.addLayout(middle_layout)
layout.addLayout(bottom_layout)
@@ -67,11 +67,11 @@ class MoveGamePopUp(QWidget):
return os.stat(dir1).st_dev != os.stat(dir2).st_dev
def edit_func_move_game(self, dir_selected):
- self.move_game.setEnabled(True)
+ self.move_button.setEnabled(True)
self.warn_overwriting.setHidden(True)
def helper_func(reason: str) -> Tuple[bool, str, str]:
- self.move_game.setEnabled(False)
+ self.move_button.setEnabled(False)
return False, dir_selected, self.tr(reason)
if not self.install_path or not dir_selected:
@@ -124,7 +124,7 @@ class MoveGamePopUp(QWidget):
return helper_func("Not enough space available on drive.")
# Fallback
- self.move_game.setEnabled(True)
+ self.move_button.setEnabled(True)
return True, dir_selected, str()
def update_game(self, app_name):
diff --git a/rare/ui/components/tabs/games/game_info/game_info.py b/rare/ui/components/tabs/games/game_info/game_info.py
index 941a2c78..6b21b9aa 100644
--- a/rare/ui/components/tabs/games/game_info/game_info.py
+++ b/rare/ui/components/tabs/games/game_info/game_info.py
@@ -2,7 +2,7 @@
# 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.6
+# Created by: PyQt5 UI code generator 5.15.7
#
# 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.
@@ -14,20 +14,20 @@ from PyQt5 import QtCore, QtGui, QtWidgets
class Ui_GameInfo(object):
def setupUi(self, GameInfo):
GameInfo.setObjectName("GameInfo")
- GameInfo.resize(791, 583)
+ GameInfo.resize(533, 441)
self.layout_game_info = QtWidgets.QHBoxLayout(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")
- spacerItem = QtWidgets.QSpacerItem(0, 20, QtWidgets.QSizePolicy.Expanding, QtWidgets.QSizePolicy.Minimum)
- self.layout_game_info_form.addItem(spacerItem, 8, 1, 1, 1)
+ 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")
+ spacerItem = QtWidgets.QSpacerItem(20, 0, QtWidgets.QSizePolicy.Expanding, QtWidgets.QSizePolicy.Minimum)
+ self.game_info_layout.addItem(spacerItem, 8, 1, 1, 1)
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.game_info_layout.addWidget(self.dev, 0, 1, 1, 1)
self.lbl_dev = QtWidgets.QLabel(GameInfo)
sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Minimum, QtWidgets.QSizePolicy.Preferred)
sizePolicy.setHorizontalStretch(0)
@@ -39,18 +39,18 @@ class Ui_GameInfo(object):
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.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.layout_game_info_form.addWidget(self.app_name, 1, 1, 1, 1)
+ 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.layout_game_info_form.addWidget(self.install_path, 5, 1, 1, 1)
+ self.game_info_layout.addWidget(self.install_path, 5, 1, 1, 1)
self.lbl_platform = QtWidgets.QLabel(GameInfo)
font = QtGui.QFont()
font.setBold(True)
@@ -58,12 +58,12 @@ class Ui_GameInfo(object):
self.lbl_platform.setFont(font)
self.lbl_platform.setAlignment(QtCore.Qt.AlignRight|QtCore.Qt.AlignTrailing|QtCore.Qt.AlignVCenter)
self.lbl_platform.setObjectName("lbl_platform")
- self.layout_game_info_form.addWidget(self.lbl_platform, 6, 0, 1, 1)
+ self.game_info_layout.addWidget(self.lbl_platform, 6, 0, 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.layout_game_info_form.addWidget(self.version, 2, 1, 1, 1)
+ self.game_info_layout.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)
@@ -75,7 +75,7 @@ class Ui_GameInfo(object):
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.game_info_layout.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)
@@ -87,69 +87,80 @@ class Ui_GameInfo(object):
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)
- spacerItem1 = QtWidgets.QSpacerItem(20, 0, QtWidgets.QSizePolicy.Minimum, QtWidgets.QSizePolicy.Expanding)
- self.layout_game_info_form.addItem(spacerItem1, 8, 0, 1, 1)
+ self.game_info_layout.addWidget(self.lbl_install_size, 4, 0, 1, 1, QtCore.Qt.AlignRight)
+ spacerItem1 = QtWidgets.QSpacerItem(0, 20, QtWidgets.QSizePolicy.Minimum, QtWidgets.QSizePolicy.Expanding)
+ self.game_info_layout.addItem(spacerItem1, 8, 0, 1, 1)
self.platform = QtWidgets.QLabel(GameInfo)
self.platform.setText("error")
self.platform.setObjectName("platform")
- self.layout_game_info_form.addWidget(self.platform, 6, 1, 1, 1)
+ self.game_info_layout.addWidget(self.platform, 6, 1, 1, 1)
self.game_actions_stack = QtWidgets.QStackedWidget(GameInfo)
self.game_actions_stack.setMinimumSize(QtCore.QSize(250, 0))
+ self.game_actions_stack.setMaximumSize(QtCore.QSize(250, 16777215))
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_stack = QtWidgets.QStackedWidget(self.installed_page)
+ self.verify_stack.setObjectName("verify_stack")
+ self.verify_button_page = QtWidgets.QWidget()
+ self.verify_button_page.setObjectName("verify_button_page")
+ self.verify_page_layout = QtWidgets.QHBoxLayout(self.verify_button_page)
+ self.verify_page_layout.setContentsMargins(0, 0, 0, 0)
+ self.verify_page_layout.setSpacing(0)
+ self.verify_page_layout.setObjectName("verify_page_layout")
+ self.verify_button = QtWidgets.QPushButton(self.verify_button_page)
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_page_layout.addWidget(self.verify_button)
+ self.verify_stack.addWidget(self.verify_button_page)
+ self.verify_progress_page = QtWidgets.QWidget()
+ self.verify_progress_page.setObjectName("verify_progress_page")
+ self.verify_progress_layout = QtWidgets.QHBoxLayout(self.verify_progress_page)
+ self.verify_progress_layout.setContentsMargins(0, 0, 0, 0)
+ self.verify_progress_layout.setSpacing(0)
+ self.verify_progress_layout.setObjectName("verify_progress_layout")
+ self.verify_progress = QtWidgets.QProgressBar(self.verify_progress_page)
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.verify_progress_layout.addWidget(self.verify_progress)
+ self.verify_stack.addWidget(self.verify_progress_page)
+ self.installed_layout.addWidget(self.verify_stack)
self.repair_button = QtWidgets.QPushButton(self.installed_page)
self.repair_button.setObjectName("repair_button")
self.installed_layout.addWidget(self.repair_button)
self.move_stack = QtWidgets.QStackedWidget(self.installed_page)
- self.move_stack.setMinimumSize(QtCore.QSize(0, 20))
self.move_stack.setObjectName("move_stack")
- self.page = QtWidgets.QWidget()
- self.page.setObjectName("page")
- self.horizontalLayout_2 = QtWidgets.QHBoxLayout(self.page)
- self.horizontalLayout_2.setContentsMargins(0, 0, 0, 0)
- self.horizontalLayout_2.setObjectName("horizontalLayout_2")
- self.move_button = QtWidgets.QToolButton(self.page)
+ self.move_button_page = QtWidgets.QWidget()
+ self.move_button_page.setObjectName("move_button_page")
+ self.move_button_layout = QtWidgets.QHBoxLayout(self.move_button_page)
+ self.move_button_layout.setContentsMargins(0, 0, 0, 0)
+ self.move_button_layout.setSpacing(0)
+ self.move_button_layout.setObjectName("move_button_layout")
+ self.move_button = QtWidgets.QToolButton(self.move_button_page)
sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Minimum, QtWidgets.QSizePolicy.Fixed)
sizePolicy.setHorizontalStretch(0)
sizePolicy.setVerticalStretch(0)
sizePolicy.setHeightForWidth(self.move_button.sizePolicy().hasHeightForWidth())
self.move_button.setSizePolicy(sizePolicy)
self.move_button.setPopupMode(QtWidgets.QToolButton.InstantPopup)
+ self.move_button.setToolButtonStyle(QtCore.Qt.ToolButtonTextOnly)
+ self.move_button.setArrowType(QtCore.Qt.DownArrow)
self.move_button.setObjectName("move_button")
- self.horizontalLayout_2.addWidget(self.move_button)
- self.move_stack.addWidget(self.page)
- self.page_2 = QtWidgets.QWidget()
- self.page_2.setObjectName("page_2")
- self.move_stack.addWidget(self.page_2)
+ self.move_button_layout.addWidget(self.move_button)
+ self.move_stack.addWidget(self.move_button_page)
+ self.move_progress_page = QtWidgets.QWidget()
+ self.move_progress_page.setObjectName("move_progress_page")
+ self.move_progress_layout = QtWidgets.QHBoxLayout(self.move_progress_page)
+ self.move_progress_layout.setContentsMargins(0, 0, 0, 0)
+ self.move_progress_layout.setSpacing(0)
+ self.move_progress_layout.setObjectName("move_progress_layout")
+ self.move_progress = QtWidgets.QProgressBar(self.move_progress_page)
+ self.move_progress.setProperty("value", 24)
+ self.move_progress.setObjectName("move_progress")
+ self.move_progress_layout.addWidget(self.move_progress)
+ self.move_stack.addWidget(self.move_progress_page)
self.installed_layout.addWidget(self.move_stack)
self.uninstall_button = QtWidgets.QPushButton(self.installed_page)
self.uninstall_button.setStyleSheet("")
@@ -159,18 +170,28 @@ class Ui_GameInfo(object):
self.uninstalled_page = QtWidgets.QWidget()
self.uninstalled_page.setObjectName("uninstalled_page")
self.uninstalled_layout = QtWidgets.QVBoxLayout(self.uninstalled_page)
+ self.uninstalled_layout.setContentsMargins(0, 0, 0, 0)
self.uninstalled_layout.setObjectName("uninstalled_layout")
+ spacerItem2 = QtWidgets.QSpacerItem(QtWidgets.QSizePolicy.Minimum, QtWidgets.QSizePolicy.Expanding)
+ self.uninstalled_layout.addItem(spacerItem2)
self.install_button = QtWidgets.QPushButton(self.uninstalled_page)
self.install_button.setStyleSheet("")
self.install_button.setObjectName("install_button")
self.uninstalled_layout.addWidget(self.install_button)
+ self.import_button = QtWidgets.QPushButton(self.uninstalled_page)
+ self.import_button.setObjectName("import_button")
+ self.uninstalled_layout.addWidget(self.import_button)
+ spacerItem3 = QtWidgets.QSpacerItem(0, 0, QtWidgets.QSizePolicy.Minimum, QtWidgets.QSizePolicy.Expanding)
+ self.uninstalled_layout.addItem(spacerItem3)
+ self.uninstalled_layout.setStretch(0, 1)
+ self.uninstalled_layout.setStretch(3, 1)
self.game_actions_stack.addWidget(self.uninstalled_page)
- self.layout_game_info_form.addWidget(self.game_actions_stack, 7, 1, 1, 1, QtCore.Qt.AlignLeft|QtCore.Qt.AlignTop)
+ self.game_info_layout.addWidget(self.game_actions_stack, 7, 1, 1, 1)
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.game_info_layout.addWidget(self.install_size, 4, 1, 1, 1)
self.lbl_version = QtWidgets.QLabel(GameInfo)
sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Minimum, QtWidgets.QSizePolicy.Preferred)
sizePolicy.setHorizontalStretch(0)
@@ -182,7 +203,7 @@ class Ui_GameInfo(object):
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_info_layout.addWidget(self.lbl_version, 2, 0, 1, 1, QtCore.Qt.AlignRight)
self.lbl_game_actions = QtWidgets.QLabel(GameInfo)
sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Minimum, QtWidgets.QSizePolicy.Preferred)
sizePolicy.setHorizontalStretch(0)
@@ -194,14 +215,14 @@ class Ui_GameInfo(object):
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, 7, 0, 1, 1, QtCore.Qt.AlignRight)
+ self.game_info_layout.addWidget(self.lbl_game_actions, 7, 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_app_name = QtWidgets.QLabel(GameInfo)
sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Minimum, QtWidgets.QSizePolicy.Preferred)
sizePolicy.setHorizontalStretch(0)
@@ -213,17 +234,20 @@ 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.game_info_layout.addWidget(self.lbl_app_name, 1, 0, 1, 1, QtCore.Qt.AlignRight)
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.layout_game_info.addLayout(self.layout_game_info_form)
+ self.game_info_layout.addWidget(self.grade, 3, 1, 1, 1)
+ self.game_info_layout.setColumnStretch(1, 1)
+ self.game_info_layout.setRowStretch(8, 1)
+ self.layout_game_info.addLayout(self.game_info_layout)
self.retranslateUi(GameInfo)
self.game_actions_stack.setCurrentIndex(0)
- self.verify_widget.setCurrentIndex(0)
+ self.verify_stack.setCurrentIndex(0)
+ self.move_stack.setCurrentIndex(0)
def retranslateUi(self, GameInfo):
_translate = QtCore.QCoreApplication.translate
@@ -237,6 +261,7 @@ class Ui_GameInfo(object):
self.move_button.setText(_translate("GameInfo", "Move Installation"))
self.uninstall_button.setText(_translate("GameInfo", "Uninstall Game"))
self.install_button.setText(_translate("GameInfo", "Install Game"))
+ self.import_button.setText(_translate("GameInfo", "Import Game"))
self.lbl_version.setText(_translate("GameInfo", "Version"))
self.lbl_game_actions.setText(_translate("GameInfo", "Actions"))
self.lbl_grade.setText(_translate("GameInfo", "ProtonDB Grade"))
diff --git a/rare/ui/components/tabs/games/game_info/game_info.ui b/rare/ui/components/tabs/games/game_info/game_info.ui
index 20a891ac..f2792b93 100644
--- a/rare/ui/components/tabs/games/game_info/game_info.ui
+++ b/rare/ui/components/tabs/games/game_info/game_info.ui
@@ -6,8 +6,8 @@
0
0
- 791
- 583
+ 533
+ 441
@@ -15,7 +15,7 @@
-
-
+
6
@@ -32,14 +32,14 @@
12
-
-
+
Qt::Horizontal
- 0
- 20
+ 20
+ 0
@@ -161,14 +161,14 @@
-
-
+
Qt::Vertical
- 20
- 0
+ 0
+ 20
@@ -180,7 +180,7 @@
- -
+
-
@@ -188,6 +188,12 @@
0
+
+
+ 250
+ 16777215
+
+
0
@@ -206,12 +212,12 @@
0
-
-
+
0
-
-
+
+
0
@@ -236,8 +242,8 @@
-
-
+
+
0
@@ -273,14 +279,14 @@
-
-
-
- 0
- 20
-
+
+ 0
-
-
+
+
+
+ 0
+
0
@@ -307,11 +313,42 @@
QToolButton::InstantPopup
+
+ Qt::ToolButtonTextOnly
+
+
+ Qt::DownArrow
+
+
+
+
+
+
+
+
+ 0
+
+
+ 0
+
+
+ 0
+
+
+ 0
+
+
+ 0
+
+ -
+
+
+ 24
+
-
-
@@ -327,7 +364,26 @@
-
+
+
+ 0
+
+
+ 0
+
+
+ 0
+
+
+ 0
+
+
-
+
+
+ Qt::Vertical
+
+
+
-
@@ -338,6 +394,26 @@
+ -
+
+
+ Import Game
+
+
+
+ -
+
+
+ Qt::Vertical
+
+
+
+ 0
+ 0
+
+
+
+