From d4b5a079d930c6ee033b721ae2c9e61f0adbcf37 Mon Sep 17 00:00:00 2001 From: Yorik van Havre Date: Thu, 3 May 2012 16:04:48 -0300 Subject: [PATCH] Refined Drawing::FeatureViewAnnotation + Now goes inside an existing page automatically + Supports Rotation value --- src/Mod/Drawing/App/FeatureViewAnnotation.cpp | 11 +++++------ src/Mod/Drawing/Gui/Command.cpp | 19 +++++++++++++++++-- 2 files changed, 22 insertions(+), 8 deletions(-) diff --git a/src/Mod/Drawing/App/FeatureViewAnnotation.cpp b/src/Mod/Drawing/App/FeatureViewAnnotation.cpp index 50d78add53..b8624c28b1 100644 --- a/src/Mod/Drawing/App/FeatureViewAnnotation.cpp +++ b/src/Mod/Drawing/App/FeatureViewAnnotation.cpp @@ -66,21 +66,20 @@ App::DocumentObjectExecReturn *FeatureViewAnnotation::execute(void) hg << hex << setfill('0') << setw(2) << (int)(255.0*c.g); hb << hex << setfill('0') << setw(2) << (int)(255.0*c.b); - result << "" << endl + << "" << endl; int index=0; for (std::vector::const_iterator it = Text.getValues().begin(); it != Text.getValues().end(); ++it) { - result << "" << it->c_str() << "" << endl; + result << "" << it->c_str() << "" << endl; index++; } - result << "" << endl; + result << "" << endl << "" << endl; // Apply the resulting fragment ViewResult.setValue(result.str().c_str()); diff --git a/src/Mod/Drawing/Gui/Command.cpp b/src/Mod/Drawing/Gui/Command.cpp index 4da43412c8..2f9345b974 100644 --- a/src/Mod/Drawing/Gui/Command.cpp +++ b/src/Mod/Drawing/Gui/Command.cpp @@ -374,8 +374,23 @@ CmdDrawingAnnotation::CmdDrawingAnnotation() void CmdDrawingAnnotation::activated(int iMsg) { - doCommand(Doc,"AnnotationView = App.activeDocument().addObject(\"Drawing::FeatureViewAnnotation\",\"ViewAnnotation\")"); - doCommand(Doc,"AnnotationView.Scale = 7.0"); + + std::vector pages = this->getDocument()->getObjectsOfType(Drawing::FeaturePage::getClassTypeId()); + if (pages.empty()){ + QMessageBox::warning(Gui::getMainWindow(), QObject::tr("No page to insert"), + QObject::tr("Create a page to insert.")); + return; + } + std::string PageName = pages.front()->getNameInDocument(); + std::string FeatName = getUniqueObjectName("Annotation"); + openCommand("Create Annotation"); + doCommand(Doc,"App.activeDocument().addObject('Drawing::FeatureViewAnnotation','%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.Scale = 7.0",FeatName.c_str()); + doCommand(Doc,"App.activeDocument().%s.addObject(App.activeDocument().%s)",PageName.c_str(),FeatName.c_str()); + updateActive(); + commitCommand(); } bool CmdDrawingAnnotation::isActive(void)