1
0
Fork 0
mirror of synced 2024-06-08 05:34:41 +12:00

Download tab: Updates in Groupbox; Fixed bug in Legendary settings

This commit is contained in:
Dummerle 2021-04-07 18:18:50 +02:00
parent 81032c94f5
commit 77d740470f
4 changed files with 39 additions and 27 deletions

View file

@ -1,7 +1,11 @@
from logging import getLogger
from PyQt5.QtCore import pyqtSignal
from PyQt5.QtWidgets import QGroupBox, QVBoxLayout, QLabel, QHBoxLayout, QPushButton, QWidget
from qtawesome import icon
logger = getLogger("QueueWidget")
class DlWidget(QWidget):
move_up = pyqtSignal(str) # app_name
@ -65,6 +69,7 @@ class DlQueueWidget(QGroupBox):
self.setLayout(self.layout)
def update_queue(self, dl_queue: list):
logger.info("Update Queue " + ", ".join(i[1].app_title for i in dl_queue))
self.dl_queue = dl_queue
self.setLayout(QVBoxLayout())
QWidget().setLayout(self.layout)
@ -92,7 +97,7 @@ class DlQueueWidget(QGroupBox):
self.dl_queue.pop(index)
break
else:
print("BUG! ", app_name)
logger.warning("BUG! ", app_name)
return
self.update_list.emit(self.dl_queue)
self.update_queue(self.dl_queue)
@ -105,6 +110,7 @@ class DlQueueWidget(QGroupBox):
index = i
break
else:
logger.warning("Could not find appname" + app_name)
return
self.dl_queue.insert(index - 1, self.dl_queue.pop(index))
self.update_list.emit(self.dl_queue)
@ -118,6 +124,7 @@ class DlQueueWidget(QGroupBox):
index = i
break
else:
logger.warning("Could not find appname" + app_name)
return
self.dl_queue.insert(index + 1, self.dl_queue.pop(index))
self.update_list.emit(self.dl_queue)

View file

@ -4,7 +4,7 @@ from multiprocessing import Queue as MPQueue
from PyQt5.QtCore import QThread, pyqtSignal, Qt
from PyQt5.QtWidgets import QWidget, QMessageBox, QVBoxLayout, QLabel, QGridLayout, QProgressBar, QPushButton, QDialog, \
QListWidget, QHBoxLayout
QListWidget, QHBoxLayout, QGroupBox
from Rare.Components.Dialogs.InstallDialog import InstallInfoDialog, InstallDialog
from Rare.Components.Tabs.Downloads.DlQueueWidget import DlQueueWidget
@ -61,24 +61,23 @@ class DownloadTab(QWidget):
self.layout.addWidget(self.queue_widget)
self.queue_widget.update_list.connect(self.update_dl_queue)
self.update_title = QLabel(f"<h2>{self.tr('Updates')}</h2>")
self.update_title.setStyleSheet("""
QLabel{
margin-top: 20px;
}
""")
self.layout.addWidget(self.update_title)
self.updates = QGroupBox(self.tr("Updates"))
self.updates.setObjectName("group")
self.update_layout = QVBoxLayout()
self.update_widgets = {}
if not updates:
self.update_text = QLabel(self.tr("No updates available"))
self.layout.addWidget(self.update_text)
else:
for igame in updates:
widget = UpdateWidget(core, igame)
self.update_widgets[igame.app_name] = widget
self.layout.addWidget(widget)
widget.update.connect(self.update_game)
self.update_text = QLabel(self.tr("No updates available"))
self.update_text.setVisible(len(updates) == 0)
self.update_layout.addWidget(self.update_text)
for igame in updates:
widget = UpdateWidget(core, igame)
self.update_widgets[igame.app_name] = widget
self.update_layout.addWidget(widget)
widget.update.connect(self.update_game)
self.updates.setLayout(self.update_layout)
self.layout.addWidget(self.updates)
self.layout.addStretch(1)
self.setLayout(self.layout)
@ -86,7 +85,6 @@ class DownloadTab(QWidget):
def update_dl_queue(self, dl_queue):
self.dl_queue = dl_queue
def stop_download(self):
self.thread.kill = True

View file

@ -37,10 +37,17 @@ class IconWidgetUninstalled(BaseUninstalledWidget):
self.setFixedWidth(self.sizeHint().width())
def mousePressEvent(self, e) -> None:
self.install()
if not self.installing:
self.install()
def enterEvent(self, e):
self.info_label.setText(self.tr("Install Game"))
if not self.installing:
self.info_label.setText(self.tr("Install Game"))
else:
self.info_label.setText(self.tr("Installation running"))
def leaveEvent(self, e):
self.info_label.setText("")
if self.installing:
self.info_label.setText("Installation...")
else:
self.info_label.setText("")

View file

@ -59,20 +59,20 @@ class LegendarySettings(QGroupBox):
self.core.lgd.config["Legendary"]["install_dir"] = self.select_path.text()
if self.select_path.text() == "" and "install_dir" in self.core.lgd.config["Legendary"].keys():
self.core.lgd.config["Legendary"].pop("install_dir")
logger.info("Remove install_dir section")
else:
logger.info("Set config install_dir to " + self.select_path.text())
self.core.lgd.save_config()
def max_worker_save(self, num_workers: str):
self.core.lgd.config["Legendary"]["max_workers"] = num_workers
if num_workers == "":
self.core.lgd.config["Legendary"].pop("max_workers")
self.core.lgd.config.remove_option("Legendary", "max_workers")
self.core.lgd.save_config()
return
num_workers = int(num_workers)
if num_workers == 0:
self.core.lgd.config["Legendary"].pop("max_workers")
logger.info("Updating config for max_workers")
self.core.lgd.config.remove_option("Legendary", "max_workers")
else:
self.core.lgd.config.set("Legendary", "max_workers", str(num_workers))
self.core.lgd.save_config()
def cleanup(self, keep_manifests):