Commit eef0b72a authored by Peter Penz's avatar Peter Penz
Browse files

Turn off animations if they are globally disabled

Respect the graphicseffect level in the system settings. This will disable
all item-animations if the graphicseffect level is "NoEffect".

The smooth scrolling won't be disabled in this case, but the duration has been
made smaller so that it is not recognized as an animation.

BUG: 289238
FIXED-IN: 4.8.0
parent 538bd372
......@@ -35,7 +35,7 @@ KItemListSmoothScroller::KItemListSmoothScroller(QScrollBar* scrollBar,
m_animation(0)
{
m_animation = new QPropertyAnimation(this);
m_animation->setDuration(300);
m_animation->setDuration(200);
connect(m_animation, SIGNAL(stateChanged(QAbstractAnimation::State,QAbstractAnimation::State)),
this, SLOT(slotAnimationStateChanged(QAbstractAnimation::State,QAbstractAnimation::State)));
......
......@@ -22,16 +22,21 @@
#include "kitemlistview.h"
#include <KDebug>
#include <KGlobalSettings>
#include <QGraphicsWidget>
#include <QPropertyAnimation>
KItemListViewAnimation::KItemListViewAnimation(QObject* parent) :
QObject(parent),
m_animationDuration(200),
m_scrollOrientation(Qt::Vertical),
m_scrollOffset(0),
m_animation()
{
if (KGlobalSettings::graphicEffectsLevel() == KGlobalSettings::NoEffects) {
m_animationDuration = 1;
}
}
KItemListViewAnimation::~KItemListViewAnimation()
......@@ -117,7 +122,6 @@ void KItemListViewAnimation::start(QGraphicsWidget* widget, AnimationType type,
{
stop(widget, type);
const int duration = 200;
QPropertyAnimation* propertyAnim = 0;
switch (type) {
......@@ -128,7 +132,7 @@ void KItemListViewAnimation::start(QGraphicsWidget* widget, AnimationType type,
}
propertyAnim = new QPropertyAnimation(widget, "pos");
propertyAnim->setDuration(duration);
propertyAnim->setDuration(m_animationDuration);
propertyAnim->setEndValue(newPos);
break;
}
......@@ -136,7 +140,7 @@ void KItemListViewAnimation::start(QGraphicsWidget* widget, AnimationType type,
case CreateAnimation: {
propertyAnim = new QPropertyAnimation(widget, "opacity");
propertyAnim->setEasingCurve(QEasingCurve::InQuart);
propertyAnim->setDuration(duration);
propertyAnim->setDuration(m_animationDuration);
propertyAnim->setStartValue(0.0);
propertyAnim->setEndValue(1.0);
break;
......@@ -145,7 +149,7 @@ void KItemListViewAnimation::start(QGraphicsWidget* widget, AnimationType type,
case DeleteAnimation: {
propertyAnim = new QPropertyAnimation(widget, "opacity");
propertyAnim->setEasingCurve(QEasingCurve::OutQuart);
propertyAnim->setDuration(duration);
propertyAnim->setDuration(m_animationDuration);
propertyAnim->setStartValue(1.0);
propertyAnim->setEndValue(0.0);
break;
......@@ -158,7 +162,7 @@ void KItemListViewAnimation::start(QGraphicsWidget* widget, AnimationType type,
}
propertyAnim = new QPropertyAnimation(widget, "size");
propertyAnim->setDuration(duration);
propertyAnim->setDuration(m_animationDuration);
propertyAnim->setEndValue(newSize);
break;
}
......
......@@ -69,6 +69,7 @@ private slots:
private:
enum { AnimationTypeCount = 4 };
int m_animationDuration;
Qt::Orientation m_scrollOrientation;
qreal m_scrollOffset;
QHash<QGraphicsWidget*, QPropertyAnimation*> m_animation[AnimationTypeCount];
......
Supports Markdown
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment