summaryrefslogtreecommitdiffstats
path: root/demos/multimedia
diff options
context:
space:
mode:
authorNicholas Young <nicholas.young@nokia.com>2010-02-23 04:52:03 (GMT)
committerNicholas Young <nicholas.young@nokia.com>2010-02-23 04:52:03 (GMT)
commit0b4e388d88af73c9f542289d40b261cd32116380 (patch)
tree40864d0b5a075338cbb0631183909c2f726f9523 /demos/multimedia
parent20a2a101e37b74e085f53a925477714bcff6cef9 (diff)
downloadQt-0b4e388d88af73c9f542289d40b261cd32116380.zip
Qt-0b4e388d88af73c9f542289d40b261cd32116380.tar.gz
Qt-0b4e388d88af73c9f542289d40b261cd32116380.tar.bz2
Player demo updated with more user-friendly previous button behaviour.
Pressing previous within the first five seconds will go to the previous item in the playlist. Otherwise, it will seek to the beginning of the current item. Reviewed-by: Kurt Korbatits
Diffstat (limited to 'demos/multimedia')
-rw-r--r--demos/multimedia/player/player.cpp12
-rw-r--r--demos/multimedia/player/player.h2
2 files changed, 13 insertions, 1 deletions
diff --git a/demos/multimedia/player/player.cpp b/demos/multimedia/player/player.cpp
index 64b1f25..49d18cb 100644
--- a/demos/multimedia/player/player.cpp
+++ b/demos/multimedia/player/player.cpp
@@ -99,7 +99,7 @@ Player::Player(QWidget *parent)
connect(controls, SIGNAL(pause()), player, SLOT(pause()));
connect(controls, SIGNAL(stop()), player, SLOT(stop()));
connect(controls, SIGNAL(next()), playlist, SLOT(next()));
- connect(controls, SIGNAL(previous()), playlist, SLOT(previous()));
+ connect(controls, SIGNAL(previous()), this, SLOT(previousClicked()));
connect(controls, SIGNAL(changeVolume(int)), player, SLOT(setVolume(int)));
connect(controls, SIGNAL(changeMuting(bool)), player, SLOT(setMuted(bool)));
connect(controls, SIGNAL(changeRate(qreal)), player, SLOT(setPlaybackRate(qreal)));
@@ -200,6 +200,16 @@ void Player::metaDataChanged()
}
}
+void Player::previousClicked()
+{
+ // Go to previous track if we are within the first 5 seconds of playback
+ // Otherwise, seek to the beginning.
+ if(player->position() <= 5000)
+ playlist->previous();
+ else
+ player->setPosition(0);
+}
+
void Player::jump(const QModelIndex &index)
{
if (index.isValid()) {
diff --git a/demos/multimedia/player/player.h b/demos/multimedia/player/player.h
index 0ad609b..1de8b1a 100644
--- a/demos/multimedia/player/player.h
+++ b/demos/multimedia/player/player.h
@@ -77,6 +77,8 @@ private slots:
void positionChanged(qint64 progress);
void metaDataChanged();
+ void previousClicked();
+
void seek(int seconds);
void jump(const QModelIndex &index);
void playlistPositionChanged(int);