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