diff --git a/src/Mod/TechDraw/App/Preferences.cpp b/src/Mod/TechDraw/App/Preferences.cpp index 7373ea9b00..2a8f035388 100644 --- a/src/Mod/TechDraw/App/Preferences.cpp +++ b/src/Mod/TechDraw/App/Preferences.cpp @@ -589,3 +589,7 @@ int Preferences::BreakType() } +bool Preferences::useCameraDirection() +{ + return getPreferenceGroup("General")->GetBool("UseCameraDirection", false); +} diff --git a/src/Mod/TechDraw/App/Preferences.h b/src/Mod/TechDraw/App/Preferences.h index 822286025f..4e683f122b 100644 --- a/src/Mod/TechDraw/App/Preferences.h +++ b/src/Mod/TechDraw/App/Preferences.h @@ -135,6 +135,8 @@ public: static int BreakType(); static bool useExactMatchOnDims(); + + static bool useCameraDirection(); }; diff --git a/src/Mod/TechDraw/Gui/DlgPrefsTechDrawGeneral.ui b/src/Mod/TechDraw/Gui/DlgPrefsTechDrawGeneral.ui index 5ac1b539e6..240fdc883c 100644 --- a/src/Mod/TechDraw/Gui/DlgPrefsTechDrawGeneral.ui +++ b/src/Mod/TechDraw/Gui/DlgPrefsTechDrawGeneral.ui @@ -6,8 +6,8 @@ 0 0 - 546 - 897 + 547 + 915 @@ -993,6 +993,52 @@ for ProjectionGroups + + + + + 0 + 0 + + + + View Defaults + + + + + + + + + 0 + 0 + + + + + true + + + + If checked, the 3d camera direction (or normal of a selected face) will be used as the view direction. If not checked, Views will be created as Front Views. + + + Use 3d Camera Direction + + + UseCameraDirection + + + /Mod/TechDraw/General + + + + + + + + @@ -1009,19 +1055,6 @@ for ProjectionGroups - - - - Qt::Vertical - - - - 20 - 40 - - - - diff --git a/src/Mod/TechDraw/Gui/DlgPrefsTechDrawGeneralImp.cpp b/src/Mod/TechDraw/Gui/DlgPrefsTechDrawGeneralImp.cpp index 035335db46..0e6bde7f44 100644 --- a/src/Mod/TechDraw/Gui/DlgPrefsTechDrawGeneralImp.cpp +++ b/src/Mod/TechDraw/Gui/DlgPrefsTechDrawGeneralImp.cpp @@ -76,6 +76,8 @@ void DlgPrefsTechDrawGeneralImp::saveSettings() ui->psb_GridSpacing->onSave(); ui->cbMultiSelection->onSave(); + + ui->cb_useCameraDirection->onSave(); } void DlgPrefsTechDrawGeneralImp::loadSettings() @@ -118,6 +120,8 @@ void DlgPrefsTechDrawGeneralImp::loadSettings() bool multiSelectionDefault = PreferencesGui::multiSelection(); ui->cbMultiSelection->setChecked(multiSelectionDefault); ui->cbMultiSelection->onRestore(); + + ui->cb_useCameraDirection->onRestore(); } /** diff --git a/src/Mod/TechDraw/Gui/TaskProjGroup.cpp b/src/Mod/TechDraw/Gui/TaskProjGroup.cpp index 8ea92df7e8..fdabe5546e 100644 --- a/src/Mod/TechDraw/Gui/TaskProjGroup.cpp +++ b/src/Mod/TechDraw/Gui/TaskProjGroup.cpp @@ -55,6 +55,7 @@ #include #include #include +#include #include "DrawGuiUtil.h" #include "TaskProjGroup.h" @@ -119,8 +120,8 @@ TaskProjGroup::TaskProjGroup(TechDraw::DrawView* featView, bool mode) : connect(ui->butDownRotate, &QPushButton::clicked, this, &TaskProjGroup::rotateButtonClicked); connect(ui->butLeftRotate, &QPushButton::clicked, this, &TaskProjGroup::rotateButtonClicked); connect(ui->butCCWRotate, &QPushButton::clicked, this, &TaskProjGroup::rotateButtonClicked); - connect(ui->butFront, &QPushButton::clicked, this, &TaskProjGroup::rotateButtonClicked); - connect(ui->butCam, &QPushButton::clicked, this, &TaskProjGroup::rotateButtonClicked); + connect(ui->butFront, &QPushButton::clicked, this, &TaskProjGroup::rotateButtonClicked); + connect(ui->butCam, &QPushButton::clicked, this, &TaskProjGroup::rotateButtonClicked); connect(ui->lePrimary, &QPushButton::clicked, this, &TaskProjGroup::customDirectionClicked); @@ -155,6 +156,11 @@ TaskProjGroup::TaskProjGroup(TechDraw::DrawView* featView, bool mode) : m_mdi = dvp->getMDIViewPage(); setUiPrimary(); + if (Preferences::useCameraDirection()) { + ui->butCam->setChecked(true); + } else { + ui->butFront->setChecked(true); + } saveGroupState(); } diff --git a/src/Mod/TechDraw/Gui/TaskProjGroup.ui b/src/Mod/TechDraw/Gui/TaskProjGroup.ui index 5ebbf221cd..98a97cb407 100644 --- a/src/Mod/TechDraw/Gui/TaskProjGroup.ui +++ b/src/Mod/TechDraw/Gui/TaskProjGroup.ui @@ -256,7 +256,7 @@ - :/icons/view-front.svg + :/icons/TechDraw_ProjFront.svg @@ -265,6 +265,15 @@ 24 + + true + + + true + + + true + @@ -307,6 +316,12 @@ 24 + + true + + + true + @@ -608,7 +623,7 @@ using the given X/Y Spacing - + 0 @@ -624,13 +639,13 @@ using the given X/Y Spacing Horizontal space between border of projections - + false - + 0.000000000000000 @@ -655,7 +670,7 @@ using the given X/Y Spacing - + 0 @@ -671,13 +686,13 @@ using the given X/Y Spacing Vertical space between border of projections - + false - + 0.000000000000000