/xbmc/dialogs/GUIDialogSmartPlaylistEditor.h

http://github.com/xbmc/xbmc · C Header · 64 lines · 46 code · 10 blank · 8 comment · 0 complexity · 3d424e0df8f45aa0466585b1e69a8d13 MD5 · raw file

  1. /*
  2. * Copyright (C) 2005-2018 Team Kodi
  3. * This file is part of Kodi - https://kodi.tv
  4. *
  5. * SPDX-License-Identifier: GPL-2.0-or-later
  6. * See LICENSES/README.md for more information.
  7. */
  8. #pragma once
  9. #include "guilib/GUIDialog.h"
  10. #include "playlists/SmartPlayList.h"
  11. class CFileItemList;
  12. class CGUIDialogSmartPlaylistEditor :
  13. public CGUIDialog
  14. {
  15. public:
  16. enum PLAYLIST_TYPE { TYPE_SONGS = 1, TYPE_ALBUMS, TYPE_ARTISTS, TYPE_MIXED, TYPE_MUSICVIDEOS, TYPE_MOVIES, TYPE_TVSHOWS, TYPE_EPISODES };
  17. CGUIDialogSmartPlaylistEditor(void);
  18. ~CGUIDialogSmartPlaylistEditor(void) override;
  19. bool OnMessage(CGUIMessage& message) override;
  20. bool OnBack(int actionID) override;
  21. void OnInitWindow() override;
  22. void OnDeinitWindow(int nextWindowID) override;
  23. static bool EditPlaylist(const std::string &path, const std::string &type = "");
  24. static bool NewPlaylist(const std::string &type);
  25. protected:
  26. void OnRuleList(int item);
  27. void OnRuleAdd();
  28. void OnRuleRemove(int item);
  29. void OnMatch();
  30. void OnLimit();
  31. void OnName();
  32. void OnType();
  33. void OnOrder();
  34. void OnOrderDirection();
  35. void OnGroupBy();
  36. void OnGroupMixed();
  37. void OnOK();
  38. void OnCancel();
  39. void OnPopupMenu(int item);
  40. void UpdateButtons();
  41. void UpdateRuleControlButtons();
  42. int GetSelectedItem();
  43. void HighlightItem(int item);
  44. std::vector<PLAYLIST_TYPE> GetAllowedTypes(const std::string& mode);
  45. PLAYLIST_TYPE ConvertType(const std::string &type);
  46. std::string ConvertType(PLAYLIST_TYPE type);
  47. std::string GetLocalizedType(PLAYLIST_TYPE type);
  48. CSmartPlaylist m_playlist;
  49. // our list of rules for display purposes
  50. CFileItemList* m_ruleLabels;
  51. std::string m_path;
  52. bool m_cancelled;
  53. std::string m_mode; // mode we're in (partymode etc.)
  54. };