From d512d68ec47492cc0dae80331649d2183234677f Mon Sep 17 00:00:00 2001 From: Rexbas Date: Mon, 29 Jan 2024 20:04:41 +0100 Subject: [PATCH 1/2] Gui: Set default navigation animation duration to 500 ms --- src/Gui/PreferencePackTemplates/View.cfg | 2 +- src/Gui/PreferencePages/DlgSettingsNavigation.ui | 2 +- src/Gui/View3DInventorViewer.cpp | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) 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..35db6d8efd 100644 --- a/src/Gui/View3DInventorViewer.cpp +++ b/src/Gui/View3DInventorViewer.cpp @@ -3406,7 +3406,7 @@ void View3DInventorViewer::startAnimation(const SbRotation& orientation, if (duration < 0) { duration = App::GetApplication() .GetParameterGroupByPath("User parameter:BaseApp/Preferences/View") - ->GetInt("AnimationDuration", 250); + ->GetInt("AnimationDuration", 500); } auto animation = std::make_shared( From 7cfb4b10e50b2424e3630aa84232c2b34bb34c5e Mon Sep 17 00:00:00 2001 From: Rexbas Date: Tue, 30 Jan 2024 20:04:59 +0100 Subject: [PATCH 2/2] Gui: Add easing to navigation animations --- src/Gui/NavigationAnimation.cpp | 3 ++- src/Gui/NavigationAnimation.h | 2 +- src/Gui/View3DInventorViewer.cpp | 6 +++++- 3 files changed, 8 insertions(+), 3 deletions(-) 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/View3DInventorViewer.cpp b/src/Gui/View3DInventorViewer.cpp index 35db6d8efd..62322b8683 100644 --- a/src/Gui/View3DInventorViewer.cpp +++ b/src/Gui/View3DInventorViewer.cpp @@ -3409,8 +3409,12 @@ void View3DInventorViewer::startAnimation(const SbRotation& orientation, ->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); }