add key_select_album: select album around cursor

Default key for this is 'B'. This use to be the default for
ToggleBitrateVisibility, which has changed to '#'.
This commit is contained in:
Frank Blendinger
2010-07-03 19:53:01 +02:00
committed by Andrzej Rybczak
parent 4d406c85f2
commit 7600429383
5 changed files with 48 additions and 2 deletions

View File

@@ -48,7 +48,7 @@
#
#key_toggle_mouse = '|'
#
#key_toggle_bitrate_visibility = 'B'
#key_toggle_bitrate_visibility = '#'
#
#key_screen_switcher = 9
#
@@ -132,6 +132,8 @@
#
#key_deselect_all = 'V'
#
#key_select_album = 'B'
#
#key_add_selected_items = 'A'
#
#key_clear = 'c'

View File

@@ -182,6 +182,7 @@ void Help::GetKeybindings()
*w << DisplayKeys(Key.ToggleMouse) << "Toggle mouse support\n";
*w << DisplayKeys(Key.ReverseSelection) << "Reverse selection\n";
*w << DisplayKeys(Key.DeselectAll) << "Deselect all items\n";
*w << DisplayKeys(Key.SelectAlbum) << "Select songs of album around cursor\n";
*w << DisplayKeys(Key.AddSelected) << "Add selected items to playlist/m3u file\n";
*w << "\n";
*w << DisplayKeys(Key.ToggleRepeat) << "Toggle repeat mode\n";

View File

@@ -1694,6 +1694,44 @@ int main(int argc, char *argv[])
ShowMessage("Items deselected!");
}
}
else if (Keypressed(input, Key.SelectAlbum))
{
if (myScreen->allowsSelection())
{
Menu<MPD::Song> *songs = NULL;
if (myScreen == myPlaylist && !myPlaylist->Items->Empty())
songs = myPlaylist->Items;
else if (myScreen->ActiveWindow() == myPlaylistEditor->Content)
songs = myPlaylistEditor->Content;
if (songs && !songs->Empty())
{
size_t pos = songs->Choice();
std::string album = songs->at(pos).GetAlbum();
List *mList = myScreen->GetList();
// select song under cursor
mList->Select(pos, 1);
// go up
while (pos > 0)
{
if (songs->at(--pos).GetAlbum() != album)
break;
else
mList->Select(pos, 1);
}
// go down
pos = songs->Choice();
while (pos < songs->Size() - 1)
{
if (songs->at(++pos).GetAlbum() != album)
break;
else
mList->Select(pos, 1);
}
ShowMessage("Album around cursor position selected.");
}
}
}
else if (Keypressed(input, Key.AddSelected))
{
mySelectedItemsAdder->SwitchTo();

View File

@@ -194,7 +194,7 @@ void NcmpcppKeys::SetDefaults()
ToggleSpaceMode[0] = 't';
ToggleAddMode[0] = 'T';
ToggleMouse[0] = '|';
ToggleBitrateVisibility[0] = 'B';
ToggleBitrateVisibility[0] = '#';
Shuffle[0] = 'Z';
ToggleCrossfade[0] = 'x';
SetCrossfade[0] = 'X';
@@ -213,6 +213,7 @@ void NcmpcppKeys::SetDefaults()
Lyrics[0] = 'l';
ReverseSelection[0] = 'v';
DeselectAll[0] = 'V';
SelectAlbum[0] = 'B';
AddSelected[0] = 'A';
Clear[0] = 'c';
Crop[0] = 'C';
@@ -294,6 +295,7 @@ void NcmpcppKeys::SetDefaults()
Lyrics[1] = NullKey;
ReverseSelection[1] = NullKey;
DeselectAll[1] = NullKey;
SelectAlbum[1] = NullKey;
AddSelected[1] = NullKey;
Clear[1] = NullKey;
Crop[1] = NullKey;
@@ -555,6 +557,8 @@ void NcmpcppKeys::Read()
GetKeys(key, ReverseSelection);
else if (key.find("key_deselect_all ") != std::string::npos)
GetKeys(key, DeselectAll);
else if (key.find("key_select_album ") != std::string::npos)
GetKeys(key, SelectAlbum);
else if (key.find("key_add_selected_items ") != std::string::npos)
GetKeys(key, AddSelected);
else if (key.find("key_clear ") != std::string::npos)

View File

@@ -118,6 +118,7 @@ struct NcmpcppKeys
int Lyrics[2];
int ReverseSelection[2];
int DeselectAll[2];
int SelectAlbum[2];
int AddSelected[2];
int Clear[2];
int Crop[2];