diff --git a/src/Mod/Measure/Gui/Command.cpp b/src/Mod/Measure/Gui/Command.cpp index b5ef15e6fe..412f8475f7 100644 --- a/src/Mod/Measure/Gui/Command.cpp +++ b/src/Mod/Measure/Gui/Command.cpp @@ -21,9 +21,14 @@ #include "PreCompiled.h" +#include #include #include #include +#include +#include +#include +#include #include "TaskMeasure.h" @@ -55,15 +60,20 @@ void StdCmdMeasure::activated(int iMsg) Gui::Control().showDialog(task); } +bool StdCmdMeasure::isActive() { + App::Document *doc = App::GetApplication().getActiveDocument(); + if (!doc || doc->countObjectsOfType(App::GeoFeature::getClassTypeId()) == 0) + return false; -bool StdCmdMeasure::isActive() -{ - return true; + Gui::MDIView *view = Gui::getMainWindow()->activeWindow(); + if (view && view->isDerivedFrom(Gui::View3DInventor::getClassTypeId())) { + Gui::View3DInventorViewer *viewer = + static_cast(view)->getViewer(); + return !viewer->isEditing(); + } + return false; } - - - void CreateMeasureCommands() { Gui::CommandManager& rcCmdMgr = Gui::Application::Instance->commandManager();