mirror of
https://github.com/bitcoin/bitcoin.git
synced 2025-11-13 15:39:05 +01:00
[Qt] extend validate line edit and btc address validator
- remove btc address length from address validator - add an optional btc address check in validated line edit that defaults to off and is used in GUIUtil::setupAddressWidget() - an isAcceptable() check is added to validated line edit on focus out which only kicks in, when a validator is used with that widget - remove an isAcceptable() check from sendcoinsentry.cpp - remove obsolete attributes from ui files, which are set by calling GUIUtil::setupAddressWidget() - move some more things to GUIUtil::setupAddressWidget() and remove them from normal code e.g. placeholder text
This commit is contained in:
committed by
Wladimir J. van der Laan
parent
aab8fc58c6
commit
c78bd93701
@@ -4,10 +4,13 @@
|
||||
|
||||
#include "qvalidatedlineedit.h"
|
||||
|
||||
#include "bitcoinaddressvalidator.h"
|
||||
#include "guiconstants.h"
|
||||
|
||||
QValidatedLineEdit::QValidatedLineEdit(QWidget *parent) :
|
||||
QLineEdit(parent), valid(true)
|
||||
QLineEdit(parent),
|
||||
valid(true),
|
||||
checkValidator(0)
|
||||
{
|
||||
connect(this, SIGNAL(textChanged(QString)), this, SLOT(markValid()));
|
||||
}
|
||||
@@ -34,11 +37,20 @@ void QValidatedLineEdit::focusInEvent(QFocusEvent *evt)
|
||||
{
|
||||
// Clear invalid flag on focus
|
||||
setValid(true);
|
||||
|
||||
QLineEdit::focusInEvent(evt);
|
||||
}
|
||||
|
||||
void QValidatedLineEdit::focusOutEvent(QFocusEvent *evt)
|
||||
{
|
||||
checkValidity();
|
||||
|
||||
QLineEdit::focusOutEvent(evt);
|
||||
}
|
||||
|
||||
void QValidatedLineEdit::markValid()
|
||||
{
|
||||
// As long as a user is typing ensure we display state as valid
|
||||
setValid(true);
|
||||
}
|
||||
|
||||
@@ -47,3 +59,49 @@ void QValidatedLineEdit::clear()
|
||||
setValid(true);
|
||||
QLineEdit::clear();
|
||||
}
|
||||
|
||||
void QValidatedLineEdit::setEnabled(bool enabled)
|
||||
{
|
||||
if (!enabled)
|
||||
{
|
||||
// A disabled QValidatedLineEdit should be marked valid
|
||||
setValid(true);
|
||||
}
|
||||
else
|
||||
{
|
||||
// Recheck validity when QValidatedLineEdit gets enabled
|
||||
checkValidity();
|
||||
}
|
||||
|
||||
QLineEdit::setEnabled(enabled);
|
||||
}
|
||||
|
||||
void QValidatedLineEdit::checkValidity()
|
||||
{
|
||||
if (text().isEmpty())
|
||||
{
|
||||
setValid(true);
|
||||
}
|
||||
else if (hasAcceptableInput())
|
||||
{
|
||||
setValid(true);
|
||||
|
||||
// Check contents on focus out
|
||||
if (checkValidator)
|
||||
{
|
||||
QString address = text();
|
||||
int pos = 0;
|
||||
if (checkValidator->validate(address, pos) == QValidator::Acceptable)
|
||||
setValid(true);
|
||||
else
|
||||
setValid(false);
|
||||
}
|
||||
}
|
||||
else
|
||||
setValid(false);
|
||||
}
|
||||
|
||||
void QValidatedLineEdit::setCheckValidator(const QValidator *v)
|
||||
{
|
||||
checkValidator = v;
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user