Merge pull request #5317 from nextcloud/bugfix/edit-locally-folder-lock

Don't try to lock folders when editing locally
This commit is contained in:
Claudio Cambra 2023-01-23 18:41:46 +01:00 committed by GitHub
commit d69583ba12
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
2 changed files with 18 additions and 2 deletions

View File

@ -253,7 +253,7 @@ void EditLocallyJob::startSyncBeforeOpening()
{
eraseBlacklistRecordForItem();
if (!checkIfFileParentSyncIsNeeded()) {
lockFile();
processLocalItem();
return;
}
@ -467,7 +467,7 @@ void EditLocallyJob::slotItemCompleted(const OCC::SyncFileItemPtr &item)
if (item->_file == _relativePathToRemoteRoot) {
disconnect(&_folderForFile->syncEngine(), &SyncEngine::itemCompleted, this, &EditLocallyJob::slotItemCompleted);
disconnect(&_folderForFile->syncEngine(), &SyncEngine::itemDiscovered, this, &EditLocallyJob::slotItemDiscovered);
lockFile();
processLocalItem();
}
}
@ -557,6 +557,21 @@ void EditLocallyJob::openFile()
});
}
void EditLocallyJob::processLocalItem()
{
Q_ASSERT(_folderForFile);
SyncJournalFileRecord rec;
const auto ok = _folderForFile->journalDb()->getFileRecord(_relativePathToRemoteRoot, &rec);
Q_ASSERT(ok);
if (rec.isDirectory()) { // Directories not lock-able
openFile();
} else {
lockFile();
}
}
void EditLocallyJob::lockFile()
{
Q_ASSERT(_accountState);

View File

@ -71,6 +71,7 @@ private slots:
void slotLsColJobFinishedWithError(QNetworkReply *reply);
void slotDirectoryListingIterated(const QString &name, const QMap<QString, QString> &properties);
void processLocalItem();
void openFile();
void lockFile();