diff --git a/src/Mod/TechDraw/App/DrawProjGroup.cpp b/src/Mod/TechDraw/App/DrawProjGroup.cpp index 78e18fecc5..fa135353b4 100644 --- a/src/Mod/TechDraw/App/DrawProjGroup.cpp +++ b/src/Mod/TechDraw/App/DrawProjGroup.cpp @@ -103,7 +103,6 @@ void DrawProjGroup::onChanged(const App::Property* prop) } } if (prop == &Scale) { -// Base::Console().Message("TRACE - DPG::onChanged(Scale) - %s\n",getNameInDocument()); updateChildren(); } if (prop == &Source) { @@ -111,7 +110,6 @@ void DrawProjGroup::onChanged(const App::Property* prop) } if (prop == &ScaleType) { -// Base::Console().Message("TRACE - DPG::onChanged(ScaleType) - %s\n",getNameInDocument()); double newScale = getScale(); if (ScaleType.isValue("Automatic")) { //Recalculate scale if Group is too big or too small! @@ -134,7 +132,6 @@ void DrawProjGroup::onChanged(const App::Property* prop) App::DocumentObjectExecReturn *DrawProjGroup::execute(void) { -// Base::Console().Message("TRACE - DPG::execute() - %s\n",getNameInDocument()); if (!keepUpdated()) { return App::DocumentObject::StdReturn; } @@ -241,6 +238,7 @@ double DrawProjGroup::calculateAutomaticScale() const width *= bbFudge; height *= bbFudge; + // C++ Standard says casting bool to int gives 0 or 1 int numVertSpaces = (viewPtrs[0] || viewPtrs[3] || viewPtrs[7]) + (viewPtrs[2] || viewPtrs[5] || viewPtrs[9]) + @@ -264,6 +262,7 @@ double DrawProjGroup::calculateAutomaticScale() const Base::Console().Log("DPG - %s - bad scale found (%.3f) using 1.0\n",getNameInDocument(),result); result = 1.0; } + return result; } @@ -286,7 +285,7 @@ void DrawProjGroup::minimumBbViews(DrawProjGroupItem *viewPtrs[10], { // Get bounding boxes in object scale Base::BoundBox3d bboxes[10]; - makeViewBbs(viewPtrs, bboxes, false); + makeViewBbs(viewPtrs, bboxes, true); //TODO: note that TLF/TRF/BLF,BRF extend a bit farther than a strict row/col arrangement would suggest. //get widest view in each row/column diff --git a/src/Mod/TechDraw/App/DrawView.cpp b/src/Mod/TechDraw/App/DrawView.cpp index d772a95f21..4e7d0e7c6f 100644 --- a/src/Mod/TechDraw/App/DrawView.cpp +++ b/src/Mod/TechDraw/App/DrawView.cpp @@ -112,10 +112,7 @@ void DrawView::checkScale(void) void DrawView::onChanged(const App::Property* prop) { if (!isRestoring()) { - if ((this->isDerivedFrom(TechDraw::DrawProjGroupItem::getClassTypeId())) || - (this->isDerivedFrom(TechDraw::DrawProjGroup::getClassTypeId()))) { - //do nothing. DPGI/DPG handles itself - } else if (prop == &ScaleType) { + if (prop == &ScaleType) { auto page = findParentPage(); if (ScaleType.isValue("Page")) { Scale.setStatus(App::Property::ReadOnly,true); @@ -133,18 +130,15 @@ void DrawView::onChanged(const App::Property* prop) } else if ( ScaleType.isValue("Automatic") ) { Scale.setStatus(App::Property::ReadOnly,true); App::GetApplication().signalChangePropertyEditor(Scale); - if (this->isDerivedFrom(TechDraw::DrawProjGroup::getClassTypeId())) { - //do nothing. DPG handles itself - } else { - if (!checkFit(page)) { - double newScale = autoScale(page->getPageWidth(),page->getPageHeight()); - if(std::abs(newScale - getScale()) > FLT_EPSILON) { //stops onChanged/execute loop - Scale.setValue(newScale); - Scale.purgeTouched(); - } + if (!checkFit(page)) { + double newScale = autoScale(page->getPageWidth(),page->getPageHeight()); + if(std::abs(newScale - getScale()) > FLT_EPSILON) { //stops onChanged/execute loop + Scale.setValue(newScale); + Scale.purgeTouched(); } } - } + } +// } } if (prop == &X || //nothing needs to be calculated, just the graphic needs to be shifted. prop == &Y) { diff --git a/src/Mod/TechDraw/Gui/TaskProjGroup.cpp b/src/Mod/TechDraw/Gui/TaskProjGroup.cpp index 37a680bc6f..da58a5301e 100644 --- a/src/Mod/TechDraw/Gui/TaskProjGroup.cpp +++ b/src/Mod/TechDraw/Gui/TaskProjGroup.cpp @@ -231,13 +231,11 @@ void TaskProjGroup::scaleTypeChanged(int index) // Automatic Scale Type // Gui::Command::doCommand(Gui::Command::Doc, "App.activeDocument().%s.ScaleType = '%s'", multiView->getNameInDocument() // , "Automatic"); -// Base::Console().Message("TRACE - TPG::scaleTypeChanged - Auto\n"); //block recompute multiView->ScaleType.setValue("Automatic"); double autoScale = multiView->calculateAutomaticScale(); multiView->Scale.setValue(autoScale); //unblock recompute -// Base::Console().Message("TRACE - TPG::scaleTypeChanged - autoScale: %.3f\n",autoScale); } else if(index == 2) { // Custom Scale Type