Preserve True/Projected state on save/restore
This commit is contained in:
@@ -250,7 +250,7 @@ void QGIViewDimension::updateView(bool update)
|
||||
return;
|
||||
TechDraw::DrawViewDimension *dim = dynamic_cast<TechDraw::DrawViewDimension*>(getViewObject());
|
||||
|
||||
std::vector<App::DocumentObject *> refs = dim->References.getValues();
|
||||
std::vector<App::DocumentObject *> refs = dim->References2D.getValues();
|
||||
|
||||
QGIDatumLabel *dLabel = dynamic_cast<QGIDatumLabel *>(datumLabel);
|
||||
|
||||
@@ -327,7 +327,7 @@ void QGIViewDimension::draw()
|
||||
TechDraw::DrawViewDimension *dim = dynamic_cast<TechDraw::DrawViewDimension *>(getViewObject());
|
||||
if((!dim) || //nothing to draw, don't try
|
||||
(!dim->isDerivedFrom(TechDraw::DrawViewDimension::getClassTypeId())) ||
|
||||
(!dim->hasReferences()) ) {
|
||||
(!dim->has2DReferences()) ) {
|
||||
return;
|
||||
}
|
||||
|
||||
@@ -351,8 +351,8 @@ void QGIViewDimension::draw()
|
||||
Base::Vector3d lblCenter(lbl->X(), lbl->Y(), 0);
|
||||
|
||||
//we always draw based on Projected geometry.
|
||||
//const std::vector<App::DocumentObject*> &objects = dim->References.getValues();
|
||||
const std::vector<std::string> &SubNames = dim->References.getSubValues();
|
||||
//const std::vector<App::DocumentObject*> &objects = dim->References2D.getValues();
|
||||
const std::vector<std::string> &SubNames = dim->References2D.getSubValues();
|
||||
|
||||
const char *dimType = dim->Type.getValueAsString();
|
||||
|
||||
@@ -360,7 +360,7 @@ void QGIViewDimension::draw()
|
||||
strcmp(dimType, "DistanceX") == 0 ||
|
||||
strcmp(dimType, "DistanceY") == 0) {
|
||||
Base::Vector3d distStart, distEnd;
|
||||
if((dim->References.getValues().size() == 1) &&
|
||||
if((dim->References2D.getValues().size() == 1) &&
|
||||
(DrawUtil::getGeomTypeFromName(SubNames[0]) == "Edge")) {
|
||||
int idx = DrawUtil::getIndexFromName(SubNames[0]);
|
||||
TechDrawGeometry::BaseGeom* geom = refObj->getProjEdgeByIndex(idx);
|
||||
@@ -378,7 +378,7 @@ void QGIViewDimension::draw()
|
||||
} else {
|
||||
throw Base::Exception("FVD::draw - Original edge not found or is invalid type (1)");
|
||||
}
|
||||
} else if(dim->References.getValues().size() == 2 &&
|
||||
} else if(dim->References2D.getValues().size() == 2 &&
|
||||
DrawUtil::getGeomTypeFromName(SubNames[0]) == "Vertex" &&
|
||||
DrawUtil::getGeomTypeFromName(SubNames[1]) == "Vertex") {
|
||||
int idx0 = DrawUtil::getIndexFromName(SubNames[0]);
|
||||
@@ -393,7 +393,7 @@ void QGIViewDimension::draw()
|
||||
}
|
||||
distStart = Base::Vector3d (v0->pnt.fX, v0->pnt.fY, 0.);
|
||||
distEnd = Base::Vector3d (v1->pnt.fX, v1->pnt.fY, 0.);
|
||||
} else if(dim->References.getValues().size() == 2 &&
|
||||
} else if(dim->References2D.getValues().size() == 2 &&
|
||||
DrawUtil::getGeomTypeFromName(SubNames[0]) == "Edge" &&
|
||||
DrawUtil::getGeomTypeFromName(SubNames[1]) == "Edge") {
|
||||
int idx0 = DrawUtil::getIndexFromName(SubNames[0]);
|
||||
@@ -599,7 +599,7 @@ void QGIViewDimension::draw()
|
||||
Base::Vector3d lblCenter(label->X(), label->Y(), 0);
|
||||
double radius;
|
||||
|
||||
if(dim->References.getValues().size() == 1 &&
|
||||
if(dim->References2D.getValues().size() == 1 &&
|
||||
DrawUtil::getGeomTypeFromName(SubNames[0]) == "Edge") {
|
||||
int idx = DrawUtil::getIndexFromName(SubNames[0]);
|
||||
TechDrawGeometry::BaseGeom *geom = refObj->getProjEdgeByIndex(idx);
|
||||
@@ -864,7 +864,7 @@ void QGIViewDimension::draw()
|
||||
|
||||
Base::Vector3d pointOnCurve,curveCenter;
|
||||
double radius;
|
||||
if(dim->References.getValues().size() == 1 &&
|
||||
if(dim->References2D.getValues().size() == 1 &&
|
||||
DrawUtil::getGeomTypeFromName(SubNames[0]) == "Edge") {
|
||||
int idx = DrawUtil::getIndexFromName(SubNames[0]);
|
||||
TechDrawGeometry::BaseGeom* geom = refObj->getProjEdgeByIndex(idx);
|
||||
@@ -974,7 +974,7 @@ void QGIViewDimension::draw()
|
||||
|
||||
} else if(strcmp(dimType, "Angle") == 0) {
|
||||
// Only use two straight line edeges for angle
|
||||
if(dim->References.getValues().size() == 2 &&
|
||||
if(dim->References2D.getValues().size() == 2 &&
|
||||
DrawUtil::getGeomTypeFromName(SubNames[0]) == "Edge" &&
|
||||
DrawUtil::getGeomTypeFromName(SubNames[1]) == "Edge") {
|
||||
int idx0 = DrawUtil::getIndexFromName(SubNames[0]);
|
||||
|
||||
Reference in New Issue
Block a user