From 9b2ca344ebca306be2ae0b0e8bcf14a7bdb297c5 Mon Sep 17 00:00:00 2001 From: Dummerle Date: Wed, 7 Apr 2021 17:44:59 +0200 Subject: [PATCH] Download queue; move up and down --- .../Tabs/Downloads/DlQueueWidget.py | 35 +++++++++++++++++-- 1 file changed, 33 insertions(+), 2 deletions(-) diff --git a/Rare/Components/Tabs/Downloads/DlQueueWidget.py b/Rare/Components/Tabs/Downloads/DlQueueWidget.py index b3e5535b..bdb0db00 100644 --- a/Rare/Components/Tabs/Downloads/DlQueueWidget.py +++ b/Rare/Components/Tabs/Downloads/DlQueueWidget.py @@ -37,8 +37,8 @@ class DlWidget(QWidget): self.size = QHBoxLayout() - self.size.addWidget(QLabel(self.tr("Download size: {} GB").format(dl_size/1024**3))) - self.size.addWidget(QLabel(self.tr("Install size: {} GB").format(install_size/1024**3))) + self.size.addWidget(QLabel(self.tr("Download size: {} GB").format(dl_size / 1024 ** 3))) + self.size.addWidget(QLabel(self.tr("Install size: {} GB").format(install_size / 1024 ** 3))) self.right_layout.addLayout(self.size) self.delete = QPushButton(self.tr("Remove Download")) @@ -52,6 +52,7 @@ class DlWidget(QWidget): class DlQueueWidget(QGroupBox): update_list = pyqtSignal(list) dl_queue = [] + def __init__(self): super(DlQueueWidget, self).__init__() @@ -77,7 +78,11 @@ class DlQueueWidget(QGroupBox): for index, item in enumerate(dl_queue): widget = DlWidget(index, item) widget.remove.connect(self.remove) + widget.move_up.connect(self.move_up) + widget.move_down.connect(self.move_down) self.layout.addWidget(widget) + if index + 1 == len(dl_queue): + widget.move_down_buttton.setDisabled(True) self.setLayout(self.layout) @@ -91,3 +96,29 @@ class DlQueueWidget(QGroupBox): return self.update_list.emit(self.dl_queue) self.update_queue(self.dl_queue) + + def move_up(self, app_name): + index: int + + for i, item in enumerate(self.dl_queue): + if item[1].app_name == app_name: + index = i + break + else: + return + self.dl_queue.insert(index - 1, self.dl_queue.pop(index)) + self.update_list.emit(self.dl_queue) + self.update_queue(self.dl_queue) + + def move_down(self, app_name): + index: int + + for i, item in enumerate(self.dl_queue): + if item[1].app_name == app_name: + index = i + break + else: + return + self.dl_queue.insert(index + 1, self.dl_queue.pop(index)) + self.update_list.emit(self.dl_queue) + self.update_queue(self.dl_queue)