Qt
Internal/Contributor docs for the Qt SDK. Note: These are NOT official API docs; those are found at https://doc.qt.io/
Loading...
Searching...
No Matches
qlonglongvalidator.cpp
Go to the documentation of this file.
1// Copyright (C) 2016 The Qt Company Ltd.
2// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0
3// Qt-Security score:significant reason:default
4
6
8
9using namespace Qt::StringLiterals;
10
11namespace qdesigner_internal {
12
13// ----------------------------------------------------------------------------
14QLongLongValidator::QLongLongValidator(QObject * parent)
15 : QValidator(parent),
16 b(Q_UINT64_C(0x8000000000000000)), t(Q_UINT64_C(0x7FFFFFFFFFFFFFFF))
17{
18}
19
20QLongLongValidator::QLongLongValidator(qlonglong minimum, qlonglong maximum,
21 QObject * parent)
23{
24}
25
27
28QValidator::State QLongLongValidator::validate(QString & input, int &) const
29{
30 if (input.contains(u' '))
31 return Invalid;
32 if (input.isEmpty() || (b < 0 && input == "-"_L1))
33 return Intermediate;
34 bool ok;
35 qlonglong entered = input.toLongLong(&ok);
36 if (!ok || (entered < 0 && b >= 0))
37 return Invalid;
38 if (entered >= b && entered <= t)
39 return Acceptable;
40 if (entered >= 0)
41 return entered > t ? Invalid : Intermediate;
42 return entered < b ? Invalid : Intermediate;
43}
44
45void QLongLongValidator::setRange(qlonglong bottom, qlonglong top)
46{
47 b = bottom;
48 t = top;
49}
50
51void QLongLongValidator::setBottom(qlonglong bottom)
52{
53 setRange(bottom, top());
54}
55
56void QLongLongValidator::setTop(qlonglong top)
57{
58 setRange(bottom(), top);
59}
60
61
62// ----------------------------------------------------------------------------
63QULongLongValidator::QULongLongValidator(QObject * parent)
64 : QValidator(parent),
65 b(0), t(Q_UINT64_C(0xFFFFFFFFFFFFFFFF))
66{
67}
68
69QULongLongValidator::QULongLongValidator(qulonglong minimum, qulonglong maximum,
70 QObject * parent)
72{
73}
74
76
77QValidator::State QULongLongValidator::validate(QString & input, int &) const
78{
79 if (input.isEmpty())
80 return Intermediate;
81
82 bool ok;
83 qulonglong entered = input.toULongLong(&ok);
84 if (input.contains(u' ') || input.contains(u'-') || !ok)
85 return Invalid;
86
87 if (entered >= b && entered <= t)
88 return Acceptable;
89
90 return Invalid;
91}
92
93void QULongLongValidator::setRange(qulonglong bottom, qulonglong top)
94{
95 b = bottom;
96 t = top;
97}
98
99void QULongLongValidator::setBottom(qulonglong bottom)
100{
101 setRange(bottom, top());
102}
103
104void QULongLongValidator::setTop(qulonglong top)
105{
106 setRange(bottom(), top);
107}
108
109} // namespace qdesigner_internal
110
111QT_END_NAMESPACE
void setRange(qlonglong bottom, qlonglong top)
QLongLongValidator(qlonglong bottom, qlonglong top, QObject *parent)
QValidator::State validate(QString &, int &) const override
This virtual function returns \l Invalid if input is invalid according to this validator's rules,...
QValidator::State validate(QString &, int &) const override
This virtual function returns \l Invalid if input is invalid according to this validator's rules,...
QULongLongValidator(qulonglong bottom, qulonglong top, QObject *parent)
void setRange(qulonglong bottom, qulonglong top)
Combined button and popup list for selecting options.
Auxiliary methods to store/retrieve settings.