From a19eaf201e6c57290098b9c707a2f404829144aa Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Stefan=20Tr=C3=B6ger?= Date: Fri, 22 May 2015 19:10:04 +0200 Subject: [PATCH] add command for adding a new part note that the icon is a placeholder as currently parts have a system icon which can not be set for commands --- src/Mod/PartDesign/Gui/Command.cpp | 38 ++++++++++++++++++++++++++++ src/Mod/PartDesign/Gui/Workbench.cpp | 6 +++-- 2 files changed, 42 insertions(+), 2 deletions(-) diff --git a/src/Mod/PartDesign/Gui/Command.cpp b/src/Mod/PartDesign/Gui/Command.cpp index dd5484f30..8904d7662 100644 --- a/src/Mod/PartDesign/Gui/Command.cpp +++ b/src/Mod/PartDesign/Gui/Command.cpp @@ -81,6 +81,43 @@ using namespace std; #include "TaskFeaturePick.h" #include "ReferenceSelection.h" + +//=========================================================================== +// PartDesign_Part +//=========================================================================== +DEF_STD_CMD_A(CmdPartDesignPart); + +CmdPartDesignPart::CmdPartDesignPart() + : Command("PartDesign_Part") +{ + sAppModule = "PartDesign"; + sGroup = QT_TR_NOOP("PartDesign"); + sMenuText = QT_TR_NOOP("Create part"); + sToolTipText = QT_TR_NOOP("Create a new part feature"); + sWhatsThis = sToolTipText; + sStatusTip = sToolTipText; + sPixmap = "Tree_Annotation"; +} + +void CmdPartDesignPart::activated(int iMsg) +{ + openCommand("Add a body feature"); + std::string FeatName = getUniqueObjectName("Part"); + + std::string PartName; + PartName = getUniqueObjectName("Part"); + doCommand(Doc,"App.activeDocument().Tip = App.activeDocument().addObject('App::Part','%s')",PartName.c_str()); + doCommand(Doc,"App.activeDocument().ActiveObject.Label = '%s'", QObject::tr(PartName.c_str()).toStdString().c_str()); + PartDesignGui::Workbench::setUpPart(dynamic_cast(getDocument()->getObject(PartName.c_str()))); + + updateActive(); +} + +bool CmdPartDesignPart::isActive(void) +{ + return hasActiveDocument(); +} + //=========================================================================== // PartDesign_Body //=========================================================================== @@ -2011,6 +2048,7 @@ void CreatePartDesignCommands(void) { Gui::CommandManager &rcCmdMgr = Gui::Application::Instance->commandManager(); + rcCmdMgr.addCommand(new CmdPartDesignPart()); rcCmdMgr.addCommand(new CmdPartDesignBody()); rcCmdMgr.addCommand(new CmdPartDesignMoveTip()); diff --git a/src/Mod/PartDesign/Gui/Workbench.cpp b/src/Mod/PartDesign/Gui/Workbench.cpp index 2aee6736e..4d9b6e7a9 100644 --- a/src/Mod/PartDesign/Gui/Workbench.cpp +++ b/src/Mod/PartDesign/Gui/Workbench.cpp @@ -679,7 +679,8 @@ Gui::MenuItem* Workbench::setupMenuBar() const root->insertItem(item, part); part->setCommand("&Part Design"); SketcherGui::addSketcherWorkbenchSketchActions( *part ); - *part << "PartDesign_Body" + *part << "PartDesign_Part" + << "PartDesign_Body" << "PartDesign_NewSketch" << "Sketcher_LeaveSketch" << "Sketcher_ViewSketch" @@ -735,7 +736,8 @@ Gui::ToolBarItem* Workbench::setupToolBars() const Gui::ToolBarItem* part = new Gui::ToolBarItem(root); part->setCommand("Part Design"); // SketcherGui::addSketcherWorkbenchSketchActions( *part ); - *part << "PartDesign_Body" + *part << "PartDesign_Part" + << "PartDesign_Body" << "PartDesign_NewSketch" << "Sketcher_ViewSketch" << "Sketcher_MapSketch"