diff --git a/src/Gui/NavigationAnimation.cpp b/src/Gui/NavigationAnimation.cpp
index 9b0c9a595c..c1601d5504 100644
--- a/src/Gui/NavigationAnimation.cpp
+++ b/src/Gui/NavigationAnimation.cpp
@@ -44,7 +44,7 @@ void NavigationAnimation::onStop([[maybe_unused]] bool finished)
FixedTimeAnimation::FixedTimeAnimation(NavigationStyle* navigation, const SbRotation& orientation,
const SbVec3f& rotationCenter, const SbVec3f& translation,
- int duration)
+ int duration, const QEasingCurve::Type easingCurve)
: NavigationAnimation(navigation)
, targetOrientation(orientation)
, targetTranslation(translation)
@@ -53,6 +53,7 @@ FixedTimeAnimation::FixedTimeAnimation(NavigationStyle* navigation, const SbRota
setDuration(duration);
setStartValue(0.0);
setEndValue(duration * 1.0);
+ setEasingCurve(easingCurve);
}
void FixedTimeAnimation::initialize()
diff --git a/src/Gui/NavigationAnimation.h b/src/Gui/NavigationAnimation.h
index 6efdae3b42..1308a8e95e 100644
--- a/src/Gui/NavigationAnimation.h
+++ b/src/Gui/NavigationAnimation.h
@@ -60,7 +60,7 @@ class GuiExport FixedTimeAnimation : public NavigationAnimation
public:
explicit FixedTimeAnimation(NavigationStyle* navigation, const SbRotation& orientation,
const SbVec3f& rotationCenter, const SbVec3f& translation,
- int duration);
+ int duration, const QEasingCurve::Type easingCurve);
private:
float angularVelocity; // [rad/ms]
diff --git a/src/Gui/PreferencePackTemplates/View.cfg b/src/Gui/PreferencePackTemplates/View.cfg
index 088f6fe881..a7357e70cb 100644
--- a/src/Gui/PreferencePackTemplates/View.cfg
+++ b/src/Gui/PreferencePackTemplates/View.cfg
@@ -35,7 +35,7 @@
-
+
diff --git a/src/Gui/PreferencePages/DlgSettingsNavigation.ui b/src/Gui/PreferencePages/DlgSettingsNavigation.ui
index 8f8b3c7854..b7057b2dab 100644
--- a/src/Gui/PreferencePages/DlgSettingsNavigation.ui
+++ b/src/Gui/PreferencePages/DlgSettingsNavigation.ui
@@ -773,7 +773,7 @@ Mouse tilting is not disabled by this setting.
50
- 250
+ 500
AnimationDuration
diff --git a/src/Gui/View3DInventorViewer.cpp b/src/Gui/View3DInventorViewer.cpp
index b01142cf9e..62322b8683 100644
--- a/src/Gui/View3DInventorViewer.cpp
+++ b/src/Gui/View3DInventorViewer.cpp
@@ -3406,11 +3406,15 @@ void View3DInventorViewer::startAnimation(const SbRotation& orientation,
if (duration < 0) {
duration = App::GetApplication()
.GetParameterGroupByPath("User parameter:BaseApp/Preferences/View")
- ->GetInt("AnimationDuration", 250);
+ ->GetInt("AnimationDuration", 500);
}
+ QEasingCurve::Type easingCurve = static_cast(App::GetApplication()
+ .GetParameterGroupByPath("User parameter:BaseApp/Preferences/View")
+ ->GetInt("NavigationAnimationEasingCurve", QEasingCurve::Type::InOutCubic));
+
auto animation = std::make_shared(
- navigation, orientation, rotationCenter, translation, duration);
+ navigation, orientation, rotationCenter, translation, duration, easingCurve);
navigation->startAnimating(animation, wait);
}