if there is no selected items, treat the current one as selected

This commit is contained in:
Andrzej Rybczak
2009-11-26 22:01:27 +01:00
parent 03129784d4
commit 5aaafba545
7 changed files with 17 additions and 11 deletions

View File

@@ -246,6 +246,8 @@ void Browser::GetSelectedSongs(MPD::SongList &v)
{
std::vector<size_t> selected;
w->GetSelected(selected);
if (selected.empty())
selected.push_back(w->Choice());
for (std::vector<size_t>::const_iterator it = selected.begin(); it != selected.end(); ++it)
{
const Item &item = w->at(*it);

View File

@@ -419,11 +419,11 @@ void MediaLibrary::GetSelectedSongs(MPD::SongList &v)
{
std::vector<size_t> selected;
Songs->GetSelected(selected);
if (selected.empty())
selected.push_back(Songs->Choice());
for (std::vector<size_t>::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)
{

View File

@@ -37,7 +37,7 @@ SelectedItemsAdder *mySelectedItemsAdder = new SelectedItemsAdder;
void SelectedItemsAdder::Init()
{
SetDimensions();
itsPlaylistSelector = new Menu<std::string>((COLS-itsWidth)/2, (MainHeight-itsHeight)/2+MainStartY, itsWidth, itsHeight, "Add selected items to...", Config.main_color, Config.window_border);
itsPlaylistSelector = new Menu<std::string>((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();

View File

@@ -269,6 +269,8 @@ void Playlist::GetSelectedSongs(MPD::SongList &v)
{
std::vector<size_t> selected;
Items->GetSelected(selected);
if (selected.empty())
selected.push_back(Items->Choice());
for (std::vector<size_t>::const_iterator it = selected.begin(); it != selected.end(); ++it)
v.push_back(new MPD::Song(Items->at(*it)));
}

View File

@@ -270,6 +270,8 @@ void PlaylistEditor::GetSelectedSongs(MPD::SongList &v)
{
std::vector<size_t> selected;
Content->GetSelected(selected);
if (selected.empty())
selected.push_back(Content->Choice());
for (std::vector<size_t>::const_iterator it = selected.begin(); it != selected.end(); ++it)
{
v.push_back(new MPD::Song(Content->at(*it)));

View File

@@ -231,6 +231,8 @@ void SearchEngine::GetSelectedSongs(MPD::SongList &v)
{
std::vector<size_t> selected;
w->GetSelected(selected);
if (selected.empty() && w->Choice() >= StaticOptions)
selected.push_back(w->Choice());
for (std::vector<size_t>::const_iterator it = selected.begin(); it != selected.end(); ++it)
v.push_back(new MPD::Song(*w->at(*it).second));
}

View File

@@ -803,6 +803,8 @@ void TagEditor::GetSelectedSongs(MPD::SongList &v)
{
std::vector<size_t> selected;
Tags->GetSelected(selected);
if (selected.empty())
selected.push_back(Tags->Choice());
for (std::vector<size_t>::const_iterator it = selected.begin(); it != selected.end(); ++it)
v.push_back(new MPD::Song(Tags->at(*it)));
}