pencil icon indicating copy to clipboard operation
pencil copied to clipboard

[UX][BUG] Interface Slider Behaviour

Open Jose-Moreno opened this issue 8 years ago • 11 comments

--Issue Overview--

There are two problems that I think are related. First the sliders lag behind the cursor motion, which in itself feels more like a performance problem of the app itself. Second is that instead of dragging the slider button, if you click over the slider "line" you can make the slider button move left or right, but the size of the tool won't change, and it will only update after you click again over the slider button.

--Video Demo-- https://www.youtube.com/watch?v=TGRKTc0llZM&feature=youtu.be

--Steps to reproduce--

A) Slider Lag

  1. Open Pencil2D
  2. Select a tool that has a slider to change it's parameters (i.e Pencil size slider)
  3. Click and drag the slider. It will lag behind the actual cursor movement.

B) Slider focus bug

  1. Select a tool that has a slider to change it's parameters (i.e Pencil size slider)
  2. click & drag the slider button. The size number of the tool changes in real time
  3. Click over the slider "line" and watch the slider button move after each click. However the size won't be affected by this.
  4. Wherever the slider button is click over it again, and the size number will update itself, as well as the tool size relative to the current position of the slider button.

--Expected Results (A & B)-- Sliders should update in real-time. Sliders should update the tool size instantly at the point where the user clicks. Maybe allowing the slider button to move to the place where the user clicked will allow to solve this issue rapidly, since it seems that the slider button is the one that bridges the behaviour for updating the parameters.

--System Information-- Pencil2D Nightly Build 15 Jan 2016 / Nightly Build 16 Feb 2016 (Run & built with Qt Creator 3.4.2 based on Qt 5.5.0) Windows 7 64bits SP1 ATI Radeon HD 6770 1GB AMD Phenom II X4 965 BE 3.4 GHZ 4 GB RAM

Jose-Moreno avatar Feb 16 '16 21:02 Jose-Moreno

Hmm interesting, i'm not experiencing any lag on the slider when i'm moving it back and forth, however.. your second issue, where the slider doesn't change until you drag it, that i can confirm. This have been working in an older build, maybe before i implemented the spinbox to the slider... I'll look into that.

MrStevns avatar Feb 17 '16 10:02 MrStevns

@CandyFace Could the slider lag be related to how Qt libraries work in windows? maybe it's a CPU threading problem? I wonder. I have yet to test this in Linux to see if it's less noticeable.

Jose-Moreno avatar Feb 19 '16 17:02 Jose-Moreno

@Jose-Moreno do you still experience lag with the slider?

MrStevns avatar Apr 11 '17 12:04 MrStevns

@CandyFace Let me build the latest code and i'll get back to you as soon as I can.

Also thanks for taking the time to review all the issues. I haven't had enough time to do it and I'm out of sync with recent changes. :face_with_head_bandage:

Jose-Moreno avatar Apr 11 '17 15:04 Jose-Moreno

@CandyFace Just tested with latest code. I still experience Case A (slider Lag). On the other hand Case B was somewhat solved: Now if you click over the slider "line" the slider button will move incrementally towards the place where your cursor is. The pattern they seem to have implemented was the size increments by 1, 6, 10, 14, 18, 22, 26, 30, 34, and so on until you reach the maximum size of 200 units. This is not what I had in mind (the slider should go to the absolute position of where you click), but i guess it works for now.

Jose-Moreno avatar Apr 12 '17 02:04 Jose-Moreno

The slider behavior for Case B is determined by your operating system. For example, on mac the button will jump straight to the absolute position when you press.

scribblemaniac avatar Apr 12 '17 02:04 scribblemaniac

Thanks @Jose-Moreno :)

Since both behaviors seems to be Windows related, it's hard for me to debug them. @scribblemaniac even if that's true, it should be possible to force the same behavior. http://stackoverflow.com/questions/11132597/qslider-mouse-direct-jump. The solution with QStyle looks rather easy to implement.

MrStevns avatar Apr 12 '17 07:04 MrStevns

This issue doesn't happen in the latest nightly build anymore. Can you confirm @Jose-Moreno?

chchwy avatar Dec 17 '17 11:12 chchwy

@chchwy I had forgotten about this issue. I'll review on the latest build, and close this issue when I confirm it. Thanks for reminding me!

Jose-Moreno avatar Dec 17 '17 15:12 Jose-Moreno

@chchwy Ok I finally got to re-test this. So according to the video there are two parts of the issue. First part is still there (slider delay) the other one is kind of fixed, since clicking on an empty part of the slider will at least bring the slider towards the cursor changing the value. However it is reasonably to think that the slider should change to the value directly under the cursor. I believe this is more of a user experience kind of issue rather than a critical problem that would impede the user to work though.

Jose-Moreno avatar Dec 24 '17 00:12 Jose-Moreno

[2018 Review] @chchwy @CandyFace This remains unchanged from my last comment. If you don't mind add a UX label to this issue as it's non-critical for most use cases. I'll update the title accordingly as well.

Jose-Moreno avatar Jun 16 '18 15:06 Jose-Moreno