Merge pull request #19907 from benj5378/getAttribute

Base: make getAttribute template
This commit is contained in:
Chris Hennes
2025-05-12 10:39:55 -05:00
committed by GitHub
64 changed files with 834 additions and 677 deletions

View File

@@ -178,20 +178,19 @@ void Constraint::Save(Writer& writer) const
void Constraint::Restore(XMLReader& reader)
{
reader.readElement("Constrain");
Name = reader.getAttribute("Name");
Type = static_cast<ConstraintType>(reader.getAttributeAsInteger("Type"));
Value = reader.getAttributeAsFloat("Value");
First = reader.getAttributeAsInteger("First");
FirstPos = static_cast<PointPos>(reader.getAttributeAsInteger("FirstPos"));
Second = reader.getAttributeAsInteger("Second");
SecondPos = static_cast<PointPos>(reader.getAttributeAsInteger("SecondPos"));
Name = reader.getAttribute<const char*>("Name");
Type = reader.getAttribute<ConstraintType>("Type");
Value = reader.getAttribute<double>("Value");
First = reader.getAttribute<long>("First");
FirstPos = reader.getAttribute<PointPos>("FirstPos");
Second = reader.getAttribute<long>("Second");
SecondPos = reader.getAttribute<PointPos>("SecondPos");
if (this->Type == InternalAlignment) {
AlignmentType = static_cast<InternalAlignmentType>(
reader.getAttributeAsInteger("InternalAlignmentType"));
AlignmentType = reader.getAttribute<InternalAlignmentType>("InternalAlignmentType");
if (reader.hasAttribute("InternalAlignmentIndex")) {
InternalAlignmentIndex = reader.getAttributeAsInteger("InternalAlignmentIndex");
InternalAlignmentIndex = reader.getAttribute<long>("InternalAlignmentIndex");
}
}
else {
@@ -200,29 +199,29 @@ void Constraint::Restore(XMLReader& reader)
// read the third geo group if present
if (reader.hasAttribute("Third")) {
Third = reader.getAttributeAsInteger("Third");
ThirdPos = static_cast<PointPos>(reader.getAttributeAsInteger("ThirdPos"));
Third = reader.getAttribute<long>("Third");
ThirdPos = reader.getAttribute<PointPos>("ThirdPos");
}
// Read the distance a constraint label has been moved
if (reader.hasAttribute("LabelDistance")) {
LabelDistance = (float)reader.getAttributeAsFloat("LabelDistance");
LabelDistance = (float)reader.getAttribute<double>("LabelDistance");
}
if (reader.hasAttribute("LabelPosition")) {
LabelPosition = (float)reader.getAttributeAsFloat("LabelPosition");
LabelPosition = (float)reader.getAttribute<double>("LabelPosition");
}
if (reader.hasAttribute("IsDriving")) {
isDriving = reader.getAttributeAsInteger("IsDriving") ? true : false;
isDriving = reader.getAttribute<bool>("IsDriving");
}
if (reader.hasAttribute("IsInVirtualSpace")) {
isInVirtualSpace = reader.getAttributeAsInteger("IsInVirtualSpace") ? true : false;
isInVirtualSpace = reader.getAttribute<bool>("IsInVirtualSpace");
}
if (reader.hasAttribute("IsActive")) {
isActive = reader.getAttributeAsInteger("IsActive") ? true : false;
isActive = reader.getAttribute<bool>("IsActive");
}
}

View File

@@ -48,9 +48,9 @@ void ExternalGeometryExtension::restoreAttributes(Base::XMLReader& reader)
{
Part::GeometryPersistenceExtension::restoreAttributes(reader);
Ref = reader.getAttribute("Ref", "");
RefIndex = reader.getAttributeAsInteger("RefIndex", "-1");
Flags = FlagType(reader.getAttributeAsUnsigned("Flags", "0"));
Ref = reader.getAttribute<const char*>("Ref", "");
RefIndex = reader.getAttribute<long>("RefIndex", -1);
Flags = FlagType(reader.getAttribute<unsigned long>("Flags", 0));
}
void ExternalGeometryExtension::saveAttributes(Base::Writer& writer) const

View File

@@ -341,7 +341,7 @@ void PropertyConstraintList::Restore(Base::XMLReader& reader)
// read my element
reader.readElement("ConstraintList");
// get the value of my attribute
int count = reader.getAttributeAsInteger("count");
int count = reader.getAttribute<long>("count");
std::vector<Constraint*> values;
values.reserve(count);

View File

@@ -65,16 +65,15 @@ void SketchGeometryExtension::restoreAttributes(Base::XMLReader& reader)
Part::GeometryPersistenceExtension::restoreAttributes(reader);
if (reader.hasAttribute("id")) {
Id = reader.getAttributeAsInteger("id");
Id = reader.getAttribute<long>("id");
}
InternalGeometryType = static_cast<InternalType::InternalType>(
reader.getAttributeAsInteger("internalGeometryType"));
InternalGeometryType = reader.getAttribute<InternalType::InternalType>("internalGeometryType");
GeometryModeFlags = GeometryModeFlagType(reader.getAttribute("geometryModeFlags"));
GeometryModeFlags = GeometryModeFlagType(reader.getAttribute<const char*>("geometryModeFlags"));
if (reader.hasAttribute("geometryLayer")) {
GeometryLayer = reader.getAttributeAsInteger("geometryLayer");
GeometryLayer = reader.getAttribute<long>("geometryLayer");
}
}

View File

@@ -75,7 +75,7 @@ void PropertyVisualLayerList::Restore(Base::XMLReader& reader)
{
reader.readElement("VisualLayerList");
// get the value of my attribute
int count = reader.getAttributeAsInteger("count");
int count = reader.getAttribute<long>("count");
std::vector<VisualLayer> layers;
layers.reserve(count);

View File

@@ -65,7 +65,7 @@ void ViewProviderSketchGeometryExtension::restoreAttributes(Base::XMLReader& rea
Part::GeometryPersistenceExtension::restoreAttributes(reader);
if (reader.hasAttribute("visualLayerId")) {
VisualLayerId = reader.getAttributeAsInteger("visualLayerId");
VisualLayerId = reader.getAttribute<long>("visualLayerId");
}
}

View File

@@ -80,9 +80,9 @@ void VisualLayer::Restore(Base::XMLReader& reader)
{
reader.readElement("VisualLayer");
std::string str = reader.getAttribute("visible");
std::string str = reader.getAttribute<const char*>("visible");
visible = (str == "true");
linePattern = reader.getAttributeAsUnsigned("linePattern");
lineWidth = reader.getAttributeAsFloat("lineWidth");
linePattern = reader.getAttribute<unsigned long>("linePattern");
lineWidth = reader.getAttribute<double>("lineWidth");
}