aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorLeifa <26681464+TrickyLeifa@users.noreply.github.com>2024-07-09 12:52:41 +0200
committerGitHub <noreply@github.com>2024-07-09 12:52:41 +0200
commit8a98de8cb3500afb9f25ccd11664b90b3f4c3799 (patch)
treeea844dedd831749ba2451786b9ca882aa74c2996
parent81ca470c0cafe6a2533c3d26bf3275fd40434cab (diff)
Fix transformation mode for layers (#998)
* Fix transformation mode for layers Resolve #997 * always use smooth transform resampling for stretched images * Used fixed frame size * Run Clang Format over file --------- Co-authored-by: in1tiate <32779090+in1tiate@users.noreply.github.com> Co-authored-by: Salanto <62221668+Salanto@users.noreply.github.com> Co-authored-by: stonedDiscord <Tukz@gmx.de>
-rw-r--r--src/animationlayer.cpp10
1 files changed, 6 insertions, 4 deletions
diff --git a/src/animationlayer.cpp b/src/animationlayer.cpp
index 175ce9ae..9e771246 100644
--- a/src/animationlayer.cpp
+++ b/src/animationlayer.cpp
@@ -229,6 +229,7 @@ void AnimationLayer::calculateFrameGeometry()
{
m_mask_rect = QRect();
m_scaled_frame_size = QSize();
+ m_transformation_mode = m_transformation_mode_hint;
QSize widget_size = size();
if (!widget_size.isValid() || !m_frame_size.isValid())
@@ -239,6 +240,7 @@ void AnimationLayer::calculateFrameGeometry()
if (m_stretch_to_fit)
{
m_scaled_frame_size = widget_size;
+ m_transformation_mode = Qt::SmoothTransformation;
}
else
{
@@ -251,11 +253,11 @@ void AnimationLayer::calculateFrameGeometry()
double scale = double(widget_size.height()) / double(m_scaled_frame_size.height());
m_scaled_frame_size *= scale;
+ }
- if (m_transformation_mode_hint == Qt::FastTransformation)
- {
- m_transformation_mode = scale < 1.0 ? Qt::SmoothTransformation : Qt::FastTransformation;
- }
+ if (m_transformation_mode_hint == Qt::FastTransformation)
+ {
+ m_transformation_mode = widget_size.height() < m_frame_size.height() ? Qt::SmoothTransformation : Qt::FastTransformation;
}
displayCurrentFrame();