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
5
7
8using namespace Qt::StringLiterals;
9
10namespace qdesigner_internal {
11
12// ----------------------------------------------------------------------------
13QLongLongValidator::QLongLongValidator(QObject * parent)
14 : QValidator(parent),
15 b(Q_UINT64_C(0x8000000000000000)), t(Q_UINT64_C(0x7FFFFFFFFFFFFFFF))
16{
17}
18
19QLongLongValidator::QLongLongValidator(qlonglong minimum, qlonglong maximum,
20 QObject * parent)
22{
23}
24
26
27QValidator::State QLongLongValidator::validate(QString & input, int &) const
28{
29 if (input.contains(u' '))
30 return Invalid;
31 if (input.isEmpty() || (b < 0 && input == "-"_L1))
32 return Intermediate;
33 bool ok;
34 qlonglong entered = input.toLongLong(&ok);
35 if (!ok || (entered < 0 && b >= 0))
36 return Invalid;
37 if (entered >= b && entered <= t)
38 return Acceptable;
39 if (entered >= 0)
40 return entered > t ? Invalid : Intermediate;
41 return entered < b ? Invalid : Intermediate;
42}
43
44void QLongLongValidator::setRange(qlonglong bottom, qlonglong top)
45{
46 b = bottom;
47 t = top;
48}
49
50void QLongLongValidator::setBottom(qlonglong bottom)
51{
52 setRange(bottom, top());
53}
54
55void QLongLongValidator::setTop(qlonglong top)
56{
57 setRange(bottom(), top);
58}
59
60
61// ----------------------------------------------------------------------------
62QULongLongValidator::QULongLongValidator(QObject * parent)
63 : QValidator(parent),
64 b(0), t(Q_UINT64_C(0xFFFFFFFFFFFFFFFF))
65{
66}
67
68QULongLongValidator::QULongLongValidator(qulonglong minimum, qulonglong maximum,
69 QObject * parent)
71{
72}
73
75
76QValidator::State QULongLongValidator::validate(QString & input, int &) const
77{
78 if (input.isEmpty())
79 return Intermediate;
80
81 bool ok;
82 qulonglong entered = input.toULongLong(&ok);
83 if (input.contains(u' ') || input.contains(u'-') || !ok)
84 return Invalid;
85
86 if (entered >= b && entered <= t)
87 return Acceptable;
88
89 return Invalid;
90}
91
92void QULongLongValidator::setRange(qulonglong bottom, qulonglong top)
93{
94 b = bottom;
95 t = top;
96}
97
98void QULongLongValidator::setBottom(qulonglong bottom)
99{
100 setRange(bottom, top());
101}
102
103void QULongLongValidator::setTop(qulonglong top)
104{
105 setRange(bottom(), top);
106}
107
108} // namespace qdesigner_internal
109
110QT_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.