Add an explicit Load action (#409)

This commit is contained in:
arcnmx
2020-12-13 00:25:23 -08:00
committed by GitHub
parent d1fe67b031
commit 430cd92e96
2 changed files with 32 additions and 0 deletions

View File

@@ -1034,6 +1034,27 @@ void Add::run()
} }
} }
bool Load::canBeRun()
{
return myScreen != myPlaylistEditor;
}
void Load::run()
{
using Global::wFooter;
std::string path;
{
Statusbar::ScopedLock slock;
Statusbar::put() << "Load playlist: ";
path = wFooter->prompt();
}
Statusbar::put() << "Loading...";
wFooter->refresh();
Mpd.LoadPlaylist(path);
}
bool SeekForward::canBeRun() bool SeekForward::canBeRun()
{ {
return Status::State::player() != MPD::psStop && Status::State::totalTime() > 0; return Status::State::player() != MPD::psStop && Status::State::totalTime() > 0;
@@ -2753,6 +2774,7 @@ void populateActions()
insert_action(new Actions::MoveSelectedItemsDown()); insert_action(new Actions::MoveSelectedItemsDown());
insert_action(new Actions::MoveSelectedItemsTo()); insert_action(new Actions::MoveSelectedItemsTo());
insert_action(new Actions::Add()); insert_action(new Actions::Add());
insert_action(new Actions::Load());
insert_action(new Actions::PlayItem()); insert_action(new Actions::PlayItem());
insert_action(new Actions::SeekForward()); insert_action(new Actions::SeekForward());
insert_action(new Actions::SeekBackward()); insert_action(new Actions::SeekBackward());

View File

@@ -77,6 +77,7 @@ enum class Type
MoveSelectedItemsDown, MoveSelectedItemsDown,
MoveSelectedItemsTo, MoveSelectedItemsTo,
Add, Add,
Load,
SeekForward, SeekForward,
SeekBackward, SeekBackward,
ToggleDisplayMode, ToggleDisplayMode,
@@ -606,6 +607,15 @@ private:
virtual void run() override; virtual void run() override;
}; };
struct Load: BaseAction
{
Load(): BaseAction(Type::Load, "load") { }
private:
virtual bool canBeRun() override;
virtual void run() override;
};
struct SeekForward: BaseAction struct SeekForward: BaseAction
{ {
SeekForward(): BaseAction(Type::SeekForward, "seek_forward") { } SeekForward(): BaseAction(Type::SeekForward, "seek_forward") { }