change default behaviour of 'go to given position' function

before that number without any other signs was treated as time
in seconds to go, now it's threated as %. treating a number as
seconds needs you to type 's' after numeric value.
master
Andrzej Rybczak 17 years ago
parent eeb1951547
commit 3d5e62aa65
  1. 2
      src/help.cpp
  2. 12
      src/ncmpcpp.cpp

@ -179,7 +179,7 @@ void Help::GetKeybindings()
# ifdef HAVE_TAGLIB_H
*w << DisplayKeys(Key.EditTags) << "Edit song's tags/playlist's name\n";
# endif // HAVE_TAGLIB_H
*w << DisplayKeys(Key.GoToPosition) << "Go to chosen position in current song\n";
*w << DisplayKeys(Key.GoToPosition) << "Go to given position in current song (in % by default)\n";
*w << DisplayKeys(Key.SongInfo) << "Show song's info\n";
# ifdef HAVE_CURL_CURL_H
*w << DisplayKeys(Key.ArtistInfo) << "Show artist's info\n";

@ -1290,7 +1290,7 @@ int main(int argc, char *argv[])
continue;
}
LockStatusbar();
Statusbar() << "Position to go (in %/mm:ss/seconds): ";
Statusbar() << "Position to go (in %/mm:ss/seconds(s)): ";
string position = wFooter->GetString();
UnlockStatusbar();
@ -1308,17 +1308,17 @@ int main(int argc, char *argv[])
if (newpos > 0 && newpos < s->GetTotalLength())
Mpd->Seek(newpos);
}
else if (position.find('%') != string::npos) // probably position in %
else if (position.find('s') != string::npos) // probably position in seconds
{
newpos = StrToInt(position);
if (newpos > 0 && newpos < 100)
Mpd->Seek(s->GetTotalLength()*newpos/100.0);
if (newpos > 0 && newpos < s->GetTotalLength())
Mpd->Seek(newpos);
}
else
{
newpos = StrToInt(position);
if (newpos > 0 && newpos < s->GetTotalLength())
Mpd->Seek(newpos);
if (newpos > 0 && newpos < 100)
Mpd->Seek(s->GetTotalLength()*newpos/100.0);
}
}
else if (Keypressed(input, Key.ReverseSelection))

Loading…
Cancel
Save