qt: askpassphrasedialog: Clear pass fields on accept
[novacoin.git] / src / qt / askpassphrasedialog.h
1 #ifndef ASKPASSPHRASEDIALOG_H
2 #define ASKPASSPHRASEDIALOG_H
3
4 #include <QDialog>
5
6 namespace Ui {
7     class AskPassphraseDialog;
8 }
9
10 class WalletModel;
11
12 /** Multifunctional dialog to ask for passphrases. Used for encryption, unlocking, and changing the passphrase.
13  */
14 class AskPassphraseDialog : public QDialog
15 {
16     Q_OBJECT
17
18 public:
19     enum Mode {
20         Encrypt,          /**< Ask passphrase twice and encrypt */
21         Unlock,           /**< Ask passphrase and unlock */
22         UnlockMining,     /**< Ask passphrase and unlock for mining */
23         ChangePass,       /**< Ask old passphrase + new passphrase twice */
24         Decrypt           /**< Ask passphrase and decrypt wallet */
25     };
26
27     explicit AskPassphraseDialog(Mode mode, QWidget *parent = 0);
28     ~AskPassphraseDialog();
29
30     void accept();
31
32     void setModel(WalletModel *model);
33
34 private:
35     Ui::AskPassphraseDialog *ui;
36     Mode mode;
37     WalletModel *model;
38     bool fCapsLock;
39
40 private slots:
41     void textChanged();
42         void secureClearPassFields();
43     bool event(QEvent *event);
44     bool eventFilter(QObject *, QEvent *event);
45 };
46
47 #endif // ASKPASSPHRASEDIALOG_H