mirror of
https://github.com/saitohirga/WSJT-X.git
synced 2024-10-31 23:57:10 -04:00
34 lines
847 B
C++
34 lines
847 B
C++
#include "RestrictedSpinBox.hpp"
|
|
|
|
#include <algorithm>
|
|
#include <utility>
|
|
|
|
#include <QString>
|
|
|
|
QValidator::State RestrictedSpinBox::validate (QString& input, int& pos) const
|
|
{
|
|
// start by doing the standard QSpinBox validation
|
|
auto valid = HintedSpinBox::validate (input, pos);
|
|
// extra validation
|
|
if (QValidator::Acceptable == valid
|
|
&& values ().end () == std::find (values ().begin (), values ().end (), valueFromText (input)))
|
|
{
|
|
valid = QValidator::Intermediate;
|
|
}
|
|
return valid;
|
|
}
|
|
|
|
void RestrictedSpinBox::fixup (QString& input) const
|
|
{
|
|
auto iter = std::lower_bound (values ().begin (), values ().end (), valueFromText (input));
|
|
HintedSpinBox::fixup (input);
|
|
if (iter != values ().end ())
|
|
{
|
|
input = textFromValue (*iter);
|
|
}
|
|
else
|
|
{
|
|
input = textFromValue (values ().back ());
|
|
}
|
|
}
|