diff --git a/libs/editor/settings/ipv6widget.cpp b/libs/editor/settings/ipv6widget.cpp index e101d36d62a31009cca09155466f2fd67d488839..f77c279a2edbc3e55060fbe4094df1aca831466c 100644 --- a/libs/editor/settings/ipv6widget.cpp +++ b/libs/editor/settings/ipv6widget.cpp @@ -9,6 +9,8 @@ #include "ipv6delegate.h" #include "intdelegate.h" +#include + #include #include #include @@ -72,9 +74,13 @@ IPv6Widget::IPv6Widget(const NetworkManager::Setting::Ptr &setting, QWidget* par connect(m_ui->tableViewAddresses->selectionModel(), &QItemSelectionModel::selectionChanged, this, &IPv6Widget::selectionChanged); - connect(&d->model, &QStandardItemModel::itemChanged, this, &IPv6Widget::tableViewItemChanged); + // IPv6Method::Disabled is available in NM 1.20+ + if (!NetworkManager::checkVersion(1, 20, 0)) { + m_ui->method->removeItem(7); + } + if (setting) { loadConfig(setting); } @@ -134,6 +140,9 @@ void IPv6Widget::loadConfig(const NetworkManager::Setting::Ptr &setting) m_ui->method->setCurrentIndex(LinkLocal); break; case NetworkManager::Ipv6Setting::Ignored: + m_ui->method->setCurrentIndex(Ignored); + break; + case NetworkManager::Ipv6Setting::ConfigDisabled: m_ui->method->setCurrentIndex(Disabled); break; } @@ -197,9 +206,12 @@ QVariantMap IPv6Widget::setting() const case LinkLocal: ipv6Setting.setMethod(NetworkManager::Ipv6Setting::LinkLocal); break; - case Disabled: + case Ignored: ipv6Setting.setMethod(NetworkManager::Ipv6Setting::Ignored); break; + case Disabled: + ipv6Setting.setMethod(NetworkManager::Ipv6Setting::ConfigDisabled); + break; } // dns @@ -294,7 +306,7 @@ void IPv6Widget::slotModeComboChanged(int index) m_ui->tableViewAddresses->setEnabled(false); m_ui->btnAdd->setEnabled(false); m_ui->btnRemove->setEnabled(false); - } else if (index == Disabled) { // Ignored + } else if (index == Ignored || index == Disabled) { // Ignored and Disabled m_ui->dnsLabel->setText(i18n("DNS Servers:")); m_ui->dns->setEnabled(false); m_ui->dnsMorePushButton->setEnabled(false); diff --git a/libs/editor/settings/ipv6widget.h b/libs/editor/settings/ipv6widget.h index b9084ec7f5c1a3d467a8aab63181ebfd84bb3f1c..b42eece4445cabc78dae38fac020c7deda2bf305 100644 --- a/libs/editor/settings/ipv6widget.h +++ b/libs/editor/settings/ipv6widget.h @@ -22,7 +22,7 @@ class Q_DECL_EXPORT IPv6Widget : public SettingWidget { Q_OBJECT public: - enum MethodIndex { Automatic = 0, AutomaticOnlyIP, AutomaticOnlyDHCP, LinkLocal, Manual, Disabled }; + enum MethodIndex { Automatic = 0, AutomaticOnlyIP, AutomaticOnlyDHCP, LinkLocal, Manual, Ignored, Disabled }; explicit IPv6Widget(const NetworkManager::Setting::Ptr &setting = NetworkManager::Setting::Ptr(), QWidget* parent = nullptr, Qt::WindowFlags f = {}); ~IPv6Widget() override; diff --git a/libs/editor/settings/ui/ipv6.ui b/libs/editor/settings/ui/ipv6.ui index 43e8786c1b4d1b55ac61943033a4c726d6dec475..259a355c3a146b1fa3a55211d143a89f5e669e66 100644 --- a/libs/editor/settings/ui/ipv6.ui +++ b/libs/editor/settings/ui/ipv6.ui @@ -7,7 +7,7 @@ 0 0 418 - 427 + 434 @@ -252,6 +252,11 @@ a temporary IPv6 address in addition to the public one generated from MAC addres Ignored + + + Disabled + +