[prev in list] [next in list] [prev in thread] [next in thread] 

List:       kde-commits
Subject:    KDE/kdeplasma-addons/applets/nowplaying
From:       Alex Merry <kde () randomguy3 ! me ! uk>
Date:       2009-02-21 16:42:18
Message-ID: 1235234538.373524.19292.nullmailer () svn ! kde ! org
[Download RAW message or body]

SVN commit 929567 by alexmerry:

Respond properly to slider value changes.  Makes mouse-wheel scrolling work as expected.

BUG: 182693



 M  +14 -9     nowplaying.cpp  
 M  +1 -2      nowplaying.h  


--- trunk/KDE/kdeplasma-addons/applets/nowplaying/nowplaying.cpp #929566:929567
@@ -65,9 +65,7 @@
     m_volumeSlider->setMinimum(0);
     m_volumeSlider->setMaximum(100);
     m_volumeSlider->setValue(0);
-    connect(this, SIGNAL(volumeChanged(int)),
-            m_volumeSlider, SLOT(setValue(int)));
-    connect(m_volumeSlider, SIGNAL(sliderMoved(int)),
+    connect(m_volumeSlider, SIGNAL(valueChanged(int)),
             this, SLOT(setVolume(int)));
     m_volumeSlider->setEnabled(false);
 
@@ -75,11 +73,9 @@
     m_positionSlider->setMinimum(0);
     m_positionSlider->setMaximum(0);
     m_positionSlider->setValue(0);
-    connect(this, SIGNAL(positionChanged(int)),
-            m_positionSlider, SLOT(setValue(int)));
     connect(this, SIGNAL(lengthChanged(int)),
             m_positionSlider, SLOT(setMaximum(int)));
-    connect(m_positionSlider, SIGNAL(sliderMoved(int)),
+    connect(m_positionSlider, SIGNAL(valueChanged(int)),
             this, SLOT(setPosition(int)));
     m_positionSlider->setEnabled(false);
 }
@@ -209,6 +205,13 @@
     }
 }
 
+void NowPlaying::updatePositionSlider(int position)
+{
+    m_positionSlider->blockSignals(true);
+    m_positionSlider->setValue(position);
+    m_positionSlider->blockSignals(false);
+}
+
 void NowPlaying::dataUpdated(const QString &name,
                              const Plasma::DataEngine::Data &data)
 {
@@ -242,7 +245,7 @@
     if (length != m_length) {
         m_length = length;
         if (length == 0) {
-            emit positionChanged(0);
+            updatePositionSlider(0);
         }
         emit lengthChanged(m_length);
     }
@@ -253,7 +256,7 @@
                    QString::number(length / 60) + ':' +
                    QString::number(length % 60).rightJustified(2, '0');
         // we assume it's changed
-        emit positionChanged(pos);
+        updatePositionSlider(pos);
     }
 
     QMap<QString,QString> metadata;
@@ -272,7 +275,9 @@
 
     if (data["Volume"].toDouble() != m_volume) {
         m_volume = data["Volume"].toDouble();
-        emit volumeChanged(m_volume * 100);
+        m_volumeSlider->blockSignals(true);
+        m_volumeSlider->setValue(m_volume * 100);
+        m_volumeSlider->blockSignals(false);
     }
 
     // used for seeing when the track has changed
--- trunk/KDE/kdeplasma-addons/applets/nowplaying/nowplaying.h #929566:929567
@@ -70,8 +70,6 @@
     void controllerChanged(Plasma::Service* controller);
     void metadataChanged(const QMap<QString,QString>& metadata);
     void coverChanged(const QPixmap& picture);
-    void volumeChanged(int volumePercent);
-    void positionChanged(int position);
     void lengthChanged(int length);
 
 public slots:
@@ -94,6 +92,7 @@
     void findPlayer();
     void layoutPlanar();
     void layoutHorizontal();
+    void updatePositionSlider(int position);
 
     QString m_watchingPlayer;
     Plasma::Service* m_controller;
[prev in list] [next in list] [prev in thread] [next in thread] 

Configure | About | News | Add a list | Sponsored by KoreLogic