aboutsummaryrefslogtreecommitdiffstats
path: root/include/ui/keypair_details/KeyNewUIDDialog.h
blob: b6e56a0d003501d0d80f984c2f353cdbe7dc6afc (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
//
// Created by eric on 2021/5/28.
//

#ifndef GPGFRONTEND_KEYNEWUIDDIALOG_H
#define GPGFRONTEND_KEYNEWUIDDIALOG_H

#include "GpgFrontend.h"

#include "gpg/GpgContext.h"

class KeyNewUIDDialog : public QDialog {
Q_OBJECT

public:

    KeyNewUIDDialog(GpgME::GpgContext *ctx, const GpgKey &key ,QWidget *parent = nullptr);


private slots:

    void slotCreateNewUID();

private:

    GpgME::GpgContext *mCtx;
    const GpgKey &mKey;

    QLineEdit *name{};
    QLineEdit *email{};
    QLineEdit *comment{};

    QPushButton *createButton{};

    QStringList errorMessages;
    QLabel *errorLabel{};

    QRegularExpression re_email{
            R"((?:[a-z0-9!#$%&'*+/=?^_`{|}~-]+(?:\.[a-z0-9!#$%&'*+/=?^_`{|}~-]+)*|"(?:[\x01-\x08\x0b\x0c\x0e-\x1f\x21\x23-\x5b\x5d-\x7f]|\\[\x01-\x09\x0b\x0c\x0e-\x7f])*")@(?:(?:[a-z0-9](?:[a-z0-9-]*[a-z0-9])?\.)+[a-z0-9](?:[a-z0-9-]*[a-z0-9])?|\[(?:(?:(2(5[0-5]|[0-4][0-9])|1[0-9][0-9]|[1-9]?[0-9]))\.){3}(?:(2(5[0-5]|[0-4][0-9])|1[0-9][0-9]|[1-9]?[0-9])|[a-z0-9-]*[a-z0-9]:(?:[\x01-\x08\x0b\x0c\x0e-\x1f\x21-\x5a\x53-\x7f]|\\[\x01-\x09\x0b\x0c\x0e-\x7f])+)\]))"};

    bool check_email_address(const QString &str);

};


#endif //GPGFRONTEND_KEYNEWUIDDIALOG_H