mirror of
https://github.com/Cockatrice/Cockatrice.git
synced 2026-11-09 03:23:24 -08:00
Fix ZeldaZach review for PR 7496: deck path in ctor, server-time baseline, single-query sync check
This commit is contained in:
parent
2a3e9f0eb6
commit
e4115514fc
6 changed files with 30 additions and 41 deletions
|
|
@ -304,11 +304,9 @@ void DeckSyncManager::syncNow()
|
|||
.modified = QFileInfo(absolutePath).lastModified()});
|
||||
}
|
||||
|
||||
if (!firstSyncRun && sidecar.lastSyncSecs > 0) {
|
||||
sendSyncCheck(sidecar.lastSyncSecs);
|
||||
return;
|
||||
}
|
||||
fetchFullList();
|
||||
// Always ask the server first: its server_time becomes the sync baseline,
|
||||
// so uploads racing the DeckList response cannot fall outside the window.
|
||||
sendSyncCheck(sidecar.lastSyncSecs);
|
||||
}
|
||||
|
||||
void DeckSyncManager::fetchFullList()
|
||||
|
|
@ -339,6 +337,9 @@ void DeckSyncManager::onCheckFinished(const Response &response, const CommandCon
|
|||
return;
|
||||
}
|
||||
const Response_DeckSyncStatus &status = response.GetExtension(Response_DeckSyncStatus::ext);
|
||||
if (status.has_server_time()) {
|
||||
pendingServerTime = static_cast<qint64>(status.server_time());
|
||||
}
|
||||
DeckSyncSidecar sidecar(sidecarPath);
|
||||
if (!sidecar.load()) {
|
||||
fetchFullList();
|
||||
|
|
|
|||
|
|
@ -260,6 +260,13 @@ TabDeckStorage::TabDeckStorage(TabSupervisor *_tabSupervisor,
|
|||
|
||||
syncManager = new DeckSyncManager(
|
||||
client, [](const DeckList &deck) { return getDeckColorIdentity(deck, CardDatabaseManager::query()); }, this);
|
||||
syncManager->setDeckPath(SettingsCache::instance().paths().getDeckPath());
|
||||
connect(&SettingsCache::instance().paths(), &PathsSettings::deckPathChanged, this, [this] {
|
||||
const QString deckPath = SettingsCache::instance().paths().getDeckPath();
|
||||
localDirModel->setRootPath(deckPath);
|
||||
localDirView->setRootIndex(localDirModel->index(localDirModel->rootPath(), 0));
|
||||
syncManager->setDeckPath(deckPath);
|
||||
});
|
||||
syncManager->setConflictDefault(SettingsCache::instance().deckSync().getConflictDefault());
|
||||
syncManager->setAutoSyncEnabled(SettingsCache::instance().deckSync().getAutoSync());
|
||||
syncManager->setSyncIntervalMinutes(SettingsCache::instance().deckSync().getSyncIntervalMinutes());
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue