From 8c45bef57c19a2e224444db6ce352eb1b8662488 Mon Sep 17 00:00:00 2001 From: donovaly Date: Thu, 26 Mar 2020 01:40:46 +0100 Subject: [PATCH] [TD] add missing repaints for DrawView - this enables to see e.g. changes of the rotation of all kinds of views directly - also fix a bug, see https://forum.freecadweb.org/viewtopic.php?f=35&t=44571 --- src/Mod/TechDraw/App/DrawProjGroup.cpp | 10 +++++----- src/Mod/TechDraw/App/DrawView.cpp | 9 +++++++++ 2 files changed, 14 insertions(+), 5 deletions(-) diff --git a/src/Mod/TechDraw/App/DrawProjGroup.cpp b/src/Mod/TechDraw/App/DrawProjGroup.cpp index 33abf5829a..c63dd05d3c 100644 --- a/src/Mod/TechDraw/App/DrawProjGroup.cpp +++ b/src/Mod/TechDraw/App/DrawProjGroup.cpp @@ -424,12 +424,12 @@ App::DocumentObject * DrawProjGroup::addProjection(const char *viewProjType) throw Base::TypeError("Error: new projection is not a DPGI!"); } if (view != nullptr) { //coverity CID 151722 + // the label must be set before the view is added + view->Label.setValue(viewProjType); addView(view); //from DrawViewCollection - view->Source.setValues( Source.getValues() ); - view->Scale.setValue( getScale() ); - view->Type.setValue( viewProjType ); - view->Label.setValue( viewProjType ); - view->Source.setValues( Source.getValues() ); + view->Source.setValues(Source.getValues()); + // the Scale is already set by DrawView + view->Type.setValue(viewProjType); if (strcmp(viewProjType, "Front") != 0 ) { //not Front! vecs = getDirsFromFront(view); view->Direction.setValue(vecs.first); diff --git a/src/Mod/TechDraw/App/DrawView.cpp b/src/Mod/TechDraw/App/DrawView.cpp index 85f7c47125..8302613477 100644 --- a/src/Mod/TechDraw/App/DrawView.cpp +++ b/src/Mod/TechDraw/App/DrawView.cpp @@ -144,6 +144,15 @@ void DrawView::onChanged(const App::Property* prop) handleXYLock(); LockPosition.purgeTouched(); } + if ((prop == &Caption) || + (prop == &Label)) { + requestPaint(); + } // rotation and scaling requires recompute + else if ((prop == &Rotation) || + (prop == &Scale) || + (prop == &ScaleType)) { + recompute(); + } } App::DocumentObject::onChanged(prop); }