From 4ab13c03debb313e40827cf91418b2c18f9d2640 Mon Sep 17 00:00:00 2001 From: David Sansome Date: Thu, 14 Jan 2010 12:27:50 +0000 Subject: [PATCH] Clear playlist --- TODO | 4 +++ data/clear-list.png | Bin 0 -> 1255 bytes data/data.qrc | 1 + src/mainwindow.cpp | 3 ++- src/mainwindow.ui | 58 +++++++++++++++++++++++++++++++++++--------- src/playlist.cpp | 6 +++++ src/playlist.h | 2 ++ 7 files changed, 61 insertions(+), 13 deletions(-) create mode 100644 data/clear-list.png diff --git a/TODO b/TODO index 25856adf1..b359af468 100644 --- a/TODO +++ b/TODO @@ -7,6 +7,10 @@ - Global shortcut keys - Make QSortFilterProxyModel on the library obey hasChildren() - Database versioning +- Delete on playlist focuses next item +- Enter on playlist plays +- Clicking play plays selected item +- More actions in playlist context menu Long-term: - iPod diff --git a/data/clear-list.png b/data/clear-list.png new file mode 100644 index 0000000000000000000000000000000000000000..3588e9bf3a31903e15aec04fb6f7ef7f0bd8ade3 GIT binary patch literal 1255 zcmVK~#9!tyN2JRaF>W`*EK4QTl*Otzt#d+>%rn7_0*l2V!Cz zFffkz1I$TC9Qg-eV8X=25CfWb%#nlON9S`|Zr5oiG^y^r4B$2n)azTHdP zv2ow5?0wF@d+qhD@7wz*=Nx8^%tZhc{-5TSZ~xR&?|=BwcX1qjpp-_MCP?B4alF-s zQHU@kf&kW9Xsw|LR}>IId7dNZILk6Tc<>O9pFBZlqk~epyr}ALzP%1$L>3uiU zv`DVd>kk0-T1SKs6N-@#(yR>-MS)o1)e4_DV0*p3&+ff7jb9%FR(nqgz<4`AC5E9g zT&oZgQjS(TvB28|*JV8`ltN(Ug}^7(a;-lEN$fBZlh}wl@lLA3Aqp%?v0+by8XaY8wx-NS*MMO(NPRmS7D~6 zAT3*8hfWgA%*^2W_3N}P@`}C6M%Ur)lfI}Nk~@^+kQrC(HPVQ-bRMC$cLEz%uAo?3 zLw@WS0&cQ#^CoPig39sZn4O))57&MsG2p{IFwO$61`@7UZ0TvhaTLiVq?zdf{`{>C zM`ANMiQb(%XkNYy&2Ur@AgI*Cd{5%}jrbmyWbm|l~IVVTHQm$@aLM*o)eqSAI5sIH)Ic-QoRAP&S)~u|o zV3eVQN*m|S!I4CWyUWXPydx&gp7oor(IyQx=L#ei*k84%RSfo)iHaaVB~&0c%P~Q# z)k4O@)V*{GhNOE=pGNKcc`v3z_4M7J()C6Yw$*I8c6$R8pS?3TH&?IMrx;1zXf*CF zEG#Tuy!ho;uhx$&%QsJmB~$}I$m3l|w)>s2A^Jp*D2OWIh!x@?(Iz&D>|cK-zdh&M RI#K`t002ovPDHLkV1jdTJv#sZ literal 0 HcmV?d00001 diff --git a/data/data.qrc b/data/data.qrc index 38ff67edb..c0fe574a2 100644 --- a/data/data.qrc +++ b/data/data.qrc @@ -48,5 +48,6 @@ last.fm/my_neighbours.png last.fm/user_purple.png list-remove.png + clear-list.png diff --git a/src/mainwindow.cpp b/src/mainwindow.cpp index 816b1e183..a8df1fd8f 100644 --- a/src/mainwindow.cpp +++ b/src/mainwindow.cpp @@ -80,6 +80,7 @@ MainWindow::MainWindow(QWidget *parent) connect(ui_.library_filter, SIGNAL(textChanged(QString)), library_, SLOT(SetFilterText(QString))); connect(ui_.action_ban, SIGNAL(triggered()), radio_model_->GetLastFMService(), SLOT(Ban())); connect(ui_.action_love, SIGNAL(triggered()), SLOT(Love())); + connect(ui_.action_clear_playlist, SIGNAL(triggered()), playlist_, SLOT(Clear())); // Give actions to buttons ui_.forward_button->setDefaultAction(ui_.action_next_track); @@ -88,6 +89,7 @@ MainWindow::MainWindow(QWidget *parent) ui_.stop_button->setDefaultAction(ui_.action_stop); ui_.love_button->setDefaultAction(ui_.action_love); ui_.ban_button->setDefaultAction(ui_.action_ban); + ui_.clear_playlist_button->setDefaultAction(ui_.action_clear_playlist); // Stop actions QMenu* stop_menu = new QMenu(this); @@ -193,7 +195,6 @@ MainWindow::MainWindow(QWidget *parent) connect(stop, SIGNAL(activated()), ui_.action_stop, SLOT(trigger())); connect(next, SIGNAL(activated()), ui_.action_next_track, SLOT(trigger())); connect(prev, SIGNAL(activated()), ui_.action_previous_track, SLOT(trigger())); - connect(play_pause, SIGNAL(activated()), this, SLOT(close())); // Analyzer ui_.analyzer->set_engine(player_->GetEngine()); diff --git a/src/mainwindow.ui b/src/mainwindow.ui index cf502590d..40c137098 100644 --- a/src/mainwindow.ui +++ b/src/mainwindow.ui @@ -14,7 +14,7 @@ Clementine - + :/icon.png:/icon.png @@ -78,6 +78,26 @@ 0 + + + + + 22 + 22 + + + + true + + + + + + + Qt::Vertical + + + @@ -274,7 +294,7 @@ - + :/clear.png:/clear.png @@ -294,7 +314,7 @@ - + :/configure.png:/configure.png @@ -410,7 +430,7 @@ - + :/media-skip-backward.png:/media-skip-backward.png @@ -419,7 +439,7 @@ - + :/media-playback-start.png:/media-playback-start.png @@ -431,7 +451,7 @@ false - + :/media-playback-stop.png:/media-playback-stop.png @@ -440,7 +460,7 @@ - + :/media-skip-forward.png:/media-skip-forward.png @@ -449,7 +469,7 @@ - + :/exit.png:/exit.png @@ -461,7 +481,7 @@ - + :/media-playback-stop.png:/media-playback-stop.png @@ -527,7 +547,7 @@ false - + :/last.fm/love.png:/last.fm/love.png @@ -539,13 +559,25 @@ false - + :/last.fm/ban.png:/last.fm/ban.png Ban + + + + :/clear-list.png:/clear-list.png + + + Clear playlist + + + Clear playlist + + @@ -582,6 +614,8 @@
radioview.h
- + + + diff --git a/src/playlist.cpp b/src/playlist.cpp index caa7bafbe..937cdd10f 100644 --- a/src/playlist.cpp +++ b/src/playlist.cpp @@ -496,3 +496,9 @@ void Playlist::UpdateScrobblePoint() { scrobble_point_ = point; has_scrobbled_ = false; } + +void Playlist::Clear() { + qDeleteAll(items_); + items_.clear(); + reset(); +} diff --git a/src/playlist.h b/src/playlist.h index 3fd45a783..7271b4982 100644 --- a/src/playlist.h +++ b/src/playlist.h @@ -99,6 +99,8 @@ class Playlist : public QAbstractListModel { void ClearStreamMetadata(); void SetStreamMetadata(const QUrl& url, const Song& song); + void Clear(); + signals: void CurrentSongChanged(const Song& metadata);