diff --git a/src/browser.cpp b/src/browser.cpp index 9ac72edf..1e02e029 100644 --- a/src/browser.cpp +++ b/src/browser.cpp @@ -246,6 +246,8 @@ void Browser::GetSelectedSongs(MPD::SongList &v) { std::vector selected; w->GetSelected(selected); + if (selected.empty()) + selected.push_back(w->Choice()); for (std::vector::const_iterator it = selected.begin(); it != selected.end(); ++it) { const Item &item = w->at(*it); diff --git a/src/media_library.cpp b/src/media_library.cpp index 73c6d68e..8e5b31f6 100644 --- a/src/media_library.cpp +++ b/src/media_library.cpp @@ -419,10 +419,10 @@ void MediaLibrary::GetSelectedSongs(MPD::SongList &v) { std::vector selected; Songs->GetSelected(selected); + if (selected.empty()) + selected.push_back(Songs->Choice()); for (std::vector::const_iterator it = selected.begin(); it != selected.end(); ++it) - { v.push_back(new MPD::Song(Songs->at(*it))); - } } void MediaLibrary::ApplyFilter(const std::string &s) diff --git a/src/misc.cpp b/src/misc.cpp index 47c1b254..62992d68 100644 --- a/src/misc.cpp +++ b/src/misc.cpp @@ -37,7 +37,7 @@ SelectedItemsAdder *mySelectedItemsAdder = new SelectedItemsAdder; void SelectedItemsAdder::Init() { SetDimensions(); - itsPlaylistSelector = new Menu((COLS-itsWidth)/2, (MainHeight-itsHeight)/2+MainStartY, itsWidth, itsHeight, "Add selected items to...", Config.main_color, Config.window_border); + itsPlaylistSelector = new Menu((COLS-itsWidth)/2, (MainHeight-itsHeight)/2+MainStartY, itsWidth, itsHeight, "Add selected item(s) to...", Config.main_color, Config.window_border); itsPlaylistSelector->CyclicScrolling(Config.use_cyclic_scrolling); itsPlaylistSelector->HighlightColor(Config.main_highlight_color); itsPlaylistSelector->SetItemDisplayer(Display::Generic); @@ -66,11 +66,7 @@ void SelectedItemsAdder::SwitchTo() } if (!myScreen->allowsSelection()) return; - if (!myScreen->GetList()->hasSelected()) - { - ShowMessage("No selected items!"); - return; - } + if (MainHeight < 5) { ShowMessage("Screen is too small to display this window!"); @@ -177,7 +173,7 @@ void SelectedItemsAdder::EnterPressed() for (MPD::SongList::const_iterator it = list.begin(); it != list.end(); ++it) Mpd.AddToPlaylist(utf_playlist, **it); if (Mpd.CommitCommandsList()) - ShowMessage("Selected items added to playlist \"%s\"!", playlist.c_str()); + ShowMessage("Selected item(s) added to playlist \"%s\"!", playlist.c_str()); } } else if (pos > 1 && pos < w->Size()-1) // add items to existing playlist @@ -187,7 +183,7 @@ void SelectedItemsAdder::EnterPressed() for (MPD::SongList::const_iterator it = list.begin(); it != list.end(); ++it) Mpd.AddToPlaylist(playlist, **it); if (Mpd.CommitCommandsList()) - ShowMessage("Selected items added to playlist \"%s\"!", w->Current().c_str()); + ShowMessage("Selected item(s) added to playlist \"%s\"!", w->Current().c_str()); } if (pos != w->Size()-1) { @@ -235,7 +231,7 @@ void SelectedItemsAdder::EnterPressed() } if (successful_operation) - ShowMessage("Selected items added!"); + ShowMessage("Selected item(s) added!"); } MPD::FreeSongList(list); SwitchTo(); diff --git a/src/playlist.cpp b/src/playlist.cpp index 904499ff..c6c32c31 100644 --- a/src/playlist.cpp +++ b/src/playlist.cpp @@ -269,6 +269,8 @@ void Playlist::GetSelectedSongs(MPD::SongList &v) { std::vector selected; Items->GetSelected(selected); + if (selected.empty()) + selected.push_back(Items->Choice()); for (std::vector::const_iterator it = selected.begin(); it != selected.end(); ++it) v.push_back(new MPD::Song(Items->at(*it))); } diff --git a/src/playlist_editor.cpp b/src/playlist_editor.cpp index c4904179..67a983cc 100644 --- a/src/playlist_editor.cpp +++ b/src/playlist_editor.cpp @@ -270,6 +270,8 @@ void PlaylistEditor::GetSelectedSongs(MPD::SongList &v) { std::vector selected; Content->GetSelected(selected); + if (selected.empty()) + selected.push_back(Content->Choice()); for (std::vector::const_iterator it = selected.begin(); it != selected.end(); ++it) { v.push_back(new MPD::Song(Content->at(*it))); diff --git a/src/search_engine.cpp b/src/search_engine.cpp index dcffd307..e1ab405d 100644 --- a/src/search_engine.cpp +++ b/src/search_engine.cpp @@ -231,6 +231,8 @@ void SearchEngine::GetSelectedSongs(MPD::SongList &v) { std::vector selected; w->GetSelected(selected); + if (selected.empty() && w->Choice() >= StaticOptions) + selected.push_back(w->Choice()); for (std::vector::const_iterator it = selected.begin(); it != selected.end(); ++it) v.push_back(new MPD::Song(*w->at(*it).second)); } diff --git a/src/tag_editor.cpp b/src/tag_editor.cpp index bc2438fd..268bef47 100644 --- a/src/tag_editor.cpp +++ b/src/tag_editor.cpp @@ -803,6 +803,8 @@ void TagEditor::GetSelectedSongs(MPD::SongList &v) { std::vector selected; Tags->GetSelected(selected); + if (selected.empty()) + selected.push_back(Tags->Choice()); for (std::vector::const_iterator it = selected.begin(); it != selected.end(); ++it) v.push_back(new MPD::Song(Tags->at(*it))); }