diff --git a/src/gui/wizard/flow2authcredspage.cpp b/src/gui/wizard/flow2authcredspage.cpp index a368d6043..165752663 100644 --- a/src/gui/wizard/flow2authcredspage.cpp +++ b/src/gui/wizard/flow2authcredspage.cpp @@ -46,21 +46,8 @@ Flow2AuthCredsPage::Flow2AuthCredsPage() setTitle(WizardCommon::titleTemplate().arg(tr("Connect to %1").arg(Theme::instance()->appNameGUI()))); setSubTitle(WizardCommon::subTitleTemplate().arg(tr("Login in your browser (Login Flow v2)"))); - connect(_ui.openLinkButton, &QCommandLinkButton::clicked, [this] { - _ui.errorLabel->hide(); - if (_asyncAuth) - _asyncAuth->openBrowser(); - }); - _ui.openLinkButton->setContextMenuPolicy(Qt::CustomContextMenu); - QObject::connect(_ui.openLinkButton, &QWidget::customContextMenuRequested, [this](const QPoint &pos) { - auto menu = new QMenu(_ui.openLinkButton); - menu->addAction(tr("Copy link to clipboard"), this, [this] { - if (_asyncAuth) - QApplication::clipboard()->setText(_asyncAuth->authorisationLink().toString(QUrl::FullyEncoded)); - }); - menu->setAttribute(Qt::WA_DeleteOnClose); - menu->popup(_ui.openLinkButton->mapToGlobal(pos)); - }); + connect(_ui.openLinkButton, &QCommandLinkButton::clicked, this, &Flow2AuthCredsPage::slotOpenBrowser); + connect(_ui.copyLinkButton, &QCommandLinkButton::clicked, this, &Flow2AuthCredsPage::slotCopyLinkToClipboard); } void Flow2AuthCredsPage::initializePage() @@ -146,4 +133,19 @@ bool Flow2AuthCredsPage::isComplete() const return false; /* We can never go forward manually */ } +void Flow2AuthCredsPage::slotOpenBrowser() +{ + if (_ui.errorLabel) + _ui.errorLabel->hide(); + + if (_asyncAuth) + _asyncAuth->openBrowser(); +} + +void Flow2AuthCredsPage::slotCopyLinkToClipboard() +{ + if (_asyncAuth) + QApplication::clipboard()->setText(_asyncAuth->authorisationLink().toString(QUrl::FullyEncoded)); +} + } // namespace OCC diff --git a/src/gui/wizard/flow2authcredspage.h b/src/gui/wizard/flow2authcredspage.h index bffcf68b3..f51d7d7f3 100644 --- a/src/gui/wizard/flow2authcredspage.h +++ b/src/gui/wizard/flow2authcredspage.h @@ -56,6 +56,10 @@ public: QString _appPassword; QScopedPointer _asyncAuth; Ui_Flow2AuthCredsPage _ui; + +protected slots: + void slotOpenBrowser(); + void slotCopyLinkToClipboard(); }; } // namespace OCC diff --git a/src/gui/wizard/flow2authcredspage.ui b/src/gui/wizard/flow2authcredspage.ui index 04c1d7217..37d2b8f53 100644 --- a/src/gui/wizard/flow2authcredspage.ui +++ b/src/gui/wizard/flow2authcredspage.ui @@ -53,7 +53,20 @@ - Re-open Browser (or right-click to copy link) + Re-open Browser + + + + + + + + 50 + false + + + + Copy link diff --git a/src/gui/wizard/flow2authwidget.cpp b/src/gui/wizard/flow2authwidget.cpp index 300b2e83d..c050a54d0 100644 --- a/src/gui/wizard/flow2authwidget.cpp +++ b/src/gui/wizard/flow2authwidget.cpp @@ -50,21 +50,8 @@ Flow2AuthWidget::Flow2AuthWidget(Account *account, QWidget *parent) WizardCommon::initErrorLabel(_ui.errorLabel); - connect(_ui.openLinkButton, &QCommandLinkButton::clicked, [this] { - _ui.errorLabel->hide(); - if (_asyncAuth) - _asyncAuth->openBrowser(); - }); - _ui.openLinkButton->setContextMenuPolicy(Qt::CustomContextMenu); - QObject::connect(_ui.openLinkButton, &QWidget::customContextMenuRequested, [this](const QPoint &pos) { - auto menu = new QMenu(_ui.openLinkButton); - menu->addAction(tr("Copy link to clipboard"), this, [this] { - if (_asyncAuth) - QApplication::clipboard()->setText(_asyncAuth->authorisationLink().toString(QUrl::FullyEncoded)); - }); - menu->setAttribute(Qt::WA_DeleteOnClose); - menu->popup(_ui.openLinkButton->mapToGlobal(pos)); - }); + connect(_ui.openLinkButton, &QCommandLinkButton::clicked, this, &Flow2AuthWidget::slotOpenBrowser); + connect(_ui.copyLinkButton, &QCommandLinkButton::clicked, this, &Flow2AuthWidget::slotCopyLinkToClipboard); _asyncAuth.reset(new Flow2Auth(_account, this)); connect(_asyncAuth.data(), &Flow2Auth::result, this, &Flow2AuthWidget::asyncAuthResult, Qt::QueuedConnection); @@ -110,4 +97,19 @@ Flow2AuthWidget::~Flow2AuthWidget() { _user.clear(); } +void Flow2AuthWidget::slotOpenBrowser() +{ + if (_ui.errorLabel) + _ui.errorLabel->hide(); + + if (_asyncAuth) + _asyncAuth->openBrowser(); } + +void Flow2AuthWidget::slotCopyLinkToClipboard() +{ + if (_asyncAuth) + QApplication::clipboard()->setText(_asyncAuth->authorisationLink().toString(QUrl::FullyEncoded)); +} + +} // namespace OCC diff --git a/src/gui/wizard/flow2authwidget.h b/src/gui/wizard/flow2authwidget.h index cf04d9193..7fe1844c1 100644 --- a/src/gui/wizard/flow2authwidget.h +++ b/src/gui/wizard/flow2authwidget.h @@ -45,6 +45,10 @@ private: QString _appPassword; QScopedPointer _asyncAuth; Ui_Flow2AuthWidget _ui; + +protected slots: + void slotOpenBrowser(); + void slotCopyLinkToClipboard(); }; } diff --git a/src/gui/wizard/flow2authwidget.ui b/src/gui/wizard/flow2authwidget.ui index e73ae6a1d..7de44675f 100644 --- a/src/gui/wizard/flow2authwidget.ui +++ b/src/gui/wizard/flow2authwidget.ui @@ -65,7 +65,20 @@ - Re-open Browser (or right-click to copy link) + Re-open Browser + + + + + + + + 50 + false + + + + Copy link diff --git a/src/gui/wizard/owncloudoauthcredspage.cpp b/src/gui/wizard/owncloudoauthcredspage.cpp index 174aa05c4..0d4c40ea7 100644 --- a/src/gui/wizard/owncloudoauthcredspage.cpp +++ b/src/gui/wizard/owncloudoauthcredspage.cpp @@ -45,21 +45,8 @@ OwncloudOAuthCredsPage::OwncloudOAuthCredsPage() setTitle(WizardCommon::titleTemplate().arg(tr("Connect to %1").arg(Theme::instance()->appNameGUI()))); setSubTitle(WizardCommon::subTitleTemplate().arg(tr("Login in your browser"))); - connect(_ui.openLinkButton, &QCommandLinkButton::clicked, [this] { - _ui.errorLabel->hide(); - if (_asyncAuth) - _asyncAuth->openBrowser(); - }); - _ui.openLinkButton->setContextMenuPolicy(Qt::CustomContextMenu); - QObject::connect(_ui.openLinkButton, &QWidget::customContextMenuRequested, [this](const QPoint &pos) { - auto menu = new QMenu(_ui.openLinkButton); - menu->addAction(tr("Copy link to clipboard"), this, [this] { - if (_asyncAuth) - QApplication::clipboard()->setText(_asyncAuth->authorisationLink().toString(QUrl::FullyEncoded)); - }); - menu->setAttribute(Qt::WA_DeleteOnClose); - menu->popup(_ui.openLinkButton->mapToGlobal(pos)); - }); + connect(_ui.openLinkButton, &QCommandLinkButton::clicked, this, &OwncloudOAuthCredsPage::slotOpenBrowser); + connect(_ui.copyLinkButton, &QCommandLinkButton::clicked, this, &OwncloudOAuthCredsPage::slotCopyLinkToClipboard); } void OwncloudOAuthCredsPage::initializePage() @@ -133,4 +120,19 @@ bool OwncloudOAuthCredsPage::isComplete() const return false; /* We can never go forward manually */ } +void OwncloudOAuthCredsPage::slotOpenBrowser() +{ + if (_ui.errorLabel) + _ui.errorLabel->hide(); + + if (_asyncAuth) + _asyncAuth->openBrowser(); +} + +void OwncloudOAuthCredsPage::slotCopyLinkToClipboard() +{ + if (_asyncAuth) + QApplication::clipboard()->setText(_asyncAuth->authorisationLink().toString(QUrl::FullyEncoded)); +} + } // namespace OCC diff --git a/src/gui/wizard/owncloudoauthcredspage.h b/src/gui/wizard/owncloudoauthcredspage.h index 32341eb1c..efbc9a69b 100644 --- a/src/gui/wizard/owncloudoauthcredspage.h +++ b/src/gui/wizard/owncloudoauthcredspage.h @@ -57,6 +57,10 @@ public: QString _refreshToken; QScopedPointer _asyncAuth; Ui_OwncloudOAuthCredsPage _ui; + +protected slots: + void slotOpenBrowser(); + void slotCopyLinkToClipboard(); }; } // namespace OCC diff --git a/src/gui/wizard/owncloudoauthcredspage.ui b/src/gui/wizard/owncloudoauthcredspage.ui index 2c3a79ed2..03682cae1 100644 --- a/src/gui/wizard/owncloudoauthcredspage.ui +++ b/src/gui/wizard/owncloudoauthcredspage.ui @@ -57,6 +57,19 @@ + + + + + 50 + false + + + + Copy link + + +