340 lines
14 KiB
C++
340 lines
14 KiB
C++
/***************************************************************************
|
|
* Copyright (c) 2008 Werner Mayer <wmayer[at]users.sourceforge.net> *
|
|
* *
|
|
* This file is part of the FreeCAD CAx development system. *
|
|
* *
|
|
* This library is free software; you can redistribute it and/or *
|
|
* modify it under the terms of the GNU Library General Public *
|
|
* License as published by the Free Software Foundation; either *
|
|
* version 2 of the License, or (at your option) any later version. *
|
|
* *
|
|
* This library 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 Library General Public License for more details. *
|
|
* *
|
|
* You should have received a copy of the GNU Library General Public *
|
|
* License along with this library; see the file COPYING.LIB. If not, *
|
|
* write to the Free Software Foundation, Inc., 59 Temple Place, *
|
|
* Suite 330, Boston, MA 02111-1307, USA *
|
|
* *
|
|
***************************************************************************/
|
|
|
|
#include "PreCompiled.h"
|
|
|
|
#include <Gui/Application.h>
|
|
#include <Gui/Command.h>
|
|
#include <Gui/Selection.h>
|
|
#include <Gui/ToolBarManager.h>
|
|
|
|
#include "Workbench.h"
|
|
|
|
|
|
using namespace WebGui;
|
|
|
|
#if 0 // needed for Qt's lupdate utility
|
|
qApp->translate("Workbench", "Navigation");
|
|
#endif
|
|
|
|
/// @namespace WebGui @class Workbench
|
|
TYPESYSTEM_SOURCE(WebGui::Workbench, Gui::StdWorkbench)
|
|
|
|
Workbench::Workbench() = default;
|
|
|
|
Workbench::~Workbench() = default;
|
|
|
|
void Workbench::setupContextMenu(const char* recipient, Gui::MenuItem* item) const
|
|
{
|
|
Q_UNUSED(recipient);
|
|
Q_UNUSED(item);
|
|
// if (strcmp(recipient,"View") == 0)
|
|
//{
|
|
// Gui::MenuItem* StdViews = new Gui::MenuItem();
|
|
// StdViews->setCommand( "Standard views" );
|
|
|
|
// *StdViews << "Std_ViewAxo" << "Separator" << "Std_ViewFront" << "Std_ViewTop" <<
|
|
// "Std_ViewRight"
|
|
// << "Std_ViewRear" << "Std_ViewBottom" << "Std_ViewLeft";
|
|
|
|
// *item << "Std_ViewFitAll" << "Std_ViewFitSelection" << StdViews
|
|
// << "Separator" << "Std_ViewDockUndockFullscreen";
|
|
|
|
// if ( Gui::Selection().countObjectsOfType(App::DocumentObject::getClassTypeId()) > 0 )
|
|
// *item << "Separator" << "Std_SetAppearance" << "Std_ToggleVisibility" <<
|
|
// "Std_TreeSelection"
|
|
// << "Std_RandomColor" << "Separator" << "Std_Delete";
|
|
//}
|
|
// else if (strcmp(recipient,"Tree") == 0)
|
|
//{
|
|
// if ( Gui::Selection().countObjectsOfType(App::DocumentObject::getClassTypeId()) > 0 )
|
|
// *item << "Std_SetAppearance" << "Std_ToggleVisibility"
|
|
// << "Std_RandomColor" << "Separator" << "Std_Delete";
|
|
//}
|
|
}
|
|
|
|
Gui::MenuItem* Workbench::setupMenuBar() const
|
|
{
|
|
return Gui::StdWorkbench::setupMenuBar();
|
|
// Gui::CommandManager &mgr = Gui::Application::Instance->commandManager();
|
|
//// Setup the default menu bar
|
|
// Gui::MenuItem* menuBar = new Gui::MenuItem;
|
|
|
|
// // File
|
|
// Gui::MenuItem* file = new Gui::MenuItem( menuBar );
|
|
// file->setCommand("&File");
|
|
// *file << "Std_New" << "Std_Open" << "Separator" << "Std_CloseActiveWindow"
|
|
// << "Std_CloseAllWindows" << "Separator" << "Std_Save" << "Std_SaveAs"
|
|
// << "Separator" << "Std_Import" << "Std_Export" << "Std_ProjectInfo"
|
|
// //<< "Separator" << "Std_Print" << "Std_PrintPdf"
|
|
// << "Separator" << "Std_RecentFiles" << "Separator" << "Std_Quit";
|
|
//
|
|
// // Edit
|
|
// Gui::MenuItem* edit = new Gui::MenuItem( menuBar );
|
|
// edit->setCommand("&Edit");
|
|
// *edit << "Std_Undo" << "Std_Redo" << "Separator" << "Std_Cut" << "Std_Copy"
|
|
// << "Std_Paste" << "Std_DuplicateSelection" << "Separator"
|
|
// << "Std_Refresh" << "Std_SelectAll" << "Std_Delete" << "Std_Placement"
|
|
// << "Separator" << "Std_DlgPreferences";
|
|
//
|
|
// // Standard views
|
|
// Gui::MenuItem* stdviews = new Gui::MenuItem;
|
|
// stdviews->setCommand("Standard views");
|
|
// *stdviews << "Std_ViewFitAll" << "Std_ViewFitSelection" << "Std_ViewAxo"
|
|
// << "Separator" << "Std_ViewFront" << "Std_ViewRight"
|
|
// << "Std_ViewTop" << "Separator" << "Std_ViewRear"
|
|
// << "Std_ViewLeft" << "Std_ViewBottom";
|
|
//
|
|
// // stereo
|
|
// Gui::MenuItem* view3d = new Gui::MenuItem;
|
|
// view3d->setCommand("&Stereo");
|
|
// *view3d << "Std_ViewIvStereoRedGreen" << "Std_ViewIvStereoQuadBuff"
|
|
// << "Std_ViewIvStereoInterleavedRows" << "Std_ViewIvStereoInterleavedColumns"
|
|
// << "Std_ViewIvStereoOff" << "Separator" << "Std_ViewIvIssueCamPos";
|
|
//
|
|
// // zoom
|
|
// Gui::MenuItem* zoom = new Gui::MenuItem;
|
|
// zoom->setCommand("&Zoom");
|
|
// *zoom << "Std_ViewZoomIn" << "Std_ViewZoomOut" << "Separator" << "Std_ViewBoxZoom";
|
|
//
|
|
// // Visibility
|
|
// Gui::MenuItem* visu = new Gui::MenuItem;
|
|
// visu->setCommand("Visibility");
|
|
// *visu << "Std_ToggleVisibility" << "Std_ShowSelection" << "Std_HideSelection"
|
|
// << "Separator" << "Std_ToggleObjects" << "Std_ShowObjects" << "Std_HideObjects";
|
|
//
|
|
// // View
|
|
// Gui::MenuItem* view = new Gui::MenuItem( menuBar );
|
|
// view->setCommand("&View");
|
|
// *view << "Std_ViewCreate" << "Std_OrthographicCamera" << "Std_PerspectiveCamera" <<
|
|
// "Separator"
|
|
// << stdviews << "Std_FreezeViews" << "Separator" << view3d << zoom
|
|
// << "Std_ViewDockUndockFullscreen" << "Std_ToggleClipPlane" << "Separator" << visu
|
|
// << "Std_SetAppearance" << "Std_ToggleVisibility" << "Std_RandomColor" << "Separator"
|
|
// //<< "Std_MeasureDistance" << "Separator"
|
|
// << "Std_Workbench" << "Std_ToolBarMenu" << "Std_DockViewMenu" << "Separator"
|
|
// << "Std_ViewStatusBar" << "Std_UserInterface";
|
|
//
|
|
// // Tools
|
|
// Gui::MenuItem* tool = new Gui::MenuItem( menuBar );
|
|
// tool->setCommand("&Tools");
|
|
// *tool << "Std_CommandLine" << "Std_DlgParameter" << "Separator" << "Std_DlgMacroRecord"
|
|
// << "Std_DlgMacroExecute" << "Std_DlgMacroExecuteDirect"
|
|
// << "Separator" << "Std_ViewScreenShot" << "Separator" << "Std_DlgCustomize";
|
|
//
|
|
// // Mesh
|
|
// ****************************************************************************************************
|
|
// Gui::MenuItem* mesh = new Gui::MenuItem( menuBar );
|
|
//
|
|
// // submenu analyze
|
|
// Gui::MenuItem* analyze = new Gui::MenuItem();
|
|
// analyze->setCommand("Analyze");
|
|
// *analyze << "Mesh_Evaluation"
|
|
// << "Mesh_EvaluateFacet"
|
|
// << "Mesh_CurvatureInfo"
|
|
// << "Separator"
|
|
// << "Mesh_EvaluateSolid"
|
|
// << "Mesh_BoundingBox";
|
|
//
|
|
// // submenu boolean
|
|
// Gui::MenuItem* boolean = new Gui::MenuItem();
|
|
// boolean->setCommand("Boolean");
|
|
// *boolean << "Mesh_Union"
|
|
// << "Mesh_Intersection"
|
|
// << "Mesh_Difference";
|
|
//
|
|
// mesh->setCommand("&Meshes");
|
|
// *mesh << "Mesh_Import"
|
|
// << "Mesh_Export"
|
|
// << "Mesh_FromGeometry"
|
|
// << "Separator"
|
|
// << analyze
|
|
// << "Mesh_HarmonizeNormals"
|
|
// << "Mesh_FlipNormals"
|
|
// << "Separator"
|
|
// << "Mesh_FillupHoles"
|
|
// << "Mesh_FillInteractiveHole"
|
|
// << "Mesh_RemoveComponents"
|
|
// << "Mesh_RemoveCompByHand"
|
|
// << "Separator"
|
|
// << "Mesh_BuildRegularSolid"
|
|
// << boolean << "Separator"
|
|
// << "Mesh_PolyCut"
|
|
// << "Mesh_PolySplit"
|
|
// << "Mesh_PolySegm"
|
|
// << "Mesh_ToolMesh"
|
|
// << "Mesh_VertexCurvature";
|
|
//
|
|
// // Part
|
|
// ****************************************************************************************************
|
|
//
|
|
// Gui::MenuItem* part = new Gui::MenuItem(menuBar);
|
|
// part->setCommand("&Part");
|
|
//
|
|
// // submenu boolean
|
|
// Gui::MenuItem* para = new Gui::MenuItem();
|
|
// para->setCommand("Parametric");
|
|
// *para << "Part_Box"
|
|
// << "Part_Cylinder"
|
|
// << "Part_Sphere"
|
|
// << "Part_Cone"
|
|
// << "Part_Torus"
|
|
// << "Part_Primitives";
|
|
// *part << para
|
|
// << "Part_Boolean"
|
|
// << "Part_Extrude"
|
|
// << "Part_Revolve"
|
|
// << "Part_Fillet";
|
|
//
|
|
// # ifdef WEB_SHOW_SKETCHER
|
|
// if (mgr.getCommandByName("Sketcher_NewSketch")) {
|
|
// Gui::MenuItem* sketch = new Gui::MenuItem(menuBar);
|
|
// sketch->setCommand("Ske&tch");
|
|
// *sketch
|
|
// << "Sketcher_NewSketch"
|
|
// << "Separator"
|
|
// << "PartDesign_Pad"
|
|
// << "PartDesign_Fillet"
|
|
// ;
|
|
// }
|
|
// # endif
|
|
//
|
|
// // Drawing
|
|
// ****************************************************************************************************
|
|
//
|
|
// Gui::MenuItem* drawing = new Gui::MenuItem(menuBar);
|
|
//
|
|
// drawing->setCommand("&Drawing");
|
|
// *drawing
|
|
// << "Drawing_Open"
|
|
// << "Separator"
|
|
// << "Drawing_NewA3Landscape"
|
|
// << "Drawing_NewView"
|
|
// << "Drawing_ExportPage"
|
|
// ;
|
|
//
|
|
// // Drafting
|
|
// ****************************************************************************************************
|
|
// # ifdef WEB_USE_DRAFTING
|
|
// if (mgr.getCommandByName("Draft_Line")) {
|
|
// Gui::MenuItem* Drafting = new Gui::MenuItem(menuBar);
|
|
//
|
|
// Drafting->setCommand("&Drafting");
|
|
// *Drafting
|
|
// << "Draft_SelectPlane"
|
|
// << "Draft_Line"
|
|
// << "Draft_Polyline"
|
|
// << "Draft_Circle"
|
|
// << "Draft_Arc"
|
|
// << "Draft_Rectangle"
|
|
// << "Draft_Text"
|
|
// << "Draft_Dimension"
|
|
// << "Separator"
|
|
// << "Draft_Move"
|
|
// << "Draft_Rotate"
|
|
// << "Draft_Offset"
|
|
// << "Draft_Trimex"
|
|
// << "Draft_Upgrade"
|
|
// << "Draft_Downgrade"
|
|
// << "Draft_Scale"
|
|
// << "Separator"
|
|
// << "Draft_ApplyStyle"
|
|
// ;
|
|
// }
|
|
// # endif
|
|
//
|
|
// // xxx
|
|
// ****************************************************************************************************
|
|
//
|
|
//
|
|
// // Windows
|
|
// Gui::MenuItem* wnd = new Gui::MenuItem( menuBar );
|
|
// wnd->setCommand("&Windows");
|
|
// *wnd << "Std_ActivateNextWindow" << "Std_ActivatePrevWindow" << "Separator"
|
|
// << "Std_TileWindows" << "Std_CascadeWindows" << "Separator"
|
|
// << "Std_WindowsMenu" << "Std_Windows";
|
|
//
|
|
// // help
|
|
// ****************************************************************************************************
|
|
// // Separator
|
|
// Gui::MenuItem* sep = new Gui::MenuItem( menuBar );
|
|
// sep->setCommand( "Separator" );
|
|
//
|
|
// // Help
|
|
// Gui::MenuItem* helpWebsites = new Gui::MenuItem;
|
|
// helpWebsites->setCommand("&Online-help");
|
|
// *helpWebsites << "Std_OnlineHelpWebsite"
|
|
// << "Std_FreeCADWebsite"
|
|
// << "Std_PythonWebsite";
|
|
//
|
|
// Gui::MenuItem* help = new Gui::MenuItem( menuBar );
|
|
// help->setCommand("&Help");
|
|
// *help << "Std_OnlineHelp"
|
|
// << "Std_PythonHelp"
|
|
// << helpWebsites
|
|
// << "Separator"
|
|
// << "Test_Test"
|
|
// << "Separator"
|
|
// << "Std_About"
|
|
// << "Std_AboutQt"
|
|
// << "Separator"
|
|
// << "Std_WhatsThis" ;
|
|
//
|
|
// return menuBar;
|
|
}
|
|
|
|
Gui::ToolBarItem* Workbench::setupToolBars() const
|
|
{
|
|
Gui::ToolBarItem* root = StdWorkbench::setupToolBars();
|
|
|
|
// web navigation toolbar
|
|
Gui::ToolBarItem* navigation = new Gui::ToolBarItem(root);
|
|
navigation->setCommand("Navigation");
|
|
*navigation << "Web_BrowserSetURL"
|
|
<< "Separator"
|
|
<< "Web_OpenWebsite"
|
|
<< "Separator"
|
|
<< "Web_BrowserBack"
|
|
<< "Web_BrowserNext"
|
|
<< "Web_BrowserRefresh"
|
|
<< "Web_BrowserStop"
|
|
<< "Separator"
|
|
<< "Web_BrowserZoomIn"
|
|
<< "Web_BrowserZoomOut";
|
|
|
|
return root;
|
|
}
|
|
|
|
Gui::ToolBarItem* Workbench::setupCommandBars() const
|
|
{
|
|
Gui::ToolBarItem* root = new Gui::ToolBarItem;
|
|
return root;
|
|
}
|
|
|
|
Gui::DockWindowItems* Workbench::setupDockWindows() const
|
|
{
|
|
Gui::DockWindowItems* root = Gui::StdWorkbench::setupDockWindows();
|
|
// root->setVisibility(false); // hide all dock windows by default
|
|
// root->setVisibility("Std_ComboView",true); // except of the combo view
|
|
return root;
|
|
}
|