diff --git a/src/main.cpp b/src/main.cpp --- a/src/main.cpp +++ b/src/main.cpp @@ -134,11 +134,20 @@ const QStringList args = parser.positionalArguments(); QList urls = Dolphin::validateUris(args); - + if (urls.isEmpty()) { // We need at least one URL to open Dolphin urls.append(Dolphin::homeUrl()); } + QList urlDirectories, urlRegularFiles; + + for (QUrl url: urls) { + if (QFileInfo(url.toLocalFile()).isDir()) { + urlDirectories.append(url); + } else { + urlRegularFiles.append(url); + } + } const bool splitView = parser.isSet(QStringLiteral("split")) || GeneralSettings::splitView(); if (splitView && urls.size() < 2) { @@ -151,7 +160,12 @@ if (parser.isSet(QStringLiteral("select"))) { mainWindow->openFiles(urls, splitView); } else { - mainWindow->openDirectories(urls, splitView); + if (!urlDirectories.isEmpty()) { + mainWindow->openDirectories(urlDirectories, splitView); + } + if (!urlRegularFiles.isEmpty()) { + mainWindow->openFiles(urlRegularFiles, splitView); + } } mainWindow->show();