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