From ce864e7d3ba4991a9a6b9fce31585c160ae64d08 Mon Sep 17 00:00:00 2001
From: loathingKernel <142770+loathingKernel@users.noreply.github.com>
Date: Fri, 22 May 2026 20:35:04 +0300
Subject: [PATCH 1/2] GameDetails: use ElideLabel for version field
---
.../tabs/library/details/details.py | 13 +-
.../tabs/library/details/details.py | 250 +++++++++---------
.../tabs/library/details/details.ui | 46 ++--
3 files changed, 150 insertions(+), 159 deletions(-)
diff --git a/rare/components/tabs/library/details/details.py b/rare/components/tabs/library/details/details.py
index babd81bb4..db9e0446f 100644
--- a/rare/components/tabs/library/details/details.py
+++ b/rare/components/tabs/library/details/details.py
@@ -13,6 +13,7 @@
from PySide6.QtGui import QFontMetrics, QHideEvent, QShowEvent
from PySide6.QtWidgets import (
QCheckBox,
+ QFormLayout,
QFrame,
QHBoxLayout,
QLabel,
@@ -34,6 +35,7 @@
from rare.utils.paths import cache_dir
from rare.utils.qrequests import QRequests
from rare.widgets.dialogs import ButtonDialog, game_title
+from rare.widgets.elide_label import ElideLabel
from rare.widgets.image_widget import ImageSize, ImageWidget, LoadingImageWidget
from rare.widgets.side_tab import SideTabContents
@@ -66,6 +68,13 @@ def __init__(self, rcore: RareCore, parent=None):
self.ui.move_button.setIcon(qta_icon('mdi.folder-move-outline'))
self.ui.uninstall_button.setIcon(qta_icon('ri.uninstall-line'))
+ self.version = ElideLabel(parent=self)
+ self.ui.details_layout.setWidget(
+ self.ui.details_layout.getWidgetPosition(self.ui.version_label)[0],
+ QFormLayout.ItemRole.FieldRole,
+ self.version,
+ )
+
self.ui.grade.setOpenExternalLinks(True)
self.ui.install_path.setOpenExternalLinks(True)
@@ -325,8 +334,8 @@ def __update_widget(self):
self.image.setPixmap(self.rgame.get_pixmap(ImageSize.DisplayTall, True))
self.ui.version_label.setDisabled(self.rgame.is_non_asset)
- self.ui.version.setDisabled(self.rgame.is_non_asset)
- self.ui.version.setText(self.rgame.version if not self.rgame.is_non_asset else 'N/A')
+ self.version.setDisabled(self.rgame.is_non_asset)
+ self.version.setText(self.rgame.version if not self.rgame.is_non_asset else 'N/A')
self.ui.install_size_label.setEnabled(bool(self.rgame.install_size))
self.ui.install_size.setEnabled(bool(self.rgame.install_size))
diff --git a/rare/ui/components/tabs/library/details/details.py b/rare/ui/components/tabs/library/details/details.py
index 268580cf1..cab795073 100644
--- a/rare/ui/components/tabs/library/details/details.py
+++ b/rare/ui/components/tabs/library/details/details.py
@@ -1,4 +1,3 @@
-# -*- coding: utf-8 -*-
################################################################################
## Form generated from reading UI file 'details.ui'
@@ -29,27 +28,27 @@
)
-class Ui_GameDetails(object):
+class Ui_GameDetails:
def setupUi(self, GameDetails):
if not GameDetails.objectName():
- GameDetails.setObjectName(u"GameDetails")
+ GameDetails.setObjectName("GameDetails")
GameDetails.resize(870, 601)
- GameDetails.setWindowTitle(u"GameDetails")
+ GameDetails.setWindowTitle("GameDetails")
self.main_layout = QHBoxLayout(GameDetails)
- self.main_layout.setObjectName(u"main_layout")
+ self.main_layout.setObjectName("main_layout")
self.left_layout = QVBoxLayout()
- self.left_layout.setObjectName(u"left_layout")
+ self.left_layout.setObjectName("left_layout")
self.tags_group = QGroupBox(GameDetails)
- self.tags_group.setObjectName(u"tags_group")
+ self.tags_group.setObjectName("tags_group")
sizePolicy = QSizePolicy(QSizePolicy.Policy.Preferred, QSizePolicy.Policy.Fixed)
sizePolicy.setHorizontalStretch(0)
sizePolicy.setVerticalStretch(0)
sizePolicy.setHeightForWidth(self.tags_group.sizePolicy().hasHeightForWidth())
self.tags_group.setSizePolicy(sizePolicy)
self.tags_group_layout = QVBoxLayout(self.tags_group)
- self.tags_group_layout.setObjectName(u"tags_group_layout")
+ self.tags_group_layout.setObjectName("tags_group_layout")
self.add_tag_button = QPushButton(self.tags_group)
- self.add_tag_button.setObjectName(u"add_tag_button")
+ self.add_tag_button.setObjectName("add_tag_button")
sizePolicy1 = QSizePolicy(QSizePolicy.Policy.Expanding, QSizePolicy.Policy.Fixed)
sizePolicy1.setHorizontalStretch(0)
sizePolicy1.setVerticalStretch(0)
@@ -59,7 +58,7 @@ def setupUi(self, GameDetails):
self.tags_group_layout.addWidget(self.add_tag_button, 0, Qt.AlignmentFlag.AlignRight|Qt.AlignmentFlag.AlignTop)
self.tags_vlayout = QVBoxLayout()
- self.tags_vlayout.setObjectName(u"tags_vlayout")
+ self.tags_vlayout.setObjectName("tags_vlayout")
self.tags_group_layout.addLayout(self.tags_vlayout)
@@ -71,33 +70,33 @@ def setupUi(self, GameDetails):
self.right_layout = QGridLayout()
self.right_layout.setSpacing(24)
- self.right_layout.setObjectName(u"right_layout")
+ self.right_layout.setObjectName("right_layout")
self.description_field = QTextBrowser(GameDetails)
- self.description_field.setObjectName(u"description_field")
+ self.description_field.setObjectName("description_field")
self.description_field.setMinimumSize(QSize(450, 0))
self.description_field.setOpenExternalLinks(True)
self.right_layout.addWidget(self.description_field, 1, 0, 1, 1)
self.requirements_group = QFrame(GameDetails)
- self.requirements_group.setObjectName(u"requirements_group")
+ self.requirements_group.setObjectName("requirements_group")
self.requirements_group.setFrameShape(QFrame.Shape.StyledPanel)
self.requirements_group.setFrameShadow(QFrame.Shadow.Sunken)
self.requirements_layout = QHBoxLayout(self.requirements_group)
- self.requirements_layout.setObjectName(u"requirements_layout")
+ self.requirements_layout.setObjectName("requirements_layout")
self.right_layout.addWidget(self.requirements_group, 2, 0, 2, 2)
self.achievements_group = QWidget(GameDetails)
- self.achievements_group.setObjectName(u"achievements_group")
+ self.achievements_group.setObjectName("achievements_group")
self.achievements_layout = QVBoxLayout(self.achievements_group)
- self.achievements_layout.setObjectName(u"achievements_layout")
+ self.achievements_layout.setObjectName("achievements_layout")
self.achievements_layout.setContentsMargins(0, 0, 0, 0)
self.achievement_stats_layout = QHBoxLayout()
- self.achievement_stats_layout.setObjectName(u"achievement_stats_layout")
+ self.achievement_stats_layout.setObjectName("achievement_stats_layout")
self.achievement_stats_layout.setContentsMargins(0, -1, 0, -1)
self.progress_label = QLabel(self.achievements_group)
- self.progress_label.setObjectName(u"progress_label")
+ self.progress_label.setObjectName("progress_label")
font = QFont()
font.setBold(True)
self.progress_label.setFont(font)
@@ -105,18 +104,18 @@ def setupUi(self, GameDetails):
self.achievement_stats_layout.addWidget(self.progress_label)
self.progress_field = QLabel(self.achievements_group)
- self.progress_field.setObjectName(u"progress_field")
+ self.progress_field.setObjectName("progress_field")
self.achievement_stats_layout.addWidget(self.progress_field)
self.exp_label = QLabel(self.achievements_group)
- self.exp_label.setObjectName(u"exp_label")
+ self.exp_label.setObjectName("exp_label")
self.exp_label.setFont(font)
self.achievement_stats_layout.addWidget(self.exp_label)
self.exp_field = QLabel(self.achievements_group)
- self.exp_field.setObjectName(u"exp_field")
+ self.exp_field.setObjectName("exp_field")
self.achievement_stats_layout.addWidget(self.exp_field)
@@ -126,23 +125,23 @@ def setupUi(self, GameDetails):
self.achievements_layout.addLayout(self.achievement_stats_layout)
self.achievements_toolbox = QToolBox(self.achievements_group)
- self.achievements_toolbox.setObjectName(u"achievements_toolbox")
+ self.achievements_toolbox.setObjectName("achievements_toolbox")
self.ach_progress_page = QWidget()
- self.ach_progress_page.setObjectName(u"ach_progress_page")
+ self.ach_progress_page.setObjectName("ach_progress_page")
self.ach_progress_page.setGeometry(QRect(0, 0, 274, 417))
- self.achievements_toolbox.addItem(self.ach_progress_page, u"In progress")
+ self.achievements_toolbox.addItem(self.ach_progress_page, "In progress")
self.ach_completed_page = QWidget()
- self.ach_completed_page.setObjectName(u"ach_completed_page")
- self.ach_completed_page.setGeometry(QRect(0, 0, 274, 371))
- self.achievements_toolbox.addItem(self.ach_completed_page, u"Completed")
+ self.ach_completed_page.setObjectName("ach_completed_page")
+ self.ach_completed_page.setGeometry(QRect(0, 0, 274, 417))
+ self.achievements_toolbox.addItem(self.ach_completed_page, "Completed")
self.ach_uninitiated_page = QWidget()
- self.ach_uninitiated_page.setObjectName(u"ach_uninitiated_page")
- self.ach_uninitiated_page.setGeometry(QRect(0, 0, 274, 371))
- self.achievements_toolbox.addItem(self.ach_uninitiated_page, u"Uninitiated")
+ self.ach_uninitiated_page.setObjectName("ach_uninitiated_page")
+ self.ach_uninitiated_page.setGeometry(QRect(0, 0, 274, 417))
+ self.achievements_toolbox.addItem(self.ach_uninitiated_page, "Uninitiated")
self.ach_hidden_page = QWidget()
- self.ach_hidden_page.setObjectName(u"ach_hidden_page")
- self.ach_hidden_page.setGeometry(QRect(0, 0, 274, 371))
- self.achievements_toolbox.addItem(self.ach_hidden_page, u"Hidden")
+ self.ach_hidden_page.setObjectName("ach_hidden_page")
+ self.ach_hidden_page.setGeometry(QRect(0, 0, 274, 417))
+ self.achievements_toolbox.addItem(self.ach_hidden_page, "Hidden")
self.achievements_layout.addWidget(self.achievements_toolbox)
@@ -150,19 +149,19 @@ def setupUi(self, GameDetails):
self.right_layout.addWidget(self.achievements_group, 0, 1, 2, 1)
self.details_widget = QWidget(GameDetails)
- self.details_widget.setObjectName(u"details_widget")
+ self.details_widget.setObjectName("details_widget")
sizePolicy.setHeightForWidth(self.details_widget.sizePolicy().hasHeightForWidth())
self.details_widget.setSizePolicy(sizePolicy)
self.details_widget.setMinimumSize(QSize(450, 0))
self.details_layout = QFormLayout(self.details_widget)
- self.details_layout.setObjectName(u"details_layout")
+ self.details_layout.setObjectName("details_layout")
self.details_layout.setFieldGrowthPolicy(QFormLayout.FieldGrowthPolicy.AllNonFixedFieldsGrow)
self.details_layout.setLabelAlignment(Qt.AlignmentFlag.AlignRight|Qt.AlignmentFlag.AlignTrailing|Qt.AlignmentFlag.AlignVCenter)
self.details_layout.setHorizontalSpacing(12)
self.details_layout.setVerticalSpacing(12)
self.details_layout.setContentsMargins(12, 0, 0, 0)
self.dev_label = QLabel(self.details_widget)
- self.dev_label.setObjectName(u"dev_label")
+ self.dev_label.setObjectName("dev_label")
sizePolicy2 = QSizePolicy(QSizePolicy.Policy.Fixed, QSizePolicy.Policy.Preferred)
sizePolicy2.setHorizontalStretch(0)
sizePolicy2.setVerticalStretch(0)
@@ -174,14 +173,14 @@ def setupUi(self, GameDetails):
self.details_layout.setWidget(0, QFormLayout.ItemRole.LabelRole, self.dev_label)
self.dev = QLabel(self.details_widget)
- self.dev.setObjectName(u"dev")
- self.dev.setText(u"error")
+ self.dev.setObjectName("dev")
+ self.dev.setText("dev_error")
self.dev.setTextInteractionFlags(Qt.TextInteractionFlag.LinksAccessibleByMouse|Qt.TextInteractionFlag.TextSelectableByMouse)
self.details_layout.setWidget(0, QFormLayout.ItemRole.FieldRole, self.dev)
self.app_name_label = QLabel(self.details_widget)
- self.app_name_label.setObjectName(u"app_name_label")
+ self.app_name_label.setObjectName("app_name_label")
sizePolicy2.setHeightForWidth(self.app_name_label.sizePolicy().hasHeightForWidth())
self.app_name_label.setSizePolicy(sizePolicy2)
self.app_name_label.setFont(font)
@@ -190,14 +189,14 @@ def setupUi(self, GameDetails):
self.details_layout.setWidget(1, QFormLayout.ItemRole.LabelRole, self.app_name_label)
self.app_name = QLabel(self.details_widget)
- self.app_name.setObjectName(u"app_name")
- self.app_name.setText(u"error")
+ self.app_name.setObjectName("app_name")
+ self.app_name.setText("app_name_error")
self.app_name.setTextInteractionFlags(Qt.TextInteractionFlag.LinksAccessibleByMouse|Qt.TextInteractionFlag.TextSelectableByMouse)
self.details_layout.setWidget(1, QFormLayout.ItemRole.FieldRole, self.app_name)
self.version_label = QLabel(self.details_widget)
- self.version_label.setObjectName(u"version_label")
+ self.version_label.setObjectName("version_label")
sizePolicy2.setHeightForWidth(self.version_label.sizePolicy().hasHeightForWidth())
self.version_label.setSizePolicy(sizePolicy2)
self.version_label.setFont(font)
@@ -205,15 +204,8 @@ def setupUi(self, GameDetails):
self.details_layout.setWidget(2, QFormLayout.ItemRole.LabelRole, self.version_label)
- self.version = QLabel(self.details_widget)
- self.version.setObjectName(u"version")
- self.version.setText(u"error")
- self.version.setTextInteractionFlags(Qt.TextInteractionFlag.LinksAccessibleByMouse|Qt.TextInteractionFlag.TextSelectableByMouse)
-
- self.details_layout.setWidget(2, QFormLayout.ItemRole.FieldRole, self.version)
-
self.grade_label = QLabel(self.details_widget)
- self.grade_label.setObjectName(u"grade_label")
+ self.grade_label.setObjectName("grade_label")
sizePolicy2.setHeightForWidth(self.grade_label.sizePolicy().hasHeightForWidth())
self.grade_label.setSizePolicy(sizePolicy2)
self.grade_label.setFont(font)
@@ -222,30 +214,29 @@ def setupUi(self, GameDetails):
self.details_layout.setWidget(3, QFormLayout.ItemRole.LabelRole, self.grade_label)
self.grade = QLabel(self.details_widget)
- self.grade.setObjectName(u"grade")
- self.grade.setText(u"error")
+ self.grade.setObjectName("grade")
+ self.grade.setText("grade_error")
self.grade.setTextInteractionFlags(Qt.TextInteractionFlag.LinksAccessibleByMouse|Qt.TextInteractionFlag.TextSelectableByMouse)
self.details_layout.setWidget(3, QFormLayout.ItemRole.FieldRole, self.grade)
- self.install_size_label = QLabel(self.details_widget)
- self.install_size_label.setObjectName(u"install_size_label")
- sizePolicy2.setHeightForWidth(self.install_size_label.sizePolicy().hasHeightForWidth())
- self.install_size_label.setSizePolicy(sizePolicy2)
- self.install_size_label.setFont(font)
- self.install_size_label.setAlignment(Qt.AlignmentFlag.AlignRight|Qt.AlignmentFlag.AlignTrailing|Qt.AlignmentFlag.AlignVCenter)
+ self.platform_label = QLabel(self.details_widget)
+ self.platform_label.setObjectName("platform_label")
+ sizePolicy2.setHeightForWidth(self.platform_label.sizePolicy().hasHeightForWidth())
+ self.platform_label.setSizePolicy(sizePolicy2)
+ self.platform_label.setFont(font)
+ self.platform_label.setAlignment(Qt.AlignmentFlag.AlignRight|Qt.AlignmentFlag.AlignTrailing|Qt.AlignmentFlag.AlignVCenter)
- self.details_layout.setWidget(4, QFormLayout.ItemRole.LabelRole, self.install_size_label)
+ self.details_layout.setWidget(4, QFormLayout.ItemRole.LabelRole, self.platform_label)
- self.install_size = QLabel(self.details_widget)
- self.install_size.setObjectName(u"install_size")
- self.install_size.setText(u"error")
- self.install_size.setTextInteractionFlags(Qt.TextInteractionFlag.LinksAccessibleByMouse|Qt.TextInteractionFlag.TextSelectableByMouse)
+ self.platform = QLabel(self.details_widget)
+ self.platform.setObjectName("platform")
+ self.platform.setText("platform_error")
- self.details_layout.setWidget(4, QFormLayout.ItemRole.FieldRole, self.install_size)
+ self.details_layout.setWidget(4, QFormLayout.ItemRole.FieldRole, self.platform)
self.install_path_label = QLabel(self.details_widget)
- self.install_path_label.setObjectName(u"install_path_label")
+ self.install_path_label.setObjectName("install_path_label")
sizePolicy2.setHeightForWidth(self.install_path_label.sizePolicy().hasHeightForWidth())
self.install_path_label.setSizePolicy(sizePolicy2)
self.install_path_label.setFont(font)
@@ -254,30 +245,31 @@ def setupUi(self, GameDetails):
self.details_layout.setWidget(5, QFormLayout.ItemRole.LabelRole, self.install_path_label)
self.install_path = QLabel(self.details_widget)
- self.install_path.setObjectName(u"install_path")
- self.install_path.setText(u"error")
+ self.install_path.setObjectName("install_path")
+ self.install_path.setText("install_path_error")
self.install_path.setWordWrap(True)
self.install_path.setTextInteractionFlags(Qt.TextInteractionFlag.LinksAccessibleByMouse|Qt.TextInteractionFlag.TextSelectableByMouse)
self.details_layout.setWidget(5, QFormLayout.ItemRole.FieldRole, self.install_path)
- self.platform_label = QLabel(self.details_widget)
- self.platform_label.setObjectName(u"platform_label")
- sizePolicy2.setHeightForWidth(self.platform_label.sizePolicy().hasHeightForWidth())
- self.platform_label.setSizePolicy(sizePolicy2)
- self.platform_label.setFont(font)
- self.platform_label.setAlignment(Qt.AlignmentFlag.AlignRight|Qt.AlignmentFlag.AlignTrailing|Qt.AlignmentFlag.AlignVCenter)
+ self.install_size_label = QLabel(self.details_widget)
+ self.install_size_label.setObjectName("install_size_label")
+ sizePolicy2.setHeightForWidth(self.install_size_label.sizePolicy().hasHeightForWidth())
+ self.install_size_label.setSizePolicy(sizePolicy2)
+ self.install_size_label.setFont(font)
+ self.install_size_label.setAlignment(Qt.AlignmentFlag.AlignRight|Qt.AlignmentFlag.AlignTrailing|Qt.AlignmentFlag.AlignVCenter)
- self.details_layout.setWidget(6, QFormLayout.ItemRole.LabelRole, self.platform_label)
+ self.details_layout.setWidget(6, QFormLayout.ItemRole.LabelRole, self.install_size_label)
- self.platform = QLabel(self.details_widget)
- self.platform.setObjectName(u"platform")
- self.platform.setText(u"error")
+ self.install_size = QLabel(self.details_widget)
+ self.install_size.setObjectName("install_size")
+ self.install_size.setText("install_size_error")
+ self.install_size.setTextInteractionFlags(Qt.TextInteractionFlag.LinksAccessibleByMouse|Qt.TextInteractionFlag.TextSelectableByMouse)
- self.details_layout.setWidget(6, QFormLayout.ItemRole.FieldRole, self.platform)
+ self.details_layout.setWidget(6, QFormLayout.ItemRole.FieldRole, self.install_size)
self.actions_label = QLabel(self.details_widget)
- self.actions_label.setObjectName(u"actions_label")
+ self.actions_label.setObjectName("actions_label")
sizePolicy2.setHeightForWidth(self.actions_label.sizePolicy().hasHeightForWidth())
self.actions_label.setSizePolicy(sizePolicy2)
self.actions_label.setFont(font)
@@ -286,40 +278,40 @@ def setupUi(self, GameDetails):
self.details_layout.setWidget(7, QFormLayout.ItemRole.LabelRole, self.actions_label)
self.actions_stack = QStackedWidget(self.details_widget)
- self.actions_stack.setObjectName(u"actions_stack")
+ self.actions_stack.setObjectName("actions_stack")
self.actions_stack.setMinimumSize(QSize(300, 0))
self.installed_page = QWidget()
- self.installed_page.setObjectName(u"installed_page")
+ self.installed_page.setObjectName("installed_page")
self.installed_layout = QVBoxLayout(self.installed_page)
- self.installed_layout.setObjectName(u"installed_layout")
+ self.installed_layout.setObjectName("installed_layout")
self.installed_layout.setContentsMargins(0, 0, 0, 0)
self.modify_button = QPushButton(self.installed_page)
- self.modify_button.setObjectName(u"modify_button")
+ self.modify_button.setObjectName("modify_button")
self.installed_layout.addWidget(self.modify_button)
self.verify_stack = QStackedWidget(self.installed_page)
- self.verify_stack.setObjectName(u"verify_stack")
+ self.verify_stack.setObjectName("verify_stack")
self.verify_button_page = QWidget()
- self.verify_button_page.setObjectName(u"verify_button_page")
+ self.verify_button_page.setObjectName("verify_button_page")
self.verify_page_layout = QHBoxLayout(self.verify_button_page)
self.verify_page_layout.setSpacing(0)
- self.verify_page_layout.setObjectName(u"verify_page_layout")
+ self.verify_page_layout.setObjectName("verify_page_layout")
self.verify_page_layout.setContentsMargins(0, 0, 0, 0)
self.verify_button = QPushButton(self.verify_button_page)
- self.verify_button.setObjectName(u"verify_button")
+ self.verify_button.setObjectName("verify_button")
self.verify_page_layout.addWidget(self.verify_button)
self.verify_stack.addWidget(self.verify_button_page)
self.verify_progress_page = QWidget()
- self.verify_progress_page.setObjectName(u"verify_progress_page")
+ self.verify_progress_page.setObjectName("verify_progress_page")
self.verify_progress_layout = QHBoxLayout(self.verify_progress_page)
self.verify_progress_layout.setSpacing(0)
- self.verify_progress_layout.setObjectName(u"verify_progress_layout")
+ self.verify_progress_layout.setObjectName("verify_progress_layout")
self.verify_progress_layout.setContentsMargins(0, 0, 0, 0)
self.verify_progress = QProgressBar(self.verify_progress_page)
- self.verify_progress.setObjectName(u"verify_progress")
+ self.verify_progress.setObjectName("verify_progress")
self.verify_progress.setValue(24)
self.verify_progress_layout.addWidget(self.verify_progress)
@@ -329,20 +321,20 @@ def setupUi(self, GameDetails):
self.installed_layout.addWidget(self.verify_stack)
self.repair_button = QPushButton(self.installed_page)
- self.repair_button.setObjectName(u"repair_button")
+ self.repair_button.setObjectName("repair_button")
self.installed_layout.addWidget(self.repair_button)
self.move_stack = QStackedWidget(self.installed_page)
- self.move_stack.setObjectName(u"move_stack")
+ self.move_stack.setObjectName("move_stack")
self.move_button_page = QWidget()
- self.move_button_page.setObjectName(u"move_button_page")
+ self.move_button_page.setObjectName("move_button_page")
self.move_button_layout = QHBoxLayout(self.move_button_page)
self.move_button_layout.setSpacing(0)
- self.move_button_layout.setObjectName(u"move_button_layout")
+ self.move_button_layout.setObjectName("move_button_layout")
self.move_button_layout.setContentsMargins(0, 0, 0, 0)
self.move_button = QPushButton(self.move_button_page)
- self.move_button.setObjectName(u"move_button")
+ self.move_button.setObjectName("move_button")
sizePolicy3 = QSizePolicy(QSizePolicy.Policy.Minimum, QSizePolicy.Policy.Fixed)
sizePolicy3.setHorizontalStretch(0)
sizePolicy3.setVerticalStretch(0)
@@ -353,13 +345,13 @@ def setupUi(self, GameDetails):
self.move_stack.addWidget(self.move_button_page)
self.move_progress_page = QWidget()
- self.move_progress_page.setObjectName(u"move_progress_page")
+ self.move_progress_page.setObjectName("move_progress_page")
self.move_progress_layout = QHBoxLayout(self.move_progress_page)
self.move_progress_layout.setSpacing(0)
- self.move_progress_layout.setObjectName(u"move_progress_layout")
+ self.move_progress_layout.setObjectName("move_progress_layout")
self.move_progress_layout.setContentsMargins(0, 0, 0, 0)
self.move_progress = QProgressBar(self.move_progress_page)
- self.move_progress.setObjectName(u"move_progress")
+ self.move_progress.setObjectName("move_progress")
self.move_progress.setValue(24)
self.move_progress_layout.addWidget(self.move_progress)
@@ -369,23 +361,23 @@ def setupUi(self, GameDetails):
self.installed_layout.addWidget(self.move_stack)
self.uninstall_button = QPushButton(self.installed_page)
- self.uninstall_button.setObjectName(u"uninstall_button")
+ self.uninstall_button.setObjectName("uninstall_button")
self.installed_layout.addWidget(self.uninstall_button)
self.actions_stack.addWidget(self.installed_page)
self.uninstalled_page = QWidget()
- self.uninstalled_page.setObjectName(u"uninstalled_page")
+ self.uninstalled_page.setObjectName("uninstalled_page")
self.uninstalled_layout = QVBoxLayout(self.uninstalled_page)
- self.uninstalled_layout.setObjectName(u"uninstalled_layout")
+ self.uninstalled_layout.setObjectName("uninstalled_layout")
self.uninstalled_layout.setContentsMargins(0, 0, 0, 0)
self.install_button = QPushButton(self.uninstalled_page)
- self.install_button.setObjectName(u"install_button")
+ self.install_button.setObjectName("install_button")
self.uninstalled_layout.addWidget(self.install_button)
self.import_button = QPushButton(self.uninstalled_page)
- self.import_button.setObjectName(u"import_button")
+ self.import_button.setObjectName("import_button")
self.uninstalled_layout.addWidget(self.import_button)
@@ -417,34 +409,34 @@ def setupUi(self, GameDetails):
# setupUi
def retranslateUi(self, GameDetails):
- self.tags_group.setTitle(QCoreApplication.translate("GameDetails", u"Tags", None))
+ self.tags_group.setTitle(QCoreApplication.translate("GameDetails", "Tags", None))
#if QT_CONFIG(tooltip)
- self.add_tag_button.setToolTip(QCoreApplication.translate("GameDetails", u"Add custom tag", None))
+ self.add_tag_button.setToolTip(QCoreApplication.translate("GameDetails", "Add custom tag", None))
#endif // QT_CONFIG(tooltip)
- self.add_tag_button.setText(QCoreApplication.translate("GameDetails", u"Add tag", None))
- self.progress_label.setText(QCoreApplication.translate("GameDetails", u"Progress:", None))
- self.progress_field.setText(QCoreApplication.translate("GameDetails", u"progress_error", None))
- self.exp_label.setText(QCoreApplication.translate("GameDetails", u"Experience:", None))
- self.exp_field.setText(QCoreApplication.translate("GameDetails", u"xp_error", None))
- self.achievements_toolbox.setItemText(self.achievements_toolbox.indexOf(self.ach_progress_page), QCoreApplication.translate("GameDetails", u"In progress", None))
- self.achievements_toolbox.setItemText(self.achievements_toolbox.indexOf(self.ach_completed_page), QCoreApplication.translate("GameDetails", u"Completed", None))
- self.achievements_toolbox.setItemText(self.achievements_toolbox.indexOf(self.ach_uninitiated_page), QCoreApplication.translate("GameDetails", u"Uninitiated", None))
- self.achievements_toolbox.setItemText(self.achievements_toolbox.indexOf(self.ach_hidden_page), QCoreApplication.translate("GameDetails", u"Hidden", None))
- self.dev_label.setText(QCoreApplication.translate("GameDetails", u"Developer", None))
- self.app_name_label.setText(QCoreApplication.translate("GameDetails", u"Application name", None))
- self.version_label.setText(QCoreApplication.translate("GameDetails", u"Version", None))
- self.grade_label.setText(QCoreApplication.translate("GameDetails", u"ProtonDB grade", None))
- self.install_size_label.setText(QCoreApplication.translate("GameDetails", u"Installation size", None))
- self.install_path_label.setText(QCoreApplication.translate("GameDetails", u"Installation path", None))
- self.platform_label.setText(QCoreApplication.translate("GameDetails", u"Platform", None))
- self.actions_label.setText(QCoreApplication.translate("GameDetails", u"Actions", None))
- self.modify_button.setText(QCoreApplication.translate("GameDetails", u"Modify", None))
- self.verify_button.setText(QCoreApplication.translate("GameDetails", u"Verify", None))
- self.repair_button.setText(QCoreApplication.translate("GameDetails", u"Repair", None))
- self.move_button.setText(QCoreApplication.translate("GameDetails", u"Move", None))
- self.uninstall_button.setText(QCoreApplication.translate("GameDetails", u"Uninstall", None))
- self.install_button.setText(QCoreApplication.translate("GameDetails", u"Install", None))
- self.import_button.setText(QCoreApplication.translate("GameDetails", u"Import", None))
+ self.add_tag_button.setText(QCoreApplication.translate("GameDetails", "Add tag", None))
+ self.progress_label.setText(QCoreApplication.translate("GameDetails", "Progress:", None))
+ self.progress_field.setText(QCoreApplication.translate("GameDetails", "progress_error", None))
+ self.exp_label.setText(QCoreApplication.translate("GameDetails", "Experience:", None))
+ self.exp_field.setText(QCoreApplication.translate("GameDetails", "xp_error", None))
+ self.achievements_toolbox.setItemText(self.achievements_toolbox.indexOf(self.ach_progress_page), QCoreApplication.translate("GameDetails", "In progress", None))
+ self.achievements_toolbox.setItemText(self.achievements_toolbox.indexOf(self.ach_completed_page), QCoreApplication.translate("GameDetails", "Completed", None))
+ self.achievements_toolbox.setItemText(self.achievements_toolbox.indexOf(self.ach_uninitiated_page), QCoreApplication.translate("GameDetails", "Uninitiated", None))
+ self.achievements_toolbox.setItemText(self.achievements_toolbox.indexOf(self.ach_hidden_page), QCoreApplication.translate("GameDetails", "Hidden", None))
+ self.dev_label.setText(QCoreApplication.translate("GameDetails", "Developer", None))
+ self.app_name_label.setText(QCoreApplication.translate("GameDetails", "Application name", None))
+ self.version_label.setText(QCoreApplication.translate("GameDetails", "Version", None))
+ self.grade_label.setText(QCoreApplication.translate("GameDetails", "ProtonDB grade", None))
+ self.platform_label.setText(QCoreApplication.translate("GameDetails", "Platform", None))
+ self.install_path_label.setText(QCoreApplication.translate("GameDetails", "Installation path", None))
+ self.install_size_label.setText(QCoreApplication.translate("GameDetails", "Installation size", None))
+ self.actions_label.setText(QCoreApplication.translate("GameDetails", "Actions", None))
+ self.modify_button.setText(QCoreApplication.translate("GameDetails", "Modify", None))
+ self.verify_button.setText(QCoreApplication.translate("GameDetails", "Verify", None))
+ self.repair_button.setText(QCoreApplication.translate("GameDetails", "Repair", None))
+ self.move_button.setText(QCoreApplication.translate("GameDetails", "Move", None))
+ self.uninstall_button.setText(QCoreApplication.translate("GameDetails", "Uninstall", None))
+ self.install_button.setText(QCoreApplication.translate("GameDetails", "Install", None))
+ self.import_button.setText(QCoreApplication.translate("GameDetails", "Import", None))
pass
# retranslateUi
diff --git a/rare/ui/components/tabs/library/details/details.ui b/rare/ui/components/tabs/library/details/details.ui
index dde10c075..30afe75ee 100644
--- a/rare/ui/components/tabs/library/details/details.ui
+++ b/rare/ui/components/tabs/library/details/details.ui
@@ -168,7 +168,7 @@
0
0
274
- 371
+ 417
@@ -181,7 +181,7 @@
0
0
274
- 371
+ 417
@@ -194,7 +194,7 @@
0
0
274
- 371
+ 417
@@ -269,7 +269,7 @@
-
- error
+ dev_error
Qt::TextInteractionFlag::LinksAccessibleByMouse|Qt::TextInteractionFlag::TextSelectableByMouse
@@ -300,7 +300,7 @@
-
- error
+ app_name_error
Qt::TextInteractionFlag::LinksAccessibleByMouse|Qt::TextInteractionFlag::TextSelectableByMouse
@@ -328,16 +328,6 @@
- -
-
-
- error
-
-
- Qt::TextInteractionFlag::LinksAccessibleByMouse|Qt::TextInteractionFlag::TextSelectableByMouse
-
-
-
-
@@ -362,7 +352,7 @@
-
- error
+ grade_error
Qt::TextInteractionFlag::LinksAccessibleByMouse|Qt::TextInteractionFlag::TextSelectableByMouse
@@ -370,7 +360,7 @@
-
-
+
0
@@ -383,7 +373,7 @@
- Installation size
+ Platform
Qt::AlignmentFlag::AlignRight|Qt::AlignmentFlag::AlignTrailing|Qt::AlignmentFlag::AlignVCenter
@@ -391,12 +381,9 @@
-
-
+
- error
-
-
- Qt::TextInteractionFlag::LinksAccessibleByMouse|Qt::TextInteractionFlag::TextSelectableByMouse
+ platform_error
@@ -424,7 +411,7 @@
-
- error
+ install_path_error
true
@@ -435,7 +422,7 @@
-
-
+
0
@@ -448,7 +435,7 @@
- Platform
+ Installation size
Qt::AlignmentFlag::AlignRight|Qt::AlignmentFlag::AlignTrailing|Qt::AlignmentFlag::AlignVCenter
@@ -456,9 +443,12 @@
-
-
+
- error
+ install_size_error
+
+
+ Qt::TextInteractionFlag::LinksAccessibleByMouse|Qt::TextInteractionFlag::TextSelectableByMouse
From ee058df032fbfa755baa7a73137249310bb32920 Mon Sep 17 00:00:00 2001
From: loathingKernel <142770+loathingKernel@users.noreply.github.com>
Date: Fri, 22 May 2026 21:32:09 +0300
Subject: [PATCH 2/2] chore: update legendary
---
misc/requirements.in | 2 +-
pyproject.toml | 4 ++--
2 files changed, 3 insertions(+), 3 deletions(-)
diff --git a/misc/requirements.in b/misc/requirements.in
index 8367ea3de..15c87c6a5 100644
--- a/misc/requirements.in
+++ b/misc/requirements.in
@@ -4,7 +4,7 @@ setuptools-scm
requests < 3.0
PySide6-Essentials >= 6.8.1
QtAwesome
-legendary-gl @ https://github.com/RareDevs/legendary/archive/207b859ae4476ae77466d3c922efaba90e093f12.zip
+legendary-gl @ https://github.com/RareDevs/legendary/archive/00faf01af88b36ee6d9eff084df577a3b2c4dd72.zip
orjson
vdf @ https://github.com/solsticegamestudios/vdf/archive/be1f7220238022f8b29fe747f0b643f280bfdb6e.zip
pywin32 ; platform_system == "Windows"
diff --git a/pyproject.toml b/pyproject.toml
index 65f45123a..5149db00a 100644
--- a/pyproject.toml
+++ b/pyproject.toml
@@ -24,9 +24,9 @@ dependencies = [
"requests < 3.0",
"PySide6-Essentials >= 6.8.1",
"QtAwesome",
- "legendary-gl @ git+https://github.com/RareDevs/legendary@207b859ae4476ae77466d3c922efaba90e093f12",
+ "legendary-gl @ git+https://github.com/RareDevs/legendary@00faf01af88b36ee6d9eff084df577a3b2c4dd72",
"orjson",
- "vdf @ https://github.com/solsticegamestudios/vdf/archive/be1f7220238022f8b29fe747f0b643f280bfdb6e.zip",
+ "vdf @ git+https://github.com/solsticegamestudios/vdf/be1f7220238022f8b29fe747f0b643f280bfdb6e",
"pywin32 ; platform_system == 'Windows'",
]