From f925fc3db74aa4cf3e3bf08950e047804edbc2ec Mon Sep 17 00:00:00 2001
From: loathingKernel <142770+loathingKernel@users.noreply.github.com>
Date: Sat, 15 Aug 2026 13:57:33 +0300
Subject: [PATCH 1/2] Game|StoreDetails: repartition space to make the
achievements panel not fully expand on fullscreen
---
.../tabs/library/details/details.py | 2 +-
rare/components/tabs/store/widgets/details.py | 2 +-
.../tabs/library/details/details.py | 174 +++++-----
.../tabs/library/details/details.ui | 305 ++++++++++--------
rare/ui/components/tabs/store/details.py | 52 +--
rare/ui/components/tabs/store/details.ui | 73 +++--
rare/widgets/side_tab.py | 9 +-
7 files changed, 336 insertions(+), 281 deletions(-)
diff --git a/rare/components/tabs/library/details/details.py b/rare/components/tabs/library/details/details.py
index 073d72ec7..327ffd00a 100644
--- a/rare/components/tabs/library/details/details.py
+++ b/rare/components/tabs/library/details/details.py
@@ -128,7 +128,7 @@ def __init__(self, rcore: RareCore, parent=None):
# lk: hide unfinished things
self.ui.description_field.setVisible(False)
- self.ui.requirements_group.setVisible(False)
+ self.ui.requirements_frame.setVisible(False)
@Slot()
def __on_install(self):
diff --git a/rare/components/tabs/store/widgets/details.py b/rare/components/tabs/store/widgets/details.py
index 0abd13753..0391c10f8 100644
--- a/rare/components/tabs/store/widgets/details.py
+++ b/rare/components/tabs/store/widgets/details.py
@@ -183,7 +183,7 @@ def data_received(self, product: DieselProduct):
description = description.replace('### ', '##### ')
description = description.replace('## ', '#### ')
description = description.replace('# ', '### ')
- self.ui.description_label.setMarkdown(description)
+ self.ui.description_field.setMarkdown(description)
self.ui.developer.setText(about.developerAttribution)
# try:
# if isinstance(aboudeveloper, list):
diff --git a/rare/ui/components/tabs/library/details/details.py b/rare/ui/components/tabs/library/details/details.py
index c82270a1d..287d8d816 100644
--- a/rare/ui/components/tabs/library/details/details.py
+++ b/rare/ui/components/tabs/library/details/details.py
@@ -32,7 +32,7 @@ class Ui_GameDetails:
def setupUi(self, GameDetails):
if not GameDetails.objectName():
GameDetails.setObjectName("GameDetails")
- GameDetails.resize(870, 601)
+ GameDetails.resize(928, 626)
GameDetails.setWindowTitle("GameDetails")
self.main_layout = QHBoxLayout(GameDetails)
self.main_layout.setObjectName("main_layout")
@@ -76,77 +76,7 @@ def setupUi(self, GameDetails):
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("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("requirements_layout")
-
- self.right_layout.addWidget(self.requirements_group, 2, 0, 2, 2)
-
- self.achievements_group = QWidget(GameDetails)
- self.achievements_group.setObjectName("achievements_group")
- self.achievements_layout = QVBoxLayout(self.achievements_group)
- self.achievements_layout.setObjectName("achievements_layout")
- self.achievements_layout.setContentsMargins(0, 0, 0, 0)
- self.achievement_stats_layout = QHBoxLayout()
- 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("progress_label")
- font = QFont()
- font.setBold(True)
- self.progress_label.setFont(font)
-
- self.achievement_stats_layout.addWidget(self.progress_label)
-
- self.progress_field = QLabel(self.achievements_group)
- 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("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("exp_field")
-
- self.achievement_stats_layout.addWidget(self.exp_field)
-
- self.achievement_stats_layout.setStretch(1, 1)
- self.achievement_stats_layout.setStretch(3, 1)
-
- self.achievements_layout.addLayout(self.achievement_stats_layout)
-
- self.achievements_toolbox = QToolBox(self.achievements_group)
- self.achievements_toolbox.setObjectName("achievements_toolbox")
- self.ach_progress_page = QWidget()
- 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, "In progress")
- self.ach_completed_page = QWidget()
- 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("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("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)
-
-
- self.right_layout.addWidget(self.achievements_group, 0, 1, 2, 1)
+ self.right_layout.addWidget(self.description_field, 1, 0, 1, 2)
self.details_widget = QWidget(GameDetails)
self.details_widget.setObjectName("details_widget")
@@ -167,6 +97,8 @@ def setupUi(self, GameDetails):
sizePolicy2.setVerticalStretch(0)
sizePolicy2.setHeightForWidth(self.dev_label.sizePolicy().hasHeightForWidth())
self.dev_label.setSizePolicy(sizePolicy2)
+ font = QFont()
+ font.setBold(True)
self.dev_label.setFont(font)
self.dev_label.setAlignment(Qt.AlignmentFlag.AlignRight|Qt.AlignmentFlag.AlignTrailing|Qt.AlignmentFlag.AlignVCenter)
@@ -392,8 +324,88 @@ def setupUi(self, GameDetails):
self.right_layout.addWidget(self.details_widget, 0, 0, 1, 1)
+ self.right_layout_spacer = QSpacerItem(0, 0, QSizePolicy.Policy.Expanding, QSizePolicy.Policy.Minimum)
+
+ self.right_layout.addItem(self.right_layout_spacer, 0, 1, 1, 1)
+
+ self.requirements_frame = QFrame(GameDetails)
+ self.requirements_frame.setObjectName("requirements_frame")
+ sizePolicy.setHeightForWidth(self.requirements_frame.sizePolicy().hasHeightForWidth())
+ self.requirements_frame.setSizePolicy(sizePolicy)
+ self.requirements_frame.setFrameShape(QFrame.Shape.StyledPanel)
+ self.requirements_frame.setFrameShadow(QFrame.Shadow.Sunken)
+ self.requirements_layout = QHBoxLayout(self.requirements_frame)
+ self.requirements_layout.setObjectName("requirements_layout")
+
+ self.right_layout.addWidget(self.requirements_frame, 2, 0, 1, 2, Qt.AlignmentFlag.AlignBottom)
+
+ self.achievements_group = QWidget(GameDetails)
+ self.achievements_group.setObjectName("achievements_group")
+ sizePolicy4 = QSizePolicy(QSizePolicy.Policy.Minimum, QSizePolicy.Policy.Preferred)
+ sizePolicy4.setHorizontalStretch(0)
+ sizePolicy4.setVerticalStretch(0)
+ sizePolicy4.setHeightForWidth(self.achievements_group.sizePolicy().hasHeightForWidth())
+ self.achievements_group.setSizePolicy(sizePolicy4)
+ self.achievements_layout = QVBoxLayout(self.achievements_group)
+ self.achievements_layout.setObjectName("achievements_layout")
+ self.achievements_layout.setContentsMargins(0, 0, 0, 0)
+ self.achievement_stats_layout = QHBoxLayout()
+ 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("progress_label")
+ self.progress_label.setFont(font)
+
+ self.achievement_stats_layout.addWidget(self.progress_label)
+
+ self.progress_field = QLabel(self.achievements_group)
+ 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("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("exp_field")
+
+ self.achievement_stats_layout.addWidget(self.exp_field)
+
+ self.achievement_stats_layout.setStretch(1, 1)
+ self.achievement_stats_layout.setStretch(3, 1)
+
+ self.achievements_layout.addLayout(self.achievement_stats_layout)
+
+ self.achievements_toolbox = QToolBox(self.achievements_group)
+ self.achievements_toolbox.setObjectName("achievements_toolbox")
+ self.ach_progress_page = QWidget()
+ self.ach_progress_page.setObjectName("ach_progress_page")
+ self.ach_progress_page.setGeometry(QRect(0, 0, 297, 472))
+ self.achievements_toolbox.addItem(self.ach_progress_page, "In progress")
+ self.ach_completed_page = QWidget()
+ self.ach_completed_page.setObjectName("ach_completed_page")
+ self.ach_completed_page.setGeometry(QRect(0, 0, 297, 472))
+ self.achievements_toolbox.addItem(self.ach_completed_page, "Completed")
+ self.ach_uninitiated_page = QWidget()
+ self.ach_uninitiated_page.setObjectName("ach_uninitiated_page")
+ self.ach_uninitiated_page.setGeometry(QRect(0, 0, 297, 472))
+ self.achievements_toolbox.addItem(self.ach_uninitiated_page, "Uninitiated")
+ self.ach_hidden_page = QWidget()
+ self.ach_hidden_page.setObjectName("ach_hidden_page")
+ self.ach_hidden_page.setGeometry(QRect(0, 0, 297, 472))
+ self.achievements_toolbox.addItem(self.ach_hidden_page, "Hidden")
+
+ self.achievements_layout.addWidget(self.achievements_toolbox)
+
+
+ self.right_layout.addWidget(self.achievements_group, 0, 2, 3, 1)
+
self.right_layout.setRowStretch(1, 1)
self.right_layout.setColumnStretch(1, 1)
+ self.right_layout.setColumnStretch(2, 2)
self.main_layout.addLayout(self.right_layout)
@@ -401,10 +413,10 @@ def setupUi(self, GameDetails):
self.retranslateUi(GameDetails)
- self.achievements_toolbox.setCurrentIndex(0)
self.actions_stack.setCurrentIndex(1)
self.verify_stack.setCurrentIndex(0)
self.move_stack.setCurrentIndex(0)
+ self.achievements_toolbox.setCurrentIndex(3)
# setupUi
@@ -414,14 +426,6 @@ def retranslateUi(self, GameDetails):
self.add_tag_button.setToolTip(QCoreApplication.translate("GameDetails", "Add custom tag", None))
#endif // QT_CONFIG(tooltip)
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))
@@ -437,5 +441,13 @@ def retranslateUi(self, GameDetails):
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))
+ 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))
# retranslateUi
diff --git a/rare/ui/components/tabs/library/details/details.ui b/rare/ui/components/tabs/library/details/details.ui
index 30afe75ee..695114b15 100644
--- a/rare/ui/components/tabs/library/details/details.ui
+++ b/rare/ui/components/tabs/library/details/details.ui
@@ -6,8 +6,8 @@
0
0
- 870
- 601
+ 928
+ 626
@@ -53,11 +53,11 @@
-
-
+
24
-
-
+
-
@@ -70,142 +70,6 @@
- -
-
-
- QFrame::Shape::StyledPanel
-
-
- QFrame::Shadow::Sunken
-
-
-
-
- -
-
-
-
- 0
-
-
- 0
-
-
- 0
-
-
- 0
-
-
-
-
-
- 0
-
-
- 0
-
-
-
-
-
-
- true
-
-
-
- Progress:
-
-
-
- -
-
-
- progress_error
-
-
-
- -
-
-
-
- true
-
-
-
- Experience:
-
-
-
- -
-
-
- xp_error
-
-
-
-
-
- -
-
-
- 0
-
-
-
-
- 0
- 0
- 274
- 417
-
-
-
- In progress
-
-
-
-
-
- 0
- 0
- 274
- 417
-
-
-
- Completed
-
-
-
-
-
- 0
- 0
- 274
- 417
-
-
-
- Uninitiated
-
-
-
-
-
- 0
- 0
- 274
- 417
-
-
-
- Hidden
-
-
-
-
-
-
-
-
@@ -693,6 +557,167 @@
+ -
+
+
+ Qt::Orientation::Horizontal
+
+
+
+ 0
+ 0
+
+
+
+
+ -
+
+
+
+ 0
+ 0
+
+
+
+ QFrame::Shape::StyledPanel
+
+
+ QFrame::Shadow::Sunken
+
+
+
+
+ -
+
+
+
+ 0
+ 0
+
+
+
+
+ 0
+
+
+ 0
+
+
+ 0
+
+
+ 0
+
+
-
+
+
+ 0
+
+
+ 0
+
+
-
+
+
+
+ true
+
+
+
+ Progress:
+
+
+
+ -
+
+
+ progress_error
+
+
+
+ -
+
+
+
+ true
+
+
+
+ Experience:
+
+
+
+ -
+
+
+ xp_error
+
+
+
+
+
+ -
+
+
+ 3
+
+
+
+
+ 0
+ 0
+ 297
+ 472
+
+
+
+ In progress
+
+
+
+
+
+ 0
+ 0
+ 297
+ 472
+
+
+
+ Completed
+
+
+
+
+
+ 0
+ 0
+ 297
+ 472
+
+
+
+ Uninitiated
+
+
+
+
+
+ 0
+ 0
+ 297
+ 472
+
+
+
+ Hidden
+
+
+
+
+
+
+
diff --git a/rare/ui/components/tabs/store/details.py b/rare/ui/components/tabs/store/details.py
index dd6b35cee..8282c517e 100644
--- a/rare/ui/components/tabs/store/details.py
+++ b/rare/ui/components/tabs/store/details.py
@@ -18,6 +18,7 @@
QLayout,
QPushButton,
QSizePolicy,
+ QSpacerItem,
QTextBrowser,
QVBoxLayout,
QWidget,
@@ -28,7 +29,7 @@ class Ui_StoreDetailsWidget:
def setupUi(self, StoreDetailsWidget):
if not StoreDetailsWidget.objectName():
StoreDetailsWidget.setObjectName("StoreDetailsWidget")
- StoreDetailsWidget.resize(850, 492)
+ StoreDetailsWidget.resize(928, 626)
StoreDetailsWidget.setWindowTitle("StoreDetailsWidget")
self.main_layout = QHBoxLayout(StoreDetailsWidget)
self.main_layout.setObjectName("main_layout")
@@ -53,30 +54,18 @@ def setupUi(self, StoreDetailsWidget):
self.right_layout = QGridLayout()
self.right_layout.setSpacing(24)
self.right_layout.setObjectName("right_layout")
- self.requirements_frame = QFrame(StoreDetailsWidget)
- self.requirements_frame.setObjectName("requirements_frame")
- sizePolicy1 = QSizePolicy(QSizePolicy.Policy.Preferred, QSizePolicy.Policy.Fixed)
- sizePolicy1.setHorizontalStretch(0)
- sizePolicy1.setVerticalStretch(0)
- sizePolicy1.setHeightForWidth(self.requirements_frame.sizePolicy().hasHeightForWidth())
- self.requirements_frame.setSizePolicy(sizePolicy1)
- self.requirements_frame.setFrameShape(QFrame.Shape.StyledPanel)
- self.requirements_frame.setFrameShadow(QFrame.Shadow.Sunken)
- self.requirements_layout = QHBoxLayout(self.requirements_frame)
- self.requirements_layout.setObjectName("requirements_layout")
- self.requirements_layout.setContentsMargins(0, 0, 0, 0)
-
- self.right_layout.addWidget(self.requirements_frame, 2, 0, 1, 2, Qt.AlignmentFlag.AlignBottom)
-
- self.description_label = QTextBrowser(StoreDetailsWidget)
- self.description_label.setObjectName("description_label")
- self.description_label.setMinimumSize(QSize(450, 0))
- self.description_label.setOpenExternalLinks(True)
+ self.description_field = QTextBrowser(StoreDetailsWidget)
+ self.description_field.setObjectName("description_field")
+ self.description_field.setMinimumSize(QSize(450, 0))
+ self.description_field.setOpenExternalLinks(True)
- self.right_layout.addWidget(self.description_label, 1, 0, 1, 1)
+ self.right_layout.addWidget(self.description_field, 1, 0, 1, 2)
self.details_widget = QWidget(StoreDetailsWidget)
self.details_widget.setObjectName("details_widget")
+ sizePolicy1 = QSizePolicy(QSizePolicy.Policy.Preferred, QSizePolicy.Policy.Fixed)
+ sizePolicy1.setHorizontalStretch(0)
+ sizePolicy1.setVerticalStretch(0)
sizePolicy1.setHeightForWidth(self.details_widget.sizePolicy().hasHeightForWidth())
self.details_widget.setSizePolicy(sizePolicy1)
self.details_widget.setMinimumSize(QSize(450, 0))
@@ -235,8 +224,29 @@ def setupUi(self, StoreDetailsWidget):
self.right_layout.addWidget(self.details_widget, 0, 0, 1, 1)
+ self.right_layout_spacer = QSpacerItem(0, 0, QSizePolicy.Policy.Expanding, QSizePolicy.Policy.Minimum)
+
+ self.right_layout.addItem(self.right_layout_spacer, 0, 1, 1, 1)
+
+ self.requirements_frame = QFrame(StoreDetailsWidget)
+ self.requirements_frame.setObjectName("requirements_frame")
+ sizePolicy1.setHeightForWidth(self.requirements_frame.sizePolicy().hasHeightForWidth())
+ self.requirements_frame.setSizePolicy(sizePolicy1)
+ self.requirements_frame.setFrameShape(QFrame.Shape.StyledPanel)
+ self.requirements_frame.setFrameShadow(QFrame.Shadow.Sunken)
+ self.requirements_layout = QHBoxLayout(self.requirements_frame)
+ self.requirements_layout.setObjectName("requirements_layout")
+
+ self.right_layout.addWidget(self.requirements_frame, 2, 0, 1, 2, Qt.AlignmentFlag.AlignBottom)
+
+ self.spare_widget = QWidget(StoreDetailsWidget)
+ self.spare_widget.setObjectName("spare_widget")
+
+ self.right_layout.addWidget(self.spare_widget, 0, 2, 3, 1)
+
self.right_layout.setRowStretch(1, 1)
self.right_layout.setColumnStretch(1, 1)
+ self.right_layout.setColumnStretch(2, 2)
self.main_layout.addLayout(self.right_layout)
diff --git a/rare/ui/components/tabs/store/details.ui b/rare/ui/components/tabs/store/details.ui
index 15f2b7e00..9fd91032d 100644
--- a/rare/ui/components/tabs/store/details.ui
+++ b/rare/ui/components/tabs/store/details.ui
@@ -6,8 +6,8 @@
0
0
- 850
- 492
+ 928
+ 626
@@ -41,42 +41,12 @@
-
-
+
24
-
-
-
-
-
- 0
- 0
-
-
-
- QFrame::Shape::StyledPanel
-
-
- QFrame::Shadow::Sunken
-
-
-
- 0
-
-
- 0
-
-
- 0
-
-
- 0
-
-
-
-
- -
-
+
-
+
450
@@ -397,6 +367,39 @@
+ -
+
+
+ Qt::Orientation::Horizontal
+
+
+
+ 0
+ 0
+
+
+
+
+ -
+
+
+
+ 0
+ 0
+
+
+
+ QFrame::Shape::StyledPanel
+
+
+ QFrame::Shadow::Sunken
+
+
+
+
+ -
+
+
diff --git a/rare/widgets/side_tab.py b/rare/widgets/side_tab.py
index 6581737d9..2550bb4f9 100644
--- a/rare/widgets/side_tab.py
+++ b/rare/widgets/side_tab.py
@@ -1,3 +1,4 @@
+from abc import abstractmethod
from logging import getLogger
from typing import Protocol
@@ -65,12 +66,15 @@ class SideTabContents:
class SideTabContentsProtocol(Protocol):
implements_scrollarea: bool
+ @abstractmethod
def layout(self) -> QLayout:
pass
+ @abstractmethod
def set_title(self) -> Signal:
pass
+ @abstractmethod
def sizeHint(self) -> QSize:
pass
@@ -80,7 +84,8 @@ def __init__(
self,
widget: QWidget | SideTabContentsProtocol,
title: str = '',
- parent: QWidget = None,
+ *,
+ parent: QWidget | None = None,
):
super(SideTabContainer, self).__init__(parent=parent)
self.title = QLabel(self)
@@ -120,7 +125,7 @@ def setTitle(self, text: str) -> None:
class SideTabWidget(QTabWidget):
back_clicked = Signal()
- def __init__(self, show_back: bool = False, padding: int = -1, parent=None):
+ def __init__(self, show_back: bool = False, padding: int = -1, *, parent: QWidget | None = None):
super(SideTabWidget, self).__init__(parent=parent)
self.setTabBar(SideTabBar(padding=padding, parent=self))
self.setDocumentMode(True)
From 5f51a68c1e304651594c6e1235c942ab6351f6a7 Mon Sep 17 00:00:00 2001
From: loathingKernel <142770+loathingKernel@users.noreply.github.com>
Date: Sun, 16 Aug 2026 17:39:51 +0300
Subject: [PATCH 2/2] workflows: fix artifact upload to release
Because of setting `archive: false` in actions/upload-artifact
we need to also set `skip-decompress: true` in actions/download-artifact,
otherwise the zip archives will be extracted.
---
.github/workflows/_job_publish.yml | 1 +
1 file changed, 1 insertion(+)
diff --git a/.github/workflows/_job_publish.yml b/.github/workflows/_job_publish.yml
index 6adf496c8..6b6dc113e 100644
--- a/.github/workflows/_job_publish.yml
+++ b/.github/workflows/_job_publish.yml
@@ -36,6 +36,7 @@ jobs:
if: ${{ matrix.file != '' }}
with:
name: ${{ matrix.file }}
+ skip-decompress: true
- name: Upload ${{ matrix.file }} to release
if: ${{ matrix.file != '' }}
shell: bash