DownloadsTab: Paint the background of the active download stats with the image of the game
The Qt Designer UI file for the downloads tab was removed since the tab is simple enough to be implemented in code now.
This commit is contained in:
parent
6ee6ce5255
commit
f9b5385513
10 changed files with 687 additions and 687 deletions
|
@ -1,24 +1,25 @@
|
||||||
import datetime
|
import datetime
|
||||||
from ctypes import c_ulonglong
|
from ctypes import c_uint64
|
||||||
from logging import getLogger
|
from logging import getLogger
|
||||||
from typing import Union, Optional
|
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 (
|
from PyQt5.QtWidgets import (
|
||||||
QWidget,
|
QWidget,
|
||||||
QMessageBox,
|
QMessageBox, QScrollArea, QVBoxLayout, QSizePolicy,
|
||||||
)
|
)
|
||||||
|
|
||||||
from rare.components.dialogs.install_dialog import InstallDialog
|
from rare.components.dialogs.install_dialog import InstallDialog
|
||||||
from rare.components.dialogs.uninstall_dialog import UninstallDialog
|
from rare.components.dialogs.uninstall_dialog import UninstallDialog
|
||||||
from rare.lgndr.models.downloading import UIUpdate
|
from rare.lgndr.models.downloading import UIUpdate
|
||||||
from rare.models.game import RareGame
|
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 import RareCore
|
||||||
from rare.shared.workers.install_info import InstallInfoWorker
|
from rare.shared.workers.install_info import InstallInfoWorker
|
||||||
from rare.shared.workers.uninstall import UninstallWorker
|
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 rare.utils.misc import get_size, create_desktop_link
|
||||||
|
from .download import DownloadWidget
|
||||||
from .groups import UpdateGroup, QueueGroup
|
from .groups import UpdateGroup, QueueGroup
|
||||||
from .thread import DlThread, DlResultModel, DlResultCode
|
from .thread import DlThread, DlResultModel, DlResultCode
|
||||||
from .widgets import UpdateWidget, QueueWidget
|
from .widgets import UpdateWidget, QueueWidget
|
||||||
|
@ -36,38 +37,51 @@ class DownloadsTab(QWidget):
|
||||||
|
|
||||||
def __init__(self, parent=None):
|
def __init__(self, parent=None):
|
||||||
super(DownloadsTab, self).__init__(parent=parent)
|
super(DownloadsTab, self).__init__(parent=parent)
|
||||||
self.ui = Ui_DownloadsTab()
|
|
||||||
self.ui.setupUi(self)
|
|
||||||
self.rcore = RareCore.instance()
|
self.rcore = RareCore.instance()
|
||||||
self.core = self.rcore.core()
|
self.core = RareCore.instance().core()
|
||||||
self.signals = self.rcore.signals()
|
self.signals = RareCore.instance().signals()
|
||||||
self.args = self.rcore.args()
|
self.args = RareCore.instance().args()
|
||||||
|
|
||||||
self.thread: Optional[DlThread] = None
|
self.__thread: Optional[DlThread] = None
|
||||||
self.threadpool = QThreadPool.globalInstance()
|
|
||||||
|
|
||||||
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 = QueueGroup(self)
|
||||||
self.queue_group.update_count.connect(self.update_queues_count)
|
self.queue_group.update_count.connect(self.update_queues_count)
|
||||||
self.queue_group.removed.connect(self.__on_queue_removed)
|
self.queue_group.removed.connect(self.__on_queue_removed)
|
||||||
self.queue_group.force.connect(self.__on_queue_force)
|
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 = UpdateGroup(self)
|
||||||
self.updates_group.update_count.connect(self.update_queues_count)
|
self.updates_group.update_count.connect(self.update_queues_count)
|
||||||
self.updates_group.enqueue.connect(self.__get_install_options)
|
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.__check_updates()
|
||||||
|
self.__reset_download()
|
||||||
|
|
||||||
self.signals.game.install.connect(self.__get_install_options)
|
self.signals.game.install.connect(self.__get_install_options)
|
||||||
self.signals.game.uninstall.connect(self.__get_uninstall_options)
|
self.signals.game.uninstall.connect(self.__get_uninstall_options)
|
||||||
self.signals.download.enqueue.connect(self.__add_update)
|
self.signals.download.enqueue.connect(self.__add_update)
|
||||||
self.signals.download.dequeue.connect(self.__remove_update)
|
self.signals.download.dequeue.connect(self.__remove_update)
|
||||||
|
|
||||||
self.__reset_download()
|
|
||||||
|
|
||||||
self.__forced_item: Optional[InstallQueueItemModel] = None
|
self.__forced_item: Optional[InstallQueueItemModel] = None
|
||||||
self.__omit_requeue = False
|
self.__omit_requeue = False
|
||||||
|
|
||||||
|
@ -79,7 +93,7 @@ class DownloadsTab(QWidget):
|
||||||
|
|
||||||
@property
|
@property
|
||||||
def is_download_active(self):
|
def is_download_active(self):
|
||||||
return self.thread is not None
|
return self.__thread is not None
|
||||||
|
|
||||||
def __check_updates(self):
|
def __check_updates(self):
|
||||||
for rgame in self.rcore.updates:
|
for rgame in self.rcore.updates:
|
||||||
|
@ -100,7 +114,7 @@ class DownloadsTab(QWidget):
|
||||||
|
|
||||||
@pyqtSlot(str)
|
@pyqtSlot(str)
|
||||||
def __remove_update(self, app_name):
|
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)
|
self.stop_download(omit_queue=True)
|
||||||
if self.queue_group.contains(app_name):
|
if self.queue_group.contains(app_name):
|
||||||
self.queue_group.remove(app_name)
|
self.queue_group.remove(app_name)
|
||||||
|
@ -119,12 +133,13 @@ class DownloadsTab(QWidget):
|
||||||
if self.updates_group.contains(app_name):
|
if self.updates_group.contains(app_name):
|
||||||
self.updates_group.set_widget_enabled(app_name, True)
|
self.updates_group.set_widget_enabled(app_name, True)
|
||||||
else:
|
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)
|
self.__add_update(app_name)
|
||||||
|
|
||||||
@pyqtSlot(InstallQueueItemModel)
|
@pyqtSlot(InstallQueueItemModel)
|
||||||
def __on_queue_force(self, item: InstallQueueItemModel):
|
def __on_queue_force(self, item: InstallQueueItemModel):
|
||||||
if self.thread:
|
if self.__thread:
|
||||||
self.stop_download()
|
self.stop_download()
|
||||||
self.__forced_item = item
|
self.__forced_item = item
|
||||||
else:
|
else:
|
||||||
|
@ -139,15 +154,15 @@ class DownloadsTab(QWidget):
|
||||||
Defaults to `False`
|
Defaults to `False`
|
||||||
:return:
|
:return:
|
||||||
"""
|
"""
|
||||||
self.thread.kill()
|
self.__thread.kill()
|
||||||
self.ui.kill_button.setEnabled(False)
|
self.download_widget.ui.kill_button.setEnabled(False)
|
||||||
# lk: if we are exitin Rare, waif for thread to finish
|
# lk: if we are exitin Rare, waif for thread to finish
|
||||||
# `self.on_exit` control whether we try to add the download
|
# `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
|
# 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
|
# to finish, we do not care about handling the result really
|
||||||
self.__omit_requeue = omit_queue
|
self.__omit_requeue = omit_queue
|
||||||
if omit_queue:
|
if omit_queue:
|
||||||
self.thread.wait()
|
self.__thread.wait()
|
||||||
|
|
||||||
def __refresh_download(self, item: InstallQueueItemModel):
|
def __refresh_download(self, item: InstallQueueItemModel):
|
||||||
worker = InstallInfoWorker(self.core, item.options)
|
worker = InstallInfoWorker(self.core, item.options)
|
||||||
|
@ -160,7 +175,7 @@ class DownloadsTab(QWidget):
|
||||||
worker.signals.finished.connect(
|
worker.signals.finished.connect(
|
||||||
lambda: logger.info(f"Download refresh worker finished for {item.options.app_name}")
|
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):
|
def __start_download(self, item: InstallQueueItemModel):
|
||||||
rgame = self.rcore.get_game(item.options.app_name)
|
rgame = self.rcore.get_game(item.options.app_name)
|
||||||
|
@ -178,21 +193,24 @@ class DownloadsTab(QWidget):
|
||||||
thread.progress.connect(self.__on_download_progress)
|
thread.progress.connect(self.__on_download_progress)
|
||||||
thread.finished.connect(thread.deleteLater)
|
thread.finished.connect(thread.deleteLater)
|
||||||
thread.start()
|
thread.start()
|
||||||
self.thread = thread
|
self.__thread = thread
|
||||||
self.ui.kill_button.setDisabled(False)
|
self.download_widget.ui.kill_button.setDisabled(False)
|
||||||
self.ui.dl_name.setText(item.download.game.app_title)
|
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)
|
@pyqtSlot(UIUpdate, c_uint64)
|
||||||
def __on_download_progress(self, ui_update: UIUpdate, dl_size: c_ulonglong):
|
def __on_download_progress(self, ui_update: UIUpdate, dl_size: c_uint64):
|
||||||
self.ui.progress_bar.setValue(int(ui_update.progress))
|
self.download_widget.ui.progress_bar.setValue(int(ui_update.progress))
|
||||||
self.ui.dl_speed.setText(f"{get_size(ui_update.download_compressed_speed)}/s")
|
self.download_widget.ui.dl_speed.setText(f"{get_size(ui_update.download_compressed_speed)}/s")
|
||||||
self.ui.cache_used.setText(
|
self.download_widget.ui.cache_used.setText(
|
||||||
f"{get_size(ui_update.cache_usage) if ui_update.cache_usage > 1023 else '0KB'}"
|
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)}"
|
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):
|
def __requeue_download(self, item: InstallQueueItemModel):
|
||||||
rgame = self.rcore.get_game(item.options.app_name)
|
rgame = self.rcore.get_game(item.options.app_name)
|
||||||
|
@ -244,14 +262,15 @@ class DownloadsTab(QWidget):
|
||||||
self.__reset_download()
|
self.__reset_download()
|
||||||
|
|
||||||
def __reset_download(self):
|
def __reset_download(self):
|
||||||
self.ui.kill_button.setDisabled(True)
|
self.download_widget.setPixmap(QPixmap())
|
||||||
self.ui.dl_name.setText(self.tr("No active download"))
|
self.download_widget.ui.kill_button.setDisabled(True)
|
||||||
self.ui.progress_bar.setValue(0)
|
self.download_widget.ui.dl_name.setText(self.tr("No active download"))
|
||||||
self.ui.dl_speed.setText("n/a")
|
self.download_widget.ui.progress_bar.setValue(0)
|
||||||
self.ui.time_left.setText("n/a")
|
self.download_widget.ui.dl_speed.setText("n/a")
|
||||||
self.ui.cache_used.setText("n/a")
|
self.download_widget.ui.time_left.setText("n/a")
|
||||||
self.ui.downloaded.setText("n/a")
|
self.download_widget.ui.cache_used.setText("n/a")
|
||||||
self.thread = None
|
self.download_widget.ui.downloaded.setText("n/a")
|
||||||
|
self.__thread = None
|
||||||
|
|
||||||
@pyqtSlot(InstallOptionsModel)
|
@pyqtSlot(InstallOptionsModel)
|
||||||
def __get_install_options(self, options: InstallOptionsModel):
|
def __get_install_options(self, options: InstallOptionsModel):
|
||||||
|
@ -267,7 +286,7 @@ class DownloadsTab(QWidget):
|
||||||
def __on_install_dialog_closed(self, item: InstallQueueItemModel):
|
def __on_install_dialog_closed(self, item: InstallQueueItemModel):
|
||||||
if item:
|
if item:
|
||||||
# lk: start update only if there is no other active thread and there is no queue
|
# 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)
|
self.__start_download(item)
|
||||||
else:
|
else:
|
||||||
rgame = self.rcore.get_game(item.options.app_name)
|
rgame = self.rcore.get_game(item.options.app_name)
|
||||||
|
@ -302,7 +321,7 @@ class DownloadsTab(QWidget):
|
||||||
rgame.set_installed(False)
|
rgame.set_installed(False)
|
||||||
worker = UninstallWorker(self.core, rgame, options)
|
worker = UninstallWorker(self.core, rgame, options)
|
||||||
worker.signals.result.connect(self.__on_uninstall_worker_result)
|
worker.signals.result.connect(self.__on_uninstall_worker_result)
|
||||||
self.threadpool.start(worker)
|
QThreadPool.globalInstance().start(worker)
|
||||||
|
|
||||||
@pyqtSlot(RareGame, bool, str)
|
@pyqtSlot(RareGame, bool, str)
|
||||||
def __on_uninstall_worker_result(self, rgame: RareGame, success: bool, message: str):
|
def __on_uninstall_worker_result(self, rgame: RareGame, success: bool, message: str):
|
||||||
|
|
79
rare/components/tabs/downloads/download.py
Normal file
79
rare/components/tabs/downloads/download.py
Normal file
|
@ -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)
|
|
@ -2,7 +2,7 @@ import os
|
||||||
import platform
|
import platform
|
||||||
import queue
|
import queue
|
||||||
import time
|
import time
|
||||||
from ctypes import c_ulonglong
|
from ctypes import c_uint64
|
||||||
from dataclasses import dataclass
|
from dataclasses import dataclass
|
||||||
from enum import IntEnum
|
from enum import IntEnum
|
||||||
from logging import getLogger
|
from logging import getLogger
|
||||||
|
@ -39,14 +39,14 @@ class DlResultModel:
|
||||||
|
|
||||||
class DlThread(QThread):
|
class DlThread(QThread):
|
||||||
result = pyqtSignal(DlResultModel)
|
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):
|
def __init__(self, item: InstallQueueItemModel, rgame: RareGame, core: LegendaryCore, debug: bool = False):
|
||||||
super(DlThread, self).__init__()
|
super(DlThread, self).__init__()
|
||||||
self.dlm_signals: DLManagerSignals = DLManagerSignals()
|
self.dlm_signals: DLManagerSignals = DLManagerSignals()
|
||||||
self.core: LegendaryCore = core
|
self.core: LegendaryCore = core
|
||||||
self.item: InstallQueueItemModel = item
|
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.rgame = rgame
|
||||||
self.debug = debug
|
self.debug = debug
|
||||||
|
|
||||||
|
|
|
@ -10,7 +10,7 @@ from qtawesome import icon
|
||||||
from rare.models.install import InstallQueueItemModel, InstallOptionsModel, InstallDownloadModel
|
from rare.models.install import InstallQueueItemModel, InstallOptionsModel, InstallDownloadModel
|
||||||
from rare.shared import RareCore, ImageManagerSingleton
|
from rare.shared import RareCore, ImageManagerSingleton
|
||||||
from rare.shared.workers.install_info import InstallInfoWorker
|
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.ui.components.tabs.downloads.info_widget import Ui_InfoWidget
|
||||||
from rare.utils.misc import get_size, widget_object_name, elide_text
|
from rare.utils.misc import get_size, widget_object_name, elide_text
|
||||||
from rare.widgets.image_widget import ImageWidget, ImageSize
|
from rare.widgets.image_widget import ImageWidget, ImageSize
|
||||||
|
@ -65,7 +65,7 @@ class UpdateWidget(QFrame):
|
||||||
|
|
||||||
def __init__(self, game: Game, igame: InstalledGame, parent=None):
|
def __init__(self, game: Game, igame: InstalledGame, parent=None):
|
||||||
super(UpdateWidget, self).__init__(parent=parent)
|
super(UpdateWidget, self).__init__(parent=parent)
|
||||||
self.ui = Ui_DownloadWidget()
|
self.ui = Ui_BaseWidget()
|
||||||
self.ui.setupUi(self)
|
self.ui.setupUi(self)
|
||||||
# lk: setObjectName has to be after `setupUi` because it is also set in that function
|
# lk: setObjectName has to be after `setupUi` because it is also set in that function
|
||||||
self.setObjectName(widget_object_name(self, game.app_name))
|
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):
|
def __init__(self, item: InstallQueueItemModel, old_igame: InstalledGame, parent=None):
|
||||||
super(QueueWidget, self).__init__(parent=parent)
|
super(QueueWidget, self).__init__(parent=parent)
|
||||||
self.ui = Ui_DownloadWidget()
|
self.ui = Ui_BaseWidget()
|
||||||
self.ui.setupUi(self)
|
self.ui.setupUi(self)
|
||||||
# lk: setObjectName has to be after `setupUi` because it is also set in that function
|
# 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))
|
self.setObjectName(widget_object_name(self, item.options.app_name))
|
||||||
|
|
95
rare/ui/components/tabs/downloads/base_widget.py
Normal file
95
rare/ui/components/tabs/downloads/base_widget.py
Normal file
|
@ -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_())
|
153
rare/ui/components/tabs/downloads/base_widget.ui
Normal file
153
rare/ui/components/tabs/downloads/base_widget.ui
Normal file
|
@ -0,0 +1,153 @@
|
||||||
|
<?xml version="1.0" encoding="UTF-8"?>
|
||||||
|
<ui version="4.0">
|
||||||
|
<class>BaseWidget</class>
|
||||||
|
<widget class="QFrame" name="BaseWidget">
|
||||||
|
<property name="geometry">
|
||||||
|
<rect>
|
||||||
|
<x>0</x>
|
||||||
|
<y>0</y>
|
||||||
|
<width>332</width>
|
||||||
|
<height>70</height>
|
||||||
|
</rect>
|
||||||
|
</property>
|
||||||
|
<property name="windowTitle">
|
||||||
|
<string notr="true">BaseWidget</string>
|
||||||
|
</property>
|
||||||
|
<property name="frameShape">
|
||||||
|
<enum>QFrame::StyledPanel</enum>
|
||||||
|
</property>
|
||||||
|
<layout class="QHBoxLayout" name="download_widget_layout" stretch="1,0,0,0">
|
||||||
|
<property name="leftMargin">
|
||||||
|
<number>0</number>
|
||||||
|
</property>
|
||||||
|
<property name="topMargin">
|
||||||
|
<number>0</number>
|
||||||
|
</property>
|
||||||
|
<property name="rightMargin">
|
||||||
|
<number>0</number>
|
||||||
|
</property>
|
||||||
|
<property name="bottomMargin">
|
||||||
|
<number>0</number>
|
||||||
|
</property>
|
||||||
|
<item>
|
||||||
|
<layout class="QHBoxLayout" name="info_layout"/>
|
||||||
|
</item>
|
||||||
|
<item>
|
||||||
|
<widget class="QWidget" name="move_buttons" native="true">
|
||||||
|
<layout class="QVBoxLayout" name="move_buttons_layout">
|
||||||
|
<property name="leftMargin">
|
||||||
|
<number>0</number>
|
||||||
|
</property>
|
||||||
|
<property name="topMargin">
|
||||||
|
<number>0</number>
|
||||||
|
</property>
|
||||||
|
<property name="rightMargin">
|
||||||
|
<number>0</number>
|
||||||
|
</property>
|
||||||
|
<property name="bottomMargin">
|
||||||
|
<number>0</number>
|
||||||
|
</property>
|
||||||
|
<item alignment="Qt::AlignLeft|Qt::AlignTop">
|
||||||
|
<widget class="QPushButton" name="move_up_button">
|
||||||
|
<property name="sizePolicy">
|
||||||
|
<sizepolicy hsizetype="Fixed" vsizetype="Fixed">
|
||||||
|
<horstretch>0</horstretch>
|
||||||
|
<verstretch>0</verstretch>
|
||||||
|
</sizepolicy>
|
||||||
|
</property>
|
||||||
|
<property name="text">
|
||||||
|
<string notr="true"/>
|
||||||
|
</property>
|
||||||
|
<property name="isSquare" stdset="0">
|
||||||
|
<number>1</number>
|
||||||
|
</property>
|
||||||
|
</widget>
|
||||||
|
</item>
|
||||||
|
<item alignment="Qt::AlignLeft|Qt::AlignBottom">
|
||||||
|
<widget class="QPushButton" name="move_down_button">
|
||||||
|
<property name="sizePolicy">
|
||||||
|
<sizepolicy hsizetype="Fixed" vsizetype="Fixed">
|
||||||
|
<horstretch>0</horstretch>
|
||||||
|
<verstretch>0</verstretch>
|
||||||
|
</sizepolicy>
|
||||||
|
</property>
|
||||||
|
<property name="text">
|
||||||
|
<string notr="true"/>
|
||||||
|
</property>
|
||||||
|
<property name="isSquare" stdset="0">
|
||||||
|
<number>1</number>
|
||||||
|
</property>
|
||||||
|
</widget>
|
||||||
|
</item>
|
||||||
|
</layout>
|
||||||
|
</widget>
|
||||||
|
</item>
|
||||||
|
<item>
|
||||||
|
<widget class="QWidget" name="queue_buttons" native="true">
|
||||||
|
<layout class="QVBoxLayout" name="queue_buttons_layout">
|
||||||
|
<property name="leftMargin">
|
||||||
|
<number>0</number>
|
||||||
|
</property>
|
||||||
|
<property name="topMargin">
|
||||||
|
<number>0</number>
|
||||||
|
</property>
|
||||||
|
<property name="rightMargin">
|
||||||
|
<number>0</number>
|
||||||
|
</property>
|
||||||
|
<property name="bottomMargin">
|
||||||
|
<number>0</number>
|
||||||
|
</property>
|
||||||
|
<item>
|
||||||
|
<widget class="QPushButton" name="force_button">
|
||||||
|
<property name="text">
|
||||||
|
<string>Update now</string>
|
||||||
|
</property>
|
||||||
|
</widget>
|
||||||
|
</item>
|
||||||
|
<item alignment="Qt::AlignTop">
|
||||||
|
<widget class="QPushButton" name="remove_button">
|
||||||
|
<property name="text">
|
||||||
|
<string>Remove from queue</string>
|
||||||
|
</property>
|
||||||
|
</widget>
|
||||||
|
</item>
|
||||||
|
</layout>
|
||||||
|
</widget>
|
||||||
|
</item>
|
||||||
|
<item>
|
||||||
|
<widget class="QWidget" name="update_buttons" native="true">
|
||||||
|
<layout class="QVBoxLayout" name="update_buttons_layout">
|
||||||
|
<property name="leftMargin">
|
||||||
|
<number>0</number>
|
||||||
|
</property>
|
||||||
|
<property name="topMargin">
|
||||||
|
<number>0</number>
|
||||||
|
</property>
|
||||||
|
<property name="rightMargin">
|
||||||
|
<number>0</number>
|
||||||
|
</property>
|
||||||
|
<property name="bottomMargin">
|
||||||
|
<number>0</number>
|
||||||
|
</property>
|
||||||
|
<item alignment="Qt::AlignTop">
|
||||||
|
<widget class="QPushButton" name="update_button">
|
||||||
|
<property name="text">
|
||||||
|
<string>Update game</string>
|
||||||
|
</property>
|
||||||
|
</widget>
|
||||||
|
</item>
|
||||||
|
<item alignment="Qt::AlignTop">
|
||||||
|
<widget class="QPushButton" name="settings_button">
|
||||||
|
<property name="text">
|
||||||
|
<string>Update with settings</string>
|
||||||
|
</property>
|
||||||
|
</widget>
|
||||||
|
</item>
|
||||||
|
</layout>
|
||||||
|
</widget>
|
||||||
|
</item>
|
||||||
|
</layout>
|
||||||
|
</widget>
|
||||||
|
<resources/>
|
||||||
|
<connections/>
|
||||||
|
</ui>
|
|
@ -2,7 +2,7 @@
|
||||||
|
|
||||||
# Form implementation generated from reading ui file 'rare/ui/components/tabs/downloads/download_widget.ui'
|
# 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
|
# 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.
|
# 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):
|
class Ui_DownloadWidget(object):
|
||||||
def setupUi(self, DownloadWidget):
|
def setupUi(self, DownloadWidget):
|
||||||
DownloadWidget.setObjectName("DownloadWidget")
|
DownloadWidget.setObjectName("DownloadWidget")
|
||||||
DownloadWidget.resize(332, 70)
|
DownloadWidget.resize(490, 90)
|
||||||
DownloadWidget.setWindowTitle("DownloadWidget")
|
DownloadWidget.setWindowTitle("DownloadWidget")
|
||||||
DownloadWidget.setFrameShape(QtWidgets.QFrame.StyledPanel)
|
self.active_download_layout = QtWidgets.QGridLayout(DownloadWidget)
|
||||||
self.download_widget_layout = QtWidgets.QHBoxLayout(DownloadWidget)
|
self.active_download_layout.setContentsMargins(0, 0, 0, 0)
|
||||||
self.download_widget_layout.setContentsMargins(0, 0, 0, 0)
|
self.active_download_layout.setObjectName("active_download_layout")
|
||||||
self.download_widget_layout.setObjectName("download_widget_layout")
|
self.downloaded = QtWidgets.QLabel(DownloadWidget)
|
||||||
self.move_buttons = QtWidgets.QWidget(DownloadWidget)
|
sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Preferred, QtWidgets.QSizePolicy.Preferred)
|
||||||
self.move_buttons.setObjectName("move_buttons")
|
sizePolicy.setHorizontalStretch(0)
|
||||||
self.move_buttons_layout = QtWidgets.QVBoxLayout(self.move_buttons)
|
sizePolicy.setVerticalStretch(0)
|
||||||
self.move_buttons_layout.setContentsMargins(0, 0, 0, 0)
|
sizePolicy.setHeightForWidth(self.downloaded.sizePolicy().hasHeightForWidth())
|
||||||
self.move_buttons_layout.setObjectName("move_buttons_layout")
|
self.downloaded.setSizePolicy(sizePolicy)
|
||||||
self.move_up_button = QtWidgets.QPushButton(self.move_buttons)
|
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 = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Fixed, QtWidgets.QSizePolicy.Fixed)
|
||||||
sizePolicy.setHorizontalStretch(0)
|
sizePolicy.setHorizontalStretch(0)
|
||||||
sizePolicy.setVerticalStretch(0)
|
sizePolicy.setVerticalStretch(0)
|
||||||
sizePolicy.setHeightForWidth(self.move_up_button.sizePolicy().hasHeightForWidth())
|
sizePolicy.setHeightForWidth(self.kill_button.sizePolicy().hasHeightForWidth())
|
||||||
self.move_up_button.setSizePolicy(sizePolicy)
|
self.kill_button.setSizePolicy(sizePolicy)
|
||||||
self.move_up_button.setText("")
|
self.kill_button.setObjectName("kill_button")
|
||||||
self.move_up_button.setProperty("isSquare", 1)
|
self.active_download_layout.addWidget(self.kill_button, 3, 4, 1, 1)
|
||||||
self.move_up_button.setObjectName("move_up_button")
|
self.progress_bar = QtWidgets.QProgressBar(DownloadWidget)
|
||||||
self.move_buttons_layout.addWidget(self.move_up_button, 0, QtCore.Qt.AlignLeft|QtCore.Qt.AlignTop)
|
sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Minimum, QtWidgets.QSizePolicy.Maximum)
|
||||||
self.move_down_button = QtWidgets.QPushButton(self.move_buttons)
|
|
||||||
sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Fixed, QtWidgets.QSizePolicy.Fixed)
|
|
||||||
sizePolicy.setHorizontalStretch(0)
|
sizePolicy.setHorizontalStretch(0)
|
||||||
sizePolicy.setVerticalStretch(0)
|
sizePolicy.setVerticalStretch(0)
|
||||||
sizePolicy.setHeightForWidth(self.move_down_button.sizePolicy().hasHeightForWidth())
|
sizePolicy.setHeightForWidth(self.progress_bar.sizePolicy().hasHeightForWidth())
|
||||||
self.move_down_button.setSizePolicy(sizePolicy)
|
self.progress_bar.setSizePolicy(sizePolicy)
|
||||||
self.move_down_button.setText("")
|
self.progress_bar.setProperty("value", 0)
|
||||||
self.move_down_button.setProperty("isSquare", 1)
|
self.progress_bar.setObjectName("progress_bar")
|
||||||
self.move_down_button.setObjectName("move_down_button")
|
self.active_download_layout.addWidget(self.progress_bar, 3, 0, 1, 4)
|
||||||
self.move_buttons_layout.addWidget(self.move_down_button, 0, QtCore.Qt.AlignLeft|QtCore.Qt.AlignBottom)
|
self.active_download_layout.setColumnStretch(1, 1)
|
||||||
self.download_widget_layout.addWidget(self.move_buttons)
|
self.active_download_layout.setColumnStretch(3, 1)
|
||||||
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)
|
|
||||||
|
|
||||||
self.retranslateUi(DownloadWidget)
|
self.retranslateUi(DownloadWidget)
|
||||||
|
|
||||||
def retranslateUi(self, DownloadWidget):
|
def retranslateUi(self, DownloadWidget):
|
||||||
_translate = QtCore.QCoreApplication.translate
|
_translate = QtCore.QCoreApplication.translate
|
||||||
self.force_button.setText(_translate("DownloadWidget", "Update now"))
|
self.dl_speed_label.setText(_translate("DownloadWidget", "Download speed:"))
|
||||||
self.remove_button.setText(_translate("DownloadWidget", "Remove from queue"))
|
self.dl_name_label.setText(_translate("DownloadWidget", "Current download:"))
|
||||||
self.update_button.setText(_translate("DownloadWidget", "Update game"))
|
self.downloaded_label.setText(_translate("DownloadWidget", "Downloaded:"))
|
||||||
self.settings_button.setText(_translate("DownloadWidget", "Update with settings"))
|
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__":
|
if __name__ == "__main__":
|
||||||
import sys
|
import sys
|
||||||
app = QtWidgets.QApplication(sys.argv)
|
app = QtWidgets.QApplication(sys.argv)
|
||||||
DownloadWidget = QtWidgets.QFrame()
|
DownloadWidget = QtWidgets.QWidget()
|
||||||
ui = Ui_DownloadWidget()
|
ui = Ui_DownloadWidget()
|
||||||
ui.setupUi(DownloadWidget)
|
ui.setupUi(DownloadWidget)
|
||||||
DownloadWidget.show()
|
DownloadWidget.show()
|
||||||
|
|
|
@ -1,22 +1,19 @@
|
||||||
<?xml version="1.0" encoding="UTF-8"?>
|
<?xml version="1.0" encoding="UTF-8"?>
|
||||||
<ui version="4.0">
|
<ui version="4.0">
|
||||||
<class>DownloadWidget</class>
|
<class>DownloadWidget</class>
|
||||||
<widget class="QFrame" name="DownloadWidget">
|
<widget class="QWidget" name="DownloadWidget">
|
||||||
<property name="geometry">
|
<property name="geometry">
|
||||||
<rect>
|
<rect>
|
||||||
<x>0</x>
|
<x>0</x>
|
||||||
<y>0</y>
|
<y>0</y>
|
||||||
<width>332</width>
|
<width>490</width>
|
||||||
<height>70</height>
|
<height>90</height>
|
||||||
</rect>
|
</rect>
|
||||||
</property>
|
</property>
|
||||||
<property name="windowTitle">
|
<property name="windowTitle">
|
||||||
<string notr="true">DownloadWidget</string>
|
<string notr="true">DownloadWidget</string>
|
||||||
</property>
|
</property>
|
||||||
<property name="frameShape">
|
<layout class="QGridLayout" name="active_download_layout" columnstretch="0,1,0,1,0">
|
||||||
<enum>QFrame::StyledPanel</enum>
|
|
||||||
</property>
|
|
||||||
<layout class="QHBoxLayout" name="download_widget_layout" stretch="0,1,0,0">
|
|
||||||
<property name="leftMargin">
|
<property name="leftMargin">
|
||||||
<number>0</number>
|
<number>0</number>
|
||||||
</property>
|
</property>
|
||||||
|
@ -29,23 +26,159 @@
|
||||||
<property name="bottomMargin">
|
<property name="bottomMargin">
|
||||||
<number>0</number>
|
<number>0</number>
|
||||||
</property>
|
</property>
|
||||||
<item>
|
<item row="2" column="3">
|
||||||
<widget class="QWidget" name="move_buttons" native="true">
|
<widget class="QLabel" name="downloaded">
|
||||||
<layout class="QVBoxLayout" name="move_buttons_layout">
|
<property name="sizePolicy">
|
||||||
<property name="leftMargin">
|
<sizepolicy hsizetype="Preferred" vsizetype="Preferred">
|
||||||
<number>0</number>
|
<horstretch>0</horstretch>
|
||||||
|
<verstretch>0</verstretch>
|
||||||
|
</sizepolicy>
|
||||||
</property>
|
</property>
|
||||||
<property name="topMargin">
|
<property name="text">
|
||||||
<number>0</number>
|
<string notr="true">downloaded</string>
|
||||||
</property>
|
</property>
|
||||||
<property name="rightMargin">
|
</widget>
|
||||||
<number>0</number>
|
</item>
|
||||||
|
<item row="1" column="2">
|
||||||
|
<widget class="QLabel" name="dl_speed_label">
|
||||||
|
<property name="font">
|
||||||
|
<font>
|
||||||
|
<weight>75</weight>
|
||||||
|
<bold>true</bold>
|
||||||
|
</font>
|
||||||
</property>
|
</property>
|
||||||
<property name="bottomMargin">
|
<property name="text">
|
||||||
<number>0</number>
|
<string>Download speed:</string>
|
||||||
</property>
|
</property>
|
||||||
<item alignment="Qt::AlignLeft|Qt::AlignTop">
|
<property name="alignment">
|
||||||
<widget class="QPushButton" name="move_up_button">
|
<set>Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter</set>
|
||||||
|
</property>
|
||||||
|
</widget>
|
||||||
|
</item>
|
||||||
|
<item row="0" column="0">
|
||||||
|
<widget class="QLabel" name="dl_name_label">
|
||||||
|
<property name="font">
|
||||||
|
<font>
|
||||||
|
<weight>75</weight>
|
||||||
|
<bold>true</bold>
|
||||||
|
</font>
|
||||||
|
</property>
|
||||||
|
<property name="text">
|
||||||
|
<string>Current download:</string>
|
||||||
|
</property>
|
||||||
|
<property name="alignment">
|
||||||
|
<set>Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter</set>
|
||||||
|
</property>
|
||||||
|
</widget>
|
||||||
|
</item>
|
||||||
|
<item row="2" column="1">
|
||||||
|
<widget class="QLabel" name="cache_used">
|
||||||
|
<property name="sizePolicy">
|
||||||
|
<sizepolicy hsizetype="Preferred" vsizetype="Maximum">
|
||||||
|
<horstretch>0</horstretch>
|
||||||
|
<verstretch>0</verstretch>
|
||||||
|
</sizepolicy>
|
||||||
|
</property>
|
||||||
|
<property name="text">
|
||||||
|
<string notr="true">cache_used</string>
|
||||||
|
</property>
|
||||||
|
</widget>
|
||||||
|
</item>
|
||||||
|
<item row="1" column="1">
|
||||||
|
<widget class="QLabel" name="time_left">
|
||||||
|
<property name="sizePolicy">
|
||||||
|
<sizepolicy hsizetype="Preferred" vsizetype="Maximum">
|
||||||
|
<horstretch>0</horstretch>
|
||||||
|
<verstretch>0</verstretch>
|
||||||
|
</sizepolicy>
|
||||||
|
</property>
|
||||||
|
<property name="text">
|
||||||
|
<string notr="true">time_left</string>
|
||||||
|
</property>
|
||||||
|
</widget>
|
||||||
|
</item>
|
||||||
|
<item row="2" column="2">
|
||||||
|
<widget class="QLabel" name="downloaded_label">
|
||||||
|
<property name="font">
|
||||||
|
<font>
|
||||||
|
<weight>75</weight>
|
||||||
|
<bold>true</bold>
|
||||||
|
</font>
|
||||||
|
</property>
|
||||||
|
<property name="text">
|
||||||
|
<string>Downloaded:</string>
|
||||||
|
</property>
|
||||||
|
<property name="alignment">
|
||||||
|
<set>Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter</set>
|
||||||
|
</property>
|
||||||
|
</widget>
|
||||||
|
</item>
|
||||||
|
<item row="1" column="3">
|
||||||
|
<widget class="QLabel" name="dl_speed">
|
||||||
|
<property name="sizePolicy">
|
||||||
|
<sizepolicy hsizetype="Preferred" vsizetype="Preferred">
|
||||||
|
<horstretch>0</horstretch>
|
||||||
|
<verstretch>0</verstretch>
|
||||||
|
</sizepolicy>
|
||||||
|
</property>
|
||||||
|
<property name="text">
|
||||||
|
<string notr="true">dl_speed</string>
|
||||||
|
</property>
|
||||||
|
</widget>
|
||||||
|
</item>
|
||||||
|
<item row="2" column="0">
|
||||||
|
<widget class="QLabel" name="cache_used_label">
|
||||||
|
<property name="font">
|
||||||
|
<font>
|
||||||
|
<weight>75</weight>
|
||||||
|
<bold>true</bold>
|
||||||
|
</font>
|
||||||
|
</property>
|
||||||
|
<property name="text">
|
||||||
|
<string>Cache size:</string>
|
||||||
|
</property>
|
||||||
|
<property name="alignment">
|
||||||
|
<set>Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter</set>
|
||||||
|
</property>
|
||||||
|
</widget>
|
||||||
|
</item>
|
||||||
|
<item row="0" column="1" colspan="3">
|
||||||
|
<widget class="QLabel" name="dl_name">
|
||||||
|
<property name="sizePolicy">
|
||||||
|
<sizepolicy hsizetype="Preferred" vsizetype="Maximum">
|
||||||
|
<horstretch>0</horstretch>
|
||||||
|
<verstretch>0</verstretch>
|
||||||
|
</sizepolicy>
|
||||||
|
</property>
|
||||||
|
<property name="font">
|
||||||
|
<font>
|
||||||
|
<weight>50</weight>
|
||||||
|
<bold>false</bold>
|
||||||
|
</font>
|
||||||
|
</property>
|
||||||
|
<property name="text">
|
||||||
|
<string notr="true">dl_name</string>
|
||||||
|
</property>
|
||||||
|
</widget>
|
||||||
|
</item>
|
||||||
|
<item row="1" column="0">
|
||||||
|
<widget class="QLabel" name="time_left_label">
|
||||||
|
<property name="font">
|
||||||
|
<font>
|
||||||
|
<weight>75</weight>
|
||||||
|
<bold>true</bold>
|
||||||
|
</font>
|
||||||
|
</property>
|
||||||
|
<property name="text">
|
||||||
|
<string>Time left:</string>
|
||||||
|
</property>
|
||||||
|
<property name="alignment">
|
||||||
|
<set>Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter</set>
|
||||||
|
</property>
|
||||||
|
</widget>
|
||||||
|
</item>
|
||||||
|
<item row="3" column="4">
|
||||||
|
<widget class="QPushButton" name="kill_button">
|
||||||
<property name="sizePolicy">
|
<property name="sizePolicy">
|
||||||
<sizepolicy hsizetype="Fixed" vsizetype="Fixed">
|
<sizepolicy hsizetype="Fixed" vsizetype="Fixed">
|
||||||
<horstretch>0</horstretch>
|
<horstretch>0</horstretch>
|
||||||
|
@ -53,97 +186,21 @@
|
||||||
</sizepolicy>
|
</sizepolicy>
|
||||||
</property>
|
</property>
|
||||||
<property name="text">
|
<property name="text">
|
||||||
<string notr="true"/>
|
<string>Stop Download</string>
|
||||||
</property>
|
|
||||||
<property name="isSquare" stdset="0">
|
|
||||||
<number>1</number>
|
|
||||||
</property>
|
</property>
|
||||||
</widget>
|
</widget>
|
||||||
</item>
|
</item>
|
||||||
<item alignment="Qt::AlignLeft|Qt::AlignBottom">
|
<item row="3" column="0" colspan="4">
|
||||||
<widget class="QPushButton" name="move_down_button">
|
<widget class="QProgressBar" name="progress_bar">
|
||||||
<property name="sizePolicy">
|
<property name="sizePolicy">
|
||||||
<sizepolicy hsizetype="Fixed" vsizetype="Fixed">
|
<sizepolicy hsizetype="Minimum" vsizetype="Maximum">
|
||||||
<horstretch>0</horstretch>
|
<horstretch>0</horstretch>
|
||||||
<verstretch>0</verstretch>
|
<verstretch>0</verstretch>
|
||||||
</sizepolicy>
|
</sizepolicy>
|
||||||
</property>
|
</property>
|
||||||
<property name="text">
|
<property name="value">
|
||||||
<string notr="true"/>
|
|
||||||
</property>
|
|
||||||
<property name="isSquare" stdset="0">
|
|
||||||
<number>1</number>
|
|
||||||
</property>
|
|
||||||
</widget>
|
|
||||||
</item>
|
|
||||||
</layout>
|
|
||||||
</widget>
|
|
||||||
</item>
|
|
||||||
<item>
|
|
||||||
<layout class="QHBoxLayout" name="info_layout"/>
|
|
||||||
</item>
|
|
||||||
<item>
|
|
||||||
<widget class="QWidget" name="queue_buttons" native="true">
|
|
||||||
<layout class="QVBoxLayout" name="queue_buttons_layout">
|
|
||||||
<property name="leftMargin">
|
|
||||||
<number>0</number>
|
<number>0</number>
|
||||||
</property>
|
</property>
|
||||||
<property name="topMargin">
|
|
||||||
<number>0</number>
|
|
||||||
</property>
|
|
||||||
<property name="rightMargin">
|
|
||||||
<number>0</number>
|
|
||||||
</property>
|
|
||||||
<property name="bottomMargin">
|
|
||||||
<number>0</number>
|
|
||||||
</property>
|
|
||||||
<item>
|
|
||||||
<widget class="QPushButton" name="force_button">
|
|
||||||
<property name="text">
|
|
||||||
<string>Update now</string>
|
|
||||||
</property>
|
|
||||||
</widget>
|
|
||||||
</item>
|
|
||||||
<item alignment="Qt::AlignTop">
|
|
||||||
<widget class="QPushButton" name="remove_button">
|
|
||||||
<property name="text">
|
|
||||||
<string>Remove from queue</string>
|
|
||||||
</property>
|
|
||||||
</widget>
|
|
||||||
</item>
|
|
||||||
</layout>
|
|
||||||
</widget>
|
|
||||||
</item>
|
|
||||||
<item>
|
|
||||||
<widget class="QWidget" name="update_buttons" native="true">
|
|
||||||
<layout class="QVBoxLayout" name="update_buttons_layout">
|
|
||||||
<property name="leftMargin">
|
|
||||||
<number>0</number>
|
|
||||||
</property>
|
|
||||||
<property name="topMargin">
|
|
||||||
<number>0</number>
|
|
||||||
</property>
|
|
||||||
<property name="rightMargin">
|
|
||||||
<number>0</number>
|
|
||||||
</property>
|
|
||||||
<property name="bottomMargin">
|
|
||||||
<number>0</number>
|
|
||||||
</property>
|
|
||||||
<item alignment="Qt::AlignTop">
|
|
||||||
<widget class="QPushButton" name="update_button">
|
|
||||||
<property name="text">
|
|
||||||
<string>Update game</string>
|
|
||||||
</property>
|
|
||||||
</widget>
|
|
||||||
</item>
|
|
||||||
<item alignment="Qt::AlignTop">
|
|
||||||
<widget class="QPushButton" name="settings_button">
|
|
||||||
<property name="text">
|
|
||||||
<string>Update with settings</string>
|
|
||||||
</property>
|
|
||||||
</widget>
|
|
||||||
</item>
|
|
||||||
</layout>
|
|
||||||
</widget>
|
</widget>
|
||||||
</item>
|
</item>
|
||||||
</layout>
|
</layout>
|
||||||
|
|
|
@ -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_())
|
|
|
@ -1,270 +0,0 @@
|
||||||
<?xml version="1.0" encoding="UTF-8"?>
|
|
||||||
<ui version="4.0">
|
|
||||||
<class>DownloadsTab</class>
|
|
||||||
<widget class="QWidget" name="DownloadsTab">
|
|
||||||
<property name="geometry">
|
|
||||||
<rect>
|
|
||||||
<x>0</x>
|
|
||||||
<y>0</y>
|
|
||||||
<width>677</width>
|
|
||||||
<height>203</height>
|
|
||||||
</rect>
|
|
||||||
</property>
|
|
||||||
<property name="sizePolicy">
|
|
||||||
<sizepolicy hsizetype="Preferred" vsizetype="Preferred">
|
|
||||||
<horstretch>0</horstretch>
|
|
||||||
<verstretch>0</verstretch>
|
|
||||||
</sizepolicy>
|
|
||||||
</property>
|
|
||||||
<property name="windowTitle">
|
|
||||||
<string notr="true">Form</string>
|
|
||||||
</property>
|
|
||||||
<layout class="QVBoxLayout" name="downloads_tab_layout">
|
|
||||||
<item>
|
|
||||||
<layout class="QGridLayout" name="download_layout" columnstretch="0,1,0,1">
|
|
||||||
<item row="1" column="2">
|
|
||||||
<widget class="QLabel" name="dl_speed_label">
|
|
||||||
<property name="font">
|
|
||||||
<font>
|
|
||||||
<weight>75</weight>
|
|
||||||
<bold>true</bold>
|
|
||||||
</font>
|
|
||||||
</property>
|
|
||||||
<property name="text">
|
|
||||||
<string>Download speed:</string>
|
|
||||||
</property>
|
|
||||||
<property name="alignment">
|
|
||||||
<set>Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter</set>
|
|
||||||
</property>
|
|
||||||
</widget>
|
|
||||||
</item>
|
|
||||||
<item row="1" column="3">
|
|
||||||
<widget class="QLabel" name="dl_speed">
|
|
||||||
<property name="sizePolicy">
|
|
||||||
<sizepolicy hsizetype="Preferred" vsizetype="Preferred">
|
|
||||||
<horstretch>0</horstretch>
|
|
||||||
<verstretch>0</verstretch>
|
|
||||||
</sizepolicy>
|
|
||||||
</property>
|
|
||||||
<property name="text">
|
|
||||||
<string notr="true">dl_speed</string>
|
|
||||||
</property>
|
|
||||||
</widget>
|
|
||||||
</item>
|
|
||||||
<item row="2" column="1">
|
|
||||||
<widget class="QLabel" name="cache_used">
|
|
||||||
<property name="sizePolicy">
|
|
||||||
<sizepolicy hsizetype="Preferred" vsizetype="Maximum">
|
|
||||||
<horstretch>0</horstretch>
|
|
||||||
<verstretch>0</verstretch>
|
|
||||||
</sizepolicy>
|
|
||||||
</property>
|
|
||||||
<property name="text">
|
|
||||||
<string notr="true">cache_used</string>
|
|
||||||
</property>
|
|
||||||
</widget>
|
|
||||||
</item>
|
|
||||||
<item row="1" column="1">
|
|
||||||
<widget class="QLabel" name="time_left">
|
|
||||||
<property name="sizePolicy">
|
|
||||||
<sizepolicy hsizetype="Preferred" vsizetype="Maximum">
|
|
||||||
<horstretch>0</horstretch>
|
|
||||||
<verstretch>0</verstretch>
|
|
||||||
</sizepolicy>
|
|
||||||
</property>
|
|
||||||
<property name="text">
|
|
||||||
<string notr="true">time_left</string>
|
|
||||||
</property>
|
|
||||||
</widget>
|
|
||||||
</item>
|
|
||||||
<item row="0" column="1" colspan="3">
|
|
||||||
<widget class="QLabel" name="dl_name">
|
|
||||||
<property name="sizePolicy">
|
|
||||||
<sizepolicy hsizetype="Preferred" vsizetype="Maximum">
|
|
||||||
<horstretch>0</horstretch>
|
|
||||||
<verstretch>0</verstretch>
|
|
||||||
</sizepolicy>
|
|
||||||
</property>
|
|
||||||
<property name="font">
|
|
||||||
<font>
|
|
||||||
<weight>50</weight>
|
|
||||||
<bold>false</bold>
|
|
||||||
</font>
|
|
||||||
</property>
|
|
||||||
<property name="text">
|
|
||||||
<string notr="true">dl_name</string>
|
|
||||||
</property>
|
|
||||||
</widget>
|
|
||||||
</item>
|
|
||||||
<item row="0" column="0">
|
|
||||||
<widget class="QLabel" name="dl_name_label">
|
|
||||||
<property name="font">
|
|
||||||
<font>
|
|
||||||
<weight>75</weight>
|
|
||||||
<bold>true</bold>
|
|
||||||
</font>
|
|
||||||
</property>
|
|
||||||
<property name="text">
|
|
||||||
<string>Current download:</string>
|
|
||||||
</property>
|
|
||||||
<property name="alignment">
|
|
||||||
<set>Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter</set>
|
|
||||||
</property>
|
|
||||||
</widget>
|
|
||||||
</item>
|
|
||||||
<item row="1" column="0">
|
|
||||||
<widget class="QLabel" name="time_left_label">
|
|
||||||
<property name="font">
|
|
||||||
<font>
|
|
||||||
<weight>75</weight>
|
|
||||||
<bold>true</bold>
|
|
||||||
</font>
|
|
||||||
</property>
|
|
||||||
<property name="text">
|
|
||||||
<string>Time left:</string>
|
|
||||||
</property>
|
|
||||||
<property name="alignment">
|
|
||||||
<set>Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter</set>
|
|
||||||
</property>
|
|
||||||
</widget>
|
|
||||||
</item>
|
|
||||||
<item row="2" column="2">
|
|
||||||
<widget class="QLabel" name="downloaded_label">
|
|
||||||
<property name="font">
|
|
||||||
<font>
|
|
||||||
<weight>75</weight>
|
|
||||||
<bold>true</bold>
|
|
||||||
</font>
|
|
||||||
</property>
|
|
||||||
<property name="text">
|
|
||||||
<string>Downloaded:</string>
|
|
||||||
</property>
|
|
||||||
<property name="alignment">
|
|
||||||
<set>Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter</set>
|
|
||||||
</property>
|
|
||||||
</widget>
|
|
||||||
</item>
|
|
||||||
<item row="2" column="3">
|
|
||||||
<widget class="QLabel" name="downloaded">
|
|
||||||
<property name="sizePolicy">
|
|
||||||
<sizepolicy hsizetype="Preferred" vsizetype="Preferred">
|
|
||||||
<horstretch>0</horstretch>
|
|
||||||
<verstretch>0</verstretch>
|
|
||||||
</sizepolicy>
|
|
||||||
</property>
|
|
||||||
<property name="text">
|
|
||||||
<string notr="true">downloaded</string>
|
|
||||||
</property>
|
|
||||||
</widget>
|
|
||||||
</item>
|
|
||||||
<item row="2" column="0">
|
|
||||||
<widget class="QLabel" name="cache_used_label">
|
|
||||||
<property name="font">
|
|
||||||
<font>
|
|
||||||
<weight>75</weight>
|
|
||||||
<bold>true</bold>
|
|
||||||
</font>
|
|
||||||
</property>
|
|
||||||
<property name="text">
|
|
||||||
<string>Cache size:</string>
|
|
||||||
</property>
|
|
||||||
<property name="alignment">
|
|
||||||
<set>Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter</set>
|
|
||||||
</property>
|
|
||||||
</widget>
|
|
||||||
</item>
|
|
||||||
</layout>
|
|
||||||
</item>
|
|
||||||
<item>
|
|
||||||
<layout class="QHBoxLayout" name="progress_layout">
|
|
||||||
<item>
|
|
||||||
<widget class="QProgressBar" name="progress_bar">
|
|
||||||
<property name="sizePolicy">
|
|
||||||
<sizepolicy hsizetype="Minimum" vsizetype="Maximum">
|
|
||||||
<horstretch>0</horstretch>
|
|
||||||
<verstretch>0</verstretch>
|
|
||||||
</sizepolicy>
|
|
||||||
</property>
|
|
||||||
<property name="value">
|
|
||||||
<number>0</number>
|
|
||||||
</property>
|
|
||||||
</widget>
|
|
||||||
</item>
|
|
||||||
<item>
|
|
||||||
<widget class="QPushButton" name="kill_button">
|
|
||||||
<property name="sizePolicy">
|
|
||||||
<sizepolicy hsizetype="Maximum" vsizetype="Maximum">
|
|
||||||
<horstretch>0</horstretch>
|
|
||||||
<verstretch>0</verstretch>
|
|
||||||
</sizepolicy>
|
|
||||||
</property>
|
|
||||||
<property name="text">
|
|
||||||
<string>Stop Download</string>
|
|
||||||
</property>
|
|
||||||
</widget>
|
|
||||||
</item>
|
|
||||||
</layout>
|
|
||||||
</item>
|
|
||||||
<item>
|
|
||||||
<layout class="QVBoxLayout" name="active_layout"/>
|
|
||||||
</item>
|
|
||||||
<item>
|
|
||||||
<widget class="QScrollArea" name="queue_scroll">
|
|
||||||
<property name="sizePolicy">
|
|
||||||
<sizepolicy hsizetype="Preferred" vsizetype="Expanding">
|
|
||||||
<horstretch>0</horstretch>
|
|
||||||
<verstretch>0</verstretch>
|
|
||||||
</sizepolicy>
|
|
||||||
</property>
|
|
||||||
<property name="focusPolicy">
|
|
||||||
<enum>Qt::WheelFocus</enum>
|
|
||||||
</property>
|
|
||||||
<property name="frameShape">
|
|
||||||
<enum>QFrame::NoFrame</enum>
|
|
||||||
</property>
|
|
||||||
<property name="horizontalScrollBarPolicy">
|
|
||||||
<enum>Qt::ScrollBarAlwaysOff</enum>
|
|
||||||
</property>
|
|
||||||
<property name="widgetResizable">
|
|
||||||
<bool>true</bool>
|
|
||||||
</property>
|
|
||||||
<property name="alignment">
|
|
||||||
<set>Qt::AlignLeading|Qt::AlignLeft|Qt::AlignTop</set>
|
|
||||||
</property>
|
|
||||||
<widget class="QWidget" name="queue_scroll_contents">
|
|
||||||
<property name="geometry">
|
|
||||||
<rect>
|
|
||||||
<x>0</x>
|
|
||||||
<y>0</y>
|
|
||||||
<width>665</width>
|
|
||||||
<height>16</height>
|
|
||||||
</rect>
|
|
||||||
</property>
|
|
||||||
<property name="sizePolicy">
|
|
||||||
<sizepolicy hsizetype="Preferred" vsizetype="Maximum">
|
|
||||||
<horstretch>0</horstretch>
|
|
||||||
<verstretch>0</verstretch>
|
|
||||||
</sizepolicy>
|
|
||||||
</property>
|
|
||||||
<layout class="QVBoxLayout" name="queue_scroll_contents_layout">
|
|
||||||
<property name="leftMargin">
|
|
||||||
<number>0</number>
|
|
||||||
</property>
|
|
||||||
<property name="topMargin">
|
|
||||||
<number>0</number>
|
|
||||||
</property>
|
|
||||||
<property name="rightMargin">
|
|
||||||
<number>3</number>
|
|
||||||
</property>
|
|
||||||
<property name="bottomMargin">
|
|
||||||
<number>0</number>
|
|
||||||
</property>
|
|
||||||
</layout>
|
|
||||||
</widget>
|
|
||||||
</widget>
|
|
||||||
</item>
|
|
||||||
</layout>
|
|
||||||
</widget>
|
|
||||||
<resources/>
|
|
||||||
<connections/>
|
|
||||||
</ui>
|
|
Loading…
Reference in a new issue