Commit 2d6fafe2 authored by Nate Graham's avatar Nate Graham 💤
Browse files

Scale smooth scroll durations according to the global animation speed

Now people who don't like animations can set thenm to "Instant" globally
and smooth scrolling will be effectively disabled off in Okular.

There is no change in speed for people using the default global
animation duration.

BUG: 420755
FIXED-IN: 1.12.0
parent 37bb01c6
......@@ -439,6 +439,13 @@ PageView::PageView(QWidget *parent, Okular::Document *document)
horizontalScrollBar()->setCursor(Qt::ArrowCursor);
horizontalScrollBar()->setSingleStep(20);
// make the smooth scroll animation durations respect the global animation
// scale
KConfigGroup kdeglobalsConfig = KConfigGroup(KSharedConfig::openConfig(), QStringLiteral("KDE"));
const qreal globalAnimationScale = qMax(0.0, kdeglobalsConfig.readEntry("AnimationDurationFactor", 1.0));
d->smoothScrollShortDuration *= globalAnimationScale;
d->smoothScrollLongDuration *= globalAnimationScale;
// connect the padding of the viewport to pixmaps requests
connect(horizontalScrollBar(), &QAbstractSlider::valueChanged, this, &PageView::slotRequestVisiblePixmaps);
connect(verticalScrollBar(), &QAbstractSlider::valueChanged, this, &PageView::slotRequestVisiblePixmaps);
......
  • @ngraham

    I think this is a bad idea.

    First, it doesn't work for people that don't use Plasma Second, the AnimationDurationFactor setting is under "Workspace settings", Okular has nothing to do with the workspace, tying Okular pageview speed to "how fast i like my plasma panels to animate" seems plain wrong.

    I would really like if you reverted this.

  • For people who don't use plasma, there commits are a no-op; there is no change whatsoever.

    The global animation setting is not just for Plasma; it is intended to be global and adopted by apps which have animation effects. It already affects all animation speeds in QML based apps for example.

    For people who want to turn off the smooth scrolling animation in just Okular or who use it on a non-Plasma platform, I agree that we need an off switch in Okular itself. However the need for that is separate from whether or not the scroll animation speed follows the global speed setting in Plasma. There isn't a use case for a person who turns off animations in the KCM but does want animated scrolling in Okular.

    If you don't like the word "workspace" in that system settings section, we can fix that. The general behavior KCM affects lots of things besides just Plasma.

  • For people who don't use plasma, there commits are a no-op; there is no change whatsoever.

    Which means you should not have closed bug 420755 since the reporter is using Windows

    The global animation setting is not just for Plasma; it is intended to be global and adopted by apps which have animation effects.

    I guess my problem is that I'm not convinced "scrolling speed" should be tied to "animation speed", seems like one would need to be a developer to understand that.

    The "animation speed" affecting how fast the "Welcome to Okular" message fades, i think that's easier to understand.

    But the "animation speed" changing how fast things scroll seems a bit "obscure" to me.

    There isn't a use case for a person who turns off animations in the KCM but does want animated scrolling in Okular.

    I'm not so convinced about that to be honest. I just see them being two different things.

    Edited by Albert Astals Cid
  • Which means you should not have closed bug 420755 since the reporter is using Windows

    Fair enough. I'll re-open it. I guess for that case we will need a setting in Okular itself.

    I guess my problem is that I'm not convinced "scrolling speed" should be tied to "animation speed",

    It's not the speed of scrolling at all. It's the speed of the animated transition--which is interruptable. You can still scroll as fast as you want if you turn your mouse wheel quickly or hold down the arrow or PageDown key for example.

    It makes sense to me, but maybe I'm barking up the wrong tree. Let's ask @teams/vdg as resolving this kind of UX disagreement is what they're for. VDG folks, do you think it makes sense for the speed of animated scroll transitions (e.g. the animation effect when you hit the PageUp/PageDown key in Firefox) to scale according to the global animation speed setting? This means that for example if you set the animation speed to instant, you get no animated scrolling (the view jumps immediately to the new location) and if you set the animation speed to a very slow value, the animated transition takes an agonizingly long time.

  • This is tough. I find myself agreeing with both of you on this issue.

    On one hand, if I'm someone who disables all animations, I may want okular page transitions to be disabled automatically.

    However, if I'm someone who merely reduces the durations of animations via the global animation speed slider because I think the minimize/restore/maximize animations are too slow, I'm not sure if I'd want Okular to have faster page transitions because it's already quite snappy.

    I'm leaning more towards having it respect the global animation speed, but I think the global animation slider is kind of problematic. It makes it harder to pin down places where the animation speed is too slow since people can just speed up the animations without reporting it, but it also has the ability to make some animations too fast to the point that they look buggy. Having the option to disable animations completely should be kept though.

  • Yes we're planning to add an option to disable Okular's own smooth scrolling animations into its config window.

Markdown is supported
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