21#include "ui_sbi_networkicondialog.h"
23#include <QInputDialog>
30 setAttribute(Qt::WA_DeleteOnClose);
34 ui->addButton->setIcon(QIcon::fromTheme(QLatin1String(
"document-new"), QIcon(QLatin1String(
":sbi/data/add.png"))));
35 ui->removeButton->setIcon(QIcon::fromTheme(QLatin1String(
"edit-delete"), QIcon(QLatin1String(
":sbi/data/remove.png"))));
37 const QHash<QString, SBI_NetworkProxy*> &proxies =
SBINetManager->proxies();
39 QHashIterator<QString, SBI_NetworkProxy*> it(proxies);
40 while (it.hasNext()) {
42 ui->comboBox->addItem(it.key());
46 showProxy(ui->comboBox->currentText());
48 connect(ui->addButton, &QAbstractButton::clicked,
this, &SBI_NetworkIconDialog::addProxy);
49 connect(ui->removeButton, &QAbstractButton::clicked,
this, &SBI_NetworkIconDialog::removeProxy);
50 connect(ui->comboBox, &QComboBox::currentTextChanged,
this, &SBI_NetworkIconDialog::showProxy);
51 connect(ui->proxyButtonBox, &QDialogButtonBox::accepted,
this, &SBI_NetworkIconDialog::saveProxy);
52 connect(ui->closeButton, &QDialogButtonBox::clicked,
this, &QWidget::close);
55void SBI_NetworkIconDialog::addProxy()
57 const QString name = QInputDialog::getText(
this, tr(
"Add proxy"), tr(
"Name of proxy:"));
58 if (name.isEmpty() || ui->comboBox->findText(name) > -1) {
62 ui->comboBox->addItem(name);
63 ui->comboBox->setCurrentIndex(ui->comboBox->count() - 1);
68void SBI_NetworkIconDialog::removeProxy()
70 QMessageBox::StandardButton button = QMessageBox::warning(
this, tr(
"Remove current proxy"), tr(
"Are you sure you want to remove current proxy?"),
71 QMessageBox::Yes | QMessageBox::No, QMessageBox::No);
73 if (button != QMessageBox::Yes) {
77 int index = ui->comboBox->currentIndex();
83 ui->comboBox->removeItem(index);
88void SBI_NetworkIconDialog::saveProxy()
90 SBINetManager->saveProxy(ui->comboBox->currentText(), ui->proxyWidget->getProxy());
93void SBI_NetworkIconDialog::showProxy(
const QString &name)
97 ui->proxyWidget->clear();
100 ui->proxyWidget->setProxy(*proxy);
104void SBI_NetworkIconDialog::updateWidgets()
106 ui->removeButton->setEnabled(ui->comboBox->count() > 0);
107 ui->noProxiesLabel->setVisible(ui->comboBox->count() == 0);
108 ui->proxyWidget->setVisible(ui->comboBox->count() > 0);
SBI_NetworkIconDialog(QWidget *parent=nullptr)