From 1b52a517bfea438b54d4ceb37b2ac505057ed189 Mon Sep 17 00:00:00 2001 From: Ian Rees Date: Fri, 25 Mar 2016 23:49:46 +1300 Subject: [PATCH] Disable commands when no active document. --- src/Mod/TechDraw/Gui/Command.cpp | 46 ++++++++++++++----- src/Mod/TechDraw/Gui/CommandCreateDims.cpp | 53 +++++++++++++++++++--- src/Mod/TechDraw/Gui/CommandDecorate.cpp | 16 ++++++- 3 files changed, 94 insertions(+), 21 deletions(-) diff --git a/src/Mod/TechDraw/Gui/Command.cpp b/src/Mod/TechDraw/Gui/Command.cpp index 566069b81..81dac0cd2 100644 --- a/src/Mod/TechDraw/Gui/Command.cpp +++ b/src/Mod/TechDraw/Gui/Command.cpp @@ -84,7 +84,7 @@ bool isDrawingPageActive(Gui::Document *doc) // TechDraw_NewPageDef (default template) //=========================================================================== -DEF_STD_CMD(CmdTechDrawNewPageDef); +DEF_STD_CMD_A(CmdTechDrawNewPageDef); CmdTechDrawNewPageDef::CmdTechDrawNewPageDef() : Command("TechDraw_NewPageDef") @@ -143,11 +143,16 @@ void CmdTechDrawNewPageDef::activated(int iMsg) } } +bool CmdTechDrawNewPageDef::isActive(void) +{ + return hasActiveDocument(); +} + //=========================================================================== // TechDraw_NewPage (with template choice) //=========================================================================== -DEF_STD_CMD(CmdTechDrawNewPage); +DEF_STD_CMD_A(CmdTechDrawNewPage); CmdTechDrawNewPage::CmdTechDrawNewPage() : Command("TechDraw_NewPage") @@ -219,11 +224,16 @@ void CmdTechDrawNewPage::activated(int iMsg) } } +bool CmdTechDrawNewPage::isActive(void) +{ + return hasActiveDocument(); +} + //=========================================================================== // TechDraw_NewView //=========================================================================== -DEF_STD_CMD(CmdTechDrawNewView); +DEF_STD_CMD_A(CmdTechDrawNewView); CmdTechDrawNewView::CmdTechDrawNewView() : Command("TechDraw_NewView") @@ -301,11 +311,18 @@ void CmdTechDrawNewView::activated(int iMsg) updateActive(); commitCommand(); } + +bool CmdTechDrawNewView::isActive(void) +{ + // TODO: Also ensure that there's a part selected? + return hasActiveDocument(); +} + //=========================================================================== // TechDraw_NewViewSection //=========================================================================== -DEF_STD_CMD(CmdTechDrawNewViewSection); +DEF_STD_CMD_A(CmdTechDrawNewViewSection); CmdTechDrawNewViewSection::CmdTechDrawNewViewSection() : Command("TechDraw_NewViewSection") @@ -354,6 +371,11 @@ void CmdTechDrawNewViewSection::activated(int iMsg) commitCommand(); } +bool CmdTechDrawNewViewSection::isActive(void) +{ + // TODO: Also ensure that there's a part selected? + return hasActiveDocument(); +} //=========================================================================== // TechDraw_ProjGroup @@ -433,7 +455,7 @@ void CmdTechDrawProjGroup::activated(int iMsg) bool CmdTechDrawProjGroup::isActive(void) { - if (Gui::Control().activeDialog()) + if ( !hasActiveDocument() || Gui::Control().activeDialog()) return false; return true; } @@ -479,7 +501,7 @@ void CmdTechDrawAnnotation::activated(int iMsg) bool CmdTechDrawAnnotation::isActive(void) { - return (getActiveGuiDocument() ? true : false); + return hasActiveDocument(); } @@ -527,7 +549,7 @@ void CmdTechDrawClip::activated(int iMsg) bool CmdTechDrawClip::isActive(void) { - return (getActiveGuiDocument() ? true : false); + return hasActiveDocument(); } //=========================================================================== @@ -597,7 +619,7 @@ void CmdTechDrawClipPlus::activated(int iMsg) bool CmdTechDrawClipPlus::isActive(void) { - return (getActiveGuiDocument() ? true : false); + return hasActiveDocument(); } //=========================================================================== @@ -666,7 +688,7 @@ void CmdTechDrawClipMinus::activated(int iMsg) bool CmdTechDrawClipMinus::isActive(void) { - return (getActiveGuiDocument() ? true : false); + return hasActiveDocument(); } @@ -721,7 +743,7 @@ void CmdTechDrawSymbol::activated(int iMsg) bool CmdTechDrawSymbol::isActive(void) { - return (getActiveGuiDocument() ? true : false); + return hasActiveDocument(); } //=========================================================================== @@ -779,7 +801,7 @@ void CmdTechDrawDraftView::activated(int iMsg) bool CmdTechDrawDraftView::isActive(void) { - return (getActiveGuiDocument() ? true : false); + return hasActiveDocument(); } @@ -838,7 +860,7 @@ void CmdTechDrawExportPage::activated(int iMsg) bool CmdTechDrawExportPage::isActive(void) { - return (getActiveGuiDocument() ? true : false); + return hasActiveDocument(); } diff --git a/src/Mod/TechDraw/Gui/CommandCreateDims.cpp b/src/Mod/TechDraw/Gui/CommandCreateDims.cpp index 47fcd0d99..361b53b57 100644 --- a/src/Mod/TechDraw/Gui/CommandCreateDims.cpp +++ b/src/Mod/TechDraw/Gui/CommandCreateDims.cpp @@ -79,7 +79,7 @@ enum EdgeType{ // TechDraw_NewDimension //=========================================================================== -DEF_STD_CMD(CmdTechDrawNewDimension); +DEF_STD_CMD_A(CmdTechDrawNewDimension); CmdTechDrawNewDimension::CmdTechDrawNewDimension() : Command("TechDraw_NewDimension") @@ -199,11 +199,17 @@ void CmdTechDrawNewDimension::activated(int iMsg) objFeat->X.setValue(x); } +bool CmdTechDrawNewDimension::isActive(void) +{ + // TODO: Also ensure that there's a part selected? + return hasActiveDocument(); +} + //=========================================================================== // TechDraw_NewRadiusDimension //=========================================================================== -DEF_STD_CMD(CmdTechDrawNewRadiusDimension); +DEF_STD_CMD_A(CmdTechDrawNewRadiusDimension); CmdTechDrawNewRadiusDimension::CmdTechDrawNewRadiusDimension() : Command("TechDraw_NewRadiusDimension") @@ -279,11 +285,17 @@ void CmdTechDrawNewRadiusDimension::activated(int iMsg) objFeat->X.setValue(x); } +bool CmdTechDrawNewRadiusDimension::isActive(void) +{ + // TODO: Also ensure that there's a part selected? + return hasActiveDocument(); +} + //=========================================================================== // TechDraw_NewDiameterDimension //=========================================================================== -DEF_STD_CMD(CmdTechDrawNewDiameterDimension); +DEF_STD_CMD_A(CmdTechDrawNewDiameterDimension); CmdTechDrawNewDiameterDimension::CmdTechDrawNewDiameterDimension() : Command("TechDraw_NewDiameterDimension") @@ -360,12 +372,17 @@ void CmdTechDrawNewDiameterDimension::activated(int iMsg) objFeat->X.setValue(x); } +bool CmdTechDrawNewDiameterDimension::isActive(void) +{ + // TODO: Also ensure that there's a part selected? + return hasActiveDocument(); +} //=========================================================================== // TechDraw_NewLengthDimension //=========================================================================== -DEF_STD_CMD(CmdTechDrawNewLengthDimension); +DEF_STD_CMD_A(CmdTechDrawNewLengthDimension); CmdTechDrawNewLengthDimension::CmdTechDrawNewLengthDimension() : Command("TechDraw_NewLengthDimension") @@ -448,11 +465,17 @@ void CmdTechDrawNewLengthDimension::activated(int iMsg) objFeat->X.setValue(x); } +bool CmdTechDrawNewLengthDimension::isActive(void) +{ + // TODO: Also ensure that there's a part selected? + return hasActiveDocument(); +} + //=========================================================================== // TechDraw_NewDistanceXDimension //=========================================================================== -DEF_STD_CMD(CmdTechDrawNewDistanceXDimension); +DEF_STD_CMD_A(CmdTechDrawNewDistanceXDimension); CmdTechDrawNewDistanceXDimension::CmdTechDrawNewDistanceXDimension() : Command("TechDraw_NewDistanceXDimension") @@ -533,12 +556,17 @@ void CmdTechDrawNewDistanceXDimension::activated(int iMsg) objFeat->X.setValue(x); } +bool CmdTechDrawNewDistanceXDimension::isActive(void) +{ + // TODO: Also ensure that there's a part selected? + return hasActiveDocument(); +} //=========================================================================== // TechDraw_NewDistanceYDimension //=========================================================================== -DEF_STD_CMD(CmdTechDrawNewDistanceYDimension); +DEF_STD_CMD_A(CmdTechDrawNewDistanceYDimension); CmdTechDrawNewDistanceYDimension::CmdTechDrawNewDistanceYDimension() : Command("TechDraw_NewDistanceYDimension") @@ -618,12 +646,17 @@ void CmdTechDrawNewDistanceYDimension::activated(int iMsg) objFeat->X.setValue(x); } +bool CmdTechDrawNewDistanceYDimension::isActive(void) +{ + // TODO: Also ensure that there's a part selected? + return hasActiveDocument(); +} //=========================================================================== // TechDraw_NewAngleDimension //=========================================================================== -DEF_STD_CMD(CmdTechDrawNewAngleDimension); +DEF_STD_CMD_A(CmdTechDrawNewAngleDimension); CmdTechDrawNewAngleDimension::CmdTechDrawNewAngleDimension() : Command("TechDraw_NewAngleDimension") @@ -693,6 +726,12 @@ void CmdTechDrawNewAngleDimension::activated(int iMsg) objFeat->X.setValue(x); } +bool CmdTechDrawNewAngleDimension::isActive(void) +{ + // TODO: Also ensure that there's a part selected? + return hasActiveDocument(); +} + void CreateTechDrawCommandsDims(void) { Gui::CommandManager &rcCmdMgr = Gui::Application::Instance->commandManager(); diff --git a/src/Mod/TechDraw/Gui/CommandDecorate.cpp b/src/Mod/TechDraw/Gui/CommandDecorate.cpp index 11e5a4dfb..36c30c3f9 100644 --- a/src/Mod/TechDraw/Gui/CommandDecorate.cpp +++ b/src/Mod/TechDraw/Gui/CommandDecorate.cpp @@ -62,7 +62,7 @@ bool _checkSelectionHatch(Gui::Command* cmd); // TechDraw_NewHatch //=========================================================================== -DEF_STD_CMD(CmdTechDrawNewHatch); +DEF_STD_CMD_A(CmdTechDrawNewHatch); CmdTechDrawNewHatch::CmdTechDrawNewHatch() : Command("TechDraw_NewHatch") @@ -120,11 +120,17 @@ void CmdTechDrawNewHatch::activated(int iMsg) objFeat->X.setValue(x); } +bool CmdTechDrawNewHatch::isActive(void) +{ + // TODO: Also ensure that there's a part selected? + return hasActiveDocument(); +} + //=========================================================================== // TechDraw_ToggleFrame //=========================================================================== -DEF_STD_CMD(CmdTechDrawToggleFrame); +DEF_STD_CMD_A(CmdTechDrawToggleFrame); CmdTechDrawToggleFrame::CmdTechDrawToggleFrame() : Command("TechDraw_ToggleFrame") @@ -173,6 +179,12 @@ void CmdTechDrawToggleFrame::activated(int iMsg) } } +bool CmdTechDrawToggleFrame::isActive(void) +{ + // TODO: Also ensure that there's a page displayed? + return hasActiveDocument(); +} + void CreateTechDrawCommandsDecorate(void) { Gui::CommandManager &rcCmdMgr = Gui::Application::Instance->commandManager();