mirror of
https://github.com/nextcloud/desktop.git
synced 2024-10-24 13:25:52 +03:00
Fix for VFS crashes
Signed-off-by: Claudio Cambra <claudio.cambra@gmail.com>
This commit is contained in:
parent
d99a65f017
commit
98e297bf0b
1 changed files with 24 additions and 19 deletions
|
@ -551,33 +551,38 @@ void User::processCompletedSyncItem(const Folder *folder, const SyncFileItemPtr
|
||||||
activity._message = messageFromFileAction(activity._fileAction, fileName);
|
activity._message = messageFromFileAction(activity._fileAction, fileName);
|
||||||
}
|
}
|
||||||
|
|
||||||
if(activity._fileAction != "file_deleted") {
|
if(activity._fileAction != "file_deleted" && !item->isEmpty()) {
|
||||||
auto remotePath = folder->remotePath();
|
auto remotePath = folder->remotePath();
|
||||||
remotePath.append(activity._fileAction == "file_renamed" ? item->_renameTarget : activity._file);
|
remotePath.append(activity._fileAction == "file_renamed" ? item->_renameTarget : activity._file);
|
||||||
|
|
||||||
const auto localFiles = FolderMan::instance()->findFileInLocalFolders(item->_file, account());
|
const auto localFiles = FolderMan::instance()->findFileInLocalFolders(item->_file, account());
|
||||||
if (!localFiles.isEmpty()) {
|
if (!localFiles.isEmpty()) {
|
||||||
const QMimeType mimeType = _mimeDb.mimeTypeForFile(QFileInfo(localFiles.constFirst()));
|
const auto firstFilePath = localFiles.constFirst();
|
||||||
|
const auto itemJournalRecord = item->toSyncJournalFileRecordWithInode(firstFilePath);
|
||||||
|
|
||||||
// Set the preview data, though for now we can skip setting file ID, link, and view
|
if(!itemJournalRecord.isVirtualFile()) {
|
||||||
PreviewData preview;
|
const auto mimeType = _mimeDb.mimeTypeForFile(QFileInfo(localFiles.constFirst()));
|
||||||
preview._mimeType = mimeType.name();
|
|
||||||
preview._filename = fileName;
|
|
||||||
|
|
||||||
if(item->isDirectory()) {
|
// Set the preview data, though for now we can skip setting file ID, link, and view
|
||||||
preview._source = account()->url().toString() + QStringLiteral("/index.php/apps/theming/img/core/filetypes/folder.svg");
|
PreviewData preview;
|
||||||
preview._isMimeTypeIcon = true;
|
preview._mimeType = mimeType.name();
|
||||||
} else if(mimeType.isValid() && mimeType.inherits("text/plain")) {
|
preview._filename = fileName;
|
||||||
preview._source = account()->url().toString() + QStringLiteral("/index.php/apps/theming/img/core/filetypes/text.svg");
|
|
||||||
preview._isMimeTypeIcon = true;
|
if(item->isDirectory()) {
|
||||||
} else if (mimeType.isValid() && mimeType.inherits("application/pdf")) {
|
preview._source = account()->url().toString() + QStringLiteral("/index.php/apps/theming/img/core/filetypes/folder.svg");
|
||||||
preview._source = account()->url().toString() + QStringLiteral("/index.php/apps/theming/img/core/filetypes/application-pdf.svg");
|
preview._isMimeTypeIcon = true;
|
||||||
preview._isMimeTypeIcon = true;
|
} else if(mimeType.isValid() && mimeType.inherits("text/plain")) {
|
||||||
} else {
|
preview._source = account()->url().toString() + QStringLiteral("/index.php/apps/theming/img/core/filetypes/text.svg");
|
||||||
preview._source = account()->url().toString() + QStringLiteral("/index.php/apps/files/api/v1/thumbnail/150/150/") + remotePath;
|
preview._isMimeTypeIcon = true;
|
||||||
preview._isMimeTypeIcon = false;
|
} else if (mimeType.isValid() && mimeType.inherits("application/pdf")) {
|
||||||
|
preview._source = account()->url().toString() + QStringLiteral("/index.php/apps/theming/img/core/filetypes/application-pdf.svg");
|
||||||
|
preview._isMimeTypeIcon = true;
|
||||||
|
} else {
|
||||||
|
preview._source = account()->url().toString() + QStringLiteral("/index.php/apps/files/api/v1/thumbnail/150/150/") + remotePath;
|
||||||
|
preview._isMimeTypeIcon = false;
|
||||||
|
}
|
||||||
|
activity._previews.append(preview);
|
||||||
}
|
}
|
||||||
activity._previews.append(preview);
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
Loading…
Reference in a new issue