std::vector<Variant> result;
for (const auto &value : values)
{
- result.push_back(
- Variant::create<T>(
- processValue(converter_.convert(value))));
+ result.push_back(normalizeValue(converter_.convert(value)));
}
return result;
}
{
return value;
}
+ /*! \brief
+ * Converts a single value to normalized type.
+ *
+ * \param[in] value Value after conversion.
+ * \returns Value to store for the option.
+ *
+ * This can be overridden to serialize a different type than `T`
+ * when using the option with KeyValueTreeObject.
+ */
+ virtual Variant normalizeValue(const T &value) const
+ {
+ return Variant::create<T>(processValue(value));
+ }
private:
virtual void convertValue(const Variant &variant)
{
result.push_back(Variant::create<T>(value));
}
- return result;
+ return normalizeValues(result);
}