From ac568b9b51146e4b8362a1094044c134e3d36bf4 Mon Sep 17 00:00:00 2001 From: loathingKernel <142770+loathingKernel@users.noreply.github.com> Date: Sat, 30 May 2026 20:13:21 +0300 Subject: [PATCH 1/5] project: update legendary --- misc/requirements.in | 2 +- pyproject.toml | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/misc/requirements.in b/misc/requirements.in index 15c87c6a5..0db826716 100644 --- a/misc/requirements.in +++ b/misc/requirements.in @@ -4,7 +4,7 @@ setuptools-scm requests < 3.0 PySide6-Essentials >= 6.8.1 QtAwesome -legendary-gl @ https://github.com/RareDevs/legendary/archive/00faf01af88b36ee6d9eff084df577a3b2c4dd72.zip +legendary-gl @ https://github.com/RareDevs/legendary/archive/3f5a7b31c2f61fe6a63248cf7972c678c4684068.zip orjson vdf @ https://github.com/solsticegamestudios/vdf/archive/be1f7220238022f8b29fe747f0b643f280bfdb6e.zip pywin32 ; platform_system == "Windows" diff --git a/pyproject.toml b/pyproject.toml index 5149db00a..33f64b33b 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -24,7 +24,7 @@ dependencies = [ "requests < 3.0", "PySide6-Essentials >= 6.8.1", "QtAwesome", - "legendary-gl @ git+https://github.com/RareDevs/legendary@00faf01af88b36ee6d9eff084df577a3b2c4dd72", + "legendary-gl @ git+https://github.com/RareDevs/legendary@3f5a7b31c2f61fe6a63248cf7972c678c4684068", "orjson", "vdf @ git+https://github.com/solsticegamestudios/vdf/be1f7220238022f8b29fe747f0b643f280bfdb6e", "pywin32 ; platform_system == 'Windows'", From 70754b895f4ede8355f9072df2a1be9ebcc2e2f7 Mon Sep 17 00:00:00 2001 From: loathingKernel <142770+loathingKernel@users.noreply.github.com> Date: Sat, 30 May 2026 20:15:41 +0300 Subject: [PATCH 2/5] RareCore: remove entitlements fetcher, they are updated by legendary now --- rare/shared/rare_core.py | 20 +------------------- rare/shared/workers/__init__.py | 3 +-- rare/shared/workers/fetch.py | 27 --------------------------- 3 files changed, 2 insertions(+), 48 deletions(-) diff --git a/rare/shared/rare_core.py b/rare/shared/rare_core.py index b42c24517..2acfd2259 100644 --- a/rare/shared/rare_core.py +++ b/rare/shared/rare_core.py @@ -22,7 +22,6 @@ from .image_manager import ImageManager from .workers import ( CloudSyncWorker, - EntitlementsWorker, FetchWorker, GamesDlcsWorker, MoveWorker, @@ -42,7 +41,6 @@ class RareCore(QObject): # lk: these are unused but remain if case they become relevant # completed_saves = Signal() # completed_origin = Signal() - # completed_entitlements = Signal() # lk: special case class attribute, this has to be here __instance: 'RareCore' = None @@ -82,7 +80,6 @@ def __init__(self, settings: RareAppSettings, args: Namespace): self.__fetch_progress: int = 0 self.__fetched_games_dlcs: bool = False - self.__fetched_entitlements: bool = False self.__fetched_runtimeassets: bool = False RareCore.__instance = self @@ -363,23 +360,13 @@ def __on_fetch_result(self, result: tuple, result_type: int): self.__add_games_and_dlcs(*result) self.__fetched_games_dlcs = True - if result_type == FetchWorker.Result.ENTITLEMENTS: - self.__core.lgd.entitlements = result - self.__fetched_entitlements = True - if result_type == FetchWorker.Result.RUNTIMEASSETS: self.__fetched_runtimeassets = True self.logger.info('Acquired data from %s worker', FetchWorker.Result(result_type).name) # Return early if there are still things to fetch - if not all( - { - self.__fetched_games_dlcs, - self.__fetched_entitlements, - self.__fetched_runtimeassets, - } - ): + if not all({ self.__fetched_games_dlcs, self.__fetched_runtimeassets, }): return self.logger.debug('Fetch time %s seconds', time.perf_counter() - self.__start_time) @@ -399,16 +386,11 @@ def fetch(self): games_dlcs_worker.signals.progress.connect(self.__on_fetch_progress) games_dlcs_worker.signals.result.connect(self.__on_fetch_result) - entitlements_worker = EntitlementsWorker(self.__settings, self.__core, self.__args, segment=5) - entitlements_worker.signals.progress.connect(self.__on_fetch_progress) - entitlements_worker.signals.result.connect(self.__on_fetch_result) - runtime_assets_worker = RuntimeAssetsWorker(self.__settings, self.__core, self.__args, segment=10) runtime_assets_worker.signals.progress.connect(self.__on_fetch_progress) runtime_assets_worker.signals.result.connect(self.__on_fetch_result) QThreadPool.globalInstance().start(games_dlcs_worker) - QThreadPool.globalInstance().start(entitlements_worker) QThreadPool.globalInstance().start(runtime_assets_worker) def __fetch_saves(self) -> None: diff --git a/rare/shared/workers/__init__.py b/rare/shared/workers/__init__.py index 92382c415..d77ae5764 100644 --- a/rare/shared/workers/__init__.py +++ b/rare/shared/workers/__init__.py @@ -1,5 +1,5 @@ from .cloud_sync import CloudSyncWorker -from .fetch import EntitlementsWorker, FetchWorker, GamesDlcsWorker +from .fetch import FetchWorker, GamesDlcsWorker from .install import InstallInfoWorker from .move import MoveInfoWorker, MoveWorker from .uninstall import UninstallWorker @@ -9,7 +9,6 @@ __all__ = [ 'CloudSyncWorker', - 'EntitlementsWorker', 'FetchWorker', 'GamesDlcsWorker', 'InstallInfoWorker', diff --git a/rare/shared/workers/fetch.py b/rare/shared/workers/fetch.py index 5f6980f32..c28b07117 100644 --- a/rare/shared/workers/fetch.py +++ b/rare/shared/workers/fetch.py @@ -26,7 +26,6 @@ class FetchWorker(Worker): class Result(IntEnum): ERROR = 0 GAMESDLCS = 1 - ENTITLEMENTS = 2 RUNTIMEASSETS = 3 def __init__(self, settings: RareAppSettings, core: LegendaryCore, args: Namespace, segment: int): @@ -67,32 +66,6 @@ def run_real(self): return -class EntitlementsWorker(FetchWorker): - def run_real(self): - elapsed_days = 99 - entitlements_json = os.path.join(self.core.lgd.path, 'entitlements.json') - if os.path.exists(entitlements_json): - mod_time = datetime.fromtimestamp(os.path.getmtime(entitlements_json)) - elapsed_days = abs(datetime.now() - mod_time).days - - want_entitlements = not self.settings.get_value(app_settings.exclude_entitlements) and elapsed_days > 1 - want_entitlements = want_entitlements and not self.args.offline - - entitlements = () - if want_entitlements: - # Get entitlements, Ubisoft integration also uses them - self.signals.progress.emit(self.segment, self.signals.tr('Updating entitlements')) - with timelogger(self.logger, 'Request entitlements'): - try: - entitlements = self.core.egs.get_user_entitlements_full() - except Exception as e: - self.logger.warning(e) - self.core.lgd.entitlements = entitlements - self.logger.info('Entitlements: %s', len(list(entitlements))) - self.signals.result.emit(entitlements, FetchWorker.Result.ENTITLEMENTS) - return - - class GamesDlcsWorker(FetchWorker): def run_real(self): # Fetch regular EGL games with assets From ab296a0a017bc97157527846e53c39c7500a5897 Mon Sep 17 00:00:00 2001 From: loathingKernel <142770+loathingKernel@users.noreply.github.com> Date: Sat, 30 May 2026 20:16:13 +0300 Subject: [PATCH 3/5] UbisoftGetInfoWorker: remove entitlements fetcher --- rare/components/tabs/integrations/ubisoft_group.py | 9 +-------- 1 file changed, 1 insertion(+), 8 deletions(-) diff --git a/rare/components/tabs/integrations/ubisoft_group.py b/rare/components/tabs/integrations/ubisoft_group.py index 773e3b1f5..9bcec2121 100644 --- a/rare/components/tabs/integrations/ubisoft_group.py +++ b/rare/components/tabs/integrations/ubisoft_group.py @@ -52,14 +52,7 @@ def run_real(self) -> None: uplay_keys = self.core.egs.store_get_uplay_codes() key_list = uplay_keys['data']['PartnerIntegration']['accountUplayCodes'] redeemed = {k['gameId'] for k in key_list if k['redeemedOnUplay']} - - if (entitlements := self.core.lgd.entitlements) is None: - with timelogger(self.logger, 'Request entitlements'): - try: - entitlements = self.core.egs.get_user_entitlements_full() - except Exception as e: - self.logger.warning(e) - self.core.lgd.entitlements = entitlements + entitlements = self.core.lgd.entitlements entitlements = {i['entitlementName'] for i in entitlements} self.signals.result.emit(redeemed, entitlements, ubi_account_id) From c3dcb84e1c6f3d8f079f8d4325020721f35c728a Mon Sep 17 00:00:00 2001 From: loathingKernel <142770+loathingKernel@users.noreply.github.com> Date: Sat, 30 May 2026 20:16:33 +0300 Subject: [PATCH 4/5] RareGame: refactor `grand_date` --- rare/models/game.py | 7 ++----- 1 file changed, 2 insertions(+), 5 deletions(-) diff --git a/rare/models/game.py b/rare/models/game.py index f483c55b0..10bc70574 100644 --- a/rare/models/game.py +++ b/rare/models/game.py @@ -609,11 +609,8 @@ def grant_date(self, force=False) -> datetime: if self.metadata.grant_date == datetime.min.replace(tzinfo=timezone.utc) or force: self.logger.info('Grant date for %s not found in metadata, resolving', self.app_name) entitlement = next((ent for ent in entitlements if ent['namespace'] == self.game.namespace), None) - grant_date = ( - datetime.fromisoformat(entitlement['grantDate'].replace('Z', '+00:00')) - if entitlement - else datetime.fromisoformat(self.game.metadata['creationDate'].replace('Z', '+00:00')) - ) + grant_date = entitlement["grantDate"] if entitlement else self.game.metadata["creationDate"] + grant_date = datetime.fromisoformat(grant_date.replace('Z', '+00:00')) self.metadata.grant_date = grant_date self.__save_metadata() return self.metadata.grant_date From b5cb6f6349a70d379fe3ed6277a5c012ea3def73 Mon Sep 17 00:00:00 2001 From: loathingKernel <142770+loathingKernel@users.noreply.github.com> Date: Sat, 30 May 2026 20:20:31 +0300 Subject: [PATCH 5/5] LegendarySettings: remove entitlements UI elements --- rare/components/tabs/settings/legendary.py | 7 - rare/models/settings.py | 1 - rare/ui/components/tabs/settings/legendary.py | 132 ++++++++---------- rare/ui/components/tabs/settings/legendary.ui | 14 +- 4 files changed, 61 insertions(+), 93 deletions(-) diff --git a/rare/components/tabs/settings/legendary.py b/rare/components/tabs/settings/legendary.py index 903a0c16a..4c37bb096 100644 --- a/rare/components/tabs/settings/legendary.py +++ b/rare/components/tabs/settings/legendary.py @@ -118,9 +118,6 @@ def __init__(self, settings: RareAppSettings, rcore: RareCore, parent=None): self.ui.exclude_non_asset_check.setChecked(self.settings.get_value(app_settings.exclude_non_asset)) self.ui.exclude_non_asset_check.checkStateChanged.connect(self._on_exclude_non_asset_changed) - self.ui.exclude_entitlements_check.setChecked(self.settings.get_value(app_settings.exclude_entitlements)) - self.ui.exclude_entitlements_check.checkStateChanged.connect(self._on_exclude_entitlements_changed) - self.ui.refresh_metadata_button.clicked.connect(self._refresh_metadata) # FIXME: Disable the button for now because it interferes with RareCore self.ui.refresh_metadata_button.setEnabled(False) @@ -279,7 +276,3 @@ def _on_fetch_unreal_changed(self, state: Qt.CheckState): @Slot(Qt.CheckState) def _on_exclude_non_asset_changed(self, state: Qt.CheckState): self.settings.set_value(app_settings.exclude_non_asset, state != Qt.CheckState.Unchecked) - - @Slot(Qt.CheckState) - def _on_exclude_entitlements_changed(self, state: Qt.CheckState): - self.settings.set_value(app_settings.exclude_entitlements, state != Qt.CheckState.Unchecked) diff --git a/rare/models/settings.py b/rare/models/settings.py index a050573c0..831d2aaba 100644 --- a/rare/models/settings.py +++ b/rare/models/settings.py @@ -27,7 +27,6 @@ class Settings(Namespace): macos_meta = Setting(key='macos_meta', default=pf.system() == 'Darwin', dtype=bool) unreal_meta = Setting(key='unreal_meta', default=False, dtype=bool) exclude_non_asset = Setting(key='exclude_non_asset', default=False, dtype=bool) - exclude_entitlements = Setting(key='exclude_entitlements', default=False, dtype=bool) language = Setting(key='language', default=locale.getlocale()[0], dtype=str) diff --git a/rare/ui/components/tabs/settings/legendary.py b/rare/ui/components/tabs/settings/legendary.py index 4c01c6345..9c9cf41fb 100644 --- a/rare/ui/components/tabs/settings/legendary.py +++ b/rare/ui/components/tabs/settings/legendary.py @@ -1,9 +1,8 @@ -# -*- coding: utf-8 -*- ################################################################################ ## Form generated from reading UI file 'legendary.ui' ## -## Created by: Qt User Interface Compiler version 6.9.1 +## Created by: Qt User Interface Compiler version 6.10.1 ## ## WARNING! All changes made in this file will be lost when recompiling UI file! ################################################################################ @@ -25,32 +24,32 @@ ) -class Ui_LegendarySettings(object): +class Ui_LegendarySettings: def setupUi(self, LegendarySettings): if not LegendarySettings.objectName(): - LegendarySettings.setObjectName(u"LegendarySettings") - LegendarySettings.resize(621, 420) - LegendarySettings.setWindowTitle(u"LegendarySettings") + LegendarySettings.setObjectName("LegendarySettings") + LegendarySettings.resize(641, 420) + LegendarySettings.setWindowTitle("LegendarySettings") self.legendary_layout = QHBoxLayout(LegendarySettings) - self.legendary_layout.setObjectName(u"legendary_layout") + self.legendary_layout.setObjectName("legendary_layout") self.left_layout = QVBoxLayout() - self.left_layout.setObjectName(u"left_layout") + self.left_layout.setObjectName("left_layout") self.install_dir_group = QGroupBox(LegendarySettings) - self.install_dir_group.setObjectName(u"install_dir_group") + self.install_dir_group.setObjectName("install_dir_group") self.install_dir_group.setAlignment(Qt.AlignmentFlag.AlignLeading|Qt.AlignmentFlag.AlignLeft|Qt.AlignmentFlag.AlignTop) self.install_dir_layout = QVBoxLayout(self.install_dir_group) - self.install_dir_layout.setObjectName(u"install_dir_layout") + self.install_dir_layout.setObjectName("install_dir_layout") self.left_layout.addWidget(self.install_dir_group) self.download_group = QGroupBox(LegendarySettings) - self.download_group.setObjectName(u"download_group") + self.download_group.setObjectName("download_group") self.download_group.setAlignment(Qt.AlignmentFlag.AlignLeading|Qt.AlignmentFlag.AlignLeft|Qt.AlignmentFlag.AlignTop) self.download_layout = QFormLayout(self.download_group) - self.download_layout.setObjectName(u"download_layout") + self.download_layout.setObjectName("download_layout") self.download_layout.setLabelAlignment(Qt.AlignmentFlag.AlignRight|Qt.AlignmentFlag.AlignTrailing|Qt.AlignmentFlag.AlignVCenter) self.max_workers_label = QLabel(self.download_group) - self.max_workers_label.setObjectName(u"max_workers_label") + self.max_workers_label.setObjectName("max_workers_label") sizePolicy = QSizePolicy(QSizePolicy.Policy.Maximum, QSizePolicy.Policy.Preferred) sizePolicy.setHorizontalStretch(0) sizePolicy.setVerticalStretch(0) @@ -60,9 +59,9 @@ def setupUi(self, LegendarySettings): self.download_layout.setWidget(0, QFormLayout.ItemRole.LabelRole, self.max_workers_label) self.max_workers_layout = QHBoxLayout() - self.max_workers_layout.setObjectName(u"max_workers_layout") + self.max_workers_layout.setObjectName("max_workers_layout") self.max_worker_spin = QSpinBox(self.download_group) - self.max_worker_spin.setObjectName(u"max_worker_spin") + self.max_worker_spin.setObjectName("max_worker_spin") sizePolicy1 = QSizePolicy(QSizePolicy.Policy.Fixed, QSizePolicy.Policy.Fixed) sizePolicy1.setHorizontalStretch(0) sizePolicy1.setVerticalStretch(0) @@ -75,7 +74,7 @@ def setupUi(self, LegendarySettings): self.max_workers_layout.addWidget(self.max_worker_spin) self.max_workers_info_label = QLabel(self.download_group) - self.max_workers_info_label.setObjectName(u"max_workers_info_label") + self.max_workers_info_label.setObjectName("max_workers_info_label") font = QFont() font.setItalic(True) self.max_workers_info_label.setFont(font) @@ -86,14 +85,14 @@ def setupUi(self, LegendarySettings): self.download_layout.setLayout(0, QFormLayout.ItemRole.FieldRole, self.max_workers_layout) self.max_memory_label = QLabel(self.download_group) - self.max_memory_label.setObjectName(u"max_memory_label") + self.max_memory_label.setObjectName("max_memory_label") self.download_layout.setWidget(1, QFormLayout.ItemRole.LabelRole, self.max_memory_label) self.max_memory_layout = QHBoxLayout() - self.max_memory_layout.setObjectName(u"max_memory_layout") + self.max_memory_layout.setObjectName("max_memory_layout") self.max_memory_spin = QSpinBox(self.download_group) - self.max_memory_spin.setObjectName(u"max_memory_spin") + self.max_memory_spin.setObjectName("max_memory_spin") sizePolicy1.setHeightForWidth(self.max_memory_spin.sizePolicy().hasHeightForWidth()) self.max_memory_spin.setSizePolicy(sizePolicy1) self.max_memory_spin.setMinimum(0) @@ -104,7 +103,7 @@ def setupUi(self, LegendarySettings): self.max_memory_layout.addWidget(self.max_memory_spin) self.max_memory_info_label = QLabel(self.download_group) - self.max_memory_info_label.setObjectName(u"max_memory_info_label") + self.max_memory_info_label.setObjectName("max_memory_info_label") self.max_memory_info_label.setFont(font) self.max_memory_layout.addWidget(self.max_memory_info_label) @@ -113,22 +112,22 @@ def setupUi(self, LegendarySettings): self.download_layout.setLayout(1, QFormLayout.ItemRole.FieldRole, self.max_memory_layout) self.preferred_cdn_label = QLabel(self.download_group) - self.preferred_cdn_label.setObjectName(u"preferred_cdn_label") + self.preferred_cdn_label.setObjectName("preferred_cdn_label") self.download_layout.setWidget(2, QFormLayout.ItemRole.LabelRole, self.preferred_cdn_label) self.preferred_cdn_line = QLineEdit(self.download_group) - self.preferred_cdn_line.setObjectName(u"preferred_cdn_line") + self.preferred_cdn_line.setObjectName("preferred_cdn_line") self.download_layout.setWidget(2, QFormLayout.ItemRole.FieldRole, self.preferred_cdn_line) self.disable_https_label = QLabel(self.download_group) - self.disable_https_label.setObjectName(u"disable_https_label") + self.disable_https_label.setObjectName("disable_https_label") self.download_layout.setWidget(3, QFormLayout.ItemRole.LabelRole, self.disable_https_label) self.disable_https_check = QCheckBox(self.download_group) - self.disable_https_check.setObjectName(u"disable_https_check") + self.disable_https_check.setObjectName("disable_https_check") self.download_layout.setWidget(3, QFormLayout.ItemRole.FieldRole, self.disable_https_check) @@ -143,9 +142,9 @@ def setupUi(self, LegendarySettings): self.legendary_layout.addLayout(self.left_layout) self.right_layout = QVBoxLayout() - self.right_layout.setObjectName(u"right_layout") + self.right_layout.setObjectName("right_layout") self.locale_group = QGroupBox(LegendarySettings) - self.locale_group.setObjectName(u"locale_group") + self.locale_group.setObjectName("locale_group") sizePolicy2 = QSizePolicy(QSizePolicy.Policy.Preferred, QSizePolicy.Policy.Preferred) sizePolicy2.setHorizontalStretch(0) sizePolicy2.setVerticalStretch(0) @@ -153,22 +152,22 @@ def setupUi(self, LegendarySettings): self.locale_group.setSizePolicy(sizePolicy2) self.locale_group.setAlignment(Qt.AlignmentFlag.AlignLeading|Qt.AlignmentFlag.AlignLeft|Qt.AlignmentFlag.AlignTop) self.locale_layout = QVBoxLayout(self.locale_group) - self.locale_layout.setObjectName(u"locale_layout") + self.locale_layout.setObjectName("locale_layout") self.right_layout.addWidget(self.locale_group) self.cleanup_group = QGroupBox(LegendarySettings) - self.cleanup_group.setObjectName(u"cleanup_group") + self.cleanup_group.setObjectName("cleanup_group") self.cleanup_group.setAlignment(Qt.AlignmentFlag.AlignLeading|Qt.AlignmentFlag.AlignLeft|Qt.AlignmentFlag.AlignTop) self.cleanup_layout = QVBoxLayout(self.cleanup_group) - self.cleanup_layout.setObjectName(u"cleanup_layout") + self.cleanup_layout.setObjectName("cleanup_layout") self.clean_keep_manifests_button = QPushButton(self.cleanup_group) - self.clean_keep_manifests_button.setObjectName(u"clean_keep_manifests_button") + self.clean_keep_manifests_button.setObjectName("clean_keep_manifests_button") self.cleanup_layout.addWidget(self.clean_keep_manifests_button) self.clean_button = QPushButton(self.cleanup_group) - self.clean_button.setObjectName(u"clean_button") + self.clean_button.setObjectName("clean_button") self.cleanup_layout.addWidget(self.clean_button) @@ -176,42 +175,37 @@ def setupUi(self, LegendarySettings): self.right_layout.addWidget(self.cleanup_group) self.metadata_group = QGroupBox(LegendarySettings) - self.metadata_group.setObjectName(u"metadata_group") + self.metadata_group.setObjectName("metadata_group") self.metadata_layout = QVBoxLayout(self.metadata_group) - self.metadata_layout.setObjectName(u"metadata_layout") + self.metadata_layout.setObjectName("metadata_layout") self.fetch_win32_check = QCheckBox(self.metadata_group) - self.fetch_win32_check.setObjectName(u"fetch_win32_check") + self.fetch_win32_check.setObjectName("fetch_win32_check") self.metadata_layout.addWidget(self.fetch_win32_check) self.fetch_macos_check = QCheckBox(self.metadata_group) - self.fetch_macos_check.setObjectName(u"fetch_macos_check") + self.fetch_macos_check.setObjectName("fetch_macos_check") self.metadata_layout.addWidget(self.fetch_macos_check) self.fetch_unreal_check = QCheckBox(self.metadata_group) - self.fetch_unreal_check.setObjectName(u"fetch_unreal_check") + self.fetch_unreal_check.setObjectName("fetch_unreal_check") self.metadata_layout.addWidget(self.fetch_unreal_check) self.exclude_non_asset_check = QCheckBox(self.metadata_group) - self.exclude_non_asset_check.setObjectName(u"exclude_non_asset_check") + self.exclude_non_asset_check.setObjectName("exclude_non_asset_check") self.metadata_layout.addWidget(self.exclude_non_asset_check) - self.exclude_entitlements_check = QCheckBox(self.metadata_group) - self.exclude_entitlements_check.setObjectName(u"exclude_entitlements_check") - - self.metadata_layout.addWidget(self.exclude_entitlements_check) - self.metadata_info = QLabel(self.metadata_group) - self.metadata_info.setObjectName(u"metadata_info") + self.metadata_info.setObjectName("metadata_info") self.metadata_info.setFont(font) self.metadata_layout.addWidget(self.metadata_info) self.refresh_metadata_button = QPushButton(self.metadata_group) - self.refresh_metadata_button.setObjectName(u"refresh_metadata_button") + self.refresh_metadata_button.setObjectName("refresh_metadata_button") self.metadata_layout.addWidget(self.refresh_metadata_button) @@ -230,39 +224,33 @@ def setupUi(self, LegendarySettings): # setupUi def retranslateUi(self, LegendarySettings): - self.install_dir_group.setTitle(QCoreApplication.translate("LegendarySettings", u"Installation folder", None)) - self.download_group.setTitle(QCoreApplication.translate("LegendarySettings", u"Download settings", None)) - self.max_workers_label.setText(QCoreApplication.translate("LegendarySettings", u"Max workers", None)) - self.max_workers_info_label.setText(QCoreApplication.translate("LegendarySettings", u"Less is slower (0: Default)", None)) - self.max_memory_label.setText(QCoreApplication.translate("LegendarySettings", u"Max shared memory", None)) - self.max_memory_spin.setSuffix(QCoreApplication.translate("LegendarySettings", u"MiB", None)) - self.max_memory_info_label.setText(QCoreApplication.translate("LegendarySettings", u"Less is slower (0: Default)", None)) - self.preferred_cdn_label.setText(QCoreApplication.translate("LegendarySettings", u"Preferred CDN", None)) - self.preferred_cdn_line.setPlaceholderText(QCoreApplication.translate("LegendarySettings", u"Default", None)) - self.disable_https_label.setText(QCoreApplication.translate("LegendarySettings", u"Disable HTTPS", None)) + self.install_dir_group.setTitle(QCoreApplication.translate("LegendarySettings", "Installation folder", None)) + self.download_group.setTitle(QCoreApplication.translate("LegendarySettings", "Download settings", None)) + self.max_workers_label.setText(QCoreApplication.translate("LegendarySettings", "Max workers", None)) + self.max_workers_info_label.setText(QCoreApplication.translate("LegendarySettings", "Less is slower (0: Default)", None)) + self.max_memory_label.setText(QCoreApplication.translate("LegendarySettings", "Max shared memory", None)) + self.max_memory_spin.setSuffix(QCoreApplication.translate("LegendarySettings", "MiB", None)) + self.max_memory_info_label.setText(QCoreApplication.translate("LegendarySettings", "Less is slower (0: Default)", None)) + self.preferred_cdn_label.setText(QCoreApplication.translate("LegendarySettings", "Preferred CDN", None)) + self.preferred_cdn_line.setPlaceholderText(QCoreApplication.translate("LegendarySettings", "Default", None)) + self.disable_https_label.setText(QCoreApplication.translate("LegendarySettings", "Disable HTTPS", None)) self.disable_https_check.setText("") - self.locale_group.setTitle(QCoreApplication.translate("LegendarySettings", u"Locale", None)) - self.cleanup_group.setTitle(QCoreApplication.translate("LegendarySettings", u"Cleanup", None)) - self.clean_keep_manifests_button.setText(QCoreApplication.translate("LegendarySettings", u"Clean, but keep manifests", None)) - self.clean_button.setText(QCoreApplication.translate("LegendarySettings", u"Remove everything", None)) - self.metadata_group.setTitle(QCoreApplication.translate("LegendarySettings", u"Platforms", None)) - self.fetch_win32_check.setText(QCoreApplication.translate("LegendarySettings", u"Include Win32 games", None)) - self.fetch_macos_check.setText(QCoreApplication.translate("LegendarySettings", u"Include macOS games", None)) - self.fetch_unreal_check.setText(QCoreApplication.translate("LegendarySettings", u"Include Unreal engine", None)) + self.locale_group.setTitle(QCoreApplication.translate("LegendarySettings", "Locale", None)) + self.cleanup_group.setTitle(QCoreApplication.translate("LegendarySettings", "Cleanup", None)) + self.clean_keep_manifests_button.setText(QCoreApplication.translate("LegendarySettings", "Clean, but keep manifests", None)) + self.clean_button.setText(QCoreApplication.translate("LegendarySettings", "Remove everything", None)) + self.metadata_group.setTitle(QCoreApplication.translate("LegendarySettings", "Platforms", None)) + self.fetch_win32_check.setText(QCoreApplication.translate("LegendarySettings", "Include Win32 games", None)) + self.fetch_macos_check.setText(QCoreApplication.translate("LegendarySettings", "Include macOS games", None)) + self.fetch_unreal_check.setText(QCoreApplication.translate("LegendarySettings", "Include Unreal engine", None)) #if QT_CONFIG(tooltip) - self.exclude_non_asset_check.setToolTip(QCoreApplication.translate("LegendarySettings", u"Do not load metadata for non-asset games (i.e. Origin games) on start-up.\n" + self.exclude_non_asset_check.setToolTip(QCoreApplication.translate("LegendarySettings", "Do not load metadata for non-asset games (i.e. Origin games) on start-up.\n" "\n" "Disabling this greatly improves start-up time, but some games might not be visible in your library.", None)) #endif // QT_CONFIG(tooltip) - self.exclude_non_asset_check.setText(QCoreApplication.translate("LegendarySettings", u"Exclude non-asset games", None)) -#if QT_CONFIG(tooltip) - self.exclude_entitlements_check.setToolTip(QCoreApplication.translate("LegendarySettings", u"Do not load entitlement data (i.e game's date of purchase) on start-up.\n" -"\n" -"Disabling this greatly improves start-up time, but some library filters may not work.", None)) -#endif // QT_CONFIG(tooltip) - self.exclude_entitlements_check.setText(QCoreApplication.translate("LegendarySettings", u"Exclude entitlements", None)) - self.metadata_info.setText(QCoreApplication.translate("LegendarySettings", u"Restart Rare to apply", None)) - self.refresh_metadata_button.setText(QCoreApplication.translate("LegendarySettings", u"Refresh metadata", None)) + self.exclude_non_asset_check.setText(QCoreApplication.translate("LegendarySettings", "Exclude non-asset games", None)) + self.metadata_info.setText(QCoreApplication.translate("LegendarySettings", "Restart Rare to apply", None)) + self.refresh_metadata_button.setText(QCoreApplication.translate("LegendarySettings", "Refresh metadata", None)) pass # retranslateUi diff --git a/rare/ui/components/tabs/settings/legendary.ui b/rare/ui/components/tabs/settings/legendary.ui index b64c71a7c..9967b1b31 100644 --- a/rare/ui/components/tabs/settings/legendary.ui +++ b/rare/ui/components/tabs/settings/legendary.ui @@ -6,7 +6,7 @@ 0 0 - 621 + 641 420 @@ -265,18 +265,6 @@ Disabling this greatly improves start-up time, but some games might not be visib - - - - Do not load entitlement data (i.e game's date of purchase) on start-up. - -Disabling this greatly improves start-up time, but some library filters may not work. - - - Exclude entitlements - - -