Some ui improvements for cloud saves
- Show text on widget if save is not up-to-date - Fix text in game info -> cloud saves Signed-off-by: loathingKernel <142770+loathingKernel@users.noreply.github.com>
This commit is contained in:
parent
189167f4f7
commit
70960c73c4
|
@ -13,6 +13,7 @@ from PyQt5.QtWidgets import (
|
|||
QVBoxLayout,
|
||||
QSpacerItem,
|
||||
)
|
||||
from legendary.models.game import SaveGameStatus
|
||||
|
||||
from rare.models.game import RareGame
|
||||
from rare.shared import LegendaryCoreSingleton
|
||||
|
@ -162,18 +163,22 @@ class CloudSaves(QWidget, SideTabContents):
|
|||
self.sync_ui.download_button.setDisabled(button_disabled)
|
||||
self.sync_ui.upload_button.setDisabled(button_disabled)
|
||||
|
||||
newer = "remote"
|
||||
new_text = self.tr(" (newer)")
|
||||
if newer == "remote":
|
||||
self.sync_ui.cloud_gb.setTitle(self.sync_ui.cloud_gb.title() + new_text)
|
||||
elif newer == "local":
|
||||
self.sync_ui.local_gb.setTitle(self.sync_ui.local_gb.title() + new_text)
|
||||
status, (dt_local, dt_remote) = rgame.save_state
|
||||
|
||||
if status == SaveGameStatus.LOCAL_NEWER:
|
||||
self.sync_ui.local_new_label.setVisible(True)
|
||||
self.sync_ui.cloud_new_label.setVisible(False)
|
||||
elif status == SaveGameStatus.REMOTE_NEWER:
|
||||
self.sync_ui.local_new_label.setVisible(False)
|
||||
self.sync_ui.cloud_new_label.setVisible(True)
|
||||
else:
|
||||
self.sync_ui.local_new_label.setVisible(False)
|
||||
self.sync_ui.cloud_new_label.setVisible(False)
|
||||
|
||||
sync_cloud = self.settings.value(f"{self.rgame.app_name}/auto_sync_cloud", True, bool)
|
||||
self.cloud_ui.cloud_sync.setChecked(sync_cloud)
|
||||
if hasattr(self.rgame.igame, "save_path") and self.rgame.igame.save_path:
|
||||
self.cloud_save_path_edit.setText(self.rgame.igame.save_path)
|
||||
status, (dt_local, dt_remote) = rgame.save_state
|
||||
self.sync_ui.date_info_local.setText(dt_local.strftime("%A, %d. %B %Y %X") if dt_local else "None")
|
||||
self.sync_ui.date_info_remote.setText(dt_remote.strftime("%A, %d. %B %Y %X") if dt_remote else "None")
|
||||
else:
|
||||
|
|
|
@ -292,6 +292,11 @@ class RareGame(RareGameSlim):
|
|||
worker = QRunnable.create(lambda: _download())
|
||||
QThreadPool.globalInstance().start(worker)
|
||||
|
||||
@property
|
||||
def is_save_up_to_date(self):
|
||||
status, (_, _) = self.save_state
|
||||
return status == SaveGameStatus.SAME_AGE
|
||||
|
||||
@pyqtSlot(int)
|
||||
def __game_launched(self, code: int):
|
||||
if code == GameProcess.Code.ON_STARTUP:
|
||||
|
@ -599,13 +604,13 @@ class RareGame(RareGameSlim):
|
|||
@property
|
||||
def raw_save_path(self) -> str:
|
||||
if self.game.supports_cloud_saves:
|
||||
return self.game.metadata['customAttributes'].get("CloudSaveFolder", {}).get("value")
|
||||
return self.game.metadata.get("customAttributes", {}).get("CloudSaveFolder", {}).get("value")
|
||||
return ""
|
||||
|
||||
@property
|
||||
def raw_save_path_mac(self) -> str:
|
||||
if self.game.supports_mac_cloud_saves:
|
||||
return self.game.metadata['customAttributes'].get('CloudSaveFolder_MAC', {}).get('value')
|
||||
return self.game.metadata.get("customAttributes", {}).get('CloudSaveFolder_MAC', {}).get('value')
|
||||
return ""
|
||||
|
||||
@property
|
||||
|
|
|
@ -432,12 +432,12 @@ class RareCore(QObject):
|
|||
"""!
|
||||
SaveGameFiles across games
|
||||
"""
|
||||
return chain.from_iterable([game.save.latest_save for game in self.has_saves])
|
||||
return chain.from_iterable([game.saves for game in self.has_saves])
|
||||
|
||||
@property
|
||||
def has_saves(self) -> Iterator[RareGame]:
|
||||
"""!
|
||||
RareGames that have SaveGameFiles associated with them
|
||||
"""
|
||||
return self.__filter_games(lambda game: bool(game.save))
|
||||
return self.__filter_games(lambda game: bool(game.saves))
|
||||
|
||||
|
|
|
@ -39,6 +39,9 @@ class Ui_SyncWidget(object):
|
|||
self.icon_local.setAlignment(QtCore.Qt.AlignCenter)
|
||||
self.icon_local.setObjectName("icon_local")
|
||||
self.local_layout.addWidget(self.icon_local)
|
||||
self.local_new_label = QtWidgets.QLabel(self.local_gb)
|
||||
self.local_new_label.setObjectName("local_new_label")
|
||||
self.local_layout.addWidget(self.local_new_label)
|
||||
self.upload_button = QtWidgets.QPushButton(self.local_gb)
|
||||
self.upload_button.setObjectName("upload_button")
|
||||
self.local_layout.addWidget(self.upload_button)
|
||||
|
@ -62,6 +65,9 @@ class Ui_SyncWidget(object):
|
|||
self.icon_remote.setAlignment(QtCore.Qt.AlignCenter)
|
||||
self.icon_remote.setObjectName("icon_remote")
|
||||
self.cloud_layout.addWidget(self.icon_remote)
|
||||
self.cloud_new_label = QtWidgets.QLabel(self.cloud_gb)
|
||||
self.cloud_new_label.setObjectName("cloud_new_label")
|
||||
self.cloud_layout.addWidget(self.cloud_new_label)
|
||||
self.download_button = QtWidgets.QPushButton(self.cloud_gb)
|
||||
self.download_button.setObjectName("download_button")
|
||||
self.cloud_layout.addWidget(self.download_button)
|
||||
|
@ -74,8 +80,10 @@ class Ui_SyncWidget(object):
|
|||
_translate = QtCore.QCoreApplication.translate
|
||||
SyncWidget.setWindowTitle(_translate("SyncWidget", "Form"))
|
||||
self.local_gb.setTitle(_translate("SyncWidget", "Local"))
|
||||
self.local_new_label.setText(_translate("SyncWidget", "Newer"))
|
||||
self.upload_button.setText(_translate("SyncWidget", "Upload"))
|
||||
self.cloud_gb.setTitle(_translate("SyncWidget", "Cloud"))
|
||||
self.cloud_new_label.setText(_translate("SyncWidget", "Newer"))
|
||||
self.download_button.setText(_translate("SyncWidget", "Download"))
|
||||
|
||||
|
||||
|
|
|
@ -60,6 +60,13 @@
|
|||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item>
|
||||
<widget class="QLabel" name="local_new_label">
|
||||
<property name="text">
|
||||
<string>Newer</string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item>
|
||||
<widget class="QPushButton" name="upload_button">
|
||||
<property name="text">
|
||||
|
@ -102,6 +109,13 @@
|
|||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item>
|
||||
<widget class="QLabel" name="cloud_new_label">
|
||||
<property name="text">
|
||||
<string>Newer</string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item>
|
||||
<widget class="QPushButton" name="download_button">
|
||||
<property name="text">
|
||||
|
|
Loading…
Reference in a new issue