From e5277ec810c6f6ac63508a8c834c2f0e7d63a1b0 Mon Sep 17 00:00:00 2001 From: unknown Date: Tue, 19 Aug 2008 23:49:22 +0200 Subject: [PATCH] add autocenter mode --- examples/ncmpcpprc | 2 ++ src/ncmpcpp.cpp | 10 ++++++++-- src/settings.cpp | 4 ++++ src/settings.h | 1 + src/status_checker.cpp | 2 ++ 5 files changed, 17 insertions(+), 2 deletions(-) diff --git a/examples/ncmpcpprc b/examples/ncmpcpprc index b0f7155e..f639ad38 100644 --- a/examples/ncmpcpprc +++ b/examples/ncmpcpprc @@ -69,6 +69,8 @@ # ##### interface settings ##### # +#autocenter_mode = "no" +# #header_visibility = "yes" # #statusbar_visibility = "yes" diff --git a/src/ncmpcpp.cpp b/src/ncmpcpp.cpp index 9d180d5d..f423eba2 100644 --- a/src/ncmpcpp.cpp +++ b/src/ncmpcpp.cpp @@ -257,8 +257,8 @@ int main(int argc, char *argv[]) sHelp->Add("\to : Go to currently playing position\n\n\n"); sHelp->Add(" [b]Keys - Browse screen\n -----------------------------------------[/b]\n"); - sHelp->Add("\tEnter : Enter directory/Add to playlist and play song\n"); - sHelp->Add("\tSpace : Add song to playlist\n"); + sHelp->Add("\tEnter : Enter directory/Add item to playlist and play\n"); + sHelp->Add("\tSpace : Add item to playlist\n"); sHelp->Add("\tBackspace : Go to parent directory\n"); sHelp->Add("\tDelete : Delete playlist\n\n\n"); @@ -1392,6 +1392,12 @@ int main(int argc, char *argv[]) break; } + case 'U': // toggle autocenter mode + { + Config.autocenter_mode = !Config.autocenter_mode; + ShowMessage("Auto center mode: " + string(Config.autocenter_mode ? "On" : "Off")); + break; + } case 'u': // update database { if (current_screen == csBrowser) diff --git a/src/settings.cpp b/src/settings.cpp index c5f3dcf3..bd5b715c 100644 --- a/src/settings.cpp +++ b/src/settings.cpp @@ -45,6 +45,7 @@ void DefaultConfiguration(ncmpcpp_config &conf) conf.colors_enabled = true; conf.header_visibility = true; conf.statusbar_visibility = true; + conf.autocenter_mode = false; conf.set_window_title = true; conf.mpd_connection_timeout = 15; conf.crossfade_time = 5; @@ -185,6 +186,9 @@ void ReadConfiguration(ncmpcpp_config &conf) if (it->find("statusbar_visibility") != string::npos) conf.statusbar_visibility = v == "yes"; + if (it->find("autocenter_mode") != string::npos) + conf.autocenter_mode = v == "yes"; + if (it->find("enable_window_title") != string::npos) conf.set_window_title = v == "yes"; diff --git a/src/settings.h b/src/settings.h index cd9e7174..dc730bc8 100644 --- a/src/settings.h +++ b/src/settings.h @@ -49,6 +49,7 @@ struct ncmpcpp_config bool set_window_title; bool header_visibility; bool statusbar_visibility; + bool autocenter_mode; int mpd_connection_timeout; int crossfade_time; diff --git a/src/status_checker.cpp b/src/status_checker.cpp index c4313772..eb96685b 100644 --- a/src/status_checker.cpp +++ b/src/status_checker.cpp @@ -320,6 +320,8 @@ void NcmpcppStatusChanged(MPDConnection *Mpd, MPDStatusChanges changed, void *da if (old_playing >= 0) mPlaylist->BoldOption(old_playing+1, 0); mPlaylist->BoldOption(now_playing+1, 1); + if (Config.autocenter_mode) + mPlaylist->Highlight(now_playing+1); } if (!Mpd->GetElapsedTime()) mvwhline(wFooter->RawWin(), 0, 0, 0, wFooter->GetWidth());