YCLIMP
Yandex Command Line Interface Music Player
Loading...
Searching...
No Matches
ElementSelector< ElementPtr > Class Template Reference

The ElementSelector class - class to select & draw list of elements. More...

#include <ElementSelector.hpp>

Public Member Functions

 ElementSelector (const Recti &bounds)
void Load (std::vector< ElementPtr > element, bool overwrite)
void Load (ElementPtr element, bool overwrite)
void Update ()
void HandleResize (const Recti &bounds)
void SelectUp ()
void SelectDown ()
void SelectByIndx (std::size_t indx)
void SelectByName (const std::string &filename)
void ClearAllLastingSelections ()
void LastingSelectOnCurrent ()
ElementSelectorState GetState () const
void RestoreState (const ElementSelectorState &state)
std::vector< std::size_t > GetLastingSelectedElementsIndices () const
std::vector< ElementPtr > GetLastingSelectedElements () const
std::vector< ElementPtr > GetElements () const
const std::optional< ElementPtr > GetSelected () const
std::size_t GetSelectedPosition () const
std::size_t GetElementsSize () const
template<typename U = ElementPtr>
requires ElementIsDBPlaylistPtr<U>
void Draw () const
 Draw method defined twice: this one is for DBPlaylistPtr. Required in NewElementsDialogBundle, to have a list of Database "folders".
template<typename U = ElementPtr>
requires ElementIsFilePtr<U>
void Draw () const
 Draw method defined twice: this one is for all other elements (File_Ptr for now all the other elemenrs)
void ShuffleElements ()
template<typename U = ElementPtr, std::enable_if_t< std::is_same< U, File_Ptr >::value, bool > = true>
void SortDirsFirst ()
 SortDirsFirst - defined for File_Ptr to sort dirs first.

Static Public Member Functions

template<typename Element>
requires NameIsString<Element>
static std::vector< ElementPtr > CrutchConverter (std::vector< Element > elements)
 ElementSelector::CrutchConverter - convert vector of Element to vector of Element_Ptr;.

Detailed Description

template<typename ElementPtr>
requires PtrAndNameIsString<ElementPtr>
class ElementSelector< ElementPtr >

The ElementSelector class - class to select & draw list of elements.

  • ElementPtr has concept restrictions: It should have an std::string member name
  • For now ElementPtr is File_Ptr or DBPlaylist_Ptr
  • Scrollable
  • Able to select elements: one at a time like observing whats in the list
  • Able to long select elements: can be multiple at a time, like for some further actions
  • It's methods defined in ElementSelector.tpp file

Member Function Documentation

◆ CrutchConverter()

template<typename ElementPtr>
requires NameIsString<Element>
template<typename Element>
requires NameIsString<Element>
std::vector< ElementPtr > ElementSelector< ElementPtr >::CrutchConverter ( std::vector< Element > elements)
static

ElementSelector::CrutchConverter - convert vector of Element to vector of Element_Ptr;.

Parameters
elements- vector of Elements
Returns
- vector of shared_ptr<Element>

◆ Load() [1/2]

template<typename ElementPtr>
requires PtrAndNameIsString<ElementPtr>
void ElementSelector< ElementPtr >::Load ( ElementPtr file,
bool overwrite )

Load new file, overwrite previous files or append to them, depeneding on value of overwrite

Parameters
filefile to load
overwriteif true, then erase previous files, if false, just append new files

◆ Load() [2/2]

template<typename ElementPtr>
requires PtrAndNameIsString<ElementPtr>
void ElementSelector< ElementPtr >::Load ( std::vector< ElementPtr > files,
bool overwrite )

Load new files, overwrite previous files or append to them, depeneding on value of overwrite

Parameters
filesfiles to load
overwriteif true, then erase previous files, if false, just append new files

The documentation for this class was generated from the following files: