diff --git a/rare/ui/components/tabs/downloads/download_widget.py b/rare/ui/components/tabs/downloads/download_widget.py
new file mode 100644
index 00000000..1ef498a0
--- /dev/null
+++ b/rare/ui/components/tabs/downloads/download_widget.py
@@ -0,0 +1,95 @@
+# -*- coding: utf-8 -*-
+
+# Form implementation generated from reading ui file 'rare/ui/components/tabs/downloads/download_widget.ui'
+#
+# 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.
+
+
+from PyQt5 import QtCore, QtGui, QtWidgets
+
+
+class Ui_DownloadWidget(object):
+ def setupUi(self, DownloadWidget):
+ DownloadWidget.setObjectName("DownloadWidget")
+ DownloadWidget.resize(574, 70)
+ DownloadWidget.setWindowTitle("DownloadWidget")
+ DownloadWidget.setFrameShape(QtWidgets.QFrame.StyledPanel)
+ self.download_widget_layout = QtWidgets.QHBoxLayout(DownloadWidget)
+ self.download_widget_layout.setContentsMargins(0, 0, 0, 0)
+ self.download_widget_layout.setObjectName("download_widget_layout")
+ self.move_buttons = QtWidgets.QWidget(DownloadWidget)
+ self.move_buttons.setObjectName("move_buttons")
+ self.move_buttons_layout = QtWidgets.QVBoxLayout(self.move_buttons)
+ self.move_buttons_layout.setContentsMargins(0, 0, 0, 0)
+ self.move_buttons_layout.setObjectName("move_buttons_layout")
+ self.move_up_button = QtWidgets.QPushButton(self.move_buttons)
+ sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Fixed, QtWidgets.QSizePolicy.Fixed)
+ sizePolicy.setHorizontalStretch(0)
+ sizePolicy.setVerticalStretch(0)
+ sizePolicy.setHeightForWidth(self.move_up_button.sizePolicy().hasHeightForWidth())
+ self.move_up_button.setSizePolicy(sizePolicy)
+ self.move_up_button.setText("")
+ self.move_up_button.setProperty("isSquare", 1)
+ self.move_up_button.setObjectName("move_up_button")
+ self.move_buttons_layout.addWidget(self.move_up_button, 0, QtCore.Qt.AlignLeft|QtCore.Qt.AlignTop)
+ self.move_down_button = QtWidgets.QPushButton(self.move_buttons)
+ sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Fixed, QtWidgets.QSizePolicy.Fixed)
+ sizePolicy.setHorizontalStretch(0)
+ sizePolicy.setVerticalStretch(0)
+ sizePolicy.setHeightForWidth(self.move_down_button.sizePolicy().hasHeightForWidth())
+ self.move_down_button.setSizePolicy(sizePolicy)
+ self.move_down_button.setText("")
+ self.move_down_button.setProperty("isSquare", 1)
+ self.move_down_button.setObjectName("move_down_button")
+ self.move_buttons_layout.addWidget(self.move_down_button, 0, QtCore.Qt.AlignLeft|QtCore.Qt.AlignBottom)
+ self.download_widget_layout.addWidget(self.move_buttons)
+ self.info_layout = QtWidgets.QHBoxLayout()
+ self.info_layout.setObjectName("info_layout")
+ self.download_widget_layout.addLayout(self.info_layout)
+ self.queue_buttons = QtWidgets.QWidget(DownloadWidget)
+ self.queue_buttons.setObjectName("queue_buttons")
+ self.queue_buttons_layout = QtWidgets.QVBoxLayout(self.queue_buttons)
+ self.queue_buttons_layout.setContentsMargins(0, 0, 0, 0)
+ self.queue_buttons_layout.setObjectName("queue_buttons_layout")
+ self.remove_button = QtWidgets.QPushButton(self.queue_buttons)
+ self.remove_button.setObjectName("remove_button")
+ self.queue_buttons_layout.addWidget(self.remove_button, 0, QtCore.Qt.AlignTop)
+ self.force_button = QtWidgets.QPushButton(self.queue_buttons)
+ self.force_button.setObjectName("force_button")
+ self.queue_buttons_layout.addWidget(self.force_button, 0, QtCore.Qt.AlignTop)
+ self.download_widget_layout.addWidget(self.queue_buttons)
+ self.update_buttons = QtWidgets.QWidget(DownloadWidget)
+ self.update_buttons.setObjectName("update_buttons")
+ self.update_buttons_layout = QtWidgets.QVBoxLayout(self.update_buttons)
+ self.update_buttons_layout.setContentsMargins(0, 0, 0, 0)
+ self.update_buttons_layout.setObjectName("update_buttons_layout")
+ self.update_button = QtWidgets.QPushButton(self.update_buttons)
+ self.update_button.setObjectName("update_button")
+ self.update_buttons_layout.addWidget(self.update_button, 0, QtCore.Qt.AlignTop)
+ self.settings_button = QtWidgets.QPushButton(self.update_buttons)
+ self.settings_button.setObjectName("settings_button")
+ self.update_buttons_layout.addWidget(self.settings_button, 0, QtCore.Qt.AlignTop)
+ self.download_widget_layout.addWidget(self.update_buttons)
+ self.download_widget_layout.setStretch(1, 1)
+
+ self.retranslateUi(DownloadWidget)
+
+ def retranslateUi(self, DownloadWidget):
+ _translate = QtCore.QCoreApplication.translate
+ self.remove_button.setText(_translate("DownloadWidget", "Remove from queue"))
+ self.force_button.setText(_translate("DownloadWidget", "Update now"))
+ self.update_button.setText(_translate("DownloadWidget", "Update game"))
+ self.settings_button.setText(_translate("DownloadWidget", "Update with settings"))
+
+
+if __name__ == "__main__":
+ import sys
+ app = QtWidgets.QApplication(sys.argv)
+ DownloadWidget = QtWidgets.QFrame()
+ ui = Ui_DownloadWidget()
+ ui.setupUi(DownloadWidget)
+ DownloadWidget.show()
+ sys.exit(app.exec_())
diff --git a/rare/ui/components/tabs/downloads/download_widget.ui b/rare/ui/components/tabs/downloads/download_widget.ui
new file mode 100644
index 00000000..59d01820
--- /dev/null
+++ b/rare/ui/components/tabs/downloads/download_widget.ui
@@ -0,0 +1,153 @@
+
+
+ DownloadWidget
+
+
+
+ 0
+ 0
+ 574
+ 70
+
+
+
+ DownloadWidget
+
+
+ QFrame::StyledPanel
+
+
+
+ 0
+
+
+ 0
+
+
+ 0
+
+
+ 0
+
+ -
+
+
+
+ 0
+
+
+ 0
+
+
+ 0
+
+
+ 0
+
+
-
+
+
+
+ 0
+ 0
+
+
+
+
+
+
+ 1
+
+
+
+ -
+
+
+
+ 0
+ 0
+
+
+
+
+
+
+ 1
+
+
+
+
+
+
+ -
+
+
+ -
+
+
+
+ 0
+
+
+ 0
+
+
+ 0
+
+
+ 0
+
+
-
+
+
+ Update now
+
+
+
+ -
+
+
+ Remove from queue
+
+
+
+
+
+
+ -
+
+
+
+ 0
+
+
+ 0
+
+
+ 0
+
+
+ 0
+
+
-
+
+
+ Update game
+
+
+
+ -
+
+
+ Update with settings
+
+
+
+
+
+
+
+
+
+
+
diff --git a/rare/ui/components/tabs/downloads/downloads_tab.py b/rare/ui/components/tabs/downloads/downloads_tab.py
index e8371c0d..941fdedb 100644
--- a/rare/ui/components/tabs/downloads/downloads_tab.py
+++ b/rare/ui/components/tabs/downloads/downloads_tab.py
@@ -137,6 +137,9 @@ class Ui_DownloadsTab(object):
self.kill_button.setObjectName("kill_button")
self.progress_layout.addWidget(self.kill_button)
self.downloads_tab_layout.addLayout(self.progress_layout)
+ self.active_layout = QtWidgets.QVBoxLayout()
+ self.active_layout.setObjectName("active_layout")
+ self.downloads_tab_layout.addLayout(self.active_layout)
self.queue_scroll = QtWidgets.QScrollArea(DownloadsTab)
sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Preferred, QtWidgets.QSizePolicy.Expanding)
sizePolicy.setHorizontalStretch(0)
diff --git a/rare/ui/components/tabs/downloads/downloads_tab.ui b/rare/ui/components/tabs/downloads/downloads_tab.ui
index 4fc67b55..34affbc2 100644
--- a/rare/ui/components/tabs/downloads/downloads_tab.ui
+++ b/rare/ui/components/tabs/downloads/downloads_tab.ui
@@ -205,6 +205,9 @@
+ -
+
+
-
diff --git a/rare/ui/components/tabs/downloads/info_widget.py b/rare/ui/components/tabs/downloads/info_widget.py
new file mode 100644
index 00000000..62c83ec4
--- /dev/null
+++ b/rare/ui/components/tabs/downloads/info_widget.py
@@ -0,0 +1,112 @@
+# -*- coding: utf-8 -*-
+
+# Form implementation generated from reading ui file 'rare/ui/components/tabs/downloads/info_widget.ui'
+#
+# 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.
+
+
+from PyQt5 import QtCore, QtGui, QtWidgets
+
+
+class Ui_InfoWidget(object):
+ def setupUi(self, InfoWidget):
+ InfoWidget.setObjectName("InfoWidget")
+ InfoWidget.resize(624, 60)
+ sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Preferred, QtWidgets.QSizePolicy.Fixed)
+ sizePolicy.setHorizontalStretch(0)
+ sizePolicy.setVerticalStretch(0)
+ sizePolicy.setHeightForWidth(InfoWidget.sizePolicy().hasHeightForWidth())
+ InfoWidget.setSizePolicy(sizePolicy)
+ InfoWidget.setWindowTitle("InfoWidget")
+ 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.local_version_label = QtWidgets.QLabel(InfoWidget)
+ font = QtGui.QFont()
+ font.setBold(True)
+ font.setWeight(75)
+ self.local_version_label.setFont(font)
+ 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")
+ self.info_widget_layout.addLayout(self.image_layout, 0, 0, 3, 1)
+ self.install_size_label = QtWidgets.QLabel(InfoWidget)
+ font = QtGui.QFont()
+ font.setBold(True)
+ font.setWeight(75)
+ self.install_size_label.setFont(font)
+ 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.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)
+ 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.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"))
+
+
+if __name__ == "__main__":
+ import sys
+ app = QtWidgets.QApplication(sys.argv)
+ InfoWidget = QtWidgets.QWidget()
+ ui = Ui_InfoWidget()
+ ui.setupUi(InfoWidget)
+ InfoWidget.show()
+ sys.exit(app.exec_())
diff --git a/rare/ui/components/tabs/downloads/info_widget.ui b/rare/ui/components/tabs/downloads/info_widget.ui
new file mode 100644
index 00000000..34c3d5d1
--- /dev/null
+++ b/rare/ui/components/tabs/downloads/info_widget.ui
@@ -0,0 +1,188 @@
+
+
+ InfoWidget
+
+
+
+ 0
+ 0
+ 624
+ 60
+
+
+
+
+ 0
+ 0
+
+
+
+ InfoWidget
+
+
+
+ 0
+
+
+ 0
+
+
+ 0
+
+
+ 0
+
+
-
+
+
+
+ 160
+ 0
+
+
+
+ install_size
+
+
+
+ -
+
+
+
+ 160
+ 0
+
+
+
+ remote_version
+
+
+
+ -
+
+
+
+ 160
+ 0
+
+
+
+ local_version
+
+
+
+ -
+
+
+
+ 75
+ true
+
+
+
+ Local version
+
+
+ Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter
+
+
+
+ -
+
+
+
+ 75
+ true
+
+
+
+ Remote version
+
+
+ Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter
+
+
+
+ -
+
+
+ QLayout::SetFixedSize
+
+
+
+ -
+
+
+
+ 75
+ true
+
+
+
+ Installed size
+
+
+ Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter
+
+
+
+ -
+
+
+
+ 75
+ true
+
+
+
+ Download size
+
+
+ Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter
+
+
+
+ -
+
+
+
+ 160
+ 0
+
+
+
+ dl_size
+
+
+
+ -
+
+
+ Qt::Horizontal
+
+
+
+ 40
+ 20
+
+
+
+
+ -
+
+
+
+ 75
+ true
+
+
+
+ title
+
+
+
+
+
+
+
+