PIValueTreeEdit almost finish fullEditMode

This commit is contained in:
2022-12-15 13:05:53 +03:00
parent cdb02fc9be
commit 4bb4e87cc2
10 changed files with 622 additions and 173 deletions

View File

@@ -20,100 +20,134 @@ REGISTER_PIVARIANTEDITOR(PIDateTime, PIVariantEditors::DateTime);
REGISTER_PIVARIANTEDITOR(PIVariantTypes::Color, PIVariantEditors::Color);
REGISTER_PIVARIANTEDITOR(PIVariantTypes::Enum, PIVariantEditors::Enum);
using Attribute = PIValueTree::Attribute;
// PIVariantEditors::Int
PIVariantMap PIVariantEditors::Int::defaultAttributes() const {
PIVariantMap PIVariantEditors::Int::attributes() const {
return {
{PIValueTree::attributeMinimum, widget->minimum() },
{PIValueTree::attributeMaximum, widget->maximum() },
{PIValueTree::attributeSingleStep, widget->singleStep() },
{PIValueTree::attributePrefix, Q2PIString(widget->prefix())},
{PIValueTree::attributeSuffix, Q2PIString(widget->suffix())},
{Attribute::minimum, widget->minimum() },
{Attribute::maximum, widget->maximum() },
{Attribute::singleStep, widget->singleStep() },
{Attribute::prefix, Q2PIString(widget->prefix())},
{Attribute::suffix, Q2PIString(widget->suffix())},
};
}
PIVariantMap PIVariantEditors::Int::defaultAttributes() {
return {
{Attribute::minimum, -std::numeric_limits<int>::max()},
{Attribute::maximum, std::numeric_limits<int>::max() },
{Attribute::singleStep, 1. },
{Attribute::prefix, "" },
{Attribute::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());
widget->setRange(a.value(Attribute::minimum, widget->minimum()).toInt(), a.value(Attribute::maximum, widget->maximum()).toInt());
widget->setSingleStep(a.value(Attribute::singleStep, widget->singleStep()).toInt());
widget->setPrefix(PI2QString(a.value(Attribute::prefix, Q2PIString(widget->prefix())).toString()));
widget->setSuffix(PI2QString(a.value(Attribute::suffix, Q2PIString(widget->suffix())).toString()));
widget->setReadOnly(a.value(Attribute::readOnly, widget->isReadOnly()).toBool());
}
// PIVariantEditors::Double
PIVariantMap PIVariantEditors::Double::defaultAttributes() const {
PIVariantMap PIVariantEditors::Double::attributes() 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())},
{Attribute::minimum, widget->minimum() },
{Attribute::maximum, widget->maximum() },
{Attribute::singleStep, widget->singleStep() },
{Attribute::decimals, widget->decimals() },
{Attribute::prefix, Q2PIString(widget->prefix())},
{Attribute::suffix, Q2PIString(widget->suffix())},
};
}
PIVariantMap PIVariantEditors::Double::defaultAttributes() {
return {
{Attribute::minimum, -std::numeric_limits<double>::max()},
{Attribute::maximum, std::numeric_limits<double>::max() },
{Attribute::singleStep, 1. },
{Attribute::decimals, 3 },
{Attribute::prefix, "" },
{Attribute::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());
widget->setRange(a.value(Attribute::minimum, widget->minimum()).toDouble(), a.value(Attribute::maximum, widget->maximum()).toDouble());
widget->setSingleStep(a.value(Attribute::singleStep, widget->singleStep()).toDouble());
widget->setDecimals(a.value(Attribute::decimals, widget->decimals()).toInt());
widget->setPrefix(PI2QString(a.value(Attribute::prefix, Q2PIString(widget->prefix())).toString()));
widget->setSuffix(PI2QString(a.value(Attribute::suffix, Q2PIString(widget->suffix())).toString()));
widget->setReadOnly(a.value(Attribute::readOnly, widget->isReadOnly()).toBool());
}
// PIVariantEditors::String
PIVariantMap PIVariantEditors::String::defaultAttributes() const {
PIVariantMap PIVariantEditors::String::attributes() const {
return {};
}
PIVariantMap PIVariantEditors::String::defaultAttributes() {
return {};
}
void PIVariantEditors::String::applyAttributes(const PIVariantMap & a) {
widget->setReadOnly(a.value(PIValueTree::attributeReadOnly, widget->isReadOnly()).toBool());
widget->setReadOnly(a.value(Attribute::readOnly, widget->isReadOnly()).toBool());
}
// PIVariantEditors::Color
PIVariantMap PIVariantEditors::Color::defaultAttributes() const {
PIVariantMap PIVariantEditors::Color::attributes() const {
return {
{"useAlpha", widget->useAlphaChannel()},
};
}
PIVariantMap PIVariantEditors::Color::defaultAttributes() {
return {
{"useAlpha", true},
};
}
void PIVariantEditors::Color::applyAttributes(const PIVariantMap & a) {
widget->setUseAlphaChannel(a.value("useAlpha", widget->useAlphaChannel()).toBool());
widget->setEnabled(!a.value(PIValueTree::attributeReadOnly, !widget->isEnabled()).toBool());
widget->setEnabled(!a.value(Attribute::readOnly, !widget->isEnabled()).toBool());
}
// PIVariantEditors::Time
void PIVariantEditors::Time::applyAttributes(const PIVariantMap & a) {
widget->setReadOnly(a.value(PIValueTree::attributeReadOnly, widget->isReadOnly()).toBool());
widget->setReadOnly(a.value(Attribute::readOnly, widget->isReadOnly()).toBool());
}
// PIVariantEditors::Date
void PIVariantEditors::Date::applyAttributes(const PIVariantMap & a) {
widget->setReadOnly(a.value(PIValueTree::attributeReadOnly, widget->isReadOnly()).toBool());
widget->setReadOnly(a.value(Attribute::readOnly, widget->isReadOnly()).toBool());
}
// PIVariantEditors::DateTime
void PIVariantEditors::DateTime::applyAttributes(const PIVariantMap & a) {
widget->setReadOnly(a.value(PIValueTree::attributeReadOnly, widget->isReadOnly()).toBool());
widget->setReadOnly(a.value(Attribute::readOnly, widget->isReadOnly()).toBool());
}
@@ -137,5 +171,5 @@ PIVariant PIVariantEditors::Enum::value() const {
void PIVariantEditors::Enum::applyAttributes(const PIVariantMap & a) {
widget->setEnabled(!a.value(PIValueTree::attributeReadOnly, !widget->isEnabled()).toBool());
widget->setEnabled(!a.value(Attribute::readOnly, !widget->isEnabled()).toBool());
}