From fc3ebdf823bfa30ab8d9f77e0490e83baee6161f Mon Sep 17 00:00:00 2001 From: Martin Rotter Date: Tue, 10 Nov 2020 07:57:56 +0100 Subject: [PATCH] Button for creating credentials for gmail. --- src/librssguard/services/gmail/definitions.h | 2 ++ .../gmail/gui/formeditgmailaccount.cpp | 6 ++++++ .../services/gmail/gui/formeditgmailaccount.h | 1 + .../gmail/gui/formeditgmailaccount.ui | 20 +++++++++++++------ .../gmail/network/gmailnetworkfactory.cpp | 4 ++-- 5 files changed, 25 insertions(+), 8 deletions(-) diff --git a/src/librssguard/services/gmail/definitions.h b/src/librssguard/services/gmail/definitions.h index 61a0ddf1e..046da69ef 100644 --- a/src/librssguard/services/gmail/definitions.h +++ b/src/librssguard/services/gmail/definitions.h @@ -7,6 +7,8 @@ #define GMAIL_OAUTH_TOKEN_URL "https://accounts.google.com/o/oauth2/token" #define GMAIL_OAUTH_SCOPE "https://mail.google.com/" +#define GMAIL_REG_API_URL "https://console.developers.google.com/apis/credentials" + #define GMAIL_API_SEND_MESSAGE "https://www.googleapis.com/upload/gmail/v1/users/me/messages/send?uploadType=media" #define GMAIL_API_BATCH_UPD_LABELS "https://www.googleapis.com/gmail/v1/users/me/messages/batchModify" #define GMAIL_API_GET_ATTACHMENT "https://www.googleapis.com/gmail/v1/users/me/messages/%1/attachments/%2" diff --git a/src/librssguard/services/gmail/gui/formeditgmailaccount.cpp b/src/librssguard/services/gmail/gui/formeditgmailaccount.cpp index 28937f14e..d07ec1b9b 100644 --- a/src/librssguard/services/gmail/gui/formeditgmailaccount.cpp +++ b/src/librssguard/services/gmail/gui/formeditgmailaccount.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/gmail/definitions.h" #include "services/gmail/gmailserviceroot.h" @@ -39,6 +40,7 @@ FormEditGmailAccount::FormEditGmailAccount(QWidget* parent) connect(m_ui.m_btnTestSetup, &QPushButton::clicked, this, &FormEditGmailAccount::testSetup); connect(m_ui.m_buttonBox, &QDialogButtonBox::accepted, this, &FormEditGmailAccount::onClickedOk); connect(m_ui.m_buttonBox, &QDialogButtonBox::rejected, this, &FormEditGmailAccount::onClickedCancel); + connect(m_ui.m_btnRegisterApi, &QPushButton::clicked, this, &FormEditGmailAccount::registerApi); m_ui.m_spinLimitMessages->setValue(GMAIL_DEFAULT_BATCH_SIZE); m_ui.m_spinLimitMessages->setMinimum(GMAIL_MIN_BATCH_SIZE); @@ -172,6 +174,10 @@ void FormEditGmailAccount::execForEdit(GmailServiceRoot* existing_root) { exec(); } +void FormEditGmailAccount::registerApi() { + qApp->web()->openUrlInExternalBrowser(GMAIL_REG_API_URL); +} + void FormEditGmailAccount::checkOAuthValue(const QString& value) { auto* line_edit = qobject_cast(sender()->parent()); diff --git a/src/librssguard/services/gmail/gui/formeditgmailaccount.h b/src/librssguard/services/gmail/gui/formeditgmailaccount.h index 55e97eb82..dcfa04556 100644 --- a/src/librssguard/services/gmail/gui/formeditgmailaccount.h +++ b/src/librssguard/services/gmail/gui/formeditgmailaccount.h @@ -27,6 +27,7 @@ class FormEditGmailAccount : public QDialog { void execForEdit(GmailServiceRoot* existing_root); private slots: + void registerApi(); void testSetup(); void onClickedOk(); void onClickedCancel(); diff --git a/src/librssguard/services/gmail/gui/formeditgmailaccount.ui b/src/librssguard/services/gmail/gui/formeditgmailaccount.ui index 8d1969769..0e87aef87 100644 --- a/src/librssguard/services/gmail/gui/formeditgmailaccount.ui +++ b/src/librssguard/services/gmail/gui/formeditgmailaccount.ui @@ -73,6 +73,13 @@ + + + + Get my credentials + + + @@ -153,20 +160,21 @@ - - LabelWithStatus - QWidget -
labelwithstatus.h
- 1 -
LineEditWithStatus QWidget
lineeditwithstatus.h
1
+ + LabelWithStatus + QWidget +
labelwithstatus.h
+ 1 +
+ m_btnRegisterApi m_spinLimitMessages m_btnTestSetup diff --git a/src/librssguard/services/gmail/network/gmailnetworkfactory.cpp b/src/librssguard/services/gmail/network/gmailnetworkfactory.cpp index 3ea364d36..994fec929 100644 --- a/src/librssguard/services/gmail/network/gmailnetworkfactory.cpp +++ b/src/librssguard/services/gmail/network/gmailnetworkfactory.cpp @@ -528,8 +528,8 @@ bool GmailNetworkFactory::obtainAndDecodeFullMessages(QList& messages, if (msgs.contains(msg_id)) { Message& msg = messages[msgs.value(msg_id)]; - if (fillFullMessage(msg, msg_doc, feed_id)) { - // TODO: report error; + if (!fillFullMessage(msg, msg_doc, feed_id)) { + qWarningNN << "Failed to get full message for custom ID:" << QUOTE_W_SPACE_DOT(msg.m_customId); } } }