File indexing completed on 2024-04-14 15:39:57

0001 /*
0002     SPDX-FileCopyrightText: 2013 Lukas Tinkl <ltinkl@redhat.com>
0003     SPDX-FileCopyrightText: 2013 Daniel Nicoletti <dantti12@gmail.com>
0004 
0005     SPDX-License-Identifier: LGPL-2.1-only OR LGPL-3.0-only OR LicenseRef-KDE-Accepted-LGPL
0006 */
0007 
0008 #ifndef PLASMA_NM_PASSWORD_DIALOG_H
0009 #define PLASMA_NM_PASSWORD_DIALOG_H
0010 
0011 #include <NetworkManagerQt/ConnectionSettings>
0012 #include <NetworkManagerQt/SecretAgent>
0013 
0014 #include <QDialog>
0015 
0016 namespace Ui
0017 {
0018 class PasswordDialog;
0019 }
0020 
0021 class SettingWidget;
0022 
0023 class Q_DECL_EXPORT PasswordDialog : public QDialog
0024 {
0025     Q_OBJECT
0026 public:
0027     explicit PasswordDialog(const NetworkManager::ConnectionSettings::Ptr &connectionSettings,
0028                             NetworkManager::SecretAgent::GetSecretsFlags flags,
0029                             const QString &setting_name,
0030                             const QStringList &hints = QStringList(),
0031                             QWidget *parent = nullptr);
0032     ~PasswordDialog() override;
0033 
0034     bool hasError() const;
0035     NetworkManager::SecretAgent::Error error() const;
0036     QString errorMessage() const;
0037 
0038     NMVariantMapMap secrets() const;
0039 
0040 private:
0041     void initializeUi();
0042 
0043     Ui::PasswordDialog *m_ui = nullptr;
0044     bool m_hasError = false;
0045     QString m_errorMessage;
0046     QString m_settingName;
0047     QStringList m_neededSecrets;
0048     NetworkManager::ConnectionSettings::Ptr m_connectionSettings;
0049     NetworkManager::SecretAgent::Error m_error;
0050     NetworkManager::SecretAgent::GetSecretsFlags m_flags;
0051     SettingWidget *m_vpnWidget = nullptr;
0052     QStringList m_hints;
0053 };
0054 
0055 #endif // PLASMA_NM_PASSWORD_DIALOG_H