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;
|
||||
opt.fillFromEnvironmentVariables();
|
||||
opt.verifyChunkSizes();
|
||||
SyncEngine engine(account, options.source_dir, folder, &db);
|
||||
SyncEngine engine(account, options.source_dir, opt, folder, &db);
|
||||
engine.setIgnoreHiddenFiles(options.ignoreHiddenFiles);
|
||||
engine.setNetworkLimits(options.uplimit, options.downlimit);
|
||||
QObject::connect(&engine, &SyncEngine::finished,
|
||||
|
|
|
@ -79,7 +79,7 @@ Folder::Folder(const FolderDefinition &definition,
|
|||
|
||||
_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
|
||||
_engine->setIgnoreHiddenFiles(_definition.ignoreHiddenFiles);
|
||||
|
||||
|
@ -846,7 +846,7 @@ void Folder::startSync(const QStringList &pathList)
|
|||
}
|
||||
|
||||
setDirtyNetworkLimits();
|
||||
setSyncOptions();
|
||||
syncEngine().setSyncOptions(initializeSyncOptions());
|
||||
|
||||
static std::chrono::milliseconds fullLocalDiscoveryInterval = []() {
|
||||
auto interval = ConfigFile().fullLocalDiscoveryInterval();
|
||||
|
@ -897,7 +897,7 @@ void Folder::correctPlaceholderFiles()
|
|||
}
|
||||
}
|
||||
|
||||
void Folder::setSyncOptions()
|
||||
SyncOptions Folder::initializeSyncOptions() const
|
||||
{
|
||||
SyncOptions opt;
|
||||
ConfigFile cfgFile;
|
||||
|
@ -917,7 +917,7 @@ void Folder::setSyncOptions()
|
|||
opt.fillFromEnvironmentVariables();
|
||||
opt.verifyChunkSizes();
|
||||
|
||||
_engine->setSyncOptions(opt);
|
||||
return opt;
|
||||
}
|
||||
|
||||
void Folder::setDirtyNetworkLimits()
|
||||
|
|
|
@ -430,7 +430,7 @@ private:
|
|||
|
||||
void checkLocalPath();
|
||||
|
||||
void setSyncOptions();
|
||||
SyncOptions initializeSyncOptions() const;
|
||||
|
||||
enum LogStatus {
|
||||
LogStatusRemove,
|
||||
|
|
|
@ -51,7 +51,11 @@ SocketUploadJob::SocketUploadJob(const QSharedPointer<SocketApiJobV2> &job)
|
|||
}
|
||||
|
||||
_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);
|
||||
|
||||
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
|
||||
std::chrono::milliseconds SyncEngine::minimumFileAgeForUpload(2000);
|
||||
|
||||
SyncEngine::SyncEngine(AccountPtr account, const QString &localPath,
|
||||
const QString &remotePath, OCC::SyncJournalDb *journal)
|
||||
SyncEngine::SyncEngine(AccountPtr account,
|
||||
const QString &localPath,
|
||||
const SyncOptions &syncOptions,
|
||||
const QString &remotePath,
|
||||
OCC::SyncJournalDb *journal)
|
||||
: _account(account)
|
||||
, _needsUpdate(false)
|
||||
, _syncRunning(false)
|
||||
|
@ -94,6 +97,7 @@ SyncEngine::SyncEngine(AccountPtr account, const QString &localPath,
|
|||
, _hasRemoveFile(false)
|
||||
, _uploadLimit(0)
|
||||
, _downloadLimit(0)
|
||||
, _syncOptions(syncOptions)
|
||||
, _anotherSyncNeeded(NoFollowUpSync)
|
||||
{
|
||||
qRegisterMetaType<SyncFileItem>("SyncFileItem");
|
||||
|
|
|
@ -57,8 +57,12 @@ class OWNCLOUDSYNC_EXPORT SyncEngine : public QObject
|
|||
{
|
||||
Q_OBJECT
|
||||
public:
|
||||
SyncEngine(AccountPtr account, const QString &localPath,
|
||||
const QString &remotePath, SyncJournalDb *journal);
|
||||
SyncEngine(AccountPtr account,
|
||||
const QString &localPath,
|
||||
const SyncOptions &syncOptions,
|
||||
const QString &remotePath,
|
||||
SyncJournalDb *journal);
|
||||
|
||||
~SyncEngine() override;
|
||||
|
||||
Q_INVOKABLE void startSync();
|
||||
|
|
|
@ -1050,7 +1050,7 @@ FakeFolder::FakeFolder(const FileInfo &fileTemplate, const OCC::Optional<FileInf
|
|||
_account->setServerVersion(QStringLiteral("10.0.0"));
|
||||
|
||||
_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)
|
||||
_syncEngine->excludedFiles().addManualExclude(QStringLiteral("]*.~*"));
|
||||
|
||||
|
|
Loading…
Reference in a new issue