/* * This file is part of the Flowee project * Copyright (C) 2011-2015 The Bitcoin Core developers * * This program is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation, either version 3 of the License, or * (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program. If not, see . */ #ifndef FLOWEE_QT_QVALIDATEDLINEEDIT_H #define FLOWEE_QT_QVALIDATEDLINEEDIT_H #include /** Line edit that can be marked as "invalid" to show input validation feedback. When marked as invalid, it will get a red background until it is focused. */ class QValidatedLineEdit : public QLineEdit { Q_OBJECT public: explicit QValidatedLineEdit(QWidget *parent); void clear(); void setCheckValidator(const QValidator *v); bool isValid(); protected: void focusInEvent(QFocusEvent *evt); void focusOutEvent(QFocusEvent *evt); private: bool valid; const QValidator *checkValidator; public Q_SLOTS: void setValid(bool valid); void setEnabled(bool enabled); Q_SIGNALS: void validationDidChange(QValidatedLineEdit *validatedLineEdit); private Q_SLOTS: void markValid(); void checkValidity(); }; #endif