File indexing completed on 2024-04-21 16:20:26

0001 /*
0002     SPDX-FileCopyrightText: 2008 Will Stephenson <wstephenson@kde.org>
0003     SPDX-FileCopyrightText: 2013 Lukáš Tinkl <ltinkl@redhat.com>
0004 
0005     SPDX-License-Identifier: GPL-2.0-only OR GPL-3.0-only OR LicenseRef-KDE-Accepted-GPL
0006 */
0007 
0008 #ifndef OPENVPNWIDGET_H
0009 #define OPENVPNWIDGET_H
0010 
0011 #include "settingwidget.h"
0012 
0013 #include <QProcess>
0014 
0015 #include "ui_openvpn.h"
0016 
0017 #include <NetworkManagerQt/VpnSetting>
0018 
0019 class QUrl;
0020 class QLineEdit;
0021 
0022 class OpenVpnSettingWidget : public SettingWidget
0023 {
0024     Q_OBJECT
0025 public:
0026     explicit OpenVpnSettingWidget(const NetworkManager::VpnSetting::Ptr &setting, QWidget *parent = nullptr);
0027     ~OpenVpnSettingWidget() override;
0028 
0029     void loadConfig(const NetworkManager::Setting::Ptr &setting) override;
0030     void loadSecrets(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 updateStartDir(const QUrl &);
0038     void showAdvanced();
0039 
0040 private:
0041     class Private;
0042     Private *const d;
0043     void setPasswordType(QLineEdit *, int);
0044     void fillOnePasswordCombo(PasswordField *, NetworkManager::Setting::SecretFlags);
0045     void handleOnePasswordType(const PasswordField *, const QString &, NMStringMap &) const;
0046 };
0047 
0048 #endif // OPENVPNWIDGET_H