aboutsummaryrefslogtreecommitdiff
path: root/src/animationlayer.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/animationlayer.cpp')
-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();