diff --git a/src/gui/sharelinkwidget.cpp b/src/gui/sharelinkwidget.cpp index 5413cc555..1195edb7f 100644 --- a/src/gui/sharelinkwidget.cpp +++ b/src/gui/sharelinkwidget.cpp @@ -153,7 +153,9 @@ ShareLinkWidget::ShareLinkWidget(AccountPtr account, _shareLinkMenu = new QMenu(this); _openLinkAction = _shareLinkMenu->addAction(tr("Open link in browser")); _copyLinkAction = _shareLinkMenu->addAction(tr("Copy link to clipboard")); + _copyDirectLinkAction = _shareLinkMenu->addAction(tr("Copy link to clipboard (direct download)")); _emailLinkAction = _shareLinkMenu->addAction(tr("Send link by email")); + _emailDirectLinkAction = _shareLinkMenu->addAction(tr("Send link by email (direct download)")); /* * Create the share manager and connect it properly @@ -533,14 +535,17 @@ void ShareLinkWidget::openShareLink(const QUrl &url) void ShareLinkWidget::slotShareLinkButtonTriggered(QAction *action) { auto share = sender()->property(propertyShareC).value>(); - QUrl url = share->getLink(); if (action == _copyLinkAction) { - copyShareLink(url); + copyShareLink(share->getLink()); + } else if (action == _copyDirectLinkAction) { + copyShareLink(share->getDirectDownloadLink()); } else if (action == _emailLinkAction) { - emailShareLink(url); + emailShareLink(share->getLink()); + } else if (action == _emailDirectLinkAction) { + emailShareLink(share->getDirectDownloadLink()); } else if (action == _openLinkAction) { - openShareLink(url); + openShareLink(share->getLink()); } } diff --git a/src/gui/sharelinkwidget.h b/src/gui/sharelinkwidget.h index 898b79a49..7426f2219 100644 --- a/src/gui/sharelinkwidget.h +++ b/src/gui/sharelinkwidget.h @@ -123,7 +123,9 @@ private: QMenu *_shareLinkMenu; QAction *_openLinkAction; QAction *_copyLinkAction; + QAction *_copyDirectLinkAction; QAction *_emailLinkAction; + QAction *_emailDirectLinkAction; }; } diff --git a/src/gui/sharemanager.cpp b/src/gui/sharemanager.cpp index 5d50fcea5..f4ee87cc2 100644 --- a/src/gui/sharemanager.cpp +++ b/src/gui/sharemanager.cpp @@ -109,6 +109,13 @@ QUrl LinkShare::getLink() const return _url; } +QUrl LinkShare::getDirectDownloadLink() const +{ + QUrl url = _url; + url.setPath(url.path() + "/download"); + return url; +} + QDate LinkShare::getExpireDate() const { return _expireDate; diff --git a/src/gui/sharemanager.h b/src/gui/sharemanager.h index da97b4f37..3331b53c6 100644 --- a/src/gui/sharemanager.h +++ b/src/gui/sharemanager.h @@ -144,6 +144,11 @@ public: */ QUrl getLink() const; + /* + * The share's link for direct downloading. + */ + QUrl getDirectDownloadLink() const; + /* * Get the publicUpload status of this share */