1
0
Fork 0

also range check setting by percent

This commit is contained in:
Kevin Matz 2021-09-03 17:45:32 -04:00
parent b3db8ecd47
commit 7fb9bb8f9a
1 changed files with 9 additions and 12 deletions

View File

@ -136,11 +136,9 @@ bool UniverseModel::setData(const QModelIndex &index, const QVariant &value,
switch (data_mode_) {
case Decimal:
{
QVariant val = value;
val.convert(QVariant::UInt);
if (val.isNull())
if (!value.canConvert<uint>())
return false;
uint d = val.toUInt();
uint d = value.toUInt();
if (d > 255)
return false;
data = d;
@ -148,12 +146,10 @@ bool UniverseModel::setData(const QModelIndex &index, const QVariant &value,
break;
case Hex:
{
QVariant val = value;
val.convert(QVariant::String);
if (val.isNull())
if (!value.canConvert<QString>())
return false;
bool ok;
uint d = val.toString().toInt(&ok, 16);
uint d = value.toString().toInt(&ok, 16);
if (!ok)
return false;
if (d > 255)
@ -163,11 +159,12 @@ bool UniverseModel::setData(const QModelIndex &index, const QVariant &value,
break;
case Percent:
{
QVariant val = value;
val.convert(QVariant::Double);
if (val.isNull())
if (!value.canConvert<double>())
return false;
data = 255 * (val.toDouble() / 100);
int d = 255 * (value.toDouble() / 100);
if (d < 0 || d > 255)
return false;
data = d;
}
break;
}