From 99585f3a85df58e41c8f7958caa4ccfb1b70432f Mon Sep 17 00:00:00 2001 From: mwganson Date: Thu, 16 Jul 2020 17:54:17 -0500 Subject: [PATCH] [Standard Views] add Home view command. Default shortcut is 'Home' key. Restores camera orientation to current home view, configurable in edit menu -> preferences -> display -> navigation -> New Document Camera Orientation / Home view. --- src/Gui/CommandView.cpp | 29 +++++++++++++++++++++++++++++ src/Gui/DlgSettingsNavigation.ui | 4 ++-- src/Gui/Workbench.cpp | 4 ++-- 3 files changed, 33 insertions(+), 4 deletions(-) diff --git a/src/Gui/CommandView.cpp b/src/Gui/CommandView.cpp index b1cf99eef9..31cd697ef9 100644 --- a/src/Gui/CommandView.cpp +++ b/src/Gui/CommandView.cpp @@ -1115,6 +1115,34 @@ bool StdCmdSetAppearance::isActive(void) #endif } +//=========================================================================== +// Std_ViewHome +//=========================================================================== +DEF_3DV_CMD(StdCmdViewHome) + +StdCmdViewHome::StdCmdViewHome() + : Command("Std_ViewHome") +{ + sGroup = QT_TR_NOOP("Standard-View"); + sMenuText = QT_TR_NOOP("Home"); + sToolTipText = QT_TR_NOOP("Set to default home view"); + sWhatsThis = "Std_ViewHome"; + sStatusTip = QT_TR_NOOP("Set to default home view"); + //sPixmap = "view-home"; + sAccel = "Home"; + eType = Alter3DView; +} + +void StdCmdViewHome::activated(int iMsg) +{ + Q_UNUSED(iMsg); + + auto hGrp = App::GetApplication().GetParameterGroupByPath("User parameter:BaseApp/Preferences/View"); + std::string default_view = hGrp->GetASCII("NewDocumentCameraOrientation","Top"); + doCommand(Command::Gui,"Gui.activeDocument().activeView().viewDefaultOrientation('%s',0)",default_view.c_str()); + doCommand(Command::Gui,"Gui.SendMsgToActiveView(\"ViewFit\")"); +} + //=========================================================================== // Std_ViewBottom //=========================================================================== @@ -3474,6 +3502,7 @@ void CreateViewStdCommands(void) // views rcCmdMgr.addCommand(new StdCmdViewBottom()); + rcCmdMgr.addCommand(new StdCmdViewHome()); rcCmdMgr.addCommand(new StdCmdViewFront()); rcCmdMgr.addCommand(new StdCmdViewLeft()); rcCmdMgr.addCommand(new StdCmdViewRear()); diff --git a/src/Gui/DlgSettingsNavigation.ui b/src/Gui/DlgSettingsNavigation.ui index b85e25f9a4..16e3307d30 100644 --- a/src/Gui/DlgSettingsNavigation.ui +++ b/src/Gui/DlgSettingsNavigation.ui @@ -234,7 +234,7 @@ Turntable: the part will be rotated around the z-axis. - New document camera orientation + New document camera orientation / Home view @@ -253,7 +253,7 @@ Turntable: the part will be rotated around the z-axis. - Camera orientation for new documents + Camera orientation for new documents and Home view diff --git a/src/Gui/Workbench.cpp b/src/Gui/Workbench.cpp index 7c04b71206..1dd2348aa4 100644 --- a/src/Gui/Workbench.cpp +++ b/src/Gui/Workbench.cpp @@ -529,7 +529,7 @@ void StdWorkbench::setupContextMenu(const char* recipient, MenuItem* item) const MenuItem* StdViews = new MenuItem; StdViews->setCommand( "Standard views" ); - *StdViews << "Std_ViewIsometric" << "Separator" << "Std_ViewFront" << "Std_ViewTop" << "Std_ViewRight" + *StdViews << "Std_ViewIsometric" << "Separator" << "Std_ViewHome" << "Std_ViewFront" << "Std_ViewTop" << "Std_ViewRight" << "Std_ViewRear" << "Std_ViewBottom" << "Std_ViewLeft" << "Separator" << "Std_ViewRotateLeft" << "Std_ViewRotateRight"; @@ -599,7 +599,7 @@ MenuItem* StdWorkbench::setupMenuBar() const MenuItem* stdviews = new MenuItem; stdviews->setCommand("Standard views"); *stdviews << "Std_ViewFitAll" << "Std_ViewFitSelection" << axoviews - << "Separator" << "Std_ViewFront" << "Std_ViewTop" + << "Separator" << "Std_ViewHome" << "Std_ViewFront" << "Std_ViewTop" << "Std_ViewRight" << "Separator" << "Std_ViewRear" << "Std_ViewBottom" << "Std_ViewLeft" << "Separator" << "Std_ViewRotateLeft" << "Std_ViewRotateRight";