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
+
+ ProxyWidget
+ QWidget
+
+ 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
+
+ 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
+
+
+
+
+
+
+
+