From e1a73c9257a0b745569b6d86a9db8cfec7c75cc4 Mon Sep 17 00:00:00 2001 From: Martin Rotter Date: Fri, 24 Jul 2020 09:09:07 +0200 Subject: [PATCH] More fixes for OAuth. --- .../gmail/gui/formeditgmailaccount.cpp | 4 +++ .../gmail/gui/formeditgmailaccount.ui | 22 ++++++++++++++ .../services/inoreader/definitions.h | 1 + .../gui/formeditinoreaderaccount.cpp | 11 +++++++ .../inoreader/gui/formeditinoreaderaccount.h | 1 + .../inoreader/gui/formeditinoreaderaccount.ui | 30 +++++++++++++++++++ 6 files changed, 69 insertions(+) diff --git a/src/librssguard/services/gmail/gui/formeditgmailaccount.cpp b/src/librssguard/services/gmail/gui/formeditgmailaccount.cpp index 22093a806..62a9fa023 100644 --- a/src/librssguard/services/gmail/gui/formeditgmailaccount.cpp +++ b/src/librssguard/services/gmail/gui/formeditgmailaccount.cpp @@ -15,6 +15,10 @@ FormEditGmailAccount::FormEditGmailAccount(QWidget* parent) GuiUtilities::applyDialogProperties(*this, qApp->icons()->miscIcon(QSL("gmail"))); + GuiUtilities::setLabelAsNotice(*m_ui.m_lblInfo, true); + m_ui.m_lblInfo->setText(tr("Specified redirect URL must start with \"http://localhost\" and " + "must be configured in your OAuth \"application\".")); + m_ui.m_lblTestResult->setStatus(WidgetWithStatus::StatusType::Information, tr("Not tested yet."), tr("Not tested yet.")); diff --git a/src/librssguard/services/gmail/gui/formeditgmailaccount.ui b/src/librssguard/services/gmail/gui/formeditgmailaccount.ui index 10947cf2d..a70c38e4d 100644 --- a/src/librssguard/services/gmail/gui/formeditgmailaccount.ui +++ b/src/librssguard/services/gmail/gui/formeditgmailaccount.ui @@ -32,6 +32,9 @@ Application ID + + m_txtAppId + @@ -42,6 +45,9 @@ Application key + + m_txtAppKey + @@ -52,11 +58,24 @@ Redirect URL + + m_txtRedirectUrl + + + + + TextLabel + + + true + + + @@ -67,6 +86,9 @@ Only download newest X messages per feed + + m_spinLimitMessages + diff --git a/src/librssguard/services/inoreader/definitions.h b/src/librssguard/services/inoreader/definitions.h index e903319a7..d3e927dc1 100644 --- a/src/librssguard/services/inoreader/definitions.h +++ b/src/librssguard/services/inoreader/definitions.h @@ -6,6 +6,7 @@ #define INOREADER_OAUTH_SCOPE "read write" #define INOREADER_OAUTH_TOKEN_URL "https://www.inoreader.com/oauth2/token" #define INOREADER_OAUTH_AUTH_URL "https://www.inoreader.com/oauth2/auth" +#define INOREADER_REG_API_URL "https://www.inoreader.com/developers/register-app" #define INOREADER_OAUTH_CLI_ID "1000000604" #define INOREADER_OAUTH_CLI_KEY "gsStoZ3aAoQJCgQxoFSuXkWI7Sly87yK" diff --git a/src/librssguard/services/inoreader/gui/formeditinoreaderaccount.cpp b/src/librssguard/services/inoreader/gui/formeditinoreaderaccount.cpp index 61c2fe1cf..e473439ec 100644 --- a/src/librssguard/services/inoreader/gui/formeditinoreaderaccount.cpp +++ b/src/librssguard/services/inoreader/gui/formeditinoreaderaccount.cpp @@ -6,6 +6,7 @@ #include "miscellaneous/application.h" #include "miscellaneous/iconfactory.h" #include "network-web/oauth2service.h" +#include "network-web/webfactory.h" #include "services/inoreader/definitions.h" #include "services/inoreader/inoreaderserviceroot.h" @@ -15,6 +16,11 @@ FormEditInoreaderAccount::FormEditInoreaderAccount(QWidget* parent) GuiUtilities::applyDialogProperties(*this, qApp->icons()->miscIcon(QSL("inoreader"))); + GuiUtilities::setLabelAsNotice(*m_ui.m_lblInfo, true); + m_ui.m_lblInfo->setText(tr("Specified redirect URL must start with \"http://localhost\" and " + "must be configured in your OAuth \"application\".\n\n" + "It is highly recommended to create your own \"Application ID\".")); + m_ui.m_lblTestResult->setStatus(WidgetWithStatus::StatusType::Information, tr("Not tested yet."), tr("Not tested yet.")); @@ -35,6 +41,7 @@ FormEditInoreaderAccount::FormEditInoreaderAccount(QWidget* parent) connect(m_ui.m_btnTestSetup, &QPushButton::clicked, this, &FormEditInoreaderAccount::testSetup); connect(m_ui.m_buttonBox, &QDialogButtonBox::accepted, this, &FormEditInoreaderAccount::onClickedOk); connect(m_ui.m_buttonBox, &QDialogButtonBox::rejected, this, &FormEditInoreaderAccount::onClickedCancel); + connect(m_ui.m_btnRegisterApi, &QPushButton::clicked, this, &FormEditInoreaderAccount::registerApi); m_ui.m_spinLimitMessages->setValue(INOREADER_DEFAULT_BATCH_SIZE); m_ui.m_spinLimitMessages->setMinimum(INOREADER_MIN_BATCH_SIZE); @@ -167,6 +174,10 @@ void FormEditInoreaderAccount::execForEdit(InoreaderServiceRoot* existing_root) exec(); } +void FormEditInoreaderAccount::registerApi() { + qApp->web()->openUrlInExternalBrowser(INOREADER_REG_API_URL); +} + void FormEditInoreaderAccount::checkOAuthValue(const QString& value) { auto* line_edit = qobject_cast(sender()->parent()); diff --git a/src/librssguard/services/inoreader/gui/formeditinoreaderaccount.h b/src/librssguard/services/inoreader/gui/formeditinoreaderaccount.h index 79a609a7f..f64a6b1dd 100644 --- a/src/librssguard/services/inoreader/gui/formeditinoreaderaccount.h +++ b/src/librssguard/services/inoreader/gui/formeditinoreaderaccount.h @@ -27,6 +27,7 @@ class FormEditInoreaderAccount : public QDialog { void execForEdit(InoreaderServiceRoot* existing_root); private slots: + void registerApi(); void testSetup(); void onClickedOk(); void onClickedCancel(); diff --git a/src/librssguard/services/inoreader/gui/formeditinoreaderaccount.ui b/src/librssguard/services/inoreader/gui/formeditinoreaderaccount.ui index f27ccdab0..6417d795f 100644 --- a/src/librssguard/services/inoreader/gui/formeditinoreaderaccount.ui +++ b/src/librssguard/services/inoreader/gui/formeditinoreaderaccount.ui @@ -32,6 +32,9 @@ Application ID + + m_txtAppId + @@ -42,6 +45,9 @@ Application key + + m_txtAppKey + @@ -52,11 +58,31 @@ Redirect URL + + m_txtRedirectUrl + + + + + TextLabel + + + true + + + + + + + Get my own Application ID + + + @@ -67,6 +93,9 @@ Only download newest X messages per feed + + m_spinLimitMessages + @@ -148,6 +177,7 @@ + m_btnRegisterApi m_spinLimitMessages m_btnTestSetup