diff options
| author | Leifa <26681464+TrickyLeifa@users.noreply.github.com> | 2024-07-09 12:52:41 +0200 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2024-07-09 12:52:41 +0200 |
| commit | 8a98de8cb3500afb9f25ccd11664b90b3f4c3799 (patch) | |
| tree | ea844dedd831749ba2451786b9ca882aa74c2996 | |
| parent | 81ca470c0cafe6a2533c3d26bf3275fd40434cab (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.cpp | 10 |
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(); |
