File indexing completed on 2024-04-21 16:20:26
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_OPENVPN_ADVANCED_WIDGET_H 0008 #define PLASMA_NM_OPENVPN_ADVANCED_WIDGET_H 0009 0010 #include "passwordfield.h" 0011 0012 #include <QDialog> 0013 #include <QProcess> 0014 0015 #include <NetworkManagerQt/VpnSetting> 0016 0017 namespace Ui 0018 { 0019 class OpenVpnAdvancedWidget; 0020 } 0021 0022 class OpenVpnAdvancedWidget : public QDialog 0023 { 0024 Q_OBJECT 0025 0026 enum CertCheckType { 0027 DontVerify = 0, 0028 VerifyWholeSubjectExactly, 0029 VerifyNameExactly, 0030 VerifyNameByPrefix, 0031 VerifySubjectPartially, 0032 }; 0033 0034 public: 0035 explicit OpenVpnAdvancedWidget(const NetworkManager::VpnSetting::Ptr &setting, QWidget *parent = nullptr); 0036 ~OpenVpnAdvancedWidget() override; 0037 void init(); 0038 0039 NetworkManager::VpnSetting::Ptr setting() const; 0040 0041 private Q_SLOTS: 0042 void gotOpenVpnCipherOutput(); 0043 void openVpnCipherError(QProcess::ProcessError); 0044 void openVpnCipherFinished(int, QProcess::ExitStatus); 0045 void gotOpenVpnVersionOutput(); 0046 void openVpnVersionError(QProcess::ProcessError); 0047 void openVpnVersionFinished(int, QProcess::ExitStatus); 0048 void certCheckTypeChanged(int); 0049 void proxyTypeChanged(int); 0050 0051 private: 0052 int compareVersion(const int x, const int y, const int z) const; 0053 void disableLegacySubjectMatch(); 0054 void loadConfig(); 0055 void fillOnePasswordCombo(PasswordField *passwordField, NetworkManager::Setting::SecretFlags type); 0056 void handleOnePasswordType(const PasswordField *passwordField, const QString &key, NMStringMap &data) const; 0057 Ui::OpenVpnAdvancedWidget *const m_ui; 0058 class Private; 0059 Private *const d; 0060 }; 0061 0062 #endif // PLASMA_NM_OPENVPN_ADVANCED_WIDGET_H