File indexing completed on 2025-05-11 08:46:55
0001 /* 0002 SPDX-FileCopyrightText: 2013 Lukas Tinkl <ltinkl@redhat.com> 0003 0004 SPDX-License-Identifier: LGPL-2.1-only OR LGPL-3.0-only OR LicenseRef-KDE-Accepted-LGPL 0005 */ 0006 0007 #ifndef PLASMA_NM_IPV6_WIDGET_H 0008 #define PLASMA_NM_IPV6_WIDGET_H 0009 0010 #include "plasmanm_editor_export.h" 0011 0012 #include <NetworkManagerQt/Ipv6Setting> 0013 #include <QWidget> 0014 0015 #include "ipv6routeswidget.h" 0016 #include "settingwidget.h" 0017 0018 namespace Ui 0019 { 0020 class IPv6Widget; 0021 } 0022 0023 class PLASMANM_EDITOR_EXPORT IPv6Widget : public SettingWidget 0024 { 0025 Q_OBJECT 0026 public: 0027 enum MethodIndex { Automatic = 0, AutomaticOnlyIP, AutomaticOnlyDHCP, LinkLocal, Manual, Ignored, Disabled }; 0028 0029 explicit IPv6Widget(const NetworkManager::Setting::Ptr &setting = NetworkManager::Setting::Ptr(), QWidget *parent = nullptr, Qt::WindowFlags f = {}); 0030 ~IPv6Widget() override; 0031 0032 void loadConfig(const NetworkManager::Setting::Ptr &setting) override; 0033 0034 QVariantMap setting() const override; 0035 0036 bool isValid() const override; 0037 0038 private Q_SLOTS: 0039 void slotModeComboChanged(int index); 0040 void slotRoutesDialog(); 0041 0042 void slotDnsServers(); 0043 void slotDnsDomains(); 0044 0045 void slotAddIPAddress(); 0046 void slotRemoveIPAddress(); 0047 0048 void selectionChanged(const QItemSelection &selected); 0049 void tableViewItemChanged(QStandardItem *item); 0050 0051 private: 0052 Ui::IPv6Widget *const m_ui; 0053 NetworkManager::Ipv6Setting m_tmpIpv6Setting; 0054 0055 class Private; 0056 Private *const d; 0057 }; 0058 0059 #endif // PLASMA_NM_IPV4_WIDGET_H