Line data Source code
1 : // Copyright (c) 2011-2018 The Bitcoin Core developers 2 : // Distributed under the MIT software license, see the accompanying 3 : // file COPYING or http://www.opensource.org/licenses/mit-license.php. 4 : 5 : #ifndef BITCOIN_QT_QVALIDATEDLINEEDIT_H 6 : #define BITCOIN_QT_QVALIDATEDLINEEDIT_H 7 : 8 : #include <QLineEdit> 9 : 10 : /** Line edit that can be marked as "invalid" to show input validation feedback. When marked as invalid, 11 : it will get a red background until it is focused. 12 : */ 13 0 : class QValidatedLineEdit : public QLineEdit 14 : { 15 : Q_OBJECT 16 : 17 : public: 18 : explicit QValidatedLineEdit(QWidget *parent); 19 : void clear(); 20 : void setCheckValidator(const QValidator *v); 21 : bool isValid(); 22 : 23 : protected: 24 : void focusInEvent(QFocusEvent *evt) override; 25 : void focusOutEvent(QFocusEvent *evt) override; 26 : 27 : private: 28 : bool valid; 29 : const QValidator *checkValidator; 30 : 31 : public Q_SLOTS: 32 : void setValid(bool valid); 33 : void setEnabled(bool enabled); 34 : 35 : Q_SIGNALS: 36 : void validationDidChange(QValidatedLineEdit *validatedLineEdit); 37 : 38 : private Q_SLOTS: 39 : void markValid(); 40 : void checkValidity(); 41 : }; 42 : 43 : #endif // BITCOIN_QT_QVALIDATEDLINEEDIT_H