diff --git a/plugins/FeedReader/FeedReader.pro b/plugins/FeedReader/FeedReader.pro index 5c696b5c3..e9a352b33 100644 --- a/plugins/FeedReader/FeedReader.pro +++ b/plugins/FeedReader/FeedReader.pro @@ -45,6 +45,7 @@ SOURCES = FeedReaderPlugin.cpp \ gui/FeedReaderUserNotify.cpp \ gui/FeedReaderFeedItem.cpp \ gui/FeedTreeWidget.cpp \ + gui/ProxyWidget.cpp \ util/CURLWrapper.cpp \ util/XMLWrapper.cpp \ util/HTMLWrapper.cpp \ @@ -66,6 +67,7 @@ HEADERS = FeedReaderPlugin.h \ gui/FeedReaderUserNotify.h \ gui/FeedReaderFeedItem.h \ gui/FeedTreeWidget.h \ + gui/ProxyWidget.h \ util/CURLWrapper.h \ util/XMLWrapper.h \ util/HTMLWrapper.h \ @@ -76,7 +78,8 @@ FORMS = gui/FeedReaderDialog.ui \ gui/AddFeedDialog.ui \ gui/PreviewFeedDialog.ui \ gui/FeedReaderConfig.ui \ - gui/FeedReaderFeedItem.ui + gui/FeedReaderFeedItem.ui \ + gui/ProxyWidget.ui TARGET = FeedReader diff --git a/plugins/FeedReader/gui/AddFeedDialog.cpp b/plugins/FeedReader/gui/AddFeedDialog.cpp index 59baf908a..b6e781c4b 100644 --- a/plugins/FeedReader/gui/AddFeedDialog.cpp +++ b/plugins/FeedReader/gui/AddFeedDialog.cpp @@ -180,8 +180,7 @@ void AddFeedDialog::useStandardUpdateIntervalToggled() void AddFeedDialog::useStandardProxyToggled() { bool checked = ui->useStandardProxyCheckBox->isChecked(); - ui->proxyAddressLineEdit->setEnabled(!checked); - ui->proxyPortSpinBox->setEnabled(!checked); + ui->proxyWidget->setEnabled(!checked); } void AddFeedDialog::typeForumToggled() @@ -335,8 +334,8 @@ bool AddFeedDialog::fillFeed(uint32_t feedId) ui->passwordLineEdit->setText(QString::fromUtf8(feedInfo.password.c_str())); ui->useStandardProxyCheckBox->setChecked(feedInfo.flag.standardProxy); - ui->proxyAddressLineEdit->setText(QString::fromUtf8(feedInfo.proxyAddress.c_str())); - ui->proxyPortSpinBox->setValue(feedInfo.proxyPort); + ui->proxyWidget->setAddress(QString::fromUtf8(feedInfo.proxyAddress.c_str())); + ui->proxyWidget->setPort(feedInfo.proxyPort); ui->useStandardUpdateInterval->setChecked(feedInfo.flag.standardUpdateInterval); ui->updateIntervalSpinBox->setValue(feedInfo.updateInterval / 60); @@ -425,8 +424,8 @@ void AddFeedDialog::getFeedInfo(FeedInfo &feedInfo) feedInfo.password = ui->passwordLineEdit->text().toUtf8().constData(); feedInfo.flag.standardProxy = ui->useStandardProxyCheckBox->isChecked(); - feedInfo.proxyAddress = ui->proxyAddressLineEdit->text().toUtf8().constData(); - feedInfo.proxyPort = ui->proxyPortSpinBox->value(); + feedInfo.proxyAddress = ui->proxyWidget->address().toUtf8().constData(); + feedInfo.proxyPort = ui->proxyWidget->port(); feedInfo.flag.standardUpdateInterval = ui->useStandardUpdateInterval->isChecked(); feedInfo.updateInterval = ui->updateIntervalSpinBox->value() * 60; diff --git a/plugins/FeedReader/gui/AddFeedDialog.ui b/plugins/FeedReader/gui/AddFeedDialog.ui index ebb478162..569578473 100644 --- a/plugins/FeedReader/gui/AddFeedDialog.ui +++ b/plugins/FeedReader/gui/AddFeedDialog.ui @@ -133,37 +133,16 @@ Proxy - - + + Use standard proxy - - - - Server - - - - - - - - - - : - - - - - - - 65535 - - + + @@ -465,6 +444,12 @@ QComboBox
gui/common/RSComboBox.h
+ + ProxyWidget + QWidget +
gui/ProxyWidget.h
+ 1 +
urlLineEdit @@ -494,8 +479,7 @@ useStandardUpdateInterval updateIntervalSpinBox useStandardProxyCheckBox - proxyAddressLineEdit - proxyPortSpinBox + proxyWidget diff --git a/plugins/FeedReader/gui/FeedReaderConfig.cpp b/plugins/FeedReader/gui/FeedReaderConfig.cpp index 89456e3da..91b24f394 100644 --- a/plugins/FeedReader/gui/FeedReaderConfig.cpp +++ b/plugins/FeedReader/gui/FeedReaderConfig.cpp @@ -31,8 +31,7 @@ FeedReaderConfig::FeedReaderConfig(QWidget *parent, Qt::WindowFlags flags) /* Invoke the Qt Designer generated object setup routine */ ui->setupUi(this); - ui->proxyAddressLineEdit->setEnabled(false); - ui->proxyPortSpinBox->setEnabled(false); + ui->proxyWidget->setEnabled(false); /* Connect signals */ connect(ui->updateIntervalSpinBox, (void(QSpinBox::*)(int))&QSpinBox::valueChanged, this, [this]() { @@ -51,8 +50,7 @@ FeedReaderConfig::FeedReaderConfig(QWidget *parent, Qt::WindowFlags flags) Settings->setValueToGroup("FeedReaderDialog", "OpenAllInNewTab", ui->openAllInNewTabCheckBox->isChecked()); }); connect(ui->useProxyCheckBox, &QCheckBox::toggled, this, &FeedReaderConfig::updateProxy); - connect(ui->proxyAddressLineEdit, &QLineEdit::textChanged, this, &FeedReaderConfig::updateProxy); - connect(ui->proxyPortSpinBox, (void(QSpinBox::*)(int))&QSpinBox::valueChanged, this, &FeedReaderConfig::updateProxy); + connect(ui->proxyWidget, &ProxyWidget::changed, this, &FeedReaderConfig::updateProxy); connect(ui->useProxyCheckBox, SIGNAL(toggled(bool)), this, SLOT(useProxyToggled())); } @@ -75,8 +73,8 @@ void FeedReaderConfig::load() std::string proxyAddress; uint16_t proxyPort; whileBlocking(ui->useProxyCheckBox)->setChecked(rsFeedReader->getStandardProxy(proxyAddress, proxyPort)); - whileBlocking(ui->proxyAddressLineEdit)->setText(QString::fromUtf8(proxyAddress.c_str())); - whileBlocking(ui->proxyPortSpinBox)->setValue(proxyPort); + whileBlocking(ui->proxyWidget)->setAddress(QString::fromUtf8(proxyAddress.c_str())); + whileBlocking(ui->proxyWidget)->setPort(proxyPort); loaded = true; @@ -87,11 +85,10 @@ void FeedReaderConfig::useProxyToggled() { bool enabled = ui->useProxyCheckBox->isChecked(); - ui->proxyAddressLineEdit->setEnabled(enabled); - ui->proxyPortSpinBox->setEnabled(enabled); + ui->proxyWidget->setEnabled(enabled); } void FeedReaderConfig::updateProxy() { - rsFeedReader->setStandardProxy(ui->useProxyCheckBox->isChecked(), ui->proxyAddressLineEdit->text().toUtf8().constData(), ui->proxyPortSpinBox->value()); + rsFeedReader->setStandardProxy(ui->useProxyCheckBox->isChecked(), ui->proxyWidget->address().toUtf8().constData(), ui->proxyWidget->port()); } diff --git a/plugins/FeedReader/gui/FeedReaderConfig.ui b/plugins/FeedReader/gui/FeedReaderConfig.ui index 8928dc85e..18fa29a42 100644 --- a/plugins/FeedReader/gui/FeedReaderConfig.ui +++ b/plugins/FeedReader/gui/FeedReaderConfig.ui @@ -77,37 +77,16 @@ Proxy - - + + Use proxy - - - - Server - - - - - - - - - - 65535 - - - - - - - : - - + + @@ -157,12 +136,19 @@ + + + ProxyWidget + QWidget +
gui/ProxyWidget.h
+ 1 +
+
updateIntervalSpinBox storageTimeSpinBox useProxyCheckBox - proxyAddressLineEdit - proxyPortSpinBox + proxyWidget saveInBackgroundCheckBox setMsgToReadOnActivate openAllInNewTabCheckBox diff --git a/plugins/FeedReader/gui/ProxyWidget.cpp b/plugins/FeedReader/gui/ProxyWidget.cpp new file mode 100644 index 000000000..7752fc5bb --- /dev/null +++ b/plugins/FeedReader/gui/ProxyWidget.cpp @@ -0,0 +1,38 @@ +#include "ProxyWidget.h" +#include "ui_ProxyWidget.h" + +ProxyWidget::ProxyWidget(QWidget *parent) + : QWidget(parent) + , ui(new Ui::ProxyWidget) +{ + ui->setupUi(this); + + /* Connect signals */ + connect(ui->addressLineEdit, &QLineEdit::textChanged, this, &ProxyWidget::changed); + connect(ui->portSpinBox, (void(QSpinBox::*)(int))&QSpinBox::valueChanged, this, &ProxyWidget::changed); +} + +ProxyWidget::~ProxyWidget() +{ + delete ui; +} + +QString ProxyWidget::address() +{ + return ui->addressLineEdit->text(); +} + +void ProxyWidget::setAddress(const QString &value) +{ + ui->addressLineEdit->setText(value); +} + +int ProxyWidget::port() +{ + return ui->portSpinBox->value(); +} + +void ProxyWidget::setPort(int value) +{ + ui->portSpinBox->setValue(value); +} diff --git a/plugins/FeedReader/gui/ProxyWidget.h b/plugins/FeedReader/gui/ProxyWidget.h new file mode 100644 index 000000000..f87564e36 --- /dev/null +++ b/plugins/FeedReader/gui/ProxyWidget.h @@ -0,0 +1,31 @@ +#ifndef PROXYWIDGET_H +#define PROXYWIDGET_H + +#include + +namespace Ui { +class ProxyWidget; +} + +class ProxyWidget : public QWidget +{ + Q_OBJECT + +public: + explicit ProxyWidget(QWidget *parent = nullptr); + ~ProxyWidget(); + + QString address(); + void setAddress(const QString &value); + + int port(); + void setPort(int value); + +Q_SIGNALS: + void changed(); + +private: + Ui::ProxyWidget *ui; +}; + +#endif // PROXYWIDGET_H diff --git a/plugins/FeedReader/gui/ProxyWidget.ui b/plugins/FeedReader/gui/ProxyWidget.ui new file mode 100644 index 000000000..5ce8b883f --- /dev/null +++ b/plugins/FeedReader/gui/ProxyWidget.ui @@ -0,0 +1,57 @@ + + + ProxyWidget + + + + 0 + 0 + 400 + 22 + + + + + + + + 0 + + + 0 + + + 0 + + + 0 + + + + + Server + + + + + + + + + + : + + + + + + + 65535 + + + + + + + +