Fix path handling in Dolphin menu

This commit is contained in:
Martchus 2022-12-17 20:39:40 +01:00
parent 4f29c2daba
commit b45a5ec5e2
1 changed files with 6 additions and 4 deletions

View File

@ -12,6 +12,7 @@
#include <KPluginLoader>
#include <QAction>
#include <QDir>
#include <QEvent>
#include <QRegularExpression>
@ -116,7 +117,7 @@ QList<QAction *> SyncthingFileItemAction::createActions(const KFileItemListPrope
// don't show any actions when remote files are selected
return actions;
}
paths << item.localPath();
paths << QDir::cleanPath(item.localPath());
}
// determine relevant Syncthing dirs
@ -125,15 +126,16 @@ QList<QAction *> SyncthingFileItemAction::createActions(const KFileItemListPrope
QList<SyncthingItem> detectedItems;
const SyncthingDir *lastDir = nullptr;
for (const SyncthingDir &dir : dirs) {
QStringRef dirPath(dir.pathWithoutTrailingSlash());
auto dirPath = QDir::cleanPath(dir.path);
auto dirPathWithSlash = dirPath + QChar('/');
for (const QString &path : std::as_const(paths)) {
if (path == dirPath) {
lastDir = &dir;
if (!detectedDirs.contains(lastDir)) {
detectedDirs << lastDir;
}
} else if (path.startsWith(dir.path)) {
detectedItems << SyncthingItem(&dir, path.mid(dir.path.size()));
} else if (path.startsWith(dirPathWithSlash)) {
detectedItems << SyncthingItem(&dir, path.mid(dirPathWithSlash.size()));
lastDir = &dir;
if (!containingDirs.contains(lastDir)) {
containingDirs << lastDir;