1
0
Fork 0
mirror of synced 2024-09-30 09:17:37 +13: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 logging import getLogger
from typing import Tuple from typing import Tuple
from PyQt5.QtCore import QRunnable, QObject, pyqtSignal, QThreadPool
from PyQt5.QtWidgets import QSizePolicy, QWidget, QFileDialog, QMessageBox from PyQt5.QtWidgets import QSizePolicy, QWidget, QFileDialog, QMessageBox
import rare.shared as shared import rare.shared as shared
@ -13,6 +14,24 @@ from rare.utils.utils import get_size
logger = getLogger("LegendarySettings") 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): class LegendarySettings(QWidget, Ui_LegendarySettings):
def __init__(self, parent=None): def __init__(self, parent=None):
super(LegendarySettings, self).__init__(parent=parent) super(LegendarySettings, self).__init__(parent=parent)
@ -66,6 +85,16 @@ class LegendarySettings(QWidget, Ui_LegendarySettings):
self.ubi_helper = UbiActivationHelper(self.ubisoft_gb) 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 @staticmethod
def locale_edit_cb(text: str) -> Tuple[bool, str]: def locale_edit_cb(text: str) -> Tuple[bool, str]:
if text: if text:

View file

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

View file

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