diff --git a/src/actions.cpp b/src/actions.cpp index 27c51bc6..5f6811c9 100644 --- a/src/actions.cpp +++ b/src/actions.cpp @@ -282,11 +282,14 @@ bool isMPDMusicDirSet() return true; } -BaseAction *get(Actions::Type at) +BaseAction &get(Actions::Type at) { if (AvailableActions.empty()) populateActions(); - return AvailableActions[at]; + BaseAction *action = AvailableActions[at]; + // action should be always present if action type in queried + assert(action != nullptr); + return *action; } BaseAction *get(const std::string &name) @@ -348,9 +351,9 @@ void MouseEvent::run() ) // volume { if (m_mouse_event.bstate & BUTTON2_PRESSED) - get(Type::VolumeDown)->execute(); + get(Type::VolumeDown).execute(); else - get(Type::VolumeUp)->execute(); + get(Type::VolumeUp).execute(); } else if (m_mouse_event.bstate & (BUTTON1_PRESSED | BUTTON2_PRESSED | BUTTON3_PRESSED | BUTTON4_PRESSED)) myScreen->mouseButtonPressed(m_mouse_event); @@ -2573,8 +2576,8 @@ void seek() int old_timeout = wFooter->getTimeout(); wFooter->setTimeout(500); - auto seekForward = Actions::get(Actions::Type::SeekForward); - auto seekBackward = Actions::get(Actions::Type::SeekBackward); + auto seekForward = &Actions::get(Actions::Type::SeekForward); + auto seekBackward = &Actions::get(Actions::Type::SeekBackward); SeekingInProgress = true; while (true) diff --git a/src/actions.h b/src/actions.h index 42112685..474eefc1 100644 --- a/src/actions.h +++ b/src/actions.h @@ -50,7 +50,7 @@ enum class Type NextFoundItem, PreviousFoundItem, ToggleFindMode, ToggleReplayGainMode, ToggleSpaceMode, ToggleAddMode, ToggleMouse, ToggleBitrateVisibility, AddRandomItems, ToggleBrowserSortMode, ToggleLibraryTagType, - ToggleMediaLibrarySortMode, RefetchLyrics, RefetchArtistInfo, + ToggleMediaLibrarySortMode, RefetchLyrics, SetSelectedItemsPriority, FilterPlaylistOnPriorities, ShowSongInfo, ShowArtistInfo, ShowLyrics, Quit, NextScreen, PreviousScreen, ShowHelp, ShowPlaylist, ShowBrowser, ChangeBrowseMode, ShowSearchEngine, @@ -68,9 +68,6 @@ void setWindowsDimensions(); bool askYesNoQuestion(const std::string &question, void (*callback)()); bool isMPDMusicDirSet(); -struct BaseAction *get(Type at); -struct BaseAction *get(const std::string &name); - extern bool OriginalStatusbarVisibility; extern bool ExitMainLoop; @@ -105,6 +102,9 @@ private: const char *m_name; }; +BaseAction &get(Type at); +BaseAction *get(const std::string &name); + struct Dummy : public BaseAction { Dummy() : BaseAction(Type::Dummy, "dummy") { } diff --git a/src/bindings.cpp b/src/bindings.cpp index 4d9e5b27..36e2c451 100644 --- a/src/bindings.cpp +++ b/src/bindings.cpp @@ -582,7 +582,6 @@ void BindingsConfiguration::generateDefaults() bind(k, Actions::Type::ToggleBrowserSortMode); bind(k, Actions::Type::ToggleLibraryTagType); bind(k, Actions::Type::RefetchLyrics); - bind(k, Actions::Type::RefetchArtistInfo); bind(k, Actions::Type::AddRandomItems); } if (notBound(k = stringToKey("ctrl_p"))) diff --git a/src/bindings.h b/src/bindings.h index bdd68764..00230037 100644 --- a/src/bindings.h +++ b/src/bindings.h @@ -74,7 +74,7 @@ struct Binding { typedef std::vector ActionChain; - Binding(Actions::Type at) : m_is_single(true), m_action(Actions::get(at)) { } + Binding(Actions::Type at) : m_is_single(true), m_action(&Actions::get(at)) { } Binding(const ActionChain &actions) { assert(actions.size() > 0); if (actions.size() == 1) { diff --git a/src/help.cpp b/src/help.cpp index 90e81da4..0fca40ff 100644 --- a/src/help.cpp +++ b/src/help.cpp @@ -348,9 +348,6 @@ void Help::GetKeybindings() KeyDesc(Actions::Type::EditLyrics, "Open lyrics in external editor"); KeyDesc(Actions::Type::RefetchLyrics, "Refetch lyrics"); - KeysSection("Artist info"); - KeyDesc(Actions::Type::RefetchArtistInfo, "Refetch artist info"); - # ifdef HAVE_TAGLIB_H KeysSection("Tiny tag editor"); KeyDesc(Actions::Type::PressEnter, "Edit tag");