PRCYCoin  2.0.0.7rc1
P2P Digital Currency
qvalidatedlineedit.cpp
Go to the documentation of this file.
1 // Copyright (c) 2011-2013 The Bitcoin developers
2 // Distributed under the MIT/X11 software license, see the accompanying
3 // file COPYING or http://www.opensource.org/licenses/mit-license.php.
4 
5 #include "qvalidatedlineedit.h"
6 
8 #include "guiconstants.h"
9 
10 QValidatedLineEdit::QValidatedLineEdit(QWidget* parent) : QLineEdit(parent),
11  valid(true),
12  checkValidator(0)
13 {
14  connect(this, SIGNAL(textChanged(QString)), this, SLOT(markValid()));
15 }
16 
18 {
19  if (valid == this->valid) {
20  return;
21  }
22 
23  if (valid) {
24  setStyleSheet("");
25  } else {
26  setStyleSheet(STYLE_INVALID);
27  }
28  this->valid = valid;
29 }
30 
31 void QValidatedLineEdit::focusInEvent(QFocusEvent* evt)
32 {
33  // Clear invalid flag on focus
34  setValid(true);
35 
36  QLineEdit::focusInEvent(evt);
37 }
38 
39 void QValidatedLineEdit::focusOutEvent(QFocusEvent* evt)
40 {
41  checkValidity();
42 
43  QLineEdit::focusOutEvent(evt);
44 }
45 
47 {
48  // As long as a user is typing ensure we display state as valid
49  setValid(true);
50 }
51 
53 {
54  setValid(true);
55  QLineEdit::clear();
56 }
57 
59 {
60  if (!enabled) {
61  // A disabled QValidatedLineEdit should be marked valid
62  setValid(true);
63  } else {
64  // Recheck validity when QValidatedLineEdit gets enabled
65  checkValidity();
66  }
67 
68  QLineEdit::setEnabled(enabled);
69 }
70 
72 {
73  if (text().isEmpty()) {
74  setValid(true);
75  } else if (hasAcceptableInput()) {
76  setValid(true);
77 
78  // Check contents on focus out
79  if (checkValidator) {
80  QString address = text();
81  int pos = 0;
82  if (checkValidator->validate(address, pos) == QValidator::Acceptable)
83  setValid(true);
84  else
85  setValid(false);
86  }
87  } else
88  setValid(false);
89 }
90 
91 void QValidatedLineEdit::setCheckValidator(const QValidator* v)
92 {
93  checkValidator = v;
94 }
QValidatedLineEdit::setCheckValidator
void setCheckValidator(const QValidator *v)
Definition: qvalidatedlineedit.cpp:91
QValidatedLineEdit::focusInEvent
void focusInEvent(QFocusEvent *evt)
Definition: qvalidatedlineedit.cpp:31
QValidatedLineEdit::markValid
void markValid()
Definition: qvalidatedlineedit.cpp:46
QValidatedLineEdit::setEnabled
void setEnabled(bool enabled)
Definition: qvalidatedlineedit.cpp:58
qvalidatedlineedit.h
QValidatedLineEdit::focusOutEvent
void focusOutEvent(QFocusEvent *evt)
Definition: qvalidatedlineedit.cpp:39
guiconstants.h
QValidatedLineEdit::setValid
void setValid(bool valid)
Definition: qvalidatedlineedit.cpp:17
bitcoinaddressvalidator.h
QValidatedLineEdit::checkValidator
const QValidator * checkValidator
Definition: qvalidatedlineedit.h:28
QValidatedLineEdit::QValidatedLineEdit
QValidatedLineEdit(QWidget *parent)
Definition: qvalidatedlineedit.cpp:10
QValidatedLineEdit::clear
void clear()
Definition: qvalidatedlineedit.cpp:52
STYLE_INVALID
#define STYLE_INVALID
Definition: guiconstants.h:23
QValidatedLineEdit::checkValidity
void checkValidity()
Definition: qvalidatedlineedit.cpp:71
QValidatedLineEdit::valid
bool valid
Definition: qvalidatedlineedit.h:27