4#pragma warning(disable : 4800)
5#pragma warning(disable : 4251)
6#pragma warning(disable : 4244)
7#include <QAbstractSpinBox>
11#include "../../global.hpp"
12#include "../../utilities/system_info.hpp"
24 class SpinBox64 :
public QAbstractSpinBox
30 explicit SpinBox64(QWidget *parent = 0)
31 : QAbstractSpinBox(parent)
33 , min_(std::numeric_limits<qint64>::
min())
34 , max_(std::numeric_limits<qint64>::
max())
37 setButtonSymbols(QAbstractSpinBox::UpDownArrows);
38 setCorrectionMode(QAbstractSpinBox::CorrectToNearestValue);
40 QObject::connect(
this, &SpinBox64::editingFinished,
this, &SpinBox64::valueChanged);
43 void stepBy(
int steps)
override
51 QString textFromValue(qint64 value)
const
53 return QString::number(value);
56 qint64 valueFromText(
const QString &text)
const
58 return text.toLongLong();
61 void setValue(qint64 value)
65 else if (value < min_)
70 lineEdit()->setText(QString::number(value_));
79 void setMaximum(qint64 max)
84 void setMinimum(qint64 min)
89 void setRange(qint64 minimum, qint64 maximum)
95 qint64 maximum()
const
100 qint64 minimum()
const
105 void setSingleStep(qint64 val)
118 QValidator::State validate(QString &input,
int & )
const override
120 qlonglong b(Q_UINT64_C(0x8000000000000000));
121 qlonglong t(Q_UINT64_C(0x7FFFFFFFFFFFFFFF));
123 if (input.contains(QLatin1Char(
' ')))
124 return QValidator::Invalid;
125 if (input.isEmpty() || (b < 0 && input == QString(QLatin1Char(
'-'))))
126 return QValidator::Intermediate;
128 auto entered = input.toLongLong(&ok);
129 if (!ok || (entered < 0 && b >= 0))
131 return QValidator::Invalid;
133 else if (entered >= b && entered <= t)
135 return QValidator::Acceptable;
140 return (entered > t) ? QValidator::Invalid : QValidator::Intermediate;
142 return (entered < b) ? QValidator::Invalid : QValidator::Intermediate;
151 value -= singleStep_;
161 value += singleStep_;
170 auto value = lineEdit()->text().toLongLong();
174 else if (value_ < min_)
177 lineEdit()->setText(QString::number(value_));
178 ValueChanged(value_);
183 void ValueChanged(qint64 value);
186 QAbstractSpinBox::StepEnabled stepEnabled()
const override
188 return (StepUpEnabled) | (StepDownEnabled);
Namespace for user interface components.
Definition decl_image_scene.hpp:39
Root namespace for the Image Manager interface.
Definition c_bayer_to_rgb.h:17