PIVariantEdit widgets

This commit is contained in:
2022-12-04 18:28:25 +03:00
parent 3ad11fe743
commit 461491e30e
5 changed files with 176 additions and 31 deletions

View File

@@ -1,49 +1,115 @@
#include "pivariant_edit_widgets.h"
#include "pivarianttypes.h"
#include "pivaluetree.h"
#include <QEvent>
#include <QMessageBox>
REGISTER_PIVARIANTEDITOR(bool, PIVariantEditorBool);
REGISTER_PIVARIANTEDITOR( short, PIVariantEditorInt);
REGISTER_PIVARIANTEDITOR(ushort, PIVariantEditorInt);
REGISTER_PIVARIANTEDITOR( int, PIVariantEditorInt);
REGISTER_PIVARIANTEDITOR(uint, PIVariantEditorInt);
REGISTER_PIVARIANTEDITOR(float , PIVariantEditorDouble);
REGISTER_PIVARIANTEDITOR(double, PIVariantEditorDouble);
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 PIVariantEditorInt::defaultAttributes() const {
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 PIVariantEditorInt::applyAttributes(const PIVariantMap & a) {
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 PIVariantEditorDouble::defaultAttributes() const {
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 PIVariantEditorDouble::applyAttributes(const PIVariantMap & a) {
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());
}