Skip to content

Commit

Permalink
fix: Unable to open multiple files with invalid links
Browse files Browse the repository at this point in the history
Clicking to confirm the deletion of invalid links will delete all files and prevent them from opening properly

Log: Open multiple files normally, open other files, delete only invalid links
Bug: https://pms.uniontech.com/bug-view-259909.html
  • Loading branch information
yang233000 committed Jun 25, 2024
1 parent 59e7bb3 commit e1bbe34
Show file tree
Hide file tree
Showing 3 changed files with 8 additions and 5 deletions.
2 changes: 2 additions & 0 deletions src/dfm-base/file/local/localfilehandler.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -279,6 +279,7 @@ bool LocalFileHandler::openFiles(const QList<QUrl> &fileUrls)

for (QUrl &fileUrl : urls) {
FileInfoPointer fileInfo = InfoFactory::create<FileInfo>(fileUrl);
QUrl sourceUrl = fileUrl;
QStringList targetList;
targetList.append(fileUrl.path());
FileInfoPointer fileInfoLink = fileInfo;
Expand All @@ -304,6 +305,7 @@ bool LocalFileHandler::openFiles(const QList<QUrl> &fileUrls)
d->lastEvent = DialogManagerInstance->showBreakSymlinkDialog(fileInfoLink->nameOf(
NameInfoType::kFileName),
fileInfo->urlOf(UrlInfoType::kUrl));
invalidPath << sourceUrl;
return d->lastEvent == DFMBASE_NAMESPACE::GlobalEventType::kUnknowType;
}
}
Expand Down
1 change: 1 addition & 0 deletions src/dfm-base/file/local/localfilehandler.h
Original file line number Diff line number Diff line change
Expand Up @@ -55,6 +55,7 @@ class LocalFileHandler
GlobalEventType lastEventType();
QString errorString();
DFMIOErrorCode errorCode();
QList<QUrl> invalidPath;

private:
QScopedPointer<LocalFileHandlerPrivate> d;
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -869,13 +869,13 @@ bool FileOperationsEventReceiver::handleOperationOpenFiles(const quint64 windowI
DFMBASE_NAMESPACE::GlobalEventType lastEvent = fileHandler.lastEventType();
if (lastEvent != DFMBASE_NAMESPACE::GlobalEventType::kUnknowType) {
if (lastEvent == DFMBASE_NAMESPACE::GlobalEventType::kDeleteFiles)
dpfSignalDispatcher->publish(DFMBASE_NAMESPACE::GlobalEventType::kDeleteFiles, windowId, urls, AbstractJobHandler::JobFlag::kNoHint, nullptr);
dpfSignalDispatcher->publish(DFMBASE_NAMESPACE::GlobalEventType::kDeleteFiles, windowId, fileHandler.invalidPath, AbstractJobHandler::JobFlag::kNoHint, nullptr);
else if (lastEvent == DFMBASE_NAMESPACE::GlobalEventType::kMoveToTrash)
dpfSignalDispatcher->publish(DFMBASE_NAMESPACE::GlobalEventType::kMoveToTrash, windowId, urls, AbstractJobHandler::JobFlag::kNoHint, nullptr);
dpfSignalDispatcher->publish(DFMBASE_NAMESPACE::GlobalEventType::kMoveToTrash, windowId, fileHandler.invalidPath, AbstractJobHandler::JobFlag::kNoHint, nullptr);
} else {
// deal open file with custom dialog
dpfSlotChannel->push("dfmplugin_utils", "slot_OpenWith_ShowDialog", windowId, urls);
ok = true;
// deal open file with custom dialog
dpfSlotChannel->push("dfmplugin_utils", "slot_OpenWith_ShowDialog", windowId, fileHandler.invalidPath);
ok = true;
}
}
dpfSignalDispatcher->publish(DFMBASE_NAMESPACE::GlobalEventType::kOpenFilesResult, windowId, urls, ok, error);
Expand Down

0 comments on commit e1bbe34

Please sign in to comment.