File indexing completed on 2024-06-23 05:14:09
0001 /* -*- mode: c++; c-basic-offset:4 -*- 0002 newcertificatewizard/enterdetailspage_p.h 0003 0004 This file is part of Kleopatra, the KDE keymanager 0005 SPDX-FileCopyrightText: 2008 Klarälvdalens Datakonsult AB 0006 SPDX-FileCopyrightText: 2016, 2017 Bundesamt für Sicherheit in der Informationstechnik 0007 SPDX-FileContributor: Intevation GmbH 0008 SPDX-FileCopyrightText: 2022 g10 Code GmbH 0009 SPDX-FileContributor: Ingo Klöcker <dev@ingo-kloecker.de> 0010 0011 SPDX-License-Identifier: GPL-2.0-or-later 0012 */ 0013 0014 #pragma once 0015 0016 #include "wizardpage_p.h" 0017 0018 class AdvancedSettingsDialog; 0019 class QLineEdit; 0020 class QValidator; 0021 0022 class EnterDetailsPage : public Kleo::NewCertificateUi::WizardPage 0023 { 0024 Q_OBJECT 0025 0026 public: 0027 struct Line { 0028 QString attr; 0029 QString label; 0030 QString regex; 0031 QLineEdit *edit; 0032 std::shared_ptr<QValidator> validator; 0033 }; 0034 0035 explicit EnterDetailsPage(QWidget *parent = nullptr); 0036 ~EnterDetailsPage() override; 0037 0038 bool isComplete() const override; 0039 void initializePage() override; 0040 void cleanupPage() override; 0041 0042 private: 0043 void updateForm(); 0044 void clearForm(); 0045 void saveValues(); 0046 void registerDialogPropertiesAsFields(); 0047 0048 private: 0049 QString pgpUserID() const; 0050 QString cmsDN() const; 0051 0052 private Q_SLOTS: 0053 void slotAdvancedSettingsClicked(); 0054 void slotUpdateResultLabel(); 0055 0056 private: 0057 struct UI; 0058 std::unique_ptr<UI> ui; 0059 0060 QList<Line> lineList; 0061 QList<QWidget *> dynamicWidgets; 0062 QMap<QString, QString> savedValues; 0063 AdvancedSettingsDialog *dialog; 0064 };