From 62dda6430cfc6ee3c6918879671fc678f6e8d8bc Mon Sep 17 00:00:00 2001 From: David Sansome Date: Tue, 29 Dec 2009 16:15:21 +0000 Subject: [PATCH] Disable pause on last.fm tracks --- src/mainwindow.cpp | 7 +++++++ src/playlist.cpp | 12 ++++++++++++ src/playlist.h | 1 + 3 files changed, 20 insertions(+) diff --git a/src/mainwindow.cpp b/src/mainwindow.cpp index 647b6b082..7b49d2f05 100644 --- a/src/mainwindow.cpp +++ b/src/mainwindow.cpp @@ -207,6 +207,8 @@ void MainWindow::MediaStopped() { ui_.action_stop_after_this_track->setEnabled(false); ui_.action_play_pause->setIcon(QIcon(":media-playback-start.png")); ui_.action_play_pause->setText("Play"); + + ui_.action_play_pause->setEnabled(true); } void MainWindow::MediaPaused() { @@ -214,6 +216,8 @@ void MainWindow::MediaPaused() { ui_.action_stop_after_this_track->setEnabled(true); ui_.action_play_pause->setIcon(QIcon(":media-playback-start.png")); ui_.action_play_pause->setText("Play"); + + ui_.action_play_pause->setEnabled(true); } void MainWindow::MediaPlaying() { @@ -221,6 +225,9 @@ void MainWindow::MediaPlaying() { ui_.action_stop_after_this_track->setEnabled(true); ui_.action_play_pause->setIcon(QIcon(":media-playback-pause.png")); ui_.action_play_pause->setText("Pause"); + + ui_.action_play_pause->setEnabled( + ! playlist_->current_item_options() & PlaylistItem::PauseDisabled); } void MainWindow::resizeEvent(QResizeEvent*) { diff --git a/src/playlist.cpp b/src/playlist.cpp index f48b04111..63d635f5c 100644 --- a/src/playlist.cpp +++ b/src/playlist.cpp @@ -435,3 +435,15 @@ bool Playlist::stop_after_current() const { return stop_after_.isValid() && current_item_.isValid() && stop_after_.row() == current_item_.row(); } + +PlaylistItem::Options Playlist::current_item_options() const { + int i = current_item(); + if (i == -1) + return PlaylistItem::Default; + + PlaylistItem* item = item_at(i); + if (!item) + return PlaylistItem::Default; + + return item->options(); +} diff --git a/src/playlist.h b/src/playlist.h index 3e44b9b95..93ad911a7 100644 --- a/src/playlist.h +++ b/src/playlist.h @@ -48,6 +48,7 @@ class Playlist : public QAbstractListModel { int previous_item() const; bool stop_after_current() const; PlaylistItem* item_at(int index) const { return items_[index]; } + PlaylistItem::Options current_item_options() const; // Changing the playlist QModelIndex InsertItems(const QList& items, int after = -1);