Bug 56837 - Using mouse wheel for changing the volume is confusing
Summary: Using mouse wheel for changing the volume is confusing
Status: RESOLVED FIXED
Alias: None
Product: juk
Classification: Applications
Component: general (show other bugs)
Version: unspecified
Platform: unspecified Linux
: NOR normal
Target Milestone: ---
Assignee: Scott Wheeler
URL:
Keywords:
Depends on:
Blocks:
 
Reported: 2003-04-04 17:14 UTC by Marco Krohn
Modified: 2003-05-16 04:11 UTC (History)
0 users

See Also:
Latest Commit:
Version Fixed In:


Attachments

Note You need to log in before you can comment on or make changes to this bug.
Description Marco Krohn 2003-04-04 17:14:37 UTC
Version:            (using KDE 3.1.9)
Compiler:          gcc version 2.95.4 20011002 (Debian prerelease)
OS:          Linux (i686) release 2.4.20

Very similar to the bug 39175 (for kscd; I am lazy and simply copy the text ;-):

In juk scrolling the volume slider "up" with the mouse wheel moves the volume down (left). Scrolling down turns the volume up. 
 
This is just the opposite of the expected behaviour and also not consistent with kmix the kmix applet, noatun and xmms.

The same thing happens when using the mouse wheel for the "track position" slider.

And again: Juk is great! :-)
Comment 1 Scott Wheeler 2003-04-04 17:55:00 UTC
Subject: Re: Using mouse wheel for changing the volume is confusing

Actually, I think the default behavior is correct and should be kept 
concistant with the rest of KDE.  Doing the same thing as XMMS isn't 
important here.  As for KSCD, I'm CC'ing that bug and to suggest that the 
behavior there be changed back to the KDE/Qt default.

I just ran this by a couple other developers on IRC and they agreed that both 
KSCD and JuK should use the default behavior.

As for KMix and Noatun, those are verticle sliders and as such perform 
differently.

Also, I think right next to the track position slider, which would keep the 
default scroll action, this would be even more confusing.  I'll poll some 
others on this before closing it, however.

Cheers,

-Scott

Comment 2 Marco Krohn 2003-04-04 19:36:49 UTC
Subject: Re:  Using mouse wheel for changing the volume is confusing

On Friday 04 April 2003 17:55, Scott Wheeler wrote:

> Actually, I think the default behavior is correct and should be kept
> concistant with the rest of KDE.  Doing the same thing as XMMS isn't
> important here.  As for KSCD, I'm CC'ing that bug and to suggest that the
> behavior there be changed back to the KDE/Qt default.

do you agree that it is confusing for a user that mouse wheel "up" means 
"reduce volume"? Actually a user does not care if the slider is vertical / 
horizontal etc. "mouser wheel up" = "turn volume up" is simple and should be 
kept among all applications IMVHO (that's why I cited all the other music 
applications like xmms, kmix, noatun and I bet that every Windows application 
will do it the same way).

I understand your point about the horizontal slider, but in this case it is 
counter-intuitive :-(

> Also, I think right next to the track position slider, which would keep the
> default scroll action, this would be even more confusing.  I'll poll some
> others on this before closing it, however.

I'm cc'ing Aaron from the usability project, because I would like to hear his 
opinion about that issue--I hope this is o.k.

Comment 3 Scott Wheeler 2003-04-04 20:03:04 UTC
Subject: Re:  Using mouse wheel for changing the volume is confusing

Quoting Marco Krohn <marco.krohn@gmx.de>: 
 
> I understand your point about the horizontal slider, but in this case it 
> is counter-intuitive :-( 
 
> I'm cc'ing Aaron from the usability project, because I would like to 
> hear his  opinion about that issue--I hope this is o.k. 
 
Yep, he was CC'ed on the last one since that bug was assigned to him.  We've been talking 
about it on IRC. 
 
What we thought would be ideal would be reversing the direction that the mouse wheel works 
on sliders globally, but we'll see if that works out. 
 
Anyway -- more soon. 
 
-Scott 

Comment 4 Scott Wheeler 2003-05-16 04:11:20 UTC
Subject: kdemultimedia/juk

CVS commit by wheeler: 

Broke down and reversed the mouse wheel on volume slider thingie and fixed
a memory leak while I was in there.

CCMAIL:56837-done@bugs.kde.org


  M +21 -4     slideraction.cpp   1.19


--- kdemultimedia/juk/slideraction.cpp  #1.18:1.19
@@ -45,9 +45,26 @@ protected:
     void mousePressEvent(QMouseEvent *e) {
         if(e->button() == LeftButton) {
-            QSlider::mousePressEvent(new QMouseEvent(QEvent::MouseButtonPress, e->pos(), MidButton, e->state())); 
+            QMouseEvent reverse(QEvent::MouseButtonPress, e->pos(), MidButton, e->state());
+            QSlider::mousePressEvent(&reverse); 
             emit sliderPressed();
         }
-        else if(e->button() == MidButton)
-            QSlider::mousePressEvent(new QMouseEvent(QEvent::MouseButtonPress, e->pos(), LeftButton, e->state()));
+        else if(e->button() == MidButton) {
+            QMouseEvent reverse(QEvent::MouseButtonPress, e->pos(), LeftButton, e->state());
+            QSlider::mousePressEvent(&reverse); 
+        }
+    }
+};
+
+class VolumeSlider : public QSlider
+{
+public:
+    VolumeSlider(QWidget *parent, const char *name) : QSlider(parent, name) {}
+
+protected:
+    void wheelEvent(QWheelEvent *e) {
+        QWheelEvent transposed(e->pos(), -(e->delta()), e->state(), e->orientation());
+        
+        QSlider::wheelEvent(&transposed);
+//      QSlider::wheelEvent(new QWheelEvent(e->pos(), -(e->delta()), e->state(), e->orientation()));
     }
 };
@@ -118,5 +135,5 @@ QWidget *SliderAction::createWidget(QWid
         m_layout->addWidget(m_trackPositionSlider);
 
-        m_volumeSlider = new QSlider(base, "volumeSlider" );
+        m_volumeSlider = new VolumeSlider(base, "volumeSlider");
         m_volumeSlider->setMaxValue(100);
         QToolTip::add(m_volumeSlider, i18n("Volume"));