Fix path handling in Dolphin menu
This commit is contained in:
parent
4f29c2daba
commit
b45a5ec5e2
|
@ -12,6 +12,7 @@
|
||||||
#include <KPluginLoader>
|
#include <KPluginLoader>
|
||||||
|
|
||||||
#include <QAction>
|
#include <QAction>
|
||||||
|
#include <QDir>
|
||||||
#include <QEvent>
|
#include <QEvent>
|
||||||
#include <QRegularExpression>
|
#include <QRegularExpression>
|
||||||
|
|
||||||
|
@ -116,7 +117,7 @@ QList<QAction *> SyncthingFileItemAction::createActions(const KFileItemListPrope
|
||||||
// don't show any actions when remote files are selected
|
// don't show any actions when remote files are selected
|
||||||
return actions;
|
return actions;
|
||||||
}
|
}
|
||||||
paths << item.localPath();
|
paths << QDir::cleanPath(item.localPath());
|
||||||
}
|
}
|
||||||
|
|
||||||
// determine relevant Syncthing dirs
|
// determine relevant Syncthing dirs
|
||||||
|
@ -125,15 +126,16 @@ QList<QAction *> SyncthingFileItemAction::createActions(const KFileItemListPrope
|
||||||
QList<SyncthingItem> detectedItems;
|
QList<SyncthingItem> detectedItems;
|
||||||
const SyncthingDir *lastDir = nullptr;
|
const SyncthingDir *lastDir = nullptr;
|
||||||
for (const SyncthingDir &dir : dirs) {
|
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)) {
|
for (const QString &path : std::as_const(paths)) {
|
||||||
if (path == dirPath) {
|
if (path == dirPath) {
|
||||||
lastDir = &dir;
|
lastDir = &dir;
|
||||||
if (!detectedDirs.contains(lastDir)) {
|
if (!detectedDirs.contains(lastDir)) {
|
||||||
detectedDirs << lastDir;
|
detectedDirs << lastDir;
|
||||||
}
|
}
|
||||||
} else if (path.startsWith(dir.path)) {
|
} else if (path.startsWith(dirPathWithSlash)) {
|
||||||
detectedItems << SyncthingItem(&dir, path.mid(dir.path.size()));
|
detectedItems << SyncthingItem(&dir, path.mid(dirPathWithSlash.size()));
|
||||||
lastDir = &dir;
|
lastDir = &dir;
|
||||||
if (!containingDirs.contains(lastDir)) {
|
if (!containingDirs.contains(lastDir)) {
|
||||||
containingDirs << lastDir;
|
containingDirs << lastDir;
|
||||||
|
|
Loading…
Reference in New Issue