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