also range check setting by percent
This commit is contained in:
parent
b3db8ecd47
commit
7fb9bb8f9a
|
@ -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;
|
||||
}
|
||||
|
|
Loading…
Reference in New Issue