ProjectExplorer: Use full class for TriState value

Allows more compact code on the user side in most cases and
can hide the internal 'int-ness' from user code by wrapping
Variant conversions in the TriState class itself.

Change-Id: I4c91e0cd798ee988a0b9cb057749251a4efebaff
Reviewed-by: Christian Kandeler <christian.kandeler@qt.io>
This commit is contained in:
hjk
2019-11-15 16:20:33 +01:00
parent 3b9ce98865
commit ce434ccb5d
14 changed files with 151 additions and 162 deletions

View File

@@ -688,18 +688,25 @@ BaseTriStateAspect::BaseTriStateAspect()
addOption(tr("Leave at Default"));
}
BaseTriStateAspect::Value BaseTriStateAspect::setting() const
TriState BaseTriStateAspect::setting() const
{
if (value() == 0)
return Value::Enabled;
if (value() == 1)
return Value::Disabled;
return Value::Default;
return TriState::fromVariant(value());
}
void BaseTriStateAspect::setSetting(BaseTriStateAspect::Value setting)
void BaseTriStateAspect::setSetting(TriState setting)
{
setValue(setting == Value::Enabled ? 0 : setting == Value::Disabled ? 1 : 2);
setValue(setting.toVariant().toInt());
}
const TriState TriState::Enabled{TriState::EnabledValue};
const TriState TriState::Disabled{TriState::DisabledValue};
const TriState TriState::Default{TriState::DefaultValue};
TriState TriState::fromVariant(const QVariant &variant)
{
int v = variant.toInt();
QTC_ASSERT(v == EnabledValue || v == DisabledValue || v == DefaultValue, v = DefaultValue);
return TriState(Value(v));
}
} // namespace ProjectExplorer