Changeset View
Changeset View
Standalone View
Standalone View
src/qt/askpassphrasedialog.h
// Copyright (c) 2011-2015 The Bitcoin Core developers | // Copyright (c) 2011-2015 The Bitcoin Core developers | ||||
// Distributed under the MIT software license, see the accompanying | // Distributed under the MIT software license, see the accompanying | ||||
// file COPYING or http://www.opensource.org/licenses/mit-license.php. | // file COPYING or http://www.opensource.org/licenses/mit-license.php. | ||||
#ifndef BITCOIN_QT_ASKPASSPHRASEDIALOG_H | #ifndef BITCOIN_QT_ASKPASSPHRASEDIALOG_H | ||||
#define BITCOIN_QT_ASKPASSPHRASEDIALOG_H | #define BITCOIN_QT_ASKPASSPHRASEDIALOG_H | ||||
#include <QDialog> | #include <QDialog> | ||||
#include <support/allocators/secure.h> | |||||
class WalletModel; | class WalletModel; | ||||
namespace Ui { | namespace Ui { | ||||
class AskPassphraseDialog; | class AskPassphraseDialog; | ||||
} | } | ||||
/** Multifunctional dialog to ask for passphrases. Used for encryption, | /** Multifunctional dialog to ask for passphrases. Used for encryption, | ||||
* unlocking, and changing the passphrase. | * unlocking, and changing the passphrase. | ||||
*/ | */ | ||||
class AskPassphraseDialog : public QDialog { | class AskPassphraseDialog : public QDialog { | ||||
Q_OBJECT | Q_OBJECT | ||||
public: | public: | ||||
enum Mode { | enum Mode { | ||||
Encrypt, /**< Ask passphrase twice and encrypt */ | Encrypt, /**< Ask passphrase twice and encrypt */ | ||||
Unlock, /**< Ask passphrase and unlock */ | Unlock, /**< Ask passphrase and unlock */ | ||||
ChangePass, /**< Ask old passphrase + new passphrase twice */ | ChangePass, /**< Ask old passphrase + new passphrase twice */ | ||||
Decrypt /**< Ask passphrase and decrypt wallet */ | Decrypt /**< Ask passphrase and decrypt wallet */ | ||||
}; | }; | ||||
explicit AskPassphraseDialog(Mode mode, QWidget *parent); | explicit AskPassphraseDialog(Mode mode, QWidget *parent, | ||||
SecureString *passphrase_out = nullptr); | |||||
~AskPassphraseDialog(); | ~AskPassphraseDialog(); | ||||
void accept() override; | void accept() override; | ||||
void setModel(WalletModel *model); | void setModel(WalletModel *model); | ||||
private: | private: | ||||
Ui::AskPassphraseDialog *ui; | Ui::AskPassphraseDialog *ui; | ||||
Mode mode; | Mode mode; | ||||
WalletModel *model; | WalletModel *model; | ||||
bool fCapsLock; | bool fCapsLock; | ||||
SecureString *m_passphrase_out; | |||||
private Q_SLOTS: | private Q_SLOTS: | ||||
void textChanged(); | void textChanged(); | ||||
void secureClearPassFields(); | void secureClearPassFields(); | ||||
void toggleShowPassword(bool); | void toggleShowPassword(bool); | ||||
protected: | protected: | ||||
bool event(QEvent *event) override; | bool event(QEvent *event) override; | ||||
bool eventFilter(QObject *object, QEvent *event) override; | bool eventFilter(QObject *object, QEvent *event) override; | ||||
}; | }; | ||||
#endif // BITCOIN_QT_ASKPASSPHRASEDIALOG_H | #endif // BITCOIN_QT_ASKPASSPHRASEDIALOG_H |