1
0
Fork 0
mirror of synced 2024-06-26 18:20:50 +12:00

Add refresh game meta button

This commit is contained in:
Dummerle 2021-12-27 16:33:56 +01:00
parent bf1b8d6d27
commit 021dedc3d6
No known key found for this signature in database
GPG key ID: AB68CC59CA39F2F1
3 changed files with 49 additions and 9 deletions

View file

@ -2,6 +2,7 @@ import re
from logging import getLogger
from typing import Tuple
from PyQt5.QtCore import QRunnable, QObject, pyqtSignal, QThreadPool
from PyQt5.QtWidgets import QSizePolicy, QWidget, QFileDialog, QMessageBox
import rare.shared as shared
@ -13,6 +14,24 @@ from rare.utils.utils import get_size
logger = getLogger("LegendarySettings")
class WorkerSignals(QObject):
finished = pyqtSignal()
def __init__(self):
super(WorkerSignals, self).__init__()
class RefreshGameMetaWorker(QRunnable):
def __init__(self):
super(RefreshGameMetaWorker, self).__init__()
self.setAutoDelete(True)
self.signals = WorkerSignals()
def run(self) -> None:
shared.core.get_game_and_dlc_list(True, force_refresh=True)
self.signals.finished.emit()
class LegendarySettings(QWidget, Ui_LegendarySettings):
def __init__(self, parent=None):
super(LegendarySettings, self).__init__(parent=parent)
@ -66,6 +85,16 @@ class LegendarySettings(QWidget, Ui_LegendarySettings):
self.ubi_helper = UbiActivationHelper(self.ubisoft_gb)
self.refresh_game_meta_btn.clicked.connect(self.refresh_game_meta)
def refresh_game_meta(self):
self.refresh_game_meta_btn.setDisabled(True)
self.refresh_game_meta_btn.setText(self.tr("Loading"))
worker = RefreshGameMetaWorker()
worker.signals.finished.connect(lambda: self.refresh_game_meta_btn.setDisabled(False))
worker.signals.finished.connect(lambda: self.refresh_game_meta_btn.setText(self.tr("Refresh game meta")))
QThreadPool.globalInstance().start(worker)
@staticmethod
def locale_edit_cb(text: str) -> Tuple[bool, str]:
if text:

View file

@ -40,6 +40,9 @@ class Ui_LegendarySettings(object):
self.clean_button = QtWidgets.QPushButton(self.cleanup_group)
self.clean_button.setObjectName("clean_button")
self.cleanup_layout.addWidget(self.clean_button)
self.refresh_game_meta_btn = QtWidgets.QPushButton(self.cleanup_group)
self.refresh_game_meta_btn.setObjectName("refresh_game_meta_btn")
self.cleanup_layout.addWidget(self.refresh_game_meta_btn)
self.right_layout.addWidget(self.cleanup_group)
self.gridLayout.addLayout(self.right_layout, 0, 1, 1, 1)
self.ubisoft_gb = QtWidgets.QGroupBox(LegendarySettings)
@ -77,7 +80,7 @@ class Ui_LegendarySettings(object):
self.max_worker_spin.setSizePolicy(sizePolicy)
self.max_worker_spin.setMinimum(0)
self.max_worker_spin.setMaximum(16)
self.max_worker_spin.setProperty("value", 4)
self.max_worker_spin.setProperty("value", 0)
self.max_worker_spin.setObjectName("max_worker_spin")
self.max_workers_layout.addWidget(self.max_worker_spin)
self.max_workers_info_label = QtWidgets.QLabel(self.download_group)
@ -138,6 +141,7 @@ class Ui_LegendarySettings(object):
self.cleanup_group.setTitle(_translate("LegendarySettings", "Cleanup"))
self.clean_keep_manifests_button.setText(_translate("LegendarySettings", "Clean, but keep manifests"))
self.clean_button.setText(_translate("LegendarySettings", "Remove everything"))
self.refresh_game_meta_btn.setText(_translate("LegendarySettings", "Refresh game meta"))
self.ubisoft_gb.setTitle(_translate("LegendarySettings", "Link Ubisoft Games"))
self.install_dir_group.setTitle(_translate("LegendarySettings", "Default Installation Directory"))
self.download_group.setTitle(_translate("LegendarySettings", "Download Settings"))

View file

@ -43,13 +43,20 @@
</property>
</widget>
</item>
<item>
<widget class="QPushButton" name="clean_button">
<property name="text">
<string>Remove everything</string>
</property>
</widget>
</item>
<item>
<widget class="QPushButton" name="clean_button">
<property name="text">
<string>Remove everything</string>
</property>
</widget>
</item>
<item>
<widget class="QPushButton" name="refresh_game_meta_btn">
<property name="text">
<string>Refresh game meta</string>
</property>
</widget>
</item>
</layout>
</widget>
</item>
@ -112,7 +119,7 @@
<number>16</number>
</property>
<property name="value">
<number>4</number>
<number>0</number>
</property>
</widget>
</item>