diff --git a/plugins/messageviewer/bodypartformatter/semantic/semanticurlhandler.cpp b/plugins/messageviewer/bodypartformatter/semantic/semanticurlhandler.cpp --- a/plugins/messageviewer/bodypartformatter/semantic/semanticurlhandler.cpp +++ b/plugins/messageviewer/bodypartformatter/semantic/semanticurlhandler.cpp @@ -57,6 +57,7 @@ #include #include #include +#include #include #include @@ -474,9 +475,19 @@ part->nodeHelper()->addTempFile(f.fileName()); f.setAutoRemove(false); - QDBusMessage msg - = QDBusMessage::createMethodCall(QStringLiteral("org.kde.kdeconnect"), QStringLiteral("/modules/kdeconnect/devices/") + deviceId + QStringLiteral("/share"), QStringLiteral( - "org.kde.kdeconnect.device.share"), QStringLiteral("openFile")); + + QDBusInterface remoteApp(QStringLiteral("org.kde.kdeconnect"), QStringLiteral("/MainApplication"), QStringLiteral("org.qtproject.Qt.QCoreApplication")); + QVersionNumber kdeconnectVersion = QVersionNumber::fromString(remoteApp.property("applicationVersion").toString()); + + QString method; + if(kdeconnectVersion >= QVersionNumber(1, 4, 0)) { + method = QStringLiteral("openFile"); + } else { + method = QStringLiteral("shareUrl"); + } + + QDBusMessage msg = QDBusMessage::createMethodCall(QStringLiteral("org.kde.kdeconnect"), QStringLiteral("/modules/kdeconnect/devices/") + deviceId + QStringLiteral("/share"), QStringLiteral( + "org.kde.kdeconnect.device.share"), method); msg.setArguments({QUrl::fromLocalFile(f.fileName()).toString()}); QDBusConnection::sessionBus().send(msg);