19 #include <QDialogButtonBox> 20 #include <QNetworkInterface> 21 #include <QPushButton> 24 #include "ui_networksettingsdialog.h" 34 const QString NetworkSettingsDialog::QSTR_ADDRESS_IPV4 = QStringLiteral(
"225.0.0.37");
35 const QString NetworkSettingsDialog::QSTR_ADDRESS_IPV6 = QStringLiteral(
"ff12::37");
37 NetworkSettingsDialog::NetworkSettingsDialog(QWidget *parent) :
39 ui(new Ui::NetworkSettingsDialog)
42 connect(ui->buttonBox->button(QDialogButtonBox::RestoreDefaults), &QPushButton::pressed,
43 this, &NetworkSettingsDialog::restoreDefaults);
44 connect(ui->checkIPv6, &QCheckBox::toggled,
this, &NetworkSettingsDialog::toggledIPv6);
47 NetworkSettingsDialog::~NetworkSettingsDialog()
52 void NetworkSettingsDialog::accept()
58 void NetworkSettingsDialog::showEvent(QShowEvent *event)
64 void NetworkSettingsDialog::readSettings()
66 SettingsFactory settings;
67 settings->beginGroup(
"Network");
68 QString ifaceName = settings->value(
"interface", QString()).toString();
69 bool ipv6 = settings->value(
"ipv6",
false).toBool();
70 QString address = settings->value(
"address", ipv6 ? QSTR_ADDRESS_IPV6 : QSTR_ADDRESS_IPV4).toString();
73 ui->txtAddress->setText(address);
74 ui->checkIPv6->setChecked(ipv6);
75 ui->comboInterface->addItem(tr(
"Any"),
"");
76 foreach(
const QNetworkInterface& iface, QNetworkInterface::allInterfaces() ) {
77 if ( iface.isValid() &&
78 iface.flags().testFlag(QNetworkInterface::CanMulticast) &&
79 iface.flags().testFlag(QNetworkInterface::IsUp) &&
80 iface.flags().testFlag(QNetworkInterface::IsRunning) &&
81 !iface.flags().testFlag(QNetworkInterface::IsLoopBack) ) {
82 QString name = iface.name();
83 QString text = iface.humanReadableName();
84 ui->comboInterface->addItem(text, name);
85 if (name == ifaceName) {
86 ui->comboInterface->setCurrentText(text);
92 void NetworkSettingsDialog::writeSettings()
94 SettingsFactory settings;
95 QString networkAddr = ui->txtAddress->text();
96 QString networkIface = ui->comboInterface->currentData().toString();
97 bool ipv6 = ui->checkIPv6->isChecked();
99 settings->beginGroup(
"Network");
100 settings->setValue(
"address", networkAddr);
101 settings->setValue(
"interface", networkIface);
102 settings->setValue(
"ipv6", ipv6);
103 settings->endGroup();
107 void NetworkSettingsDialog::restoreDefaults()
109 ui->checkIPv6->setChecked(
false);
110 ui->txtAddress->setText(QSTR_ADDRESS_IPV4);
111 ui->comboInterface->setCurrentText(tr(
"Any"));
114 void NetworkSettingsDialog::toggledIPv6(
bool checked)
116 ui->txtAddress->setText(checked ? QSTR_ADDRESS_IPV6 : QSTR_ADDRESS_IPV4);
Declaration of the Network configuration dialog.
SettingsFactory class declaration.