PIVX Core  5.6.99
P2P Digital Currency
qvalidatedlineedit.cpp
Go to the documentation of this file.
1 // Copyright (c) 2011-2013 The Bitcoin developers
2 // Copyright (c) 2017-2019 The PIVX 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 
11 QValidatedLineEdit::QValidatedLineEdit(QWidget* parent) : QLineEdit(parent),
12  valid(true),
13  checkValidator(0)
14 {
15  connect(this, &QValidatedLineEdit::textChanged, this, &QValidatedLineEdit::markValid);
16 }
17 
19 {
20  if (valid == this->valid) {
21  return;
22  }
23 
24  if (valid) {
25  setStyleSheet("");
26  } else {
27  setStyleSheet(STYLE_INVALID);
28  }
29  this->valid = valid;
30 }
31 
32 void QValidatedLineEdit::focusInEvent(QFocusEvent* evt)
33 {
34  // Clear invalid flag on focus
35  setValid(true);
36 
37  QLineEdit::focusInEvent(evt);
38 }
39 
40 void QValidatedLineEdit::focusOutEvent(QFocusEvent* evt)
41 {
42  checkValidity();
43 
44  QLineEdit::focusOutEvent(evt);
45 }
46 
48 {
49  // As long as a user is typing ensure we display state as valid
50  setValid(true);
51 }
52 
54 {
55  setValid(true);
56  QLineEdit::clear();
57 }
58 
60 {
61  if (!enabled) {
62  // A disabled QValidatedLineEdit should be marked valid
63  setValid(true);
64  } else {
65  // Recheck validity when QValidatedLineEdit gets enabled
66  checkValidity();
67  }
68 
69  QLineEdit::setEnabled(enabled);
70 }
71 
73 {
74  if (text().isEmpty()) {
75  setValid(true);
76  } else if (hasAcceptableInput()) {
77  setValid(true);
78 
79  // Check contents on focus out
80  if (checkValidator) {
81  QString address = text();
82  int pos = 0;
83  if (checkValidator->validate(address, pos) == QValidator::Acceptable)
84  setValid(true);
85  else
86  setValid(false);
87  }
88  } else
89  setValid(false);
90 }
91 
92 void QValidatedLineEdit::setCheckValidator(const QValidator* v)
93 {
94  checkValidator = v;
95 }
true
Definition: bls_dkg.cpp:153
QValidatedLineEdit(QWidget *parent)
void focusOutEvent(QFocusEvent *evt)
void focusInEvent(QFocusEvent *evt)
void setValid(bool valid)
void setEnabled(bool enabled)
void setCheckValidator(const QValidator *v)
const QValidator * checkValidator
#define STYLE_INVALID
Definition: guiconstants.h:22