From 23de5b7083b4557daac32bf8dd916c599d0c0870 Mon Sep 17 00:00:00 2001 From: Syres916 <46537884+Syres916@users.noreply.github.com> Date: Wed, 17 Jul 2024 14:43:09 +0100 Subject: [PATCH 1/2] [Measure] Correctly restrict availability --- src/Mod/Measure/Gui/Command.cpp | 22 ++++++++++++++++------ 1 file changed, 16 insertions(+), 6 deletions(-) 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(); From a9d690d6d083517e7b76d36c99d3de42530ba6eb Mon Sep 17 00:00:00 2001 From: Syres916 <46537884+Syres916@users.noreply.github.com> Date: Wed, 17 Jul 2024 18:18:13 +0100 Subject: [PATCH 2/2] [Measure] Fix Lint Feedback --- src/Mod/Measure/Gui/Command.cpp | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/src/Mod/Measure/Gui/Command.cpp b/src/Mod/Measure/Gui/Command.cpp index 412f8475f7..7a572250b0 100644 --- a/src/Mod/Measure/Gui/Command.cpp +++ b/src/Mod/Measure/Gui/Command.cpp @@ -61,14 +61,15 @@ void StdCmdMeasure::activated(int iMsg) } bool StdCmdMeasure::isActive() { - App::Document *doc = App::GetApplication().getActiveDocument(); - if (!doc || doc->countObjectsOfType(App::GeoFeature::getClassTypeId()) == 0) + App::Document* doc = App::GetApplication().getActiveDocument(); + if (!doc || doc->countObjectsOfType(App::GeoFeature::getClassTypeId()) == 0) { return false; + } Gui::MDIView *view = Gui::getMainWindow()->activeWindow(); if (view && view->isDerivedFrom(Gui::View3DInventor::getClassTypeId())) { Gui::View3DInventorViewer *viewer = - static_cast(view)->getViewer(); + dynamic_cast(view)->getViewer(); return !viewer->isEditing(); } return false;