bool Dolphin::attachToExistingInstance(const QList<QUrl>& inputUrls, bool openFiles, bool splitView, const QString& preferredService)
{
- if (KWindowSystem::isPlatformWayland()) {
- // TODO: once Wayland clients can raise or activate themselves remove this conditional
+ // TODO: once Wayland clients can raise or activate themselves remove check from conditional
+ if (KWindowSystem::isPlatformWayland() || inputUrls.isEmpty() || !GeneralSettings::openExternallyCalledFolderInNewTab()) {
return false;
}
QStringLiteral("org.kde.dolphin.MainWindow"))
);
if (preferred->isValid()) {
- dolphinServices.append(qMakePair(preferred, QStringList() ));
+ dolphinServices.append(qMakePair(preferred, QStringList()));
}
}
QStringLiteral("/dolphin/Dolphin_1"),
QStringLiteral("org.kde.dolphin.MainWindow"))
);
- if (!instance->isValid()) {
+ if (!instance->isValid() || instance->lastError().isValid()) {
continue;
}
dolphinServices.append(qMakePair(instance, QStringList()));
for (auto& service: dolphinServices) {
QDBusReply<bool> isUrlOpen = service.first->call(QStringLiteral("isUrlOpen"), url);
if (isUrlOpen.isValid() && isUrlOpen.value()) {
- service.second.append(url);
- urlFound = true;
- break;
+ service.second.append(url);
+ urlFound = true;
+ break;
}
}
if (!urlFound) {