Add load meta settings for 32 bit and macos
This commit is contained in:
parent
6de9a4c15e
commit
c26a30d9c9
4 changed files with 391 additions and 307 deletions
|
@ -2,7 +2,7 @@ import os
|
||||||
import platform
|
import platform
|
||||||
from logging import getLogger
|
from logging import getLogger
|
||||||
|
|
||||||
from PyQt5.QtCore import Qt, pyqtSignal, QRunnable, QObject, QThreadPool
|
from PyQt5.QtCore import Qt, pyqtSignal, QRunnable, QObject, QThreadPool, QSettings
|
||||||
from PyQt5.QtWidgets import QDialog, QApplication
|
from PyQt5.QtWidgets import QDialog, QApplication
|
||||||
from legendary.core import LegendaryCore
|
from legendary.core import LegendaryCore
|
||||||
from requests.exceptions import ConnectionError, HTTPError
|
from requests.exceptions import ConnectionError, HTTPError
|
||||||
|
@ -40,9 +40,10 @@ class ApiRequestWorker(QRunnable):
|
||||||
self.signals = LaunchDialogSignals()
|
self.signals = LaunchDialogSignals()
|
||||||
self.setAutoDelete(True)
|
self.setAutoDelete(True)
|
||||||
self.core = LegendaryCoreSingleton()
|
self.core = LegendaryCoreSingleton()
|
||||||
|
self.settings = QSettings()
|
||||||
|
|
||||||
def run(self) -> None:
|
def run(self) -> None:
|
||||||
if platform.system() == "Darwin" or "Mac" in self.core.get_installed_platforms():
|
if self.settings.value("mac_meta", platform.system() == "Darwin", bool):
|
||||||
try:
|
try:
|
||||||
result = self.core.get_game_and_dlc_list(True, "Mac")
|
result = self.core.get_game_and_dlc_list(True, "Mac")
|
||||||
except HTTPError:
|
except HTTPError:
|
||||||
|
@ -50,10 +51,14 @@ class ApiRequestWorker(QRunnable):
|
||||||
self.signals.result.emit(result, "mac")
|
self.signals.result.emit(result, "mac")
|
||||||
else:
|
else:
|
||||||
self.signals.result.emit(([], {}), "mac")
|
self.signals.result.emit(([], {}), "mac")
|
||||||
|
|
||||||
|
if self.settings.value("win32_meta", False, bool):
|
||||||
try:
|
try:
|
||||||
result = self.core.get_game_and_dlc_list(True, "Win32")
|
result = self.core.get_game_and_dlc_list(True, "Win32")
|
||||||
except HTTPError:
|
except HTTPError:
|
||||||
result = [], {}
|
result = [], {}
|
||||||
|
else:
|
||||||
|
result = [], {}
|
||||||
self.signals.result.emit(result, "32bit")
|
self.signals.result.emit(result, "32bit")
|
||||||
|
|
||||||
|
|
||||||
|
|
|
@ -1,13 +1,14 @@
|
||||||
|
import platform
|
||||||
import re
|
import re
|
||||||
from logging import getLogger
|
from logging import getLogger
|
||||||
from typing import Tuple
|
from typing import Tuple
|
||||||
|
|
||||||
from PyQt5.QtCore import Qt, QRunnable, QObject, pyqtSignal, QThreadPool
|
from PyQt5.QtCore import Qt, QRunnable, QObject, pyqtSignal, QThreadPool, QSettings
|
||||||
from PyQt5.QtWidgets import QSizePolicy, QWidget, QFileDialog, QMessageBox
|
from PyQt5.QtWidgets import QSizePolicy, QWidget, QFileDialog, QMessageBox
|
||||||
|
|
||||||
from rare.shared import LegendaryCoreSingleton
|
|
||||||
from rare.components.tabs.settings.widgets.eos import EosWidget
|
from rare.components.tabs.settings.widgets.eos import EosWidget
|
||||||
from rare.components.tabs.settings.widgets.ubisoft_activation import UbiActivationHelper
|
from rare.components.tabs.settings.widgets.ubisoft_activation import UbiActivationHelper
|
||||||
|
from rare.shared import LegendaryCoreSingleton
|
||||||
from rare.ui.components.tabs.settings.legendary import Ui_LegendarySettings
|
from rare.ui.components.tabs.settings.legendary import Ui_LegendarySettings
|
||||||
from rare.utils.extra_widgets import PathEdit, IndicatorLineEdit
|
from rare.utils.extra_widgets import PathEdit, IndicatorLineEdit
|
||||||
from rare.utils.utils import get_size
|
from rare.utils.utils import get_size
|
||||||
|
@ -38,6 +39,7 @@ 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)
|
||||||
self.setupUi(self)
|
self.setupUi(self)
|
||||||
|
self.settings = QSettings()
|
||||||
|
|
||||||
self.core = LegendaryCoreSingleton()
|
self.core = LegendaryCoreSingleton()
|
||||||
|
|
||||||
|
@ -89,6 +91,12 @@ class LegendarySettings(QWidget, Ui_LegendarySettings):
|
||||||
self.eos_widget = EosWidget()
|
self.eos_widget = EosWidget()
|
||||||
self.left_layout.insertWidget(3, self.eos_widget, alignment=Qt.AlignTop)
|
self.left_layout.insertWidget(3, self.eos_widget, alignment=Qt.AlignTop)
|
||||||
|
|
||||||
|
self.win32_cb.setChecked(self.settings.value("win32_meta", False, bool))
|
||||||
|
self.win32_cb.stateChanged.connect(lambda: self.settings.setValue("win32_meta", self.win32_cb.isChecked()))
|
||||||
|
|
||||||
|
self.mac_cb.setChecked(self.settings.value("mac_meta", platform.system() == "Darwin", bool))
|
||||||
|
self.mac_cb.stateChanged.connect(lambda: self.settings.setValue("mac_meta", self.mac_cb.isChecked()))
|
||||||
|
|
||||||
self.refresh_game_meta_btn.clicked.connect(self.refresh_game_meta)
|
self.refresh_game_meta_btn.clicked.connect(self.refresh_game_meta)
|
||||||
|
|
||||||
def refresh_game_meta(self):
|
def refresh_game_meta(self):
|
||||||
|
|
|
@ -14,10 +14,52 @@ from PyQt5 import QtCore, QtGui, QtWidgets
|
||||||
class Ui_LegendarySettings(object):
|
class Ui_LegendarySettings(object):
|
||||||
def setupUi(self, LegendarySettings):
|
def setupUi(self, LegendarySettings):
|
||||||
LegendarySettings.setObjectName("LegendarySettings")
|
LegendarySettings.setObjectName("LegendarySettings")
|
||||||
LegendarySettings.resize(552, 312)
|
LegendarySettings.resize(654, 498)
|
||||||
LegendarySettings.setWindowTitle("LegendarySettings")
|
LegendarySettings.setWindowTitle("LegendarySettings")
|
||||||
self.legendary_layout = QtWidgets.QHBoxLayout(LegendarySettings)
|
self.gridLayout = QtWidgets.QGridLayout(LegendarySettings)
|
||||||
self.legendary_layout.setObjectName("legendary_layout")
|
self.gridLayout.setObjectName("gridLayout")
|
||||||
|
self.right_layout = QtWidgets.QVBoxLayout()
|
||||||
|
self.right_layout.setObjectName("right_layout")
|
||||||
|
self.locale_group = QtWidgets.QGroupBox(LegendarySettings)
|
||||||
|
sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Preferred, QtWidgets.QSizePolicy.Preferred)
|
||||||
|
sizePolicy.setHorizontalStretch(0)
|
||||||
|
sizePolicy.setVerticalStretch(0)
|
||||||
|
sizePolicy.setHeightForWidth(self.locale_group.sizePolicy().hasHeightForWidth())
|
||||||
|
self.locale_group.setSizePolicy(sizePolicy)
|
||||||
|
self.locale_group.setAlignment(QtCore.Qt.AlignLeading|QtCore.Qt.AlignLeft|QtCore.Qt.AlignTop)
|
||||||
|
self.locale_group.setObjectName("locale_group")
|
||||||
|
self.locale_layout = QtWidgets.QVBoxLayout(self.locale_group)
|
||||||
|
self.locale_layout.setObjectName("locale_layout")
|
||||||
|
self.right_layout.addWidget(self.locale_group, 0, QtCore.Qt.AlignTop)
|
||||||
|
self.cleanup_group = QtWidgets.QGroupBox(LegendarySettings)
|
||||||
|
self.cleanup_group.setAlignment(QtCore.Qt.AlignLeading|QtCore.Qt.AlignLeft|QtCore.Qt.AlignTop)
|
||||||
|
self.cleanup_group.setObjectName("cleanup_group")
|
||||||
|
self.cleanup_layout = QtWidgets.QVBoxLayout(self.cleanup_group)
|
||||||
|
self.cleanup_layout.setObjectName("cleanup_layout")
|
||||||
|
self.clean_keep_manifests_button = QtWidgets.QPushButton(self.cleanup_group)
|
||||||
|
self.clean_keep_manifests_button.setObjectName("clean_keep_manifests_button")
|
||||||
|
self.cleanup_layout.addWidget(self.clean_keep_manifests_button)
|
||||||
|
self.clean_button = QtWidgets.QPushButton(self.cleanup_group)
|
||||||
|
self.clean_button.setObjectName("clean_button")
|
||||||
|
self.cleanup_layout.addWidget(self.clean_button)
|
||||||
|
self.right_layout.addWidget(self.cleanup_group, 0, QtCore.Qt.AlignTop)
|
||||||
|
self.meta_group = QtWidgets.QGroupBox(LegendarySettings)
|
||||||
|
self.meta_group.setObjectName("meta_group")
|
||||||
|
self.verticalLayout_2 = QtWidgets.QVBoxLayout(self.meta_group)
|
||||||
|
self.verticalLayout_2.setObjectName("verticalLayout_2")
|
||||||
|
self.win32_cb = QtWidgets.QCheckBox(self.meta_group)
|
||||||
|
self.win32_cb.setObjectName("win32_cb")
|
||||||
|
self.verticalLayout_2.addWidget(self.win32_cb)
|
||||||
|
self.mac_cb = QtWidgets.QCheckBox(self.meta_group)
|
||||||
|
self.mac_cb.setObjectName("mac_cb")
|
||||||
|
self.verticalLayout_2.addWidget(self.mac_cb)
|
||||||
|
self.refresh_game_meta_btn = QtWidgets.QPushButton(self.meta_group)
|
||||||
|
self.refresh_game_meta_btn.setObjectName("refresh_game_meta_btn")
|
||||||
|
self.verticalLayout_2.addWidget(self.refresh_game_meta_btn)
|
||||||
|
self.right_layout.addWidget(self.meta_group)
|
||||||
|
spacerItem = QtWidgets.QSpacerItem(20, 40, QtWidgets.QSizePolicy.Minimum, QtWidgets.QSizePolicy.Expanding)
|
||||||
|
self.right_layout.addItem(spacerItem)
|
||||||
|
self.gridLayout.addLayout(self.right_layout, 0, 1, 1, 1)
|
||||||
self.left_layout = QtWidgets.QVBoxLayout()
|
self.left_layout = QtWidgets.QVBoxLayout()
|
||||||
self.left_layout.setObjectName("left_layout")
|
self.left_layout.setObjectName("left_layout")
|
||||||
self.install_dir_group = QtWidgets.QGroupBox(LegendarySettings)
|
self.install_dir_group = QtWidgets.QGroupBox(LegendarySettings)
|
||||||
|
@ -104,46 +146,23 @@ class Ui_LegendarySettings(object):
|
||||||
self.verticalLayout = QtWidgets.QVBoxLayout(self.ubisoft_gb)
|
self.verticalLayout = QtWidgets.QVBoxLayout(self.ubisoft_gb)
|
||||||
self.verticalLayout.setObjectName("verticalLayout")
|
self.verticalLayout.setObjectName("verticalLayout")
|
||||||
self.left_layout.addWidget(self.ubisoft_gb, 0, QtCore.Qt.AlignTop)
|
self.left_layout.addWidget(self.ubisoft_gb, 0, QtCore.Qt.AlignTop)
|
||||||
spacerItem = QtWidgets.QSpacerItem(20, 40, QtWidgets.QSizePolicy.Minimum, QtWidgets.QSizePolicy.Expanding)
|
|
||||||
self.left_layout.addItem(spacerItem)
|
|
||||||
self.legendary_layout.addLayout(self.left_layout)
|
|
||||||
self.right_layout = QtWidgets.QVBoxLayout()
|
|
||||||
self.right_layout.setObjectName("right_layout")
|
|
||||||
self.locale_group = QtWidgets.QGroupBox(LegendarySettings)
|
|
||||||
sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Preferred, QtWidgets.QSizePolicy.Preferred)
|
|
||||||
sizePolicy.setHorizontalStretch(0)
|
|
||||||
sizePolicy.setVerticalStretch(0)
|
|
||||||
sizePolicy.setHeightForWidth(self.locale_group.sizePolicy().hasHeightForWidth())
|
|
||||||
self.locale_group.setSizePolicy(sizePolicy)
|
|
||||||
self.locale_group.setAlignment(QtCore.Qt.AlignLeading|QtCore.Qt.AlignLeft|QtCore.Qt.AlignTop)
|
|
||||||
self.locale_group.setObjectName("locale_group")
|
|
||||||
self.locale_layout = QtWidgets.QVBoxLayout(self.locale_group)
|
|
||||||
self.locale_layout.setObjectName("locale_layout")
|
|
||||||
self.right_layout.addWidget(self.locale_group, 0, QtCore.Qt.AlignTop)
|
|
||||||
self.cleanup_group = QtWidgets.QGroupBox(LegendarySettings)
|
|
||||||
self.cleanup_group.setAlignment(QtCore.Qt.AlignLeading|QtCore.Qt.AlignLeft|QtCore.Qt.AlignTop)
|
|
||||||
self.cleanup_group.setObjectName("cleanup_group")
|
|
||||||
self.cleanup_layout = QtWidgets.QVBoxLayout(self.cleanup_group)
|
|
||||||
self.cleanup_layout.setObjectName("cleanup_layout")
|
|
||||||
self.clean_keep_manifests_button = QtWidgets.QPushButton(self.cleanup_group)
|
|
||||||
self.clean_keep_manifests_button.setObjectName("clean_keep_manifests_button")
|
|
||||||
self.cleanup_layout.addWidget(self.clean_keep_manifests_button)
|
|
||||||
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, 0, QtCore.Qt.AlignTop)
|
|
||||||
spacerItem1 = QtWidgets.QSpacerItem(20, 40, QtWidgets.QSizePolicy.Minimum, QtWidgets.QSizePolicy.Expanding)
|
spacerItem1 = QtWidgets.QSpacerItem(20, 40, QtWidgets.QSizePolicy.Minimum, QtWidgets.QSizePolicy.Expanding)
|
||||||
self.right_layout.addItem(spacerItem1)
|
self.left_layout.addItem(spacerItem1)
|
||||||
self.legendary_layout.addLayout(self.right_layout)
|
self.gridLayout.addLayout(self.left_layout, 0, 0, 1, 1)
|
||||||
|
|
||||||
self.retranslateUi(LegendarySettings)
|
self.retranslateUi(LegendarySettings)
|
||||||
QtCore.QMetaObject.connectSlotsByName(LegendarySettings)
|
QtCore.QMetaObject.connectSlotsByName(LegendarySettings)
|
||||||
|
|
||||||
def retranslateUi(self, LegendarySettings):
|
def retranslateUi(self, LegendarySettings):
|
||||||
_translate = QtCore.QCoreApplication.translate
|
_translate = QtCore.QCoreApplication.translate
|
||||||
|
self.locale_group.setTitle(_translate("LegendarySettings", "Locale"))
|
||||||
|
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.meta_group.setTitle(_translate("LegendarySettings", "Game metadata"))
|
||||||
|
self.win32_cb.setText(_translate("LegendarySettings", "Load 32 bit data"))
|
||||||
|
self.mac_cb.setText(_translate("LegendarySettings", "Load MacOS data"))
|
||||||
|
self.refresh_game_meta_btn.setText(_translate("LegendarySettings", "Refresh game meta"))
|
||||||
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"))
|
||||||
self.max_workers_label.setText(_translate("LegendarySettings", "Max Workers"))
|
self.max_workers_label.setText(_translate("LegendarySettings", "Max Workers"))
|
||||||
|
@ -155,11 +174,6 @@ class Ui_LegendarySettings(object):
|
||||||
self.preferred_cdn_line.setPlaceholderText(_translate("LegendarySettings", "Default"))
|
self.preferred_cdn_line.setPlaceholderText(_translate("LegendarySettings", "Default"))
|
||||||
self.disable_https_label.setText(_translate("LegendarySettings", "Disable HTTPS"))
|
self.disable_https_label.setText(_translate("LegendarySettings", "Disable HTTPS"))
|
||||||
self.ubisoft_gb.setTitle(_translate("LegendarySettings", "Link Ubisoft Games"))
|
self.ubisoft_gb.setTitle(_translate("LegendarySettings", "Link Ubisoft Games"))
|
||||||
self.locale_group.setTitle(_translate("LegendarySettings", "Locale"))
|
|
||||||
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"))
|
|
||||||
|
|
||||||
|
|
||||||
if __name__ == "__main__":
|
if __name__ == "__main__":
|
||||||
|
|
|
@ -15,6 +15,65 @@
|
||||||
</property>
|
</property>
|
||||||
<layout class="QHBoxLayout" name="legendary_layout">
|
<layout class="QHBoxLayout" name="legendary_layout">
|
||||||
<item>
|
<item>
|
||||||
|
<widget class="QPushButton" name="clean_keep_manifests_button">
|
||||||
|
<property name="text">
|
||||||
|
<string>Clean, but keep manifests</string>
|
||||||
|
</property>
|
||||||
|
</widget>
|
||||||
|
</item>
|
||||||
|
<item>
|
||||||
|
<widget class="QPushButton" name="clean_button">
|
||||||
|
<property name="text">
|
||||||
|
<string>Remove everything</string>
|
||||||
|
</property>
|
||||||
|
</widget>
|
||||||
|
</item>
|
||||||
|
</layout>
|
||||||
|
</widget>
|
||||||
|
<item>
|
||||||
|
<widget class="QGroupBox" name="meta_group">
|
||||||
|
<property name="title">
|
||||||
|
<string>Game metadata</string>
|
||||||
|
</property>
|
||||||
|
<layout class="QVBoxLayout" name="verticalLayout_2">
|
||||||
|
<item>
|
||||||
|
<widget class="QCheckBox" name="win32_cb">
|
||||||
|
<property name="text">
|
||||||
|
<string>Load 32 bit data</string>
|
||||||
|
</property>
|
||||||
|
</widget>
|
||||||
|
</item>
|
||||||
|
<item>
|
||||||
|
<widget class="QCheckBox" name="mac_cb">
|
||||||
|
<property name="text">
|
||||||
|
<string>Load MacOS data</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>
|
||||||
|
<item>
|
||||||
|
<spacer name="right_vspacer">
|
||||||
|
<property name="orientation">
|
||||||
|
<enum>Qt::Vertical</enum>
|
||||||
|
</property>
|
||||||
|
<property name="sizeHint" stdset="0">
|
||||||
|
<size>
|
||||||
|
<width>20</width>
|
||||||
|
<height>40</height>
|
||||||
|
</size>
|
||||||
|
</property>
|
||||||
|
</spacer>
|
||||||
|
</item>
|
||||||
|
<item row="0" column="0">
|
||||||
<layout class="QVBoxLayout" name="left_layout">
|
<layout class="QVBoxLayout" name="left_layout">
|
||||||
<item alignment="Qt::AlignTop">
|
<item alignment="Qt::AlignTop">
|
||||||
<widget class="QGroupBox" name="install_dir_group">
|
<widget class="QGroupBox" name="install_dir_group">
|
||||||
|
@ -259,8 +318,6 @@
|
||||||
</item>
|
</item>
|
||||||
</layout>
|
</layout>
|
||||||
</item>
|
</item>
|
||||||
</layout>
|
|
||||||
</widget>
|
|
||||||
<resources/>
|
<resources/>
|
||||||
<connections/>
|
<connections/>
|
||||||
</ui>
|
</ui>
|
||||||
|
|
Loading…
Reference in a new issue