diff --git a/src/utils/vxurlutils.cpp b/src/utils/vxurlutils.cpp index 5b471068d..bf39ee6c6 100644 --- a/src/utils/vxurlutils.cpp +++ b/src/utils/vxurlutils.cpp @@ -7,6 +7,8 @@ #include #include +#include +#include #include "pathutils.h" #include @@ -43,13 +45,18 @@ QString VxUrlUtils::getFilePathFromVxURL(const QString &p_vxUrl) { int colonPos = p_vxUrl.indexOf(':'); if (colonPos != -1) { filePath = p_vxUrl.mid(colonPos + 1); - filePath = PathUtils::fileName(filePath); // get 'filePath' return filePath; } } // if not 'filePath', return original 'vxUrl' return p_vxUrl; } +QString VxUrlUtils::getFileNameFromVxURL(const QString &p_vxUrl) { + QString filePath = VxUrlUtils::getFilePathFromVxURL(p_vxUrl); + + return PathUtils::fileName(filePath); +} + QString VxUrlUtils::getSignatureFromFilePath(const QString &p_filePath) { QFileInfo fileInfo(p_filePath); @@ -107,8 +114,17 @@ QString VxUrlUtils::getFilePathFromSignature(const QString &p_startPath, const Q // Find the file with the specified signature in all vx.json files under the specified directory QDirIterator it(p_startPath, {"vx.json"}, QDir::Files | QDir::NoDotAndDotDot, QDirIterator::Subdirectories); + const QString rootPath = VNoteX::getInst().getNotebookMgr().getCurrentNotebook()->getRootFolderAbsolutePath(); + const QString recycleBinPath = PathUtils::concatenateFilePath(rootPath, "vx_recycle_bin"); + while (it.hasNext()) { const QString vxPath = it.next(); + + // skip vx.json in recycle bin + if (vxPath.endsWith("vx_recycle_bin/vx.json") || vxPath.startsWith(recycleBinPath)) { + continue; + } + QFile vxFile(vxPath); if (!vxFile.open(QIODevice::ReadOnly)) { continue; diff --git a/src/utils/vxurlutils.h b/src/utils/vxurlutils.h index 9d5728a15..35b2e1c1f 100644 --- a/src/utils/vxurlutils.h +++ b/src/utils/vxurlutils.h @@ -21,6 +21,9 @@ namespace vnotex // Get signature from vxUrl. static QString getSignatureFromVxURL(const QString &p_vxUrl); + // Get file name from vxUrl. + static QString getFileNameFromVxURL(const QString &p_vxUrl); + // Get file path from vxUrl. static QString getFilePathFromVxURL(const QString &p_vxUrl);