diff options
author | Nicholas Young <nicholas.young@nokia.com> | 2010-02-23 04:52:03 (GMT) |
---|---|---|
committer | Nicholas Young <nicholas.young@nokia.com> | 2010-02-23 04:52:03 (GMT) |
commit | 0b4e388d88af73c9f542289d40b261cd32116380 (patch) | |
tree | 40864d0b5a075338cbb0631183909c2f726f9523 /demos/multimedia | |
parent | 20a2a101e37b74e085f53a925477714bcff6cef9 (diff) | |
download | Qt-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.cpp | 12 | ||||
-rw-r--r-- | demos/multimedia/player/player.h | 2 |
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); |