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); }