From 131c34cf9e263c2d7ceb0768a633600edf0ce995 Mon Sep 17 00:00:00 2001 From: WandererFan Date: Wed, 20 Jul 2016 12:40:24 -0400 Subject: [PATCH] Center new view on Page/ClipGroup --- src/Mod/TechDraw/App/DrawPage.cpp | 8 ++++++++ src/Mod/TechDraw/App/DrawView.cpp | 5 +---- src/Mod/TechDraw/Gui/Command.cpp | 20 -------------------- 3 files changed, 9 insertions(+), 24 deletions(-) diff --git a/src/Mod/TechDraw/App/DrawPage.cpp b/src/Mod/TechDraw/App/DrawPage.cpp index de21a766d..694033a28 100644 --- a/src/Mod/TechDraw/App/DrawPage.cpp +++ b/src/Mod/TechDraw/App/DrawPage.cpp @@ -237,11 +237,19 @@ int DrawPage::addView(App::DocumentObject *docObj) if(!docObj->isDerivedFrom(TechDraw::DrawView::getClassTypeId())) return -1; + //position all new views in center of Page (exceptDVDimension) + DrawView* view = dynamic_cast(docObj); + if (!docObj->isDerivedFrom(TechDraw::DrawViewDimension::getClassTypeId())) { + view->X.setValue(getPageWidth()/2.0); + view->Y.setValue(getPageHeight()/2.0); + } + const std::vector currViews = Views.getValues(); std::vector newViews(currViews); newViews.push_back(docObj); Views.setValues(newViews); Views.touch(); + return Views.getSize(); } diff --git a/src/Mod/TechDraw/App/DrawView.cpp b/src/Mod/TechDraw/App/DrawView.cpp index 68e7d6370..caad7ad96 100644 --- a/src/Mod/TechDraw/App/DrawView.cpp +++ b/src/Mod/TechDraw/App/DrawView.cpp @@ -58,9 +58,8 @@ const char* DrawView::ScaleTypeEnums[]= {"Document", PROPERTY_SOURCE(TechDraw::DrawView, App::DocumentObject) - - DrawView::DrawView(void) + : autoPos(true) { static const char *group = "Drawing view"; ADD_PROPERTY_TYPE(X ,(0),group,App::Prop_None,"X position of the view on the page in modelling units (mm)"); @@ -73,8 +72,6 @@ DrawView::DrawView(void) if (isRestoring()) { autoPos = false; - } else { - autoPos = true; } } diff --git a/src/Mod/TechDraw/Gui/Command.cpp b/src/Mod/TechDraw/Gui/Command.cpp index 00f61bde1..46ceb89db 100644 --- a/src/Mod/TechDraw/Gui/Command.cpp +++ b/src/Mod/TechDraw/Gui/Command.cpp @@ -164,11 +164,8 @@ void CmdTechDrawNewPageDef::activated(int iMsg) Gui::WaitCursor wc; openCommand("Drawing create page"); doCommand(Doc,"App.activeDocument().addObject('TechDraw::DrawPage','%s')",PageName.c_str()); - - // Create the Template Object to attach to the page doCommand(Doc,"App.activeDocument().addObject('TechDraw::DrawSVGTemplate','%s')",TemplateName.c_str()); - //TODO: why is "Template" property set twice? doCommand(Doc,"App.activeDocument().%s.Template = '%s'",TemplateName.c_str(), templateFileName.toStdString().c_str()); doCommand(Doc,"App.activeDocument().%s.Template = App.activeDocument().%s",PageName.c_str(),TemplateName.c_str()); @@ -307,16 +304,12 @@ void CmdTechDrawNewView::activated(int iMsg) Gui::WaitCursor wc; const std::vector selectedProjections = getSelection().getObjectsOfType(TechDraw::DrawView::getClassTypeId()); - float newX = 10.0; - float newY = 10.0; float newScale = 1.0; float newRotation = 0.0; Base::Vector3d newDirection(0.0, 0.0, 1.0); if (!selectedProjections.empty()) { const TechDraw::DrawView* const myView = dynamic_cast(selectedProjections.front()); - newX = myView->X.getValue(); - newY = myView->Y.getValue(); newScale = myView->Scale.getValue(); newRotation = myView->Rotation.getValue(); @@ -335,8 +328,6 @@ void CmdTechDrawNewView::activated(int iMsg) doCommand(Doc,"App.activeDocument().addObject('TechDraw::DrawViewPart','%s')",FeatName.c_str()); doCommand(Doc,"App.activeDocument().%s.Source = App.activeDocument().%s",FeatName.c_str(),(*it)->getNameInDocument()); doCommand(Doc,"App.activeDocument().%s.Direction = (%e,%e,%e)",FeatName.c_str(), newDirection.x, newDirection.y, newDirection.z); - doCommand(Doc,"App.activeDocument().%s.X = %e",FeatName.c_str(), newX); - doCommand(Doc,"App.activeDocument().%s.Y = %e",FeatName.c_str(), newY); doCommand(Doc,"App.activeDocument().%s.Scale = %e",FeatName.c_str(), newScale); doCommand(Doc,"App.activeDocument().%s.Rotation = %e",FeatName.c_str(), newRotation); doCommand(Doc,"App.activeDocument().%s.addView(App.activeDocument().%s)",PageName.c_str(),FeatName.c_str()); @@ -390,10 +381,6 @@ void CmdTechDrawNewViewSection::activated(int iMsg) std::string FeatName = getUniqueObjectName("Section"); doCommand(Doc,"App.activeDocument().addObject('TechDraw::DrawViewSection','%s')",FeatName.c_str()); doCommand(Doc,"App.activeDocument().%s.Source = App.activeDocument().%s",FeatName.c_str(),(*it)->getNameInDocument()); - doCommand(Doc,"App.activeDocument().%s.Direction = (0.0,0.0,1.0)",FeatName.c_str()); - doCommand(Doc,"App.activeDocument().%s.X = 10.0",FeatName.c_str()); - doCommand(Doc,"App.activeDocument().%s.Y = 10.0",FeatName.c_str()); - doCommand(Doc,"App.activeDocument().%s.Scale = 1.0",FeatName.c_str()); doCommand(Doc,"App.activeDocument().%s.addView(App.activeDocument().%s)",PageName.c_str(),FeatName.c_str()); } updateActive(); @@ -446,9 +433,6 @@ void CmdTechDrawProjGroup::activated(int iMsg) std::string SourceName = (*shapes.begin())->getNameInDocument(); doCommand(Doc,"App.activeDocument().addObject('TechDraw::DrawProjGroup','%s')",multiViewName.c_str()); doCommand(Doc,"App.activeDocument().%s.Source = App.activeDocument().%s",multiViewName.c_str(),SourceName.c_str()); - doCommand(Doc,"App.activeDocument().%s.X = %f", multiViewName.c_str(), page->getPageWidth() / 2); - doCommand(Doc,"App.activeDocument().%s.Y = %f", multiViewName.c_str(), page->getPageHeight() / 2); - doCommand(Doc,"App.activeDocument().%s.Scale = 1.0",multiViewName.c_str()); App::DocumentObject *docObj = getDocument()->getObject(multiViewName.c_str()); TechDraw::DrawProjGroup *multiView = dynamic_cast(docObj); @@ -506,8 +490,6 @@ void CmdTechDrawAnnotation::activated(int iMsg) std::string FeatName = getUniqueObjectName("Annotation"); openCommand("Create Annotation"); doCommand(Doc,"App.activeDocument().addObject('TechDraw::DrawViewAnnotation','%s')",FeatName.c_str()); - doCommand(Doc,"App.activeDocument().%s.X = 10.0",FeatName.c_str()); - doCommand(Doc,"App.activeDocument().%s.Y = 10.0",FeatName.c_str()); doCommand(Doc,"App.activeDocument().%s.addView(App.activeDocument().%s)",PageName.c_str(),FeatName.c_str()); updateActive(); commitCommand(); @@ -748,8 +730,6 @@ void CmdTechDrawSymbol::activated(int iMsg) doCommand(Doc,"svg = f.read()"); doCommand(Doc,"f.close()"); doCommand(Doc,"App.activeDocument().addObject('TechDraw::DrawViewSymbol','%s')",FeatName.c_str()); - doCommand(Doc,"App.activeDocument().%s.X = 10.0",FeatName.c_str()); - doCommand(Doc,"App.activeDocument().%s.Y = 10.0",FeatName.c_str()); doCommand(Doc,"App.activeDocument().%s.Symbol = svg",FeatName.c_str()); doCommand(Doc,"App.activeDocument().%s.addView(App.activeDocument().%s)",PageName.c_str(),FeatName.c_str()); updateActive();