diff --git a/src/dfm-base/file/local/localfilehandler.cpp b/src/dfm-base/file/local/localfilehandler.cpp index ab49356f99..853cda75c7 100644 --- a/src/dfm-base/file/local/localfilehandler.cpp +++ b/src/dfm-base/file/local/localfilehandler.cpp @@ -279,6 +279,7 @@ bool LocalFileHandler::openFiles(const QList &fileUrls) for (QUrl &fileUrl : urls) { FileInfoPointer fileInfo = InfoFactory::create(fileUrl); + QUrl sourceUrl = fileUrl; QStringList targetList; targetList.append(fileUrl.path()); FileInfoPointer fileInfoLink = fileInfo; @@ -304,6 +305,7 @@ bool LocalFileHandler::openFiles(const QList &fileUrls) d->lastEvent = DialogManagerInstance->showBreakSymlinkDialog(fileInfoLink->nameOf( NameInfoType::kFileName), fileInfo->urlOf(UrlInfoType::kUrl)); + d->invalidPath << sourceUrl; return d->lastEvent == DFMBASE_NAMESPACE::GlobalEventType::kUnknowType; } } @@ -1206,6 +1208,11 @@ DFMIOErrorCode LocalFileHandler::errorCode() return d->lastError.code(); } +QList LocalFileHandler::getInvalidPath() +{ + return d->invalidPath; +} + GlobalEventType LocalFileHandler::lastEventType() { return d->lastEvent; diff --git a/src/dfm-base/file/local/localfilehandler.h b/src/dfm-base/file/local/localfilehandler.h index 388446dea3..48adaa26b5 100644 --- a/src/dfm-base/file/local/localfilehandler.h +++ b/src/dfm-base/file/local/localfilehandler.h @@ -47,14 +47,15 @@ class LocalFileHandler bool deleteFile(const QUrl &url); bool deleteFileRecursive(const QUrl &url); bool setFileTime(const QUrl &url, const QDateTime &accessDateTime, const QDateTime &lastModifiedTime); - + bool geturl(); bool renameFilesBatch(const QMap &urls, QMap &successUrls); bool doHiddenFileRemind(const QString &name, bool *checkRule = nullptr); - QString defaultTerminalPath(); GlobalEventType lastEventType(); QString errorString(); DFMIOErrorCode errorCode(); + QList getInvalidPath(); + private: QScopedPointer d; diff --git a/src/dfm-base/file/local/localfilehandler_p.h b/src/dfm-base/file/local/localfilehandler_p.h index ac0abe2bed..debef0a1b9 100644 --- a/src/dfm-base/file/local/localfilehandler_p.h +++ b/src/dfm-base/file/local/localfilehandler_p.h @@ -66,6 +66,7 @@ class LocalFileHandlerPrivate LocalFileHandler *q { nullptr }; DFMIOError lastError; GlobalEventType lastEvent = GlobalEventType::kUnknowType; + QList invalidPath; }; } diff --git a/src/plugins/common/core/dfmplugin-fileoperations/fileoperationsevent/fileoperationseventreceiver.cpp b/src/plugins/common/core/dfmplugin-fileoperations/fileoperationsevent/fileoperationseventreceiver.cpp index 7756c993d4..8f62e565b3 100644 --- a/src/plugins/common/core/dfmplugin-fileoperations/fileoperationsevent/fileoperationseventreceiver.cpp +++ b/src/plugins/common/core/dfmplugin-fileoperations/fileoperationsevent/fileoperationseventreceiver.cpp @@ -869,12 +869,12 @@ 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.getInvalidPath(), 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.getInvalidPath(), AbstractJobHandler::JobFlag::kNoHint, nullptr); } else { // deal open file with custom dialog - dpfSlotChannel->push("dfmplugin_utils", "slot_OpenWith_ShowDialog", windowId, urls); + dpfSlotChannel->push("dfmplugin_utils", "slot_OpenWith_ShowDialog", windowId, fileHandler.getInvalidPath()); ok = true; } }