WSJT-X/RestrictedSpinBox.cpp
Bill Somerville 095fa7740e Proper custom spin boxes for frequency tolerance and T/R period
These were using a hijacked custom spin box that was designed only for
letters i.e. submodes. Now there are two new custom spin boxes.

HistedSpinBox:- can  be set with  a list  of integer values  which the
step  up and  down  will  follow. Optionally  limits  the maximum  and
minimum value  to the upper and  lower bounds of the  values set. Note
that intermediate values are still valid.

RestrictedSpinBox:- more like a combo  box because the provided values
are the only ones that can be set.

HintedSpinBox   is    used   for    the   frequency    tolerance   and
RestrictedSpinBox is used for T/R period.

git-svn-id: svn+ssh://svn.code.sf.net/p/wsjt/wsjt/branches/wsjtx@7698 ab8295b8-cf94-4d9e-aec4-7959e3be5d79
2017-05-27 20:04:44 +00:00

20 lines
505 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
&& values ().end () == std::find (values ().begin (), values ().end (), valueFromText (input)))
{
valid = QValidator::Intermediate;
}
return valid;
}