Merge pull request #15481 from Syres916/Measure_Restrict_Availability
[Measure] Correctly restrict command availability
This commit is contained in:
@@ -21,9 +21,14 @@
|
||||
|
||||
#include "PreCompiled.h"
|
||||
|
||||
#include <App/Document.h>
|
||||
#include <Gui/Application.h>
|
||||
#include <Gui/Command.h>
|
||||
#include <Gui/Control.h>
|
||||
#include <Gui/MainWindow.h>
|
||||
#include <Gui/MDIView.h>
|
||||
#include <Gui/View3DInventor.h>
|
||||
#include <Gui/View3DInventorViewer.h>
|
||||
|
||||
#include "TaskMeasure.h"
|
||||
|
||||
@@ -55,15 +60,21 @@ 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 =
|
||||
dynamic_cast<Gui::View3DInventor *>(view)->getViewer();
|
||||
return !viewer->isEditing();
|
||||
}
|
||||
return false;
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
void CreateMeasureCommands() {
|
||||
Gui::CommandManager& rcCmdMgr = Gui::Application::Instance->commandManager();
|
||||
|
||||
|
||||
Reference in New Issue
Block a user