mirror of
https://github.com/nextcloud/desktop.git
synced 2024-10-24 13:25:52 +03:00
Merge pull request #4816 from nextcloud/bugfix/ensureSyncOptionsAreInitialized
ensure SyncEngine use an initialized instance of SyncOptions
This commit is contained in:
commit
dab1a19656
7 changed files with 24 additions and 12 deletions
|
@ -504,7 +504,7 @@ restart_sync:
|
||||||
SyncOptions opt;
|
SyncOptions opt;
|
||||||
opt.fillFromEnvironmentVariables();
|
opt.fillFromEnvironmentVariables();
|
||||||
opt.verifyChunkSizes();
|
opt.verifyChunkSizes();
|
||||||
SyncEngine engine(account, options.source_dir, folder, &db);
|
SyncEngine engine(account, options.source_dir, opt, folder, &db);
|
||||||
engine.setIgnoreHiddenFiles(options.ignoreHiddenFiles);
|
engine.setIgnoreHiddenFiles(options.ignoreHiddenFiles);
|
||||||
engine.setNetworkLimits(options.uplimit, options.downlimit);
|
engine.setNetworkLimits(options.uplimit, options.downlimit);
|
||||||
QObject::connect(&engine, &SyncEngine::finished,
|
QObject::connect(&engine, &SyncEngine::finished,
|
||||||
|
|
|
@ -79,7 +79,7 @@ Folder::Folder(const FolderDefinition &definition,
|
||||||
|
|
||||||
_syncResult.setFolder(_definition.alias);
|
_syncResult.setFolder(_definition.alias);
|
||||||
|
|
||||||
_engine.reset(new SyncEngine(_accountState->account(), path(), remotePath(), &_journal));
|
_engine.reset(new SyncEngine(_accountState->account(), path(), initializeSyncOptions(), remotePath(), &_journal));
|
||||||
// pass the setting if hidden files are to be ignored, will be read in csync_update
|
// pass the setting if hidden files are to be ignored, will be read in csync_update
|
||||||
_engine->setIgnoreHiddenFiles(_definition.ignoreHiddenFiles);
|
_engine->setIgnoreHiddenFiles(_definition.ignoreHiddenFiles);
|
||||||
|
|
||||||
|
@ -846,7 +846,7 @@ void Folder::startSync(const QStringList &pathList)
|
||||||
}
|
}
|
||||||
|
|
||||||
setDirtyNetworkLimits();
|
setDirtyNetworkLimits();
|
||||||
setSyncOptions();
|
syncEngine().setSyncOptions(initializeSyncOptions());
|
||||||
|
|
||||||
static std::chrono::milliseconds fullLocalDiscoveryInterval = []() {
|
static std::chrono::milliseconds fullLocalDiscoveryInterval = []() {
|
||||||
auto interval = ConfigFile().fullLocalDiscoveryInterval();
|
auto interval = ConfigFile().fullLocalDiscoveryInterval();
|
||||||
|
@ -897,7 +897,7 @@ void Folder::correctPlaceholderFiles()
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
void Folder::setSyncOptions()
|
SyncOptions Folder::initializeSyncOptions() const
|
||||||
{
|
{
|
||||||
SyncOptions opt;
|
SyncOptions opt;
|
||||||
ConfigFile cfgFile;
|
ConfigFile cfgFile;
|
||||||
|
@ -917,7 +917,7 @@ void Folder::setSyncOptions()
|
||||||
opt.fillFromEnvironmentVariables();
|
opt.fillFromEnvironmentVariables();
|
||||||
opt.verifyChunkSizes();
|
opt.verifyChunkSizes();
|
||||||
|
|
||||||
_engine->setSyncOptions(opt);
|
return opt;
|
||||||
}
|
}
|
||||||
|
|
||||||
void Folder::setDirtyNetworkLimits()
|
void Folder::setDirtyNetworkLimits()
|
||||||
|
|
|
@ -430,7 +430,7 @@ private:
|
||||||
|
|
||||||
void checkLocalPath();
|
void checkLocalPath();
|
||||||
|
|
||||||
void setSyncOptions();
|
SyncOptions initializeSyncOptions() const;
|
||||||
|
|
||||||
enum LogStatus {
|
enum LogStatus {
|
||||||
LogStatusRemove,
|
LogStatusRemove,
|
||||||
|
|
|
@ -51,7 +51,11 @@ SocketUploadJob::SocketUploadJob(const QSharedPointer<SocketApiJobV2> &job)
|
||||||
}
|
}
|
||||||
|
|
||||||
_db = new SyncJournalDb(_tmp.fileName(), this);
|
_db = new SyncJournalDb(_tmp.fileName(), this);
|
||||||
_engine = new SyncEngine(account->account(), _localPath.endsWith(QLatin1Char('/')) ? _localPath : _localPath + QLatin1Char('/'), _remotePath, _db);
|
|
||||||
|
SyncOptions opt;
|
||||||
|
opt.fillFromEnvironmentVariables();
|
||||||
|
opt.verifyChunkSizes();
|
||||||
|
_engine = new SyncEngine(account->account(), _localPath.endsWith(QLatin1Char('/')) ? _localPath : _localPath + QLatin1Char('/'), opt, _remotePath, _db);
|
||||||
_engine->setParent(_db);
|
_engine->setParent(_db);
|
||||||
|
|
||||||
connect(_engine, &OCC::SyncEngine::itemCompleted, this, [this](const OCC::SyncFileItemPtr item) {
|
connect(_engine, &OCC::SyncEngine::itemCompleted, this, [this](const OCC::SyncFileItemPtr item) {
|
||||||
|
|
|
@ -81,8 +81,11 @@ static const std::chrono::milliseconds s_touchedFilesMaxAgeMs(3 * 1000);
|
||||||
// doc in header
|
// doc in header
|
||||||
std::chrono::milliseconds SyncEngine::minimumFileAgeForUpload(2000);
|
std::chrono::milliseconds SyncEngine::minimumFileAgeForUpload(2000);
|
||||||
|
|
||||||
SyncEngine::SyncEngine(AccountPtr account, const QString &localPath,
|
SyncEngine::SyncEngine(AccountPtr account,
|
||||||
const QString &remotePath, OCC::SyncJournalDb *journal)
|
const QString &localPath,
|
||||||
|
const SyncOptions &syncOptions,
|
||||||
|
const QString &remotePath,
|
||||||
|
OCC::SyncJournalDb *journal)
|
||||||
: _account(account)
|
: _account(account)
|
||||||
, _needsUpdate(false)
|
, _needsUpdate(false)
|
||||||
, _syncRunning(false)
|
, _syncRunning(false)
|
||||||
|
@ -94,6 +97,7 @@ SyncEngine::SyncEngine(AccountPtr account, const QString &localPath,
|
||||||
, _hasRemoveFile(false)
|
, _hasRemoveFile(false)
|
||||||
, _uploadLimit(0)
|
, _uploadLimit(0)
|
||||||
, _downloadLimit(0)
|
, _downloadLimit(0)
|
||||||
|
, _syncOptions(syncOptions)
|
||||||
, _anotherSyncNeeded(NoFollowUpSync)
|
, _anotherSyncNeeded(NoFollowUpSync)
|
||||||
{
|
{
|
||||||
qRegisterMetaType<SyncFileItem>("SyncFileItem");
|
qRegisterMetaType<SyncFileItem>("SyncFileItem");
|
||||||
|
|
|
@ -57,8 +57,12 @@ class OWNCLOUDSYNC_EXPORT SyncEngine : public QObject
|
||||||
{
|
{
|
||||||
Q_OBJECT
|
Q_OBJECT
|
||||||
public:
|
public:
|
||||||
SyncEngine(AccountPtr account, const QString &localPath,
|
SyncEngine(AccountPtr account,
|
||||||
const QString &remotePath, SyncJournalDb *journal);
|
const QString &localPath,
|
||||||
|
const SyncOptions &syncOptions,
|
||||||
|
const QString &remotePath,
|
||||||
|
SyncJournalDb *journal);
|
||||||
|
|
||||||
~SyncEngine() override;
|
~SyncEngine() override;
|
||||||
|
|
||||||
Q_INVOKABLE void startSync();
|
Q_INVOKABLE void startSync();
|
||||||
|
|
|
@ -1050,7 +1050,7 @@ FakeFolder::FakeFolder(const FileInfo &fileTemplate, const OCC::Optional<FileInf
|
||||||
_account->setServerVersion(QStringLiteral("10.0.0"));
|
_account->setServerVersion(QStringLiteral("10.0.0"));
|
||||||
|
|
||||||
_journalDb = std::make_unique<OCC::SyncJournalDb>(localPath() + QStringLiteral(".sync_test.db"));
|
_journalDb = std::make_unique<OCC::SyncJournalDb>(localPath() + QStringLiteral(".sync_test.db"));
|
||||||
_syncEngine = std::make_unique<OCC::SyncEngine>(_account, localPath(), remotePath, _journalDb.get());
|
_syncEngine = std::make_unique<OCC::SyncEngine>(_account, localPath(), OCC::SyncOptions{}, remotePath, _journalDb.get());
|
||||||
// Ignore temporary files from the download. (This is in the default exclude list, but we don't load it)
|
// Ignore temporary files from the download. (This is in the default exclude list, but we don't load it)
|
||||||
_syncEngine->excludedFiles().addManualExclude(QStringLiteral("]*.~*"));
|
_syncEngine->excludedFiles().addManualExclude(QStringLiteral("]*.~*"));
|
||||||
|
|
||||||
|
|
Loading…
Reference in a new issue