#include "pivariant_edit_widgets.h" #include "pivarianttypes.h" #include "pivaluetree.h" #include #include REGISTER_PIVARIANTEDITOR(bool, PIVariantEditors::Bool); REGISTER_PIVARIANTEDITOR( short, PIVariantEditors::Int); REGISTER_PIVARIANTEDITOR(ushort, PIVariantEditors::Int); REGISTER_PIVARIANTEDITOR( int, PIVariantEditors::Int); REGISTER_PIVARIANTEDITOR(uint, PIVariantEditors::Int); REGISTER_PIVARIANTEDITOR(float , PIVariantEditors::Double); REGISTER_PIVARIANTEDITOR(double, PIVariantEditors::Double); REGISTER_PIVARIANTEDITOR(PIString, PIVariantEditors::String); REGISTER_PIVARIANTEDITOR(PITime, PIVariantEditors::Time); REGISTER_PIVARIANTEDITOR(PIDate, PIVariantEditors::Date); REGISTER_PIVARIANTEDITOR(PIDateTime, PIVariantEditors::DateTime); REGISTER_PIVARIANTEDITOR(PIVariantTypes::Color, PIVariantEditors::Color); PIVariantMap PIVariantEditors::Int::defaultAttributes() const { return { {PIValueTree::attributeMinimum, widget->minimum()}, {PIValueTree::attributeMaximum, widget->maximum()}, {PIValueTree::attributeSingleStep, widget->singleStep()}, {PIValueTree::attributePrefix, Q2PIString(widget->prefix())}, {PIValueTree::attributeSuffix, Q2PIString(widget->suffix())}, }; } void PIVariantEditors::Int::applyAttributes(const PIVariantMap & a) { widget->setRange(a.value(PIValueTree::attributeMinimum, widget->minimum()).toInt(), a.value(PIValueTree::attributeMaximum, widget->maximum()).toInt()); widget->setSingleStep(a.value(PIValueTree::attributeSingleStep, widget->singleStep()).toInt()); widget->setPrefix(PI2QString(a.value(PIValueTree::attributePrefix, Q2PIString(widget->prefix())).toString())); widget->setSuffix(PI2QString(a.value(PIValueTree::attributeSuffix, Q2PIString(widget->suffix())).toString())); widget->setReadOnly(a.value(PIValueTree::attributeReadOnly, widget->isReadOnly()).toBool()); } PIVariantMap PIVariantEditors::Double::defaultAttributes() const { return { {PIValueTree::attributeMinimum, widget->minimum()}, {PIValueTree::attributeMaximum, widget->maximum()}, {PIValueTree::attributeSingleStep, widget->singleStep()}, {PIValueTree::attributeDecimals, widget->decimals()}, {PIValueTree::attributePrefix, Q2PIString(widget->prefix())}, {PIValueTree::attributeSuffix, Q2PIString(widget->suffix())}, }; } void PIVariantEditors::Double::applyAttributes(const PIVariantMap & a) { widget->setRange(a.value(PIValueTree::attributeMinimum, widget->minimum()).toDouble(), a.value(PIValueTree::attributeMaximum, widget->maximum()).toDouble()); widget->setSingleStep(a.value(PIValueTree::attributeSingleStep, widget->singleStep()).toDouble()); widget->setDecimals(a.value(PIValueTree::attributeDecimals, widget->decimals()).toInt()); widget->setPrefix(PI2QString(a.value(PIValueTree::attributePrefix, Q2PIString(widget->prefix())).toString())); widget->setSuffix(PI2QString(a.value(PIValueTree::attributeSuffix, Q2PIString(widget->suffix())).toString())); widget->setReadOnly(a.value(PIValueTree::attributeReadOnly, widget->isReadOnly()).toBool()); } PIVariantMap PIVariantEditors::String::defaultAttributes() const { return { }; } void PIVariantEditors::String::applyAttributes(const PIVariantMap & a) { widget->setReadOnly(a.value(PIValueTree::attributeReadOnly, widget->isReadOnly()).toBool()); } PIVariantMap PIVariantEditors::Color::defaultAttributes() const { return { {"useAlpha", widget->useAlphaChannel()}, }; } void PIVariantEditors::Color::applyAttributes(const PIVariantMap & a) { widget->setUseAlphaChannel(a.value("useAlpha", widget->useAlphaChannel()).toBool()); widget->setEnabled(!a.value(PIValueTree::attributeReadOnly, !widget->isEnabled()).toBool()); } void PIVariantEditors::Time::applyAttributes(const PIVariantMap & a) { widget->setReadOnly(a.value(PIValueTree::attributeReadOnly, widget->isReadOnly()).toBool()); } void PIVariantEditors::Date::applyAttributes(const PIVariantMap & a) { widget->setReadOnly(a.value(PIValueTree::attributeReadOnly, widget->isReadOnly()).toBool()); } void PIVariantEditors::DateTime::applyAttributes(const PIVariantMap & a) { widget->setReadOnly(a.value(PIValueTree::attributeReadOnly, widget->isReadOnly()).toBool()); }