Add an explicit Load action (#409)
This commit is contained in:
@@ -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()
|
||||
{
|
||||
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::MoveSelectedItemsTo());
|
||||
insert_action(new Actions::Add());
|
||||
insert_action(new Actions::Load());
|
||||
insert_action(new Actions::PlayItem());
|
||||
insert_action(new Actions::SeekForward());
|
||||
insert_action(new Actions::SeekBackward());
|
||||
|
||||
@@ -77,6 +77,7 @@ enum class Type
|
||||
MoveSelectedItemsDown,
|
||||
MoveSelectedItemsTo,
|
||||
Add,
|
||||
Load,
|
||||
SeekForward,
|
||||
SeekBackward,
|
||||
ToggleDisplayMode,
|
||||
@@ -606,6 +607,15 @@ private:
|
||||
virtual void run() override;
|
||||
};
|
||||
|
||||
struct Load: BaseAction
|
||||
{
|
||||
Load(): BaseAction(Type::Load, "load") { }
|
||||
|
||||
private:
|
||||
virtual bool canBeRun() override;
|
||||
virtual void run() override;
|
||||
};
|
||||
|
||||
struct SeekForward: BaseAction
|
||||
{
|
||||
SeekForward(): BaseAction(Type::SeekForward, "seek_forward") { }
|
||||
|
||||
Reference in New Issue
Block a user