diff --git a/rare/components/tabs/downloads/__init__.py b/rare/components/tabs/downloads/__init__.py
index c27b497b..33aae173 100644
--- a/rare/components/tabs/downloads/__init__.py
+++ b/rare/components/tabs/downloads/__init__.py
@@ -193,7 +193,7 @@ class DownloadsTab(QWidget):
self.update_title.emit(self.queues_count())
- # lk: if we finished a repair and we have a disabled update, re-enable it
+ # lk: if we finished a repair, and we have a disabled update, re-enable it
if self.updates_group.contains(result.item.options.app_name):
self.updates_group.set_widget_enabled(result.item.options.app_name, True)
diff --git a/rare/components/tabs/downloads/widgets.py b/rare/components/tabs/downloads/widgets.py
index ed1f5e66..ff2fe67b 100644
--- a/rare/components/tabs/downloads/widgets.py
+++ b/rare/components/tabs/downloads/widgets.py
@@ -10,7 +10,7 @@ from rare.models.install import InstallQueueItemModel, InstallOptionsModel
from rare.shared import ImageManagerSingleton
from rare.ui.components.tabs.downloads.download_widget import Ui_DownloadWidget
from rare.ui.components.tabs.downloads.info_widget import Ui_InfoWidget
-from rare.utils.misc import get_size, widget_object_name
+from rare.utils.misc import get_size, widget_object_name, elide_text
from rare.widgets.image_widget import ImageWidget, ImageSize
@@ -30,8 +30,10 @@ class InfoWidget(QWidget):
self.image_manager = ImageManagerSingleton()
self.ui.title.setText(game.app_title)
- self.ui.remote_version.setText(old_igame.version if old_igame else game.app_version(igame.platform))
- self.ui.local_version.setText(igame.version)
+ self.ui.remote_version.setText(
+ elide_text(self.ui.remote_version, old_igame.version if old_igame else game.app_version(igame.platform))
+ )
+ self.ui.local_version.setText(elide_text(self.ui.local_version, igame.version))
self.ui.dl_size.setText(get_size(analysis.dl_size) if analysis else "")
self.ui.install_size.setText(get_size(analysis.install_size) if analysis else "")
diff --git a/rare/ui/components/tabs/downloads/info_widget.py b/rare/ui/components/tabs/downloads/info_widget.py
index 62c83ec4..8329b005 100644
--- a/rare/ui/components/tabs/downloads/info_widget.py
+++ b/rare/ui/components/tabs/downloads/info_widget.py
@@ -24,21 +24,22 @@ class Ui_InfoWidget(object):
self.info_widget_layout = QtWidgets.QGridLayout(InfoWidget)
self.info_widget_layout.setContentsMargins(0, 0, 0, 0)
self.info_widget_layout.setObjectName("info_widget_layout")
- self.install_size = QtWidgets.QLabel(InfoWidget)
- self.install_size.setMinimumSize(QtCore.QSize(160, 0))
- self.install_size.setText("install_size")
- self.install_size.setObjectName("install_size")
- self.info_widget_layout.addWidget(self.install_size, 2, 4, 1, 1)
- self.remote_version = QtWidgets.QLabel(InfoWidget)
- self.remote_version.setMinimumSize(QtCore.QSize(160, 0))
- self.remote_version.setText("remote_version")
- self.remote_version.setObjectName("remote_version")
- self.info_widget_layout.addWidget(self.remote_version, 1, 2, 1, 1)
- self.local_version = QtWidgets.QLabel(InfoWidget)
- self.local_version.setMinimumSize(QtCore.QSize(160, 0))
- self.local_version.setText("local_version")
- self.local_version.setObjectName("local_version")
- self.info_widget_layout.addWidget(self.local_version, 2, 2, 1, 1)
+ self.dl_size_label = QtWidgets.QLabel(InfoWidget)
+ font = QtGui.QFont()
+ font.setBold(True)
+ font.setWeight(75)
+ self.dl_size_label.setFont(font)
+ self.dl_size_label.setAlignment(QtCore.Qt.AlignRight|QtCore.Qt.AlignTrailing|QtCore.Qt.AlignVCenter)
+ self.dl_size_label.setObjectName("dl_size_label")
+ self.info_widget_layout.addWidget(self.dl_size_label, 1, 3, 1, 1)
+ self.title = QtWidgets.QLabel(InfoWidget)
+ font = QtGui.QFont()
+ font.setBold(True)
+ font.setWeight(75)
+ self.title.setFont(font)
+ self.title.setText("title")
+ self.title.setObjectName("title")
+ self.info_widget_layout.addWidget(self.title, 0, 1, 1, 4)
self.local_version_label = QtWidgets.QLabel(InfoWidget)
font = QtGui.QFont()
font.setBold(True)
@@ -47,14 +48,6 @@ class Ui_InfoWidget(object):
self.local_version_label.setAlignment(QtCore.Qt.AlignRight|QtCore.Qt.AlignTrailing|QtCore.Qt.AlignVCenter)
self.local_version_label.setObjectName("local_version_label")
self.info_widget_layout.addWidget(self.local_version_label, 2, 1, 1, 1)
- self.remote_version_label = QtWidgets.QLabel(InfoWidget)
- font = QtGui.QFont()
- font.setBold(True)
- font.setWeight(75)
- self.remote_version_label.setFont(font)
- self.remote_version_label.setAlignment(QtCore.Qt.AlignRight|QtCore.Qt.AlignTrailing|QtCore.Qt.AlignVCenter)
- self.remote_version_label.setObjectName("remote_version_label")
- self.info_widget_layout.addWidget(self.remote_version_label, 1, 1, 1, 1)
self.image_layout = QtWidgets.QVBoxLayout()
self.image_layout.setSizeConstraint(QtWidgets.QLayout.SetFixedSize)
self.image_layout.setObjectName("image_layout")
@@ -67,39 +60,47 @@ class Ui_InfoWidget(object):
self.install_size_label.setAlignment(QtCore.Qt.AlignRight|QtCore.Qt.AlignTrailing|QtCore.Qt.AlignVCenter)
self.install_size_label.setObjectName("install_size_label")
self.info_widget_layout.addWidget(self.install_size_label, 2, 3, 1, 1)
- self.dl_size_label = QtWidgets.QLabel(InfoWidget)
- font = QtGui.QFont()
- font.setBold(True)
- font.setWeight(75)
- self.dl_size_label.setFont(font)
- self.dl_size_label.setAlignment(QtCore.Qt.AlignRight|QtCore.Qt.AlignTrailing|QtCore.Qt.AlignVCenter)
- self.dl_size_label.setObjectName("dl_size_label")
- self.info_widget_layout.addWidget(self.dl_size_label, 1, 3, 1, 1)
+ self.install_size = QtWidgets.QLabel(InfoWidget)
+ self.install_size.setMinimumSize(QtCore.QSize(160, 0))
+ self.install_size.setText("install_size")
+ self.install_size.setObjectName("install_size")
+ self.info_widget_layout.addWidget(self.install_size, 2, 4, 1, 1)
+ spacerItem = QtWidgets.QSpacerItem(40, 20, QtWidgets.QSizePolicy.Expanding, QtWidgets.QSizePolicy.Minimum)
+ self.info_widget_layout.addItem(spacerItem, 0, 5, 3, 1)
self.dl_size = QtWidgets.QLabel(InfoWidget)
self.dl_size.setMinimumSize(QtCore.QSize(160, 0))
self.dl_size.setText("dl_size")
self.dl_size.setObjectName("dl_size")
self.info_widget_layout.addWidget(self.dl_size, 1, 4, 1, 1)
- spacerItem = QtWidgets.QSpacerItem(40, 20, QtWidgets.QSizePolicy.Expanding, QtWidgets.QSizePolicy.Minimum)
- self.info_widget_layout.addItem(spacerItem, 0, 5, 3, 1)
- self.title = QtWidgets.QLabel(InfoWidget)
+ self.remote_version_label = QtWidgets.QLabel(InfoWidget)
font = QtGui.QFont()
font.setBold(True)
font.setWeight(75)
- self.title.setFont(font)
- self.title.setText("title")
- self.title.setObjectName("title")
- self.info_widget_layout.addWidget(self.title, 0, 1, 1, 4)
- self.info_widget_layout.setColumnStretch(5, 1)
+ self.remote_version_label.setFont(font)
+ self.remote_version_label.setAlignment(QtCore.Qt.AlignRight|QtCore.Qt.AlignTrailing|QtCore.Qt.AlignVCenter)
+ self.remote_version_label.setObjectName("remote_version_label")
+ self.info_widget_layout.addWidget(self.remote_version_label, 1, 1, 1, 1)
+ self.local_version = QtWidgets.QLabel(InfoWidget)
+ self.local_version.setMinimumSize(QtCore.QSize(160, 0))
+ self.local_version.setMaximumSize(QtCore.QSize(160, 16777215))
+ self.local_version.setText("local_version")
+ self.local_version.setObjectName("local_version")
+ self.info_widget_layout.addWidget(self.local_version, 2, 2, 1, 1)
+ self.remote_version = QtWidgets.QLabel(InfoWidget)
+ self.remote_version.setMinimumSize(QtCore.QSize(160, 0))
+ self.remote_version.setMaximumSize(QtCore.QSize(160, 16777215))
+ self.remote_version.setText("remote_version")
+ self.remote_version.setObjectName("remote_version")
+ self.info_widget_layout.addWidget(self.remote_version, 1, 2, 1, 1)
self.retranslateUi(InfoWidget)
def retranslateUi(self, InfoWidget):
_translate = QtCore.QCoreApplication.translate
- self.local_version_label.setText(_translate("InfoWidget", "Local version"))
- self.remote_version_label.setText(_translate("InfoWidget", "Remote version"))
- self.install_size_label.setText(_translate("InfoWidget", "Installed size"))
self.dl_size_label.setText(_translate("InfoWidget", "Download size"))
+ self.local_version_label.setText(_translate("InfoWidget", "Local version"))
+ self.install_size_label.setText(_translate("InfoWidget", "Installed size"))
+ self.remote_version_label.setText(_translate("InfoWidget", "Remote version"))
if __name__ == "__main__":
diff --git a/rare/ui/components/tabs/downloads/info_widget.ui b/rare/ui/components/tabs/downloads/info_widget.ui
index 34c3d5d1..e7a16364 100644
--- a/rare/ui/components/tabs/downloads/info_widget.ui
+++ b/rare/ui/components/tabs/downloads/info_widget.ui
@@ -19,7 +19,7 @@
InfoWidget
-
+
0
@@ -32,42 +32,32 @@
0
- -
-
-
-
- 160
- 0
-
+
-
+
+
+
+ 75
+ true
+
- install_size
+ Download size
+
+
+ Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter
- -
-
-
-
- 160
- 0
-
+
-
+
+
+
+ 75
+ true
+
- remote_version
-
-
-
- -
-
-
-
- 160
- 0
-
-
-
- local_version
+ title
@@ -87,22 +77,6 @@
- -
-
-
-
- 75
- true
-
-
-
- Remote version
-
-
- Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter
-
-
-
-
@@ -126,24 +100,8 @@
- -
-
-
-
- 75
- true
-
-
-
- Download size
-
-
- Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter
-
-
-
- -
-
+
-
+
160
@@ -151,7 +109,7 @@
- dl_size
+ install_size
@@ -168,8 +126,21 @@
- -
-
+
-
+
+
+
+ 160
+ 0
+
+
+
+ dl_size
+
+
+
+ -
+
75
@@ -177,7 +148,48 @@
- title
+ Remote version
+
+
+ Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter
+
+
+
+ -
+
+
+
+ 160
+ 0
+
+
+
+
+ 160
+ 16777215
+
+
+
+ local_version
+
+
+
+ -
+
+
+
+ 160
+ 0
+
+
+
+
+ 160
+ 16777215
+
+
+
+ remote_version
diff --git a/rare/utils/misc.py b/rare/utils/misc.py
index 29356dc4..d69bf12e 100644
--- a/rare/utils/misc.py
+++ b/rare/utils/misc.py
@@ -14,10 +14,10 @@ from PyQt5.QtCore import (
QSettings,
QStandardPaths,
QFile,
- QDir,
+ QDir, Qt,
)
-from PyQt5.QtGui import QPalette, QColor, QImage
-from PyQt5.QtWidgets import qApp, QStyleFactory, QWidget
+from PyQt5.QtGui import QPalette, QColor, QImage, QFontMetrics
+from PyQt5.QtWidgets import qApp, QStyleFactory, QWidget, QLabel
from legendary.core import LegendaryCore
from legendary.models.game import Game
from requests.exceptions import HTTPError
@@ -353,4 +353,9 @@ def icon(icn_str: str, fallback: str = None, **kwargs):
def widget_object_name(widget: QWidget, app_name: str) -> str:
- return f"{type(widget).__name__}_{app_name}"
\ No newline at end of file
+ return f"{type(widget).__name__}_{app_name}"
+
+
+def elide_text(label: QLabel, text: str) -> str:
+ metrics = QFontMetrics(label.font())
+ return metrics.elidedText(text, Qt.ElideRight, label.width())