From 11ad76b82ee7cd31c570c07efaa40b417d78d231 Mon Sep 17 00:00:00 2001 From: WandererFan Date: Mon, 5 Mar 2018 15:11:47 -0500 Subject: [PATCH] Fix Bad View Position on Add to Clip --- src/Mod/TechDraw/App/DrawViewClip.cpp | 21 ++++++++----------- src/Mod/TechDraw/App/DrawViewClip.h | 5 +++-- src/Mod/TechDraw/Gui/QGIViewClip.cpp | 18 +++------------- src/Mod/TechDraw/Gui/ViewProviderViewClip.cpp | 3 ++- 4 files changed, 17 insertions(+), 30 deletions(-) diff --git a/src/Mod/TechDraw/App/DrawViewClip.cpp b/src/Mod/TechDraw/App/DrawViewClip.cpp index 969a49b2e9..4b72116e2d 100644 --- a/src/Mod/TechDraw/App/DrawViewClip.cpp +++ b/src/Mod/TechDraw/App/DrawViewClip.cpp @@ -25,15 +25,10 @@ #include "PreCompiled.h" #ifndef _PreComp_ -# include + #endif - -#include #include -#include -#include -#include #include "DrawViewClip.h" #include "DrawPage.h" @@ -55,8 +50,8 @@ DrawViewClip::DrawViewClip(void) static const char *group = "Clip Group"; //App::PropertyType hidden = (App::PropertyType)(App::Prop_Hidden); - ADD_PROPERTY_TYPE(Height ,(10),group,App::Prop_None,"The height of the view area of this clip"); - ADD_PROPERTY_TYPE(Width ,(10),group,App::Prop_None,"The width of the view area of this clip"); + ADD_PROPERTY_TYPE(Height ,(100),group,App::Prop_None,"The height of the view area of this clip"); + ADD_PROPERTY_TYPE(Width ,(100),group,App::Prop_None,"The width of the view area of this clip"); ADD_PROPERTY_TYPE(ShowFrame ,(0) ,group,App::Prop_None,"Specifies if the clip frame appears on the page or not"); ADD_PROPERTY_TYPE(ShowLabels ,(0) ,group,App::Prop_None,"Specifies if View labels appear within the clip area"); ADD_PROPERTY_TYPE(Views ,(0) ,group,App::Prop_None,"The Views in this Clip group"); @@ -83,7 +78,10 @@ void DrawViewClip::addView(DrawView *view) std::vector newViews(currViews); newViews.push_back(view); Views.setValues(newViews); - Views.touch(); + view->X.setValue(Width.getValue()/2.0); + view->Y.setValue(Height.getValue()/2.0); + auto page = findParentPage(); //get Page to release child relationship in tree + page->Views.touch(); } void DrawViewClip::removeView(DrawView *view) @@ -98,7 +96,6 @@ void DrawViewClip::removeView(DrawView *view) } } Views.setValues(newViews); - touch(); } App::DocumentObjectExecReturn *DrawViewClip::execute(void) @@ -111,10 +108,10 @@ App::DocumentObjectExecReturn *DrawViewClip::execute(void) for (std::vector::iterator it = children.begin(); it != children.end(); ++it) { if ((*it)->getTypeId().isDerivedFrom(DrawView::getClassTypeId())) { TechDraw::DrawView *view = static_cast(*it); - view->touch(); + view->requestPaint(); } } - + requestPaint(); return DrawView::execute(); } diff --git a/src/Mod/TechDraw/App/DrawViewClip.h b/src/Mod/TechDraw/App/DrawViewClip.h index d8ad88c3bf..856d626c39 100644 --- a/src/Mod/TechDraw/App/DrawViewClip.h +++ b/src/Mod/TechDraw/App/DrawViewClip.h @@ -29,6 +29,7 @@ #include #include #include +#include #include #include "DrawView.h" @@ -45,8 +46,8 @@ public: DrawViewClip(void); virtual ~DrawViewClip(); - App::PropertyFloat Width; - App::PropertyFloat Height; + App::PropertyLength Width; + App::PropertyLength Height; App::PropertyBool ShowFrame; App::PropertyBool ShowLabels; App::PropertyLinkList Views; diff --git a/src/Mod/TechDraw/Gui/QGIViewClip.cpp b/src/Mod/TechDraw/Gui/QGIViewClip.cpp index 3c795038ba..6978d7c97e 100644 --- a/src/Mod/TechDraw/Gui/QGIViewClip.cpp +++ b/src/Mod/TechDraw/Gui/QGIViewClip.cpp @@ -23,23 +23,10 @@ #include "PreCompiled.h" #ifndef _PreComp_ -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include #include // std::find +#include #endif -#include - #include #include #include @@ -90,7 +77,8 @@ void QGIViewClip::updateView(bool update) viewClip->isTouched() || viewClip->Height.isTouched() || viewClip->Width.isTouched() || - viewClip->ShowFrame.isTouched()) { + viewClip->ShowFrame.isTouched() || + viewClip->Views.isTouched() ) { draw(); } diff --git a/src/Mod/TechDraw/Gui/ViewProviderViewClip.cpp b/src/Mod/TechDraw/Gui/ViewProviderViewClip.cpp index 698e6eabac..f37628c6fd 100644 --- a/src/Mod/TechDraw/Gui/ViewProviderViewClip.cpp +++ b/src/Mod/TechDraw/Gui/ViewProviderViewClip.cpp @@ -63,7 +63,8 @@ void ViewProviderViewClip::updateData(const App::Property* prop) if (prop == &(getViewObject()->Height) || prop == &(getViewObject()->Width) || prop == &(getViewObject()->ShowFrame) || - prop == &(getViewObject()->ShowLabels) ) { + prop == &(getViewObject()->ShowLabels) || + prop == &(getViewObject()->Views) ) { // redraw QGIVP QGIView* qgiv = getQView(); if (qgiv) {