From 6f4d1b5ed98729cb63e28f3023e099f716d05457 Mon Sep 17 00:00:00 2001 From: Roman Telezhynskyi Date: Mon, 19 Dec 2016 14:18:32 +0200 Subject: [PATCH] Complete working with the property browser. --HG-- branch : feature --- .../core/vtooloptionspropertybrowser.cpp | 71 +++++++++++++++++++ .../core/vtooloptionspropertybrowser.h | 2 + 2 files changed, 73 insertions(+) diff --git a/src/app/valentina/core/vtooloptionspropertybrowser.cpp b/src/app/valentina/core/vtooloptionspropertybrowser.cpp index ce89f36fd..e4cc9d177 100644 --- a/src/app/valentina/core/vtooloptionspropertybrowser.cpp +++ b/src/app/valentina/core/vtooloptionspropertybrowser.cpp @@ -322,6 +322,9 @@ void VToolOptionsPropertyBrowser::UpdateOptions() case VToolMove::Type: UpdateOptionsToolMove(); break; + case VToolEllipticalArc::Type: + UpdateOptionsToolEllipticalArc(); + break; default: break; } @@ -460,6 +463,9 @@ void VToolOptionsPropertyBrowser::userChangedData(VProperty *property) case VToolMove::Type: ChangeDataToolMove(prop); break; + case VToolEllipticalArc::Type: + ChangeDataToolEllipticalArc(prop); + break; default: break; } @@ -1728,6 +1734,42 @@ void VToolOptionsPropertyBrowser::ChangeDataToolFlippingByAxis(VProperty *proper } } +//--------------------------------------------------------------------------------------------------------------------- +void VToolOptionsPropertyBrowser::ChangeDataToolEllipticalArc(VProperty *property) +{ + SCASSERT(property != nullptr) + + QVariant value = property->data(VProperty::DPC_Data, Qt::DisplayRole); + const QString id = propertyToId[property]; + + VToolEllipticalArc *i = qgraphicsitem_cast(currentItem); + SCASSERT(i != nullptr); + switch (PropertiesList().indexOf(id)) + { + case 40://AttrRadius1 + i->SetFormulaRadius1(value.value()); + break; + case 41://AttrRadius2 + i->SetFormulaRadius2(value.value()); + break; + case 9://AttrAngle1 + i->SetFormulaF1(value.value()); + break; + case 10://AttrAngle2 + i->SetFormulaF2(value.value()); + break; + case 42://AttrRotationAngle + i->SetFormulaRotationAngle(value.value()); + break; + case 27://AttrColor + i->SetLineColor(value.toString()); + break; + default: + qWarning()<<"Unknown property type. id = "<setValue(i->Suffix()); } +//--------------------------------------------------------------------------------------------------------------------- +void VToolOptionsPropertyBrowser::UpdateOptionsToolEllipticalArc() +{ + VToolEllipticalArc *i = qgraphicsitem_cast(currentItem); + + QVariant valueFormulaRadius1; + valueFormulaRadius1.setValue(i->GetFormulaRadius1()); + idToProperty[AttrRadius1]->setValue(valueFormulaRadius1); + + QVariant valueFormulaRadius2; + valueFormulaRadius2.setValue(i->GetFormulaRadius2()); + idToProperty[AttrRadius2]->setValue(valueFormulaRadius2); + + QVariant valueFormulaF1; + valueFormulaF1.setValue(i->GetFormulaF1()); + idToProperty[AttrAngle1]->setValue(valueFormulaF1); + + QVariant valueFormulaF2; + valueFormulaF2.setValue(i->GetFormulaF2()); + idToProperty[AttrAngle2]->setValue(valueFormulaF2); + + QVariant valueFormulaRotationAngle; + valueFormulaRotationAngle.setValue(i->GetFormulaRotationAngle()); + idToProperty[AttrRotationAngle]->setValue(valueFormulaRotationAngle); + + const qint32 index = VLineColorProperty::IndexOfColor(VAbstractTool::ColorsList(), i->GetLineColor()); + idToProperty[AttrColor]->setValue(index); +} + //--------------------------------------------------------------------------------------------------------------------- QStringList VToolOptionsPropertyBrowser::PropertiesList() const { diff --git a/src/app/valentina/core/vtooloptionspropertybrowser.h b/src/app/valentina/core/vtooloptionspropertybrowser.h index e5d74f23d..117fd3618 100644 --- a/src/app/valentina/core/vtooloptionspropertybrowser.h +++ b/src/app/valentina/core/vtooloptionspropertybrowser.h @@ -161,6 +161,7 @@ private: void ChangeDataToolMove(VPE::VProperty *property); void ChangeDataToolFlippingByLine(VPE::VProperty *property); void ChangeDataToolFlippingByAxis(VPE::VProperty *property); + void ChangeDataToolEllipticalArc(VPE::VProperty *property); void ShowOptionsToolSinglePoint(QGraphicsItem *item); void ShowOptionsToolEndLine(QGraphicsItem *item); @@ -230,6 +231,7 @@ private: void UpdateOptionsToolMove(); void UpdateOptionsToolFlippingByLine(); void UpdateOptionsToolFlippingByAxis(); + void UpdateOptionsToolEllipticalArc(); }; #endif // VTOOLOPTIONSPROPERTYBROWSER_H