diff --git a/rare/components/tabs/downloads/__init__.py b/rare/components/tabs/downloads/__init__.py
index 812b2b04..fb2878db 100644
--- a/rare/components/tabs/downloads/__init__.py
+++ b/rare/components/tabs/downloads/__init__.py
@@ -1,24 +1,25 @@
import datetime
-from ctypes import c_ulonglong
+from ctypes import c_uint64
from logging import getLogger
from typing import Union, Optional
-from PyQt5.QtCore import pyqtSignal, QSettings, pyqtSlot, QThreadPool
+from PyQt5.QtCore import pyqtSignal, QSettings, pyqtSlot, QThreadPool, Qt
+from PyQt5.QtGui import QPixmap
from PyQt5.QtWidgets import (
QWidget,
- QMessageBox,
+ QMessageBox, QScrollArea, QVBoxLayout, QSizePolicy,
)
from rare.components.dialogs.install_dialog import InstallDialog
from rare.components.dialogs.uninstall_dialog import UninstallDialog
from rare.lgndr.models.downloading import UIUpdate
from rare.models.game import RareGame
-from rare.models.install import InstallOptionsModel, InstallQueueItemModel, UninstallOptionsModel, InstallDownloadModel
+from rare.models.install import InstallOptionsModel, InstallQueueItemModel, UninstallOptionsModel
from rare.shared import RareCore
from rare.shared.workers.install_info import InstallInfoWorker
from rare.shared.workers.uninstall import UninstallWorker
-from rare.ui.components.tabs.downloads.downloads_tab import Ui_DownloadsTab
from rare.utils.misc import get_size, create_desktop_link
+from .download import DownloadWidget
from .groups import UpdateGroup, QueueGroup
from .thread import DlThread, DlResultModel, DlResultCode
from .widgets import UpdateWidget, QueueWidget
@@ -36,38 +37,51 @@ class DownloadsTab(QWidget):
def __init__(self, parent=None):
super(DownloadsTab, self).__init__(parent=parent)
- self.ui = Ui_DownloadsTab()
- self.ui.setupUi(self)
self.rcore = RareCore.instance()
- self.core = self.rcore.core()
- self.signals = self.rcore.signals()
- self.args = self.rcore.args()
+ self.core = RareCore.instance().core()
+ self.signals = RareCore.instance().signals()
+ self.args = RareCore.instance().args()
- self.thread: Optional[DlThread] = None
- self.threadpool = QThreadPool.globalInstance()
+ self.__thread: Optional[DlThread] = None
- self.ui.kill_button.clicked.connect(self.stop_download)
+ layout = QVBoxLayout(self)
+
+ self.download_widget = DownloadWidget(self)
+ self.download_widget.ui.kill_button.clicked.connect(self.stop_download)
+ layout.addWidget(self.download_widget)
+
+ self.queue_scrollarea = QScrollArea(self)
+ self.queue_scrollarea.setWidgetResizable(True)
+ self.queue_scrollarea.setHorizontalScrollBarPolicy(Qt.ScrollBarAlwaysOff)
+ self.queue_scrollarea.setFrameStyle(QScrollArea.Plain | QScrollArea.NoFrame)
+ layout.addWidget(self.queue_scrollarea)
+
+ queue_contents = QWidget(self.queue_scrollarea)
+ queue_contents.setSizePolicy(QSizePolicy.Expanding, QSizePolicy.Fixed)
+ self.queue_scrollarea.setWidget(queue_contents)
+
+ queue_contents_layout = QVBoxLayout(queue_contents)
+ queue_contents_layout.setContentsMargins(0, 0, 3, 0)
self.queue_group = QueueGroup(self)
self.queue_group.update_count.connect(self.update_queues_count)
self.queue_group.removed.connect(self.__on_queue_removed)
self.queue_group.force.connect(self.__on_queue_force)
- self.ui.queue_scroll_contents_layout.addWidget(self.queue_group)
+ queue_contents_layout.addWidget(self.queue_group)
self.updates_group = UpdateGroup(self)
self.updates_group.update_count.connect(self.update_queues_count)
self.updates_group.enqueue.connect(self.__get_install_options)
- self.ui.queue_scroll_contents_layout.addWidget(self.updates_group)
+ queue_contents_layout.addWidget(self.updates_group)
self.__check_updates()
+ self.__reset_download()
self.signals.game.install.connect(self.__get_install_options)
self.signals.game.uninstall.connect(self.__get_uninstall_options)
self.signals.download.enqueue.connect(self.__add_update)
self.signals.download.dequeue.connect(self.__remove_update)
- self.__reset_download()
-
self.__forced_item: Optional[InstallQueueItemModel] = None
self.__omit_requeue = False
@@ -79,7 +93,7 @@ class DownloadsTab(QWidget):
@property
def is_download_active(self):
- return self.thread is not None
+ return self.__thread is not None
def __check_updates(self):
for rgame in self.rcore.updates:
@@ -100,7 +114,7 @@ class DownloadsTab(QWidget):
@pyqtSlot(str)
def __remove_update(self, app_name):
- if self.thread and self.thread.item.options.app_name == app_name:
+ if self.__thread and self.__thread.item.options.app_name == app_name:
self.stop_download(omit_queue=True)
if self.queue_group.contains(app_name):
self.queue_group.remove(app_name)
@@ -119,12 +133,13 @@ class DownloadsTab(QWidget):
if self.updates_group.contains(app_name):
self.updates_group.set_widget_enabled(app_name, True)
else:
- if self.rcore.get_game(app_name).is_installed:
+ rgame = self.rcore.get_game(app_name)
+ if rgame.is_installed and rgame.has_update:
self.__add_update(app_name)
@pyqtSlot(InstallQueueItemModel)
def __on_queue_force(self, item: InstallQueueItemModel):
- if self.thread:
+ if self.__thread:
self.stop_download()
self.__forced_item = item
else:
@@ -139,15 +154,15 @@ class DownloadsTab(QWidget):
Defaults to `False`
:return:
"""
- self.thread.kill()
- self.ui.kill_button.setEnabled(False)
+ self.__thread.kill()
+ self.download_widget.ui.kill_button.setEnabled(False)
# lk: if we are exitin Rare, waif for thread to finish
# `self.on_exit` control whether we try to add the download
# back in the queue. If we are on exit we wait for the thread
# to finish, we do not care about handling the result really
self.__omit_requeue = omit_queue
if omit_queue:
- self.thread.wait()
+ self.__thread.wait()
def __refresh_download(self, item: InstallQueueItemModel):
worker = InstallInfoWorker(self.core, item.options)
@@ -160,7 +175,7 @@ class DownloadsTab(QWidget):
worker.signals.finished.connect(
lambda: logger.info(f"Download refresh worker finished for {item.options.app_name}")
)
- self.threadpool.start(worker)
+ QThreadPool.globalInstance().start(worker)
def __start_download(self, item: InstallQueueItemModel):
rgame = self.rcore.get_game(item.options.app_name)
@@ -178,21 +193,24 @@ class DownloadsTab(QWidget):
thread.progress.connect(self.__on_download_progress)
thread.finished.connect(thread.deleteLater)
thread.start()
- self.thread = thread
- self.ui.kill_button.setDisabled(False)
- self.ui.dl_name.setText(item.download.game.app_title)
+ self.__thread = thread
+ self.download_widget.ui.kill_button.setDisabled(False)
+ self.download_widget.ui.dl_name.setText(item.download.game.app_title)
+ self.download_widget.setPixmap(
+ RareCore.instance().image_manager().get_pixmap(rgame.app_name, True)
+ )
- @pyqtSlot(UIUpdate, c_ulonglong)
- def __on_download_progress(self, ui_update: UIUpdate, dl_size: c_ulonglong):
- self.ui.progress_bar.setValue(int(ui_update.progress))
- self.ui.dl_speed.setText(f"{get_size(ui_update.download_compressed_speed)}/s")
- self.ui.cache_used.setText(
+ @pyqtSlot(UIUpdate, c_uint64)
+ def __on_download_progress(self, ui_update: UIUpdate, dl_size: c_uint64):
+ self.download_widget.ui.progress_bar.setValue(int(ui_update.progress))
+ self.download_widget.ui.dl_speed.setText(f"{get_size(ui_update.download_compressed_speed)}/s")
+ self.download_widget.ui.cache_used.setText(
f"{get_size(ui_update.cache_usage) if ui_update.cache_usage > 1023 else '0KB'}"
)
- self.ui.downloaded.setText(
+ self.download_widget.ui.downloaded.setText(
f"{get_size(ui_update.total_downloaded)} / {get_size(dl_size.value)}"
)
- self.ui.time_left.setText(get_time(ui_update.estimated_time_left))
+ self.download_widget.ui.time_left.setText(get_time(ui_update.estimated_time_left))
def __requeue_download(self, item: InstallQueueItemModel):
rgame = self.rcore.get_game(item.options.app_name)
@@ -244,14 +262,15 @@ class DownloadsTab(QWidget):
self.__reset_download()
def __reset_download(self):
- self.ui.kill_button.setDisabled(True)
- self.ui.dl_name.setText(self.tr("No active download"))
- self.ui.progress_bar.setValue(0)
- self.ui.dl_speed.setText("n/a")
- self.ui.time_left.setText("n/a")
- self.ui.cache_used.setText("n/a")
- self.ui.downloaded.setText("n/a")
- self.thread = None
+ self.download_widget.setPixmap(QPixmap())
+ self.download_widget.ui.kill_button.setDisabled(True)
+ self.download_widget.ui.dl_name.setText(self.tr("No active download"))
+ self.download_widget.ui.progress_bar.setValue(0)
+ self.download_widget.ui.dl_speed.setText("n/a")
+ self.download_widget.ui.time_left.setText("n/a")
+ self.download_widget.ui.cache_used.setText("n/a")
+ self.download_widget.ui.downloaded.setText("n/a")
+ self.__thread = None
@pyqtSlot(InstallOptionsModel)
def __get_install_options(self, options: InstallOptionsModel):
@@ -267,7 +286,7 @@ class DownloadsTab(QWidget):
def __on_install_dialog_closed(self, item: InstallQueueItemModel):
if item:
# lk: start update only if there is no other active thread and there is no queue
- if self.thread is None and not self.queue_group.count():
+ if self.__thread is None and not self.queue_group.count():
self.__start_download(item)
else:
rgame = self.rcore.get_game(item.options.app_name)
@@ -302,7 +321,7 @@ class DownloadsTab(QWidget):
rgame.set_installed(False)
worker = UninstallWorker(self.core, rgame, options)
worker.signals.result.connect(self.__on_uninstall_worker_result)
- self.threadpool.start(worker)
+ QThreadPool.globalInstance().start(worker)
@pyqtSlot(RareGame, bool, str)
def __on_uninstall_worker_result(self, rgame: RareGame, success: bool, message: str):
diff --git a/rare/components/tabs/downloads/download.py b/rare/components/tabs/downloads/download.py
new file mode 100644
index 00000000..6e0ab97b
--- /dev/null
+++ b/rare/components/tabs/downloads/download.py
@@ -0,0 +1,79 @@
+from PyQt5.QtCore import QRect, Qt
+from PyQt5.QtGui import (
+ QPixmap,
+ QImage,
+ QPainter,
+ QBrush,
+ QLinearGradient,
+ QPaintEvent,
+ QPalette,
+)
+
+from rare.ui.components.tabs.downloads.download_widget import Ui_DownloadWidget
+from rare.widgets.image_widget import ImageWidget
+
+
+class DownloadWidget(ImageWidget):
+ def __init__(self, parent=None):
+ super(DownloadWidget, self).__init__(parent=parent)
+ self.ui = Ui_DownloadWidget()
+ self.ui.setupUi(self)
+ self.ui.progress_bar.setStyleSheet(
+ """
+ QProgressBar {
+ background-color : rgba(0, 0, 0, 0.25);
+ }
+ """
+ )
+
+ """
+ Painting overrides
+ Let them live here until a better alternative is divised.
+
+ This is also part of list_game_widget and maybe a
+ common base can bring them together.
+ """
+
+ def prepare_pixmap(self, pixmap: QPixmap) -> QPixmap:
+ device: QImage = QImage(
+ pixmap.size().width() * 3,
+ int(self.sizeHint().height() * pixmap.devicePixelRatioF()) + 1,
+ QImage.Format_ARGB32_Premultiplied,
+ )
+ painter = QPainter(device)
+ brush = QBrush(pixmap)
+ painter.fillRect(device.rect(), brush)
+ # the gradient could be cached and reused as it is expensive
+ gradient = QLinearGradient(0, 0, device.width(), 0)
+ gradient.setColorAt(0.15, Qt.transparent)
+ gradient.setColorAt(0.5, Qt.black)
+ gradient.setColorAt(0.85, Qt.transparent)
+ painter.setCompositionMode(QPainter.CompositionMode_DestinationIn)
+ painter.fillRect(device.rect(), gradient)
+ painter.end()
+ ret = QPixmap.fromImage(device)
+ ret.setDevicePixelRatio(pixmap.devicePixelRatioF())
+ return ret
+
+ def setPixmap(self, pixmap: QPixmap) -> None:
+ # lk: trade some possible delay and start-up time
+ # lk: for faster rendering. Gradients are expensive
+ # lk: so pre-generate the image
+ super(DownloadWidget, self).setPixmap(self.prepare_pixmap(pixmap))
+
+ def paint_image_empty(self, painter: QPainter, a0: QPaintEvent) -> None:
+ # when pixmap object is not available yet, show a gray rectangle
+ painter.setOpacity(0.5 * self._opacity)
+ painter.fillRect(a0.rect(), self.palette().color(QPalette.Background))
+
+ def paint_image_cover(self, painter: QPainter, a0: QPaintEvent) -> None:
+ painter.setOpacity(self._opacity)
+ color = self.palette().color(QPalette.Background) # .darker(75)
+ painter.fillRect(self.rect(), color)
+ brush = QBrush(self._pixmap)
+ brush.setTransform(self._transform)
+ width = int(self._pixmap.width() / self._pixmap.devicePixelRatioF())
+ origin = self.width() - width
+ painter.setBrushOrigin(origin, 0)
+ fill_rect = QRect(origin, 0, width, self.height())
+ painter.fillRect(fill_rect, brush)
diff --git a/rare/components/tabs/downloads/thread.py b/rare/components/tabs/downloads/thread.py
index beb72e51..43fecfb0 100644
--- a/rare/components/tabs/downloads/thread.py
+++ b/rare/components/tabs/downloads/thread.py
@@ -2,7 +2,7 @@ import os
import platform
import queue
import time
-from ctypes import c_ulonglong
+from ctypes import c_uint64
from dataclasses import dataclass
from enum import IntEnum
from logging import getLogger
@@ -39,14 +39,14 @@ class DlResultModel:
class DlThread(QThread):
result = pyqtSignal(DlResultModel)
- progress = pyqtSignal(UIUpdate, c_ulonglong)
+ progress = pyqtSignal(UIUpdate, c_uint64)
def __init__(self, item: InstallQueueItemModel, rgame: RareGame, core: LegendaryCore, debug: bool = False):
super(DlThread, self).__init__()
self.dlm_signals: DLManagerSignals = DLManagerSignals()
self.core: LegendaryCore = core
self.item: InstallQueueItemModel = item
- self.dl_size = c_ulonglong(item.download.analysis.dl_size)
+ self.dl_size = c_uint64(item.download.analysis.dl_size)
self.rgame = rgame
self.debug = debug
diff --git a/rare/components/tabs/downloads/widgets.py b/rare/components/tabs/downloads/widgets.py
index 93f29189..89d376d0 100644
--- a/rare/components/tabs/downloads/widgets.py
+++ b/rare/components/tabs/downloads/widgets.py
@@ -10,7 +10,7 @@ from qtawesome import icon
from rare.models.install import InstallQueueItemModel, InstallOptionsModel, InstallDownloadModel
from rare.shared import RareCore, ImageManagerSingleton
from rare.shared.workers.install_info import InstallInfoWorker
-from rare.ui.components.tabs.downloads.download_widget import Ui_DownloadWidget
+from rare.ui.components.tabs.downloads.base_widget import Ui_BaseWidget
from rare.ui.components.tabs.downloads.info_widget import Ui_InfoWidget
from rare.utils.misc import get_size, widget_object_name, elide_text
from rare.widgets.image_widget import ImageWidget, ImageSize
@@ -65,7 +65,7 @@ class UpdateWidget(QFrame):
def __init__(self, game: Game, igame: InstalledGame, parent=None):
super(UpdateWidget, self).__init__(parent=parent)
- self.ui = Ui_DownloadWidget()
+ self.ui = Ui_BaseWidget()
self.ui.setupUi(self)
# lk: setObjectName has to be after `setupUi` because it is also set in that function
self.setObjectName(widget_object_name(self, game.app_name))
@@ -107,7 +107,7 @@ class QueueWidget(QFrame):
def __init__(self, item: InstallQueueItemModel, old_igame: InstalledGame, parent=None):
super(QueueWidget, self).__init__(parent=parent)
- self.ui = Ui_DownloadWidget()
+ self.ui = Ui_BaseWidget()
self.ui.setupUi(self)
# lk: setObjectName has to be after `setupUi` because it is also set in that function
self.setObjectName(widget_object_name(self, item.options.app_name))
diff --git a/rare/ui/components/tabs/downloads/base_widget.py b/rare/ui/components/tabs/downloads/base_widget.py
new file mode 100644
index 00000000..5b9fbb4c
--- /dev/null
+++ b/rare/ui/components/tabs/downloads/base_widget.py
@@ -0,0 +1,95 @@
+# -*- coding: utf-8 -*-
+
+# Form implementation generated from reading ui file 'rare/ui/components/tabs/downloads/base_widget.ui'
+#
+# Created by: PyQt5 UI code generator 5.15.8
+#
+# 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_BaseWidget(object):
+ def setupUi(self, BaseWidget):
+ BaseWidget.setObjectName("BaseWidget")
+ BaseWidget.resize(332, 70)
+ BaseWidget.setWindowTitle("BaseWidget")
+ BaseWidget.setFrameShape(QtWidgets.QFrame.StyledPanel)
+ self.download_widget_layout = QtWidgets.QHBoxLayout(BaseWidget)
+ self.download_widget_layout.setContentsMargins(0, 0, 0, 0)
+ self.download_widget_layout.setObjectName("download_widget_layout")
+ self.info_layout = QtWidgets.QHBoxLayout()
+ self.info_layout.setObjectName("info_layout")
+ self.download_widget_layout.addLayout(self.info_layout)
+ self.move_buttons = QtWidgets.QWidget(BaseWidget)
+ 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.queue_buttons = QtWidgets.QWidget(BaseWidget)
+ 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.force_button = QtWidgets.QPushButton(self.queue_buttons)
+ self.force_button.setObjectName("force_button")
+ self.queue_buttons_layout.addWidget(self.force_button)
+ 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.download_widget_layout.addWidget(self.queue_buttons)
+ self.update_buttons = QtWidgets.QWidget(BaseWidget)
+ 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(0, 1)
+
+ self.retranslateUi(BaseWidget)
+
+ def retranslateUi(self, BaseWidget):
+ _translate = QtCore.QCoreApplication.translate
+ self.force_button.setText(_translate("BaseWidget", "Update now"))
+ self.remove_button.setText(_translate("BaseWidget", "Remove from queue"))
+ self.update_button.setText(_translate("BaseWidget", "Update game"))
+ self.settings_button.setText(_translate("BaseWidget", "Update with settings"))
+
+
+if __name__ == "__main__":
+ import sys
+ app = QtWidgets.QApplication(sys.argv)
+ BaseWidget = QtWidgets.QFrame()
+ ui = Ui_BaseWidget()
+ ui.setupUi(BaseWidget)
+ BaseWidget.show()
+ sys.exit(app.exec_())
diff --git a/rare/ui/components/tabs/downloads/base_widget.ui b/rare/ui/components/tabs/downloads/base_widget.ui
new file mode 100644
index 00000000..bbc0218d
--- /dev/null
+++ b/rare/ui/components/tabs/downloads/base_widget.ui
@@ -0,0 +1,153 @@
+
+
+ BaseWidget
+
+
+
+ 0
+ 0
+ 332
+ 70
+
+
+
+ BaseWidget
+
+
+ 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/download_widget.py b/rare/ui/components/tabs/downloads/download_widget.py
index 5b5b20d4..4b0b3599 100644
--- a/rare/ui/components/tabs/downloads/download_widget.py
+++ b/rare/ui/components/tabs/downloads/download_widget.py
@@ -2,7 +2,7 @@
# Form implementation generated from reading ui file 'rare/ui/components/tabs/downloads/download_widget.ui'
#
-# Created by: PyQt5 UI code generator 5.15.7
+# Created by: PyQt5 UI code generator 5.15.8
#
# 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,81 +14,136 @@ from PyQt5 import QtCore, QtGui, QtWidgets
class Ui_DownloadWidget(object):
def setupUi(self, DownloadWidget):
DownloadWidget.setObjectName("DownloadWidget")
- DownloadWidget.resize(332, 70)
+ DownloadWidget.resize(490, 90)
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)
+ self.active_download_layout = QtWidgets.QGridLayout(DownloadWidget)
+ self.active_download_layout.setContentsMargins(0, 0, 0, 0)
+ self.active_download_layout.setObjectName("active_download_layout")
+ self.downloaded = QtWidgets.QLabel(DownloadWidget)
+ sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Preferred, QtWidgets.QSizePolicy.Preferred)
+ sizePolicy.setHorizontalStretch(0)
+ sizePolicy.setVerticalStretch(0)
+ sizePolicy.setHeightForWidth(self.downloaded.sizePolicy().hasHeightForWidth())
+ self.downloaded.setSizePolicy(sizePolicy)
+ self.downloaded.setText("downloaded")
+ self.downloaded.setObjectName("downloaded")
+ self.active_download_layout.addWidget(self.downloaded, 2, 3, 1, 1)
+ self.dl_speed_label = QtWidgets.QLabel(DownloadWidget)
+ font = QtGui.QFont()
+ font.setBold(True)
+ font.setWeight(75)
+ self.dl_speed_label.setFont(font)
+ self.dl_speed_label.setAlignment(QtCore.Qt.AlignRight|QtCore.Qt.AlignTrailing|QtCore.Qt.AlignVCenter)
+ self.dl_speed_label.setObjectName("dl_speed_label")
+ self.active_download_layout.addWidget(self.dl_speed_label, 1, 2, 1, 1)
+ self.dl_name_label = QtWidgets.QLabel(DownloadWidget)
+ font = QtGui.QFont()
+ font.setBold(True)
+ font.setWeight(75)
+ self.dl_name_label.setFont(font)
+ self.dl_name_label.setAlignment(QtCore.Qt.AlignRight|QtCore.Qt.AlignTrailing|QtCore.Qt.AlignVCenter)
+ self.dl_name_label.setObjectName("dl_name_label")
+ self.active_download_layout.addWidget(self.dl_name_label, 0, 0, 1, 1)
+ self.cache_used = QtWidgets.QLabel(DownloadWidget)
+ sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Preferred, QtWidgets.QSizePolicy.Maximum)
+ sizePolicy.setHorizontalStretch(0)
+ sizePolicy.setVerticalStretch(0)
+ sizePolicy.setHeightForWidth(self.cache_used.sizePolicy().hasHeightForWidth())
+ self.cache_used.setSizePolicy(sizePolicy)
+ self.cache_used.setText("cache_used")
+ self.cache_used.setObjectName("cache_used")
+ self.active_download_layout.addWidget(self.cache_used, 2, 1, 1, 1)
+ self.time_left = QtWidgets.QLabel(DownloadWidget)
+ sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Preferred, QtWidgets.QSizePolicy.Maximum)
+ sizePolicy.setHorizontalStretch(0)
+ sizePolicy.setVerticalStretch(0)
+ sizePolicy.setHeightForWidth(self.time_left.sizePolicy().hasHeightForWidth())
+ self.time_left.setSizePolicy(sizePolicy)
+ self.time_left.setText("time_left")
+ self.time_left.setObjectName("time_left")
+ self.active_download_layout.addWidget(self.time_left, 1, 1, 1, 1)
+ self.downloaded_label = QtWidgets.QLabel(DownloadWidget)
+ font = QtGui.QFont()
+ font.setBold(True)
+ font.setWeight(75)
+ self.downloaded_label.setFont(font)
+ self.downloaded_label.setAlignment(QtCore.Qt.AlignRight|QtCore.Qt.AlignTrailing|QtCore.Qt.AlignVCenter)
+ self.downloaded_label.setObjectName("downloaded_label")
+ self.active_download_layout.addWidget(self.downloaded_label, 2, 2, 1, 1)
+ self.dl_speed = QtWidgets.QLabel(DownloadWidget)
+ sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Preferred, QtWidgets.QSizePolicy.Preferred)
+ sizePolicy.setHorizontalStretch(0)
+ sizePolicy.setVerticalStretch(0)
+ sizePolicy.setHeightForWidth(self.dl_speed.sizePolicy().hasHeightForWidth())
+ self.dl_speed.setSizePolicy(sizePolicy)
+ self.dl_speed.setText("dl_speed")
+ self.dl_speed.setObjectName("dl_speed")
+ self.active_download_layout.addWidget(self.dl_speed, 1, 3, 1, 1)
+ self.cache_used_label = QtWidgets.QLabel(DownloadWidget)
+ font = QtGui.QFont()
+ font.setBold(True)
+ font.setWeight(75)
+ self.cache_used_label.setFont(font)
+ self.cache_used_label.setAlignment(QtCore.Qt.AlignRight|QtCore.Qt.AlignTrailing|QtCore.Qt.AlignVCenter)
+ self.cache_used_label.setObjectName("cache_used_label")
+ self.active_download_layout.addWidget(self.cache_used_label, 2, 0, 1, 1)
+ self.dl_name = QtWidgets.QLabel(DownloadWidget)
+ sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Preferred, QtWidgets.QSizePolicy.Maximum)
+ sizePolicy.setHorizontalStretch(0)
+ sizePolicy.setVerticalStretch(0)
+ sizePolicy.setHeightForWidth(self.dl_name.sizePolicy().hasHeightForWidth())
+ self.dl_name.setSizePolicy(sizePolicy)
+ font = QtGui.QFont()
+ font.setBold(False)
+ font.setWeight(50)
+ self.dl_name.setFont(font)
+ self.dl_name.setText("dl_name")
+ self.dl_name.setObjectName("dl_name")
+ self.active_download_layout.addWidget(self.dl_name, 0, 1, 1, 3)
+ self.time_left_label = QtWidgets.QLabel(DownloadWidget)
+ font = QtGui.QFont()
+ font.setBold(True)
+ font.setWeight(75)
+ self.time_left_label.setFont(font)
+ self.time_left_label.setAlignment(QtCore.Qt.AlignRight|QtCore.Qt.AlignTrailing|QtCore.Qt.AlignVCenter)
+ self.time_left_label.setObjectName("time_left_label")
+ self.active_download_layout.addWidget(self.time_left_label, 1, 0, 1, 1)
+ self.kill_button = QtWidgets.QPushButton(DownloadWidget)
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.setHeightForWidth(self.kill_button.sizePolicy().hasHeightForWidth())
+ self.kill_button.setSizePolicy(sizePolicy)
+ self.kill_button.setObjectName("kill_button")
+ self.active_download_layout.addWidget(self.kill_button, 3, 4, 1, 1)
+ self.progress_bar = QtWidgets.QProgressBar(DownloadWidget)
+ sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Minimum, QtWidgets.QSizePolicy.Maximum)
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.force_button = QtWidgets.QPushButton(self.queue_buttons)
- self.force_button.setObjectName("force_button")
- self.queue_buttons_layout.addWidget(self.force_button)
- 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.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)
+ sizePolicy.setHeightForWidth(self.progress_bar.sizePolicy().hasHeightForWidth())
+ self.progress_bar.setSizePolicy(sizePolicy)
+ self.progress_bar.setProperty("value", 0)
+ self.progress_bar.setObjectName("progress_bar")
+ self.active_download_layout.addWidget(self.progress_bar, 3, 0, 1, 4)
+ self.active_download_layout.setColumnStretch(1, 1)
+ self.active_download_layout.setColumnStretch(3, 1)
self.retranslateUi(DownloadWidget)
def retranslateUi(self, DownloadWidget):
_translate = QtCore.QCoreApplication.translate
- self.force_button.setText(_translate("DownloadWidget", "Update now"))
- self.remove_button.setText(_translate("DownloadWidget", "Remove from queue"))
- self.update_button.setText(_translate("DownloadWidget", "Update game"))
- self.settings_button.setText(_translate("DownloadWidget", "Update with settings"))
+ self.dl_speed_label.setText(_translate("DownloadWidget", "Download speed:"))
+ self.dl_name_label.setText(_translate("DownloadWidget", "Current download:"))
+ self.downloaded_label.setText(_translate("DownloadWidget", "Downloaded:"))
+ self.cache_used_label.setText(_translate("DownloadWidget", "Cache size:"))
+ self.time_left_label.setText(_translate("DownloadWidget", "Time left:"))
+ self.kill_button.setText(_translate("DownloadWidget", "Stop Download"))
if __name__ == "__main__":
import sys
app = QtWidgets.QApplication(sys.argv)
- DownloadWidget = QtWidgets.QFrame()
+ DownloadWidget = QtWidgets.QWidget()
ui = Ui_DownloadWidget()
ui.setupUi(DownloadWidget)
DownloadWidget.show()
diff --git a/rare/ui/components/tabs/downloads/download_widget.ui b/rare/ui/components/tabs/downloads/download_widget.ui
index a5fcb3d8..7cd0aa8a 100644
--- a/rare/ui/components/tabs/downloads/download_widget.ui
+++ b/rare/ui/components/tabs/downloads/download_widget.ui
@@ -1,22 +1,19 @@
DownloadWidget
-
+
0
0
- 332
- 70
+ 490
+ 90
DownloadWidget
-
- QFrame::StyledPanel
-
-
+
0
@@ -29,121 +26,181 @@
0
- -
-
-
-
- 0
-
-
- 0
-
-
- 0
-
-
- 0
-
-
-
-
-
-
- 0
- 0
-
-
-
-
-
-
- 1
-
-
-
- -
-
-
-
- 0
- 0
-
-
-
-
-
-
- 1
-
-
-
-
+ -
+
+
+
+ 0
+ 0
+
+
+
+ downloaded
+
- -
-
-
- -
-
-
-
- 0
-
-
- 0
-
-
- 0
-
-
- 0
-
-
-
-
-
- Update now
-
-
-
- -
-
-
- Remove from queue
-
-
-
-
+ -
+
+
+
+ 75
+ true
+
+
+
+ Download speed:
+
+
+ Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter
+
- -
-
-
-
- 0
-
-
- 0
-
-
- 0
-
-
- 0
-
-
-
-
-
- Update game
-
-
-
- -
-
-
- Update with settings
-
-
-
-
+ -
+
+
+
+ 75
+ true
+
+
+
+ Current download:
+
+
+ Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter
+
+
+
+ -
+
+
+
+ 0
+ 0
+
+
+
+ cache_used
+
+
+
+ -
+
+
+
+ 0
+ 0
+
+
+
+ time_left
+
+
+
+ -
+
+
+
+ 75
+ true
+
+
+
+ Downloaded:
+
+
+ Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter
+
+
+
+ -
+
+
+
+ 0
+ 0
+
+
+
+ dl_speed
+
+
+
+ -
+
+
+
+ 75
+ true
+
+
+
+ Cache size:
+
+
+ Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter
+
+
+
+ -
+
+
+
+ 0
+ 0
+
+
+
+
+ 50
+ false
+
+
+
+ dl_name
+
+
+
+ -
+
+
+
+ 75
+ true
+
+
+
+ Time left:
+
+
+ Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter
+
+
+
+ -
+
+
+
+ 0
+ 0
+
+
+
+ Stop Download
+
+
+
+ -
+
+
+
+ 0
+ 0
+
+
+
+ 0
+
diff --git a/rare/ui/components/tabs/downloads/downloads_tab.py b/rare/ui/components/tabs/downloads/downloads_tab.py
deleted file mode 100644
index aba75c7c..00000000
--- a/rare/ui/components/tabs/downloads/downloads_tab.py
+++ /dev/null
@@ -1,188 +0,0 @@
-# -*- coding: utf-8 -*-
-
-# Form implementation generated from reading ui file 'rare/ui/components/tabs/downloads/downloads_tab.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_DownloadsTab(object):
- def setupUi(self, DownloadsTab):
- DownloadsTab.setObjectName("DownloadsTab")
- DownloadsTab.resize(677, 203)
- sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Preferred, QtWidgets.QSizePolicy.Preferred)
- sizePolicy.setHorizontalStretch(0)
- sizePolicy.setVerticalStretch(0)
- sizePolicy.setHeightForWidth(DownloadsTab.sizePolicy().hasHeightForWidth())
- DownloadsTab.setSizePolicy(sizePolicy)
- DownloadsTab.setWindowTitle("Form")
- self.downloads_tab_layout = QtWidgets.QVBoxLayout(DownloadsTab)
- self.downloads_tab_layout.setObjectName("downloads_tab_layout")
- self.download_layout = QtWidgets.QGridLayout()
- self.download_layout.setObjectName("download_layout")
- self.dl_speed_label = QtWidgets.QLabel(DownloadsTab)
- font = QtGui.QFont()
- font.setBold(True)
- font.setWeight(75)
- self.dl_speed_label.setFont(font)
- self.dl_speed_label.setAlignment(QtCore.Qt.AlignRight|QtCore.Qt.AlignTrailing|QtCore.Qt.AlignVCenter)
- self.dl_speed_label.setObjectName("dl_speed_label")
- self.download_layout.addWidget(self.dl_speed_label, 1, 2, 1, 1)
- self.dl_speed = QtWidgets.QLabel(DownloadsTab)
- sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Preferred, QtWidgets.QSizePolicy.Preferred)
- sizePolicy.setHorizontalStretch(0)
- sizePolicy.setVerticalStretch(0)
- sizePolicy.setHeightForWidth(self.dl_speed.sizePolicy().hasHeightForWidth())
- self.dl_speed.setSizePolicy(sizePolicy)
- self.dl_speed.setText("dl_speed")
- self.dl_speed.setObjectName("dl_speed")
- self.download_layout.addWidget(self.dl_speed, 1, 3, 1, 1)
- self.cache_used = QtWidgets.QLabel(DownloadsTab)
- sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Preferred, QtWidgets.QSizePolicy.Maximum)
- sizePolicy.setHorizontalStretch(0)
- sizePolicy.setVerticalStretch(0)
- sizePolicy.setHeightForWidth(self.cache_used.sizePolicy().hasHeightForWidth())
- self.cache_used.setSizePolicy(sizePolicy)
- self.cache_used.setText("cache_used")
- self.cache_used.setObjectName("cache_used")
- self.download_layout.addWidget(self.cache_used, 2, 1, 1, 1)
- self.time_left = QtWidgets.QLabel(DownloadsTab)
- sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Preferred, QtWidgets.QSizePolicy.Maximum)
- sizePolicy.setHorizontalStretch(0)
- sizePolicy.setVerticalStretch(0)
- sizePolicy.setHeightForWidth(self.time_left.sizePolicy().hasHeightForWidth())
- self.time_left.setSizePolicy(sizePolicy)
- self.time_left.setText("time_left")
- self.time_left.setObjectName("time_left")
- self.download_layout.addWidget(self.time_left, 1, 1, 1, 1)
- self.dl_name = QtWidgets.QLabel(DownloadsTab)
- sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Preferred, QtWidgets.QSizePolicy.Maximum)
- sizePolicy.setHorizontalStretch(0)
- sizePolicy.setVerticalStretch(0)
- sizePolicy.setHeightForWidth(self.dl_name.sizePolicy().hasHeightForWidth())
- self.dl_name.setSizePolicy(sizePolicy)
- font = QtGui.QFont()
- font.setBold(False)
- font.setWeight(50)
- self.dl_name.setFont(font)
- self.dl_name.setText("dl_name")
- self.dl_name.setObjectName("dl_name")
- self.download_layout.addWidget(self.dl_name, 0, 1, 1, 3)
- self.dl_name_label = QtWidgets.QLabel(DownloadsTab)
- font = QtGui.QFont()
- font.setBold(True)
- font.setWeight(75)
- self.dl_name_label.setFont(font)
- self.dl_name_label.setAlignment(QtCore.Qt.AlignRight|QtCore.Qt.AlignTrailing|QtCore.Qt.AlignVCenter)
- self.dl_name_label.setObjectName("dl_name_label")
- self.download_layout.addWidget(self.dl_name_label, 0, 0, 1, 1)
- self.time_left_label = QtWidgets.QLabel(DownloadsTab)
- font = QtGui.QFont()
- font.setBold(True)
- font.setWeight(75)
- self.time_left_label.setFont(font)
- self.time_left_label.setAlignment(QtCore.Qt.AlignRight|QtCore.Qt.AlignTrailing|QtCore.Qt.AlignVCenter)
- self.time_left_label.setObjectName("time_left_label")
- self.download_layout.addWidget(self.time_left_label, 1, 0, 1, 1)
- self.downloaded_label = QtWidgets.QLabel(DownloadsTab)
- font = QtGui.QFont()
- font.setBold(True)
- font.setWeight(75)
- self.downloaded_label.setFont(font)
- self.downloaded_label.setAlignment(QtCore.Qt.AlignRight|QtCore.Qt.AlignTrailing|QtCore.Qt.AlignVCenter)
- self.downloaded_label.setObjectName("downloaded_label")
- self.download_layout.addWidget(self.downloaded_label, 2, 2, 1, 1)
- self.downloaded = QtWidgets.QLabel(DownloadsTab)
- sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Preferred, QtWidgets.QSizePolicy.Preferred)
- sizePolicy.setHorizontalStretch(0)
- sizePolicy.setVerticalStretch(0)
- sizePolicy.setHeightForWidth(self.downloaded.sizePolicy().hasHeightForWidth())
- self.downloaded.setSizePolicy(sizePolicy)
- self.downloaded.setText("downloaded")
- self.downloaded.setObjectName("downloaded")
- self.download_layout.addWidget(self.downloaded, 2, 3, 1, 1)
- self.cache_used_label = QtWidgets.QLabel(DownloadsTab)
- font = QtGui.QFont()
- font.setBold(True)
- font.setWeight(75)
- self.cache_used_label.setFont(font)
- self.cache_used_label.setAlignment(QtCore.Qt.AlignRight|QtCore.Qt.AlignTrailing|QtCore.Qt.AlignVCenter)
- self.cache_used_label.setObjectName("cache_used_label")
- self.download_layout.addWidget(self.cache_used_label, 2, 0, 1, 1)
- self.download_layout.setColumnStretch(1, 1)
- self.download_layout.setColumnStretch(3, 1)
- self.downloads_tab_layout.addLayout(self.download_layout)
- self.progress_layout = QtWidgets.QHBoxLayout()
- self.progress_layout.setObjectName("progress_layout")
- self.progress_bar = QtWidgets.QProgressBar(DownloadsTab)
- sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Minimum, QtWidgets.QSizePolicy.Maximum)
- sizePolicy.setHorizontalStretch(0)
- sizePolicy.setVerticalStretch(0)
- sizePolicy.setHeightForWidth(self.progress_bar.sizePolicy().hasHeightForWidth())
- self.progress_bar.setSizePolicy(sizePolicy)
- self.progress_bar.setProperty("value", 0)
- self.progress_bar.setObjectName("progress_bar")
- self.progress_layout.addWidget(self.progress_bar)
- self.kill_button = QtWidgets.QPushButton(DownloadsTab)
- sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Maximum, QtWidgets.QSizePolicy.Maximum)
- sizePolicy.setHorizontalStretch(0)
- sizePolicy.setVerticalStretch(0)
- sizePolicy.setHeightForWidth(self.kill_button.sizePolicy().hasHeightForWidth())
- self.kill_button.setSizePolicy(sizePolicy)
- 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)
- sizePolicy.setVerticalStretch(0)
- sizePolicy.setHeightForWidth(self.queue_scroll.sizePolicy().hasHeightForWidth())
- self.queue_scroll.setSizePolicy(sizePolicy)
- self.queue_scroll.setFocusPolicy(QtCore.Qt.WheelFocus)
- self.queue_scroll.setFrameShape(QtWidgets.QFrame.NoFrame)
- self.queue_scroll.setHorizontalScrollBarPolicy(QtCore.Qt.ScrollBarAlwaysOff)
- self.queue_scroll.setWidgetResizable(True)
- self.queue_scroll.setAlignment(QtCore.Qt.AlignLeading|QtCore.Qt.AlignLeft|QtCore.Qt.AlignTop)
- self.queue_scroll.setObjectName("queue_scroll")
- self.queue_scroll_contents = QtWidgets.QWidget()
- self.queue_scroll_contents.setGeometry(QtCore.QRect(0, 0, 665, 16))
- sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Preferred, QtWidgets.QSizePolicy.Maximum)
- sizePolicy.setHorizontalStretch(0)
- sizePolicy.setVerticalStretch(0)
- sizePolicy.setHeightForWidth(self.queue_scroll_contents.sizePolicy().hasHeightForWidth())
- self.queue_scroll_contents.setSizePolicy(sizePolicy)
- self.queue_scroll_contents.setObjectName("queue_scroll_contents")
- self.queue_scroll_contents_layout = QtWidgets.QVBoxLayout(self.queue_scroll_contents)
- self.queue_scroll_contents_layout.setContentsMargins(0, 0, 3, 0)
- self.queue_scroll_contents_layout.setObjectName("queue_scroll_contents_layout")
- self.queue_scroll.setWidget(self.queue_scroll_contents)
- self.downloads_tab_layout.addWidget(self.queue_scroll)
-
- self.retranslateUi(DownloadsTab)
-
- def retranslateUi(self, DownloadsTab):
- _translate = QtCore.QCoreApplication.translate
- self.dl_speed_label.setText(_translate("DownloadsTab", "Download speed:"))
- self.dl_name_label.setText(_translate("DownloadsTab", "Current download:"))
- self.time_left_label.setText(_translate("DownloadsTab", "Time left:"))
- self.downloaded_label.setText(_translate("DownloadsTab", "Downloaded:"))
- self.cache_used_label.setText(_translate("DownloadsTab", "Cache size:"))
- self.kill_button.setText(_translate("DownloadsTab", "Stop Download"))
-
-
-if __name__ == "__main__":
- import sys
- app = QtWidgets.QApplication(sys.argv)
- DownloadsTab = QtWidgets.QWidget()
- ui = Ui_DownloadsTab()
- ui.setupUi(DownloadsTab)
- DownloadsTab.show()
- sys.exit(app.exec_())
diff --git a/rare/ui/components/tabs/downloads/downloads_tab.ui b/rare/ui/components/tabs/downloads/downloads_tab.ui
deleted file mode 100644
index e00bc800..00000000
--- a/rare/ui/components/tabs/downloads/downloads_tab.ui
+++ /dev/null
@@ -1,270 +0,0 @@
-
-
- DownloadsTab
-
-
-
- 0
- 0
- 677
- 203
-
-
-
-
- 0
- 0
-
-
-
- Form
-
-
- -
-
-
-
-
-
-
- 75
- true
-
-
-
- Download speed:
-
-
- Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter
-
-
-
- -
-
-
-
- 0
- 0
-
-
-
- dl_speed
-
-
-
- -
-
-
-
- 0
- 0
-
-
-
- cache_used
-
-
-
- -
-
-
-
- 0
- 0
-
-
-
- time_left
-
-
-
- -
-
-
-
- 0
- 0
-
-
-
-
- 50
- false
-
-
-
- dl_name
-
-
-
- -
-
-
-
- 75
- true
-
-
-
- Current download:
-
-
- Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter
-
-
-
- -
-
-
-
- 75
- true
-
-
-
- Time left:
-
-
- Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter
-
-
-
- -
-
-
-
- 75
- true
-
-
-
- Downloaded:
-
-
- Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter
-
-
-
- -
-
-
-
- 0
- 0
-
-
-
- downloaded
-
-
-
- -
-
-
-
- 75
- true
-
-
-
- Cache size:
-
-
- Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter
-
-
-
-
-
- -
-
-
-
-
-
-
- 0
- 0
-
-
-
- 0
-
-
-
- -
-
-
-
- 0
- 0
-
-
-
- Stop Download
-
-
-
-
-
- -
-
-
- -
-
-
-
- 0
- 0
-
-
-
- Qt::WheelFocus
-
-
- QFrame::NoFrame
-
-
- Qt::ScrollBarAlwaysOff
-
-
- true
-
-
- Qt::AlignLeading|Qt::AlignLeft|Qt::AlignTop
-
-
-
-
- 0
- 0
- 665
- 16
-
-
-
-
- 0
- 0
-
-
-
-
- 0
-
-
- 0
-
-
- 3
-
-
- 0
-
-
-
-
-
-
-
-
-
-