MeasureGui: Insert measure command into menu & toolbar
This commit is contained in:
@@ -37,6 +37,7 @@
|
||||
#include "ViewProviderMeasureAngle.h"
|
||||
#include "ViewProviderMeasureDistance.h"
|
||||
#include "ViewProviderMeasureBase.h"
|
||||
#include "WorkbenchManipulator.h"
|
||||
|
||||
|
||||
// use a different name to CreateCommand()
|
||||
@@ -86,6 +87,9 @@ PyMOD_INIT_FUNC(MeasureGui)
|
||||
PyObject* mod = MeasureGui::initModule();
|
||||
Base::Console().Log("Loading GUI of Measure module... done\n");
|
||||
|
||||
auto manip = std::make_shared<MeasureGui::WorkbenchManipulator>();
|
||||
Gui::WorkbenchManipulator::installManipulator(manip);
|
||||
|
||||
// instantiating the commands
|
||||
CreateMeasureCommands();
|
||||
|
||||
|
||||
@@ -59,8 +59,8 @@ SET(MeasureGui_SRCS
|
||||
ViewProviderMeasureAngle.h
|
||||
ViewProviderMeasureDistance.cpp
|
||||
ViewProviderMeasureDistance.h
|
||||
# Workbench.cpp
|
||||
# Workbench.h
|
||||
WorkbenchManipulator.cpp
|
||||
WorkbenchManipulator.h
|
||||
DlgPrefsMeasureAppearanceImp.ui
|
||||
DlgPrefsMeasureAppearanceImp.cpp
|
||||
DlgPrefsMeasureAppearanceImp.h
|
||||
|
||||
50
src/Mod/Measure/Gui/WorkbenchManipulator.cpp
Normal file
50
src/Mod/Measure/Gui/WorkbenchManipulator.cpp
Normal file
@@ -0,0 +1,50 @@
|
||||
/***************************************************************************
|
||||
* Copyright (c) 2024 David Friedli <david[at]friedli-be.ch> *
|
||||
* *
|
||||
* This file is part of FreeCAD. *
|
||||
* *
|
||||
* FreeCAD is free software: you can redistribute it and/or modify it *
|
||||
* under the terms of the GNU Lesser General Public License as *
|
||||
* published by the Free Software Foundation, either version 2.1 of the *
|
||||
* License, or (at your option) any later version. *
|
||||
* *
|
||||
* FreeCAD is distributed in the hope that it will be useful, but *
|
||||
* WITHOUT ANY WARRANTY; without even the implied warranty of *
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU *
|
||||
* Lesser General Public License for more details. *
|
||||
* *
|
||||
* You should have received a copy of the GNU Lesser General Public *
|
||||
* License along with FreeCAD. If not, see *
|
||||
* <https://www.gnu.org/licenses/>. *
|
||||
* *
|
||||
**************************************************************************/
|
||||
|
||||
|
||||
#include "PreCompiled.h"
|
||||
#include "WorkbenchManipulator.h"
|
||||
#include <Gui/MenuManager.h>
|
||||
#include <Gui/ToolBarManager.h>
|
||||
|
||||
using namespace MeasureGui;
|
||||
|
||||
void WorkbenchManipulator::modifyMenuBar([[maybe_unused]] Gui::MenuItem* menuBar)
|
||||
{
|
||||
auto menuTools = menuBar->findItem("&Tools");
|
||||
if (!menuTools) {
|
||||
return;
|
||||
}
|
||||
auto itemMeasure = new Gui::MenuItem();
|
||||
itemMeasure->setCommand("Std_Measure");
|
||||
menuTools->appendItem(itemMeasure);
|
||||
}
|
||||
|
||||
void WorkbenchManipulator::modifyToolBars(Gui::ToolBarItem* toolBar) {
|
||||
auto tbView = toolBar->findItem("View");
|
||||
if (!tbView) {
|
||||
return;
|
||||
}
|
||||
|
||||
auto itemMeasure = new Gui::ToolBarItem();
|
||||
itemMeasure->setCommand("Std_Measure");
|
||||
tbView->appendItem(itemMeasure);
|
||||
}
|
||||
40
src/Mod/Measure/Gui/WorkbenchManipulator.h
Normal file
40
src/Mod/Measure/Gui/WorkbenchManipulator.h
Normal file
@@ -0,0 +1,40 @@
|
||||
/***************************************************************************
|
||||
* Copyright (c) 2024 David Friedli <david[at]friedli-be.ch> *
|
||||
* *
|
||||
* This file is part of FreeCAD. *
|
||||
* *
|
||||
* FreeCAD is free software: you can redistribute it and/or modify it *
|
||||
* under the terms of the GNU Lesser General Public License as *
|
||||
* published by the Free Software Foundation, either version 2.1 of the *
|
||||
* License, or (at your option) any later version. *
|
||||
* *
|
||||
* FreeCAD is distributed in the hope that it will be useful, but *
|
||||
* WITHOUT ANY WARRANTY; without even the implied warranty of *
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU *
|
||||
* Lesser General Public License for more details. *
|
||||
* *
|
||||
* You should have received a copy of the GNU Lesser General Public *
|
||||
* License along with FreeCAD. If not, see *
|
||||
* <https://www.gnu.org/licenses/>. *
|
||||
* *
|
||||
**************************************************************************/
|
||||
|
||||
|
||||
#ifndef MEASUREGUI_WORKBENCHMANIPULATOR_H
|
||||
#define MEASUREGUI_WORKBENCHMANIPULATOR_H
|
||||
|
||||
#include <Gui/WorkbenchManipulator.h>
|
||||
|
||||
namespace MeasureGui {
|
||||
|
||||
class WorkbenchManipulator: public Gui::WorkbenchManipulator
|
||||
{
|
||||
protected:
|
||||
void modifyMenuBar(Gui::MenuItem* menuBar) override;
|
||||
void modifyToolBars(Gui::ToolBarItem* toolBar) override;
|
||||
};
|
||||
|
||||
} // namespace MeasureGui
|
||||
|
||||
|
||||
#endif // MEASUREGUI_WORKBENCHMANIPULATOR_H
|
||||
Reference in New Issue
Block a user