diff --git a/urlhandler/kdeconnect-handler.cpp b/urlhandler/kdeconnect-handler.cpp --- a/urlhandler/kdeconnect-handler.cpp +++ b/urlhandler/kdeconnect-handler.cpp @@ -90,21 +90,26 @@ uidialog.setupUi(&dialog); uidialog.devicePicker->setModel(&proxyModel); uidialog.urlLabel->setText(urlToShare.toDisplayString()); - if (dialog.exec() == QDialog::Accepted) { - QUrl url = urlToShare; - const int currentDeviceIndex = uidialog.devicePicker->currentIndex(); - if(!url.isEmpty() && currentDeviceIndex >= 0) { - const QString device = proxyModel.index(currentDeviceIndex, 0).data(DevicesModel::IdModelRole).toString(); - QDBusMessage msg = QDBusMessage::createMethodCall(QStringLiteral("org.kde.kdeconnect"), "/modules/kdeconnect/devices/"+device+"/share", QStringLiteral("org.kde.kdeconnect.device.share"), QStringLiteral("shareUrl")); - msg.setArguments({ url.toString() }); - blockOnReply(QDBusConnection::sessionBus().asyncCall(msg)); - return 0; - } else { - QTextStream(stderr) << (i18n("Couldn't share %1", url.toString())) << endl; - return 1; - } + int currentDeviceIndex = 0; + if (proxyModel.rowCount() == 1) { + currentDeviceIndex = 0; // No need to display dialog if there is just one device + } else if (dialog.exec() == QDialog::Accepted) { + currentDeviceIndex = uidialog.devicePicker->currentIndex(); + } else { + return 1; + } + + QUrl url = urlToShare; + if(!url.isEmpty() && currentDeviceIndex >= 0) { + const QString device = proxyModel.index(currentDeviceIndex, 0).data(DevicesModel::IdModelRole).toString(); + + QDBusMessage msg = QDBusMessage::createMethodCall(QStringLiteral("org.kde.kdeconnect"), "/modules/kdeconnect/devices/"+device+"/share", QStringLiteral("org.kde.kdeconnect.device.share"), QStringLiteral("shareUrl")); + msg.setArguments({ url.toString() }); + blockOnReply(QDBusConnection::sessionBus().asyncCall(msg)); + return 0; } else { + QTextStream(stderr) << (i18n("Couldn't share %1", url.toString())) << endl; return 1; } }