Skip to content

Commit

Permalink
Qt5.5 compatiblity patch for login flow V2 + UI improvment
Browse files Browse the repository at this point in the history
Removes the right-click function for the "Re-open browser" buttons because
they are not intuitive for the user.

Adds a dedicated "Copy link" button.

Implements Qt 5.5 fixes based on: #1392

Signed-off-by: Michael Schuster <michael@schuster.ms>
  • Loading branch information
misch7 committed Sep 6, 2019
1 parent 92d086e commit 2608f86
Show file tree
Hide file tree
Showing 9 changed files with 104 additions and 47 deletions.
32 changes: 17 additions & 15 deletions src/gui/wizard/flow2authcredspage.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -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()
Expand Down Expand Up @@ -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
4 changes: 4 additions & 0 deletions src/gui/wizard/flow2authcredspage.h
Original file line number Diff line number Diff line change
Expand Up @@ -56,6 +56,10 @@ public Q_SLOTS:
QString _appPassword;
QScopedPointer<Flow2Auth> _asyncAuth;
Ui_Flow2AuthCredsPage _ui;

protected slots:
void slotOpenBrowser();
void slotCopyLinkToClipboard();
};

} // namespace OCC
15 changes: 14 additions & 1 deletion src/gui/wizard/flow2authcredspage.ui
Original file line number Diff line number Diff line change
Expand Up @@ -53,7 +53,20 @@
<item>
<widget class="QCommandLinkButton" name="openLinkButton">
<property name="text">
<string>Re-open Browser (or right-click to copy link)</string>
<string>Re-open Browser</string>
</property>
</widget>
</item>
<item>
<widget class="QCommandLinkButton" name="copyLinkButton">
<property name="font">
<font>
<weight>50</weight>
<bold>false</bold>
</font>
</property>
<property name="text">
<string>Copy link</string>
</property>
</widget>
</item>
Expand Down
32 changes: 17 additions & 15 deletions src/gui/wizard/flow2authwidget.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -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);
Expand Down Expand Up @@ -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
4 changes: 4 additions & 0 deletions src/gui/wizard/flow2authwidget.h
Original file line number Diff line number Diff line change
Expand Up @@ -45,6 +45,10 @@ public Q_SLOTS:
QString _appPassword;
QScopedPointer<Flow2Auth> _asyncAuth;
Ui_Flow2AuthWidget _ui;

protected slots:
void slotOpenBrowser();
void slotCopyLinkToClipboard();
};

}
Expand Down
15 changes: 14 additions & 1 deletion src/gui/wizard/flow2authwidget.ui
Original file line number Diff line number Diff line change
Expand Up @@ -65,7 +65,20 @@
<item>
<widget class="QCommandLinkButton" name="openLinkButton">
<property name="text">
<string>Re-open Browser (or right-click to copy link)</string>
<string>Re-open Browser</string>
</property>
</widget>
</item>
<item>
<widget class="QCommandLinkButton" name="copyLinkButton">
<property name="font">
<font>
<weight>50</weight>
<bold>false</bold>
</font>
</property>
<property name="text">
<string>Copy link</string>
</property>
</widget>
</item>
Expand Down
32 changes: 17 additions & 15 deletions src/gui/wizard/owncloudoauthcredspage.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -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()
Expand Down Expand Up @@ -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
4 changes: 4 additions & 0 deletions src/gui/wizard/owncloudoauthcredspage.h
Original file line number Diff line number Diff line change
Expand Up @@ -57,6 +57,10 @@ public Q_SLOTS:
QString _refreshToken;
QScopedPointer<OAuth> _asyncAuth;
Ui_OwncloudOAuthCredsPage _ui;

protected slots:
void slotOpenBrowser();
void slotCopyLinkToClipboard();
};

} // namespace OCC
13 changes: 13 additions & 0 deletions src/gui/wizard/owncloudoauthcredspage.ui
Original file line number Diff line number Diff line change
Expand Up @@ -57,6 +57,19 @@
</property>
</widget>
</item>
<item>
<widget class="QCommandLinkButton" name="copyLinkButton">
<property name="font">
<font>
<weight>50</weight>
<bold>false</bold>
</font>
</property>
<property name="text">
<string>Copy link</string>
</property>
</widget>
</item>
<item>
<spacer name="verticalSpacer">
<property name="orientation">
Expand Down

0 comments on commit 2608f86

Please sign in to comment.