From c97f4fac59c3d392a21d19d1586f4c7c8fe70a34 Mon Sep 17 00:00:00 2001 From: Andrzej Rybczak Date: Tue, 17 Aug 2010 15:49:37 +0200 Subject: [PATCH] settings: use separate bindings for switching between columns --- doc/keys | 4 +++ src/help.cpp | 12 ++++----- src/ncmpcpp.cpp | 68 ++++++++++++++++++++++++++++++------------------ src/settings.cpp | 8 ++++++ src/settings.h | 2 ++ 5 files changed, 63 insertions(+), 31 deletions(-) diff --git a/doc/keys b/doc/keys index ebe96df5..08b7d365 100644 --- a/doc/keys +++ b/doc/keys @@ -42,6 +42,10 @@ # #key_volume_down = 260 '-' # +#key_prev_column = 260 +# +#key_next_column = 261 +# #key_toggle_space_mode = 't' # #key_toggle_add_mode = 'T' diff --git a/src/help.cpp b/src/help.cpp index 2841043a..aab03922 100644 --- a/src/help.cpp +++ b/src/help.cpp @@ -274,8 +274,8 @@ void Help::GetKeybindings() *w << "\n\n " << fmtBold << "Keys - Media library\n -----------------------------------------\n" << fmtBoldEnd; if (!Config.media_library_disable_two_column_mode) *w << DisplayKeys(Key.MediaLibrary) << "Switch between two/three columns\n"; - *w << DisplayKeys(&Key.VolumeDown[0], 1) << "Previous column\n"; - *w << DisplayKeys(&Key.VolumeUp[0], 1) << "Next column\n"; + *w << DisplayKeys(Key.PrevColumn) << "Previous column\n"; + *w << DisplayKeys(Key.NextColumn) << "Next column\n"; *w << DisplayKeys(Key.Enter) << "Add to playlist and play song/album/artist's songs\n"; *w << DisplayKeys(Key.Space) << "Add to playlist song/album/artist's songs\n"; # ifdef HAVE_TAGLIB_H @@ -285,8 +285,8 @@ void Help::GetKeybindings() *w << "\n\n " << fmtBold << "Keys - Playlist Editor\n -----------------------------------------\n" << fmtBoldEnd; - *w << DisplayKeys(&Key.VolumeDown[0], 1) << "Previous column\n"; - *w << DisplayKeys(&Key.VolumeUp[0], 1) << "Next column\n"; + *w << DisplayKeys(Key.PrevColumn) << "Previous column\n"; + *w << DisplayKeys(Key.NextColumn) << "Next column\n"; *w << DisplayKeys(Key.Enter) << "Add item to playlist and play\n"; *w << DisplayKeys(Key.Space) << "Add to playlist/select item\n"; # ifdef HAVE_TAGLIB_H @@ -320,8 +320,8 @@ void Help::GetKeybindings() *w << DisplayKeys(Key.Enter) << "Perform operation on all/selected songs (middle column)\n"; *w << DisplayKeys(Key.Space) << "Switch to albums/directories view (left column)\n"; *w << DisplayKeys(Key.Space) << "Select/deselect song (right column)\n"; - *w << DisplayKeys(&Key.VolumeDown[0], 1) << "Previous column\n"; - *w << DisplayKeys(&Key.VolumeUp[0], 1) << "Next column\n"; + *w << DisplayKeys(Key.PrevColumn) << "Previous column\n"; + *w << DisplayKeys(Key.NextColumn) << "Next column\n"; *w << DisplayKeys(Key.GoToParentDir) << "Go to parent directory (left column, directories view)\n"; # endif // HAVE_TAGLIB_H diff --git a/src/ncmpcpp.cpp b/src/ncmpcpp.cpp index 0ce05153..14c18dad 100644 --- a/src/ncmpcpp.cpp +++ b/src/ncmpcpp.cpp @@ -580,43 +580,61 @@ int main(int argc, char *argv[]) { myScreen->SpacePressed(); } - else if (Keypressed(input, Key.VolumeUp)) + else if (Keypressed(input, Key.PrevColumn) + && (myScreen == myLibrary + || myScreen == myPlaylistEditor +# ifdef HAVE_TAGLIB_H + || myScreen == myTagEditor +# endif // HAVE_TAGLIB_H) + ) + ) { - if (myScreen == myLibrary && input == Key.VolumeUp[0]) - { - myLibrary->NextColumn(); - } - else if (myScreen == myPlaylistEditor && input == Key.VolumeUp[0]) - { - myPlaylistEditor->NextColumn(); - } -# ifdef HAVE_TAGLIB_H - else if (myScreen == myTagEditor && input == Key.VolumeUp[0]) - { - myTagEditor->NextColumn(); - } -# endif // HAVE_TAGLIB_H - else - Mpd.SetVolume(Mpd.GetVolume()+1); - } - else if (Keypressed(input, Key.VolumeDown)) - { - if (myScreen == myLibrary && input == Key.VolumeDown[0]) + if (myScreen == myLibrary) { myLibrary->PrevColumn(); } - else if (myScreen == myPlaylistEditor && input == Key.VolumeDown[0]) + else if (myScreen == myPlaylistEditor) { myPlaylistEditor->PrevColumn(); } # ifdef HAVE_TAGLIB_H - else if (myScreen == myTagEditor && input == Key.VolumeDown[0]) + else if (myScreen == myTagEditor) { myTagEditor->PrevColumn(); } # endif // HAVE_TAGLIB_H - else - Mpd.SetVolume(Mpd.GetVolume()-1); + } + else if (Keypressed(input, Key.NextColumn) + && (myScreen == myLibrary + || myScreen == myPlaylistEditor +# ifdef HAVE_TAGLIB_H + || myScreen == myTagEditor +# endif // HAVE_TAGLIB_H) + ) + ) + { + if (myScreen == myLibrary) + { + myLibrary->NextColumn(); + } + else if (myScreen == myPlaylistEditor) + { + myPlaylistEditor->NextColumn(); + } +# ifdef HAVE_TAGLIB_H + else if (myScreen == myTagEditor) + { + myTagEditor->NextColumn(); + } +# endif // HAVE_TAGLIB_H + } + else if (Keypressed(input, Key.VolumeUp)) + { + Mpd.SetVolume(Mpd.GetVolume()+1); + } + else if (Keypressed(input, Key.VolumeDown)) + { + Mpd.SetVolume(Mpd.GetVolume()-1); } else if (Keypressed(input, Key.Delete)) { diff --git a/src/settings.cpp b/src/settings.cpp index 34b03050..54c00887 100644 --- a/src/settings.cpp +++ b/src/settings.cpp @@ -168,6 +168,8 @@ void NcmpcppKeys::SetDefaults() Delete[0] = KEY_DC; VolumeUp[0] = KEY_RIGHT; VolumeDown[0] = KEY_LEFT; + PrevColumn[0] = KEY_LEFT; + NextColumn[0] = KEY_RIGHT; ScreenSwitcher[0] = 9; Help[0] = '1'; Playlist[0] = '2'; @@ -253,6 +255,8 @@ void NcmpcppKeys::SetDefaults() Delete[1] = 'd'; VolumeUp[1] = '+'; VolumeDown[1] = '-'; + PrevColumn[1] = NullKey; + NextColumn[1] = NullKey; ScreenSwitcher[1] = NullKey; Help[1] = 265; Playlist[1] = 266; @@ -474,6 +478,10 @@ void NcmpcppKeys::Read() GetKeys(key, VolumeUp); else if (key.find("key_volume_down ") != std::string::npos) GetKeys(key, VolumeDown); + else if (key.find("key_prev_column ") != std::string::npos) + GetKeys(key, PrevColumn); + else if (key.find("key_next_column ") != std::string::npos) + GetKeys(key, NextColumn); else if (key.find("key_screen_switcher ") != std::string::npos) GetKeys(key, ScreenSwitcher); else if (key.find("key_help ") != std::string::npos) diff --git a/src/settings.h b/src/settings.h index ab82062f..8954484e 100644 --- a/src/settings.h +++ b/src/settings.h @@ -73,6 +73,8 @@ struct NcmpcppKeys int Delete[2]; int VolumeUp[2]; int VolumeDown[2]; + int PrevColumn[2]; + int NextColumn[2]; int ScreenSwitcher[2]; int Help[2]; int Playlist[2];