From a0250a7be35823d03e762770eb20e57cf184c83e Mon Sep 17 00:00:00 2001 From: wandererfan Date: Thu, 25 Apr 2019 13:44:17 -0400 Subject: [PATCH] Fix Error messages for bad references --- src/Mod/TechDraw/App/DrawViewDimension.cpp | 27 ++++++++++++++++++---- 1 file changed, 23 insertions(+), 4 deletions(-) diff --git a/src/Mod/TechDraw/App/DrawViewDimension.cpp b/src/Mod/TechDraw/App/DrawViewDimension.cpp index 13e59fac08..02b934296c 100644 --- a/src/Mod/TechDraw/App/DrawViewDimension.cpp +++ b/src/Mod/TechDraw/App/DrawViewDimension.cpp @@ -153,7 +153,7 @@ void DrawViewDimension::onChanged(const App::Property* prop) if (!isRestoring()) { if (prop == &MeasureType) { if (MeasureType.isValue("True") && !measurement->has3DReferences()) { - Base::Console().Warning("Dimension %s missing Reference to 3D model. Must be Projected.\n", getNameInDocument()); + Base::Console().Warning("%s has no 3D References but is Type: True\n", getNameInDocument()); MeasureType.setValue("Projected"); } } @@ -216,12 +216,24 @@ App::DocumentObjectExecReturn *DrawViewDimension::execute(void) //any empty Reference2D?? if (!has2DReferences()) { //too soon? + if (isRestoring() || + getDocument()->testStatus(App::Document::Status::Restoring)) { + return App::DocumentObject::StdReturn; + } else { + Base::Console().Warning("%s has no 2D References\n", getNameInDocument()); + } return App::DocumentObject::StdReturn; } //can't do anything until Source has geometry if (!getViewPart()->hasGeometry()) { //happens when loading saved document - return App::DocumentObject::StdReturn; + if (isRestoring() || + getDocument()->testStatus(App::Document::Status::Restoring)) { + return App::DocumentObject::StdReturn; + } else { + Base::Console().Warning("%s - target has no geometry\n", getNameInDocument()); + return App::DocumentObject::StdReturn; + } } //now we can check if Reference2ds have valid targets. @@ -560,7 +572,13 @@ double DrawViewDimension::getDimValue() { // Base::Console().Message("DVD::getDimValue()\n"); double result = 0.0; - if (!has2DReferences()) { //happens during Dimension creation + if (!has2DReferences()) { //too soon? + if (isRestoring() || + getDocument()->testStatus(App::Document::Status::Restoring)) { + return result; + } else { + Base::Console().Warning("%s has no 2D References\n", getNameInDocument()); + } return result; } @@ -571,6 +589,7 @@ double DrawViewDimension::getDimValue() if (MeasureType.isValue("True")) { // True Values if (!measurement->has3DReferences()) { + Base::Console().Warning("%s - True dimension has no 3D References\n", getNameInDocument()); return result; } if ( Type.isValue("Distance") || @@ -589,7 +608,7 @@ double DrawViewDimension::getDimValue() } else { // Projected Values if (!checkReferences2D()) { - Base::Console().Warning("Error: DVD::getDimValue - %s - 2D references are corrupt\n",getNameInDocument()); + Base::Console().Warning("DVD::getDimValue - %s - 2D references are corrupt\n",getNameInDocument()); return result; } if ( Type.isValue("Distance") ||