File indexing completed on 2024-09-15 13:01:28
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_IPV4_WIDGET_H 0008 #define PLASMA_NM_IPV4_WIDGET_H 0009 0010 #include <NetworkManagerQt/Ipv4Setting> 0011 #include <QWidget> 0012 0013 #include "ipv4routeswidget.h" 0014 #include "settingwidget.h" 0015 0016 namespace Ui 0017 { 0018 class IPv4Widget; 0019 } 0020 0021 class Q_DECL_EXPORT IPv4Widget : public SettingWidget 0022 { 0023 Q_OBJECT 0024 public: 0025 enum MethodIndex { Automatic = 0, AutomaticOnlyIP, LinkLocal, Manual, Shared, Disabled }; 0026 0027 explicit IPv4Widget(const NetworkManager::Setting::Ptr &setting = NetworkManager::Setting::Ptr(), QWidget *parent = nullptr, Qt::WindowFlags f = {}); 0028 ~IPv4Widget() override; 0029 0030 void loadConfig(const NetworkManager::Setting::Ptr &setting) override; 0031 0032 QVariantMap setting() const override; 0033 0034 bool isValid() const override; 0035 0036 private Q_SLOTS: 0037 void slotModeComboChanged(int index); 0038 void slotRoutesDialog(); 0039 void slotAdvancedDialog(); 0040 0041 void slotDnsServers(); 0042 void slotDnsDomains(); 0043 0044 void slotAddIPAddress(); 0045 void slotRemoveIPAddress(); 0046 0047 void selectionChanged(const QItemSelection &selected); 0048 void tableViewItemChanged(QStandardItem *item); 0049 0050 private: 0051 Ui::IPv4Widget *const m_ui; 0052 NetworkManager::Ipv4Setting m_tmpIpv4Setting; 0053 0054 class Private; 0055 Private *const d; 0056 }; 0057 0058 #endif // PLASMA_NM_IPV4_WIDGET_H