From 25719af9cc34b8d98f8dc0c6c91b5d1ad9dbf987 Mon Sep 17 00:00:00 2001 From: Martin Rotter Date: Tue, 12 Sep 2017 12:49:39 +0200 Subject: [PATCH] Work on batch size - load from network class. --- .../owncloud/gui/formeditowncloudaccount.cpp | 38 +++++++++++--- .../owncloud/gui/formeditowncloudaccount.ui | 49 +++++++++++++++++-- .../network/owncloudnetworkfactory.cpp | 16 ++++-- .../owncloud/network/owncloudnetworkfactory.h | 13 +++-- .../tt-rss/gui/formeditttrssaccount.cpp | 20 +++++--- .../tt-rss/gui/formeditttrssaccount.ui | 4 +- 6 files changed, 112 insertions(+), 28 deletions(-) diff --git a/src/services/owncloud/gui/formeditowncloudaccount.cpp b/src/services/owncloud/gui/formeditowncloudaccount.cpp index b19e9a9f0..1f25ea497 100755 --- a/src/services/owncloud/gui/formeditowncloudaccount.cpp +++ b/src/services/owncloud/gui/formeditowncloudaccount.cpp @@ -22,15 +22,17 @@ #include "services/owncloud/network/owncloudnetworkfactory.h" #include "miscellaneous/iconfactory.h" #include "network-web/networkfactory.h" +#include "gui/guiutilities.h" FormEditOwnCloudAccount::FormEditOwnCloudAccount(QWidget* parent) : QDialog(parent), m_ui(new Ui::FormEditOwnCloudAccount), m_editableRoot(nullptr) { m_ui->setupUi(this); m_btnOk = m_ui->m_buttonBox->button(QDialogButtonBox::Ok); - setWindowFlags(Qt::MSWindowsFixedSizeDialogHint | Qt::Dialog | Qt::WindowSystemMenuHint); - setWindowIcon(qApp->icons()->fromTheme(QSL("owncloud"))); - m_ui->m_lblTestResult->label()->setWordWrap(true); + + GuiUtilities::applyDialogProperties(*this, qApp->icons()->fromTheme(QSL("owncloud"))); + + m_ui->m_lblTestResult->label()->setWordWrap(true); m_ui->m_lblServerSideUpdateInformation->setText(tr("Leaving this option on causes that updates " "of feeds will be probably much slower and may time-out often.")); m_ui->m_lblDescription->setText(tr("Note that at least version %1 is required.").arg(MINIMAL_OC_VERSION)); @@ -40,13 +42,32 @@ FormEditOwnCloudAccount::FormEditOwnCloudAccount(QWidget* parent) m_ui->m_lblTestResult->setStatus(WidgetWithStatus::Information, tr("No test done yet."), tr("Here, results of connection test are shown.")); - setTabOrder(m_ui->m_txtUrl->lineEdit(), m_ui->m_checkServerSideUpdate); - setTabOrder(m_ui->m_checkServerSideUpdate, m_ui->m_txtUsername->lineEdit()); + m_ui->m_lblLimitMessages->setText( + tr("Limiting number of downloaded messages per feed makes updating of feeds faster but if your feed contains " + "bigger number of messages than specified limit, then some messages might not be downloaded during feed update.")); + + connect(m_ui->m_spinLimitMessages, static_cast(&QSpinBox::valueChanged), [ = ](int value) { + if (value <= 0) { + m_ui->m_spinLimitMessages->setSuffix(QSL(" ") + tr("= unlimited")); + } + else { + m_ui->m_spinLimitMessages->setSuffix(QSL(" ") + tr("messages")); + } + }); + + GuiUtilities::setLabelAsNotice(*m_ui->m_lblLimitMessages, false); + GuiUtilities::setLabelAsNotice(*m_ui->m_lblServerSideUpdateInformation, false); + GuiUtilities::setLabelAsNotice(*m_ui->m_lblDescription, false); + + setTabOrder(m_ui->m_txtUrl->lineEdit(), m_ui->m_checkServerSideUpdate); + setTabOrder(m_ui->m_checkServerSideUpdate, m_ui->m_spinLimitMessages); + setTabOrder(m_ui->m_spinLimitMessages, m_ui->m_txtUsername->lineEdit()); setTabOrder(m_ui->m_txtUsername->lineEdit(), m_ui->m_txtPassword->lineEdit()); setTabOrder(m_ui->m_txtPassword->lineEdit(), m_ui->m_checkShowPassword); setTabOrder(m_ui->m_checkShowPassword, m_ui->m_btnTestSetup); setTabOrder(m_ui->m_btnTestSetup, m_ui->m_buttonBox); - connect(m_ui->m_checkShowPassword, &QCheckBox::toggled, this, &FormEditOwnCloudAccount::displayPassword); + + connect(m_ui->m_checkShowPassword, &QCheckBox::toggled, this, &FormEditOwnCloudAccount::displayPassword); connect(m_ui->m_buttonBox, &QDialogButtonBox::accepted, this, &FormEditOwnCloudAccount::onClickedOk); connect(m_ui->m_buttonBox, &QDialogButtonBox::rejected, this, &FormEditOwnCloudAccount::onClickedCancel); connect(m_ui->m_txtPassword->lineEdit(), &BaseLineEdit::textChanged, this, &FormEditOwnCloudAccount::onPasswordChanged); @@ -56,7 +77,8 @@ FormEditOwnCloudAccount::FormEditOwnCloudAccount(QWidget* parent) connect(m_ui->m_txtUsername->lineEdit(), &BaseLineEdit::textChanged, this, &FormEditOwnCloudAccount::checkOkButton); connect(m_ui->m_txtUrl->lineEdit(), &BaseLineEdit::textChanged, this, &FormEditOwnCloudAccount::checkOkButton); connect(m_ui->m_btnTestSetup, &QPushButton::clicked, this, &FormEditOwnCloudAccount::performTest); - onPasswordChanged(); + + onPasswordChanged(); onUsernameChanged(); onUrlChanged(); checkOkButton(); @@ -88,10 +110,12 @@ void FormEditOwnCloudAccount::displayPassword(bool display) { void FormEditOwnCloudAccount::performTest() { OwnCloudNetworkFactory factory; + factory.setAuthUsername(m_ui->m_txtUsername->lineEdit()->text()); factory.setAuthPassword(m_ui->m_txtPassword->lineEdit()->text()); factory.setUrl(m_ui->m_txtUrl->lineEdit()->text()); factory.setForceServerSideUpdate(m_ui->m_checkServerSideUpdate->isChecked()); + OwnCloudStatusResponse result = factory.status(); if (result.isLoaded()) { diff --git a/src/services/owncloud/gui/formeditowncloudaccount.ui b/src/services/owncloud/gui/formeditowncloudaccount.ui index e50a142ac..86cc340cf 100755 --- a/src/services/owncloud/gui/formeditowncloudaccount.ui +++ b/src/services/owncloud/gui/formeditowncloudaccount.ui @@ -6,8 +6,8 @@ 0 0 - 541 - 334 + 602 + 391 @@ -60,7 +60,7 @@ - + Some feeds require authentication, including GMail feeds. BASIC, NTLM-2 and DIGEST-MD5 authentication schemes are supported. @@ -111,14 +111,14 @@ - + &Test setup - + @@ -131,6 +131,45 @@ + + + + Limit number of downloaded messages per feed + + + + + + + + 140 + 16777215 + + + + = unlimited + + + -1 + + + 1000 + + + -1 + + + + + + + + + + true + + + diff --git a/src/services/owncloud/network/owncloudnetworkfactory.cpp b/src/services/owncloud/network/owncloudnetworkfactory.cpp index 658420228..1092c63ea 100755 --- a/src/services/owncloud/network/owncloudnetworkfactory.cpp +++ b/src/services/owncloud/network/owncloudnetworkfactory.cpp @@ -34,7 +34,7 @@ OwnCloudNetworkFactory::OwnCloudNetworkFactory() : m_url(QString()), m_fixedUrl(QString()), m_forceServerSideUpdate(false), - m_authUsername(QString()), m_authPassword(QString()), m_urlUser(QString()), m_urlStatus(QString()), + m_authUsername(QString()), m_authPassword(QString()), m_batchSize(-1), m_urlUser(QString()), m_urlStatus(QString()), m_urlFolders(QString()), m_urlFeeds(QString()), m_urlMessages(QString()), m_urlFeedsUpdate(QString()), m_urlDeleteFeed(QString()), m_urlRenameFeed(QString()), m_userId(QString()) { } @@ -247,7 +247,7 @@ OwnCloudGetMessagesResponse OwnCloudNetworkFactory::getMessages(int feed_id) { } QString final_url = m_urlMessages.arg(QString::number(feed_id), - QString::number(-1), + QString::number(batchSize()), QString::number(0)); QByteArray result_raw; NetworkResult network_reply = NetworkFactory::performNetworkOperation(final_url, @@ -375,12 +375,20 @@ QNetworkReply::NetworkError OwnCloudNetworkFactory::markMessagesStarred(RootItem return (m_lastError = network_reply.first); } +int OwnCloudNetworkFactory::batchSize() const { + return m_batchSize; +} + +void OwnCloudNetworkFactory::setBatchSize(int batch_size) { + m_batchSize = batch_size; +} + QString OwnCloudNetworkFactory::userId() const { - return m_userId; + return m_userId; } void OwnCloudNetworkFactory::setUserId(const QString& userId) { - m_userId = userId; + m_userId = userId; } OwnCloudResponse::OwnCloudResponse(const QString& raw_content) { diff --git a/src/services/owncloud/network/owncloudnetworkfactory.h b/src/services/owncloud/network/owncloudnetworkfactory.h index 84305af36..d43904218 100755 --- a/src/services/owncloud/network/owncloudnetworkfactory.h +++ b/src/services/owncloud/network/owncloudnetworkfactory.h @@ -134,13 +134,18 @@ class OwnCloudNetworkFactory { QNetworkReply::NetworkError markMessagesStarred(RootItem::Importance importance, const QStringList& feed_ids, const QStringList& guid_hashes); - private: - QString m_url; - QString m_fixedUrl; - bool m_forceServerSideUpdate; + // Gets/sets the amount of messages to obtain during single feed update. + int batchSize() const; + void setBatchSize(int batch_size); + + private: + QString m_url; + QString m_fixedUrl; + bool m_forceServerSideUpdate; QString m_authUsername; QString m_authPassword; QNetworkReply::NetworkError m_lastError; + int m_batchSize; // Endpoints. QString m_urlUser; diff --git a/src/services/tt-rss/gui/formeditttrssaccount.cpp b/src/services/tt-rss/gui/formeditttrssaccount.cpp index c7039ce20..e4b6a1baf 100755 --- a/src/services/tt-rss/gui/formeditttrssaccount.cpp +++ b/src/services/tt-rss/gui/formeditttrssaccount.cpp @@ -23,15 +23,17 @@ #include "services/tt-rss/network/ttrssnetworkfactory.h" #include "miscellaneous/iconfactory.h" #include "network-web/networkfactory.h" +#include "gui/guiutilities.h" FormEditTtRssAccount::FormEditTtRssAccount(QWidget* parent) : QDialog(parent), m_ui(new Ui::FormEditTtRssAccount), m_editableRoot(nullptr) { m_ui->setupUi(this); m_btnOk = m_ui->m_buttonBox->button(QDialogButtonBox::Ok); - setWindowFlags(Qt::MSWindowsFixedSizeDialogHint | Qt::Dialog | Qt::WindowSystemMenuHint); - setWindowIcon(qApp->icons()->fromTheme(QSL("tinytinyrss"))); - m_ui->m_lblTestResult->label()->setWordWrap(true); + + GuiUtilities::applyDialogProperties(*this, qApp->icons()->fromTheme(QSL("tinytinyrss"))); + + m_ui->m_lblTestResult->label()->setWordWrap(true); m_ui->m_lblServerSideUpdateInformation->setText(tr("Leaving this option on causes that updates " "of feeds will be probably much slower and may time-out often.")); m_ui->m_lblDescription->setText(tr("Note that at least API level %1 is required.").arg(MINIMAL_API_LEVEL)); @@ -43,7 +45,11 @@ FormEditTtRssAccount::FormEditTtRssAccount(QWidget* parent) m_ui->m_lblTestResult->setStatus(WidgetWithStatus::Information, tr("No test done yet."), tr("Here, results of connection test are shown.")); - setTabOrder(m_ui->m_txtUrl->lineEdit(), m_ui->m_checkServerSideUpdate); + + GuiUtilities::setLabelAsNotice(*m_ui->m_lblDescription, false); + GuiUtilities::setLabelAsNotice(*m_ui->m_lblServerSideUpdateInformation, false); + + setTabOrder(m_ui->m_txtUrl->lineEdit(), m_ui->m_checkServerSideUpdate); setTabOrder(m_ui->m_checkServerSideUpdate, m_ui->m_txtUsername->lineEdit()); setTabOrder(m_ui->m_txtUsername->lineEdit(), m_ui->m_txtPassword->lineEdit()); setTabOrder(m_ui->m_txtPassword->lineEdit(), m_ui->m_checkShowPassword); @@ -53,7 +59,8 @@ FormEditTtRssAccount::FormEditTtRssAccount(QWidget* parent) setTabOrder(m_ui->m_txtHttpPassword->lineEdit(), m_ui->m_checkShowHttpPassword); setTabOrder(m_ui->m_checkShowHttpPassword, m_ui->m_btnTestSetup); setTabOrder(m_ui->m_btnTestSetup, m_ui->m_buttonBox); - connect(m_ui->m_checkShowPassword, &QCheckBox::toggled, this, &FormEditTtRssAccount::displayPassword); + + connect(m_ui->m_checkShowPassword, &QCheckBox::toggled, this, &FormEditTtRssAccount::displayPassword); connect(m_ui->m_buttonBox, &QDialogButtonBox::accepted, this, &FormEditTtRssAccount::onClickedOk); connect(m_ui->m_buttonBox, &QDialogButtonBox::rejected, this, &FormEditTtRssAccount::onClickedCancel); connect(m_ui->m_txtPassword->lineEdit(), &BaseLineEdit::textChanged, this, &FormEditTtRssAccount::onPasswordChanged); @@ -68,7 +75,8 @@ FormEditTtRssAccount::FormEditTtRssAccount(QWidget* parent) connect(m_ui->m_gbHttpAuthentication, &QGroupBox::toggled, this, &FormEditTtRssAccount::onHttpPasswordChanged); connect(m_ui->m_gbHttpAuthentication, &QGroupBox::toggled, this, &FormEditTtRssAccount::onHttpUsernameChanged); connect(m_ui->m_checkShowHttpPassword, &QCheckBox::toggled, this, &FormEditTtRssAccount::displayHttpPassword); - onPasswordChanged(); + + onPasswordChanged(); onUsernameChanged(); onUrlChanged(); onHttpPasswordChanged(); diff --git a/src/services/tt-rss/gui/formeditttrssaccount.ui b/src/services/tt-rss/gui/formeditttrssaccount.ui index a0f42bf28..7d2d04492 100755 --- a/src/services/tt-rss/gui/formeditttrssaccount.ui +++ b/src/services/tt-rss/gui/formeditttrssaccount.ui @@ -6,8 +6,8 @@ 0 0 - 541 - 444 + 604 + 490