mirror of
https://github.com/nextcloud/desktop.git
synced 2024-10-26 06:15:48 +03:00
Link share: Remove direct download if unavailable #5837
It would have been much nicer to keep the menu assigned to the QToolButton, but if one switches away from InstantPopup (to adjust the entries before they're displayed), the button always gets a menu indicator that can't be removed.
This commit is contained in:
parent
e54be1c4ee
commit
99b1f69271
2 changed files with 17 additions and 5 deletions
|
@ -156,6 +156,8 @@ ShareLinkWidget::ShareLinkWidget(AccountPtr account,
|
|||
// Prepare sharing menu
|
||||
|
||||
_shareLinkMenu = new QMenu(this);
|
||||
connect(_shareLinkMenu, SIGNAL(triggered(QAction *)),
|
||||
SLOT(slotShareLinkActionTriggered(QAction *)));
|
||||
_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)"));
|
||||
|
@ -245,9 +247,7 @@ void ShareLinkWidget::slotSharesFetched(const QList<QSharedPointer<Share>> &shar
|
|||
auto shareButton = new QToolButton;
|
||||
shareButton->setText("...");
|
||||
shareButton->setProperty(propertyShareC, QVariant::fromValue(linkShare));
|
||||
shareButton->setMenu(_shareLinkMenu);
|
||||
shareButton->setPopupMode(QToolButton::InstantPopup);
|
||||
connect(shareButton, SIGNAL(triggered(QAction *)), SLOT(slotShareLinkButtonTriggered(QAction *)));
|
||||
connect(shareButton, SIGNAL(clicked(bool)), SLOT(slotShareLinkButtonClicked()));
|
||||
table->setCellWidget(row, 1, shareButton);
|
||||
|
||||
auto deleteButton = new QToolButton;
|
||||
|
@ -514,7 +514,18 @@ void ShareLinkWidget::openShareLink(const QUrl &url)
|
|||
Utility::openBrowser(url, this);
|
||||
}
|
||||
|
||||
void ShareLinkWidget::slotShareLinkButtonTriggered(QAction *action)
|
||||
void ShareLinkWidget::slotShareLinkButtonClicked()
|
||||
{
|
||||
auto share = sender()->property(propertyShareC).value<QSharedPointer<LinkShare>>();
|
||||
bool downloadEnabled = share->getShowFileListing();
|
||||
_copyDirectLinkAction->setVisible(downloadEnabled);
|
||||
_emailDirectLinkAction->setVisible(downloadEnabled);
|
||||
|
||||
_shareLinkMenu->setProperty(propertyShareC, QVariant::fromValue(share));
|
||||
_shareLinkMenu->exec(QCursor::pos());
|
||||
}
|
||||
|
||||
void ShareLinkWidget::slotShareLinkActionTriggered(QAction *action)
|
||||
{
|
||||
auto share = sender()->property(propertyShareC).value<QSharedPointer<LinkShare>>();
|
||||
|
||||
|
|
|
@ -70,7 +70,8 @@ private slots:
|
|||
void slotPasswordChanged(const QString &newText);
|
||||
void slotNameEdited(QTableWidgetItem *item);
|
||||
|
||||
void slotShareLinkButtonTriggered(QAction *action);
|
||||
void slotShareLinkButtonClicked();
|
||||
void slotShareLinkActionTriggered(QAction *action);
|
||||
|
||||
void slotDeleteShareFetched();
|
||||
void slotCreateShareFetched(const QSharedPointer<LinkShare> share);
|
||||
|
|
Loading…
Reference in a new issue