2 * Copyright (C) 2005-2018 Team Kodi
3 * This file is part of Kodi - https://kodi.tv
5 * SPDX-License-Identifier: GPL-2.0-or-later
6 * See LICENSES/README.md for more information.
11 #include "guilib/GUIDialog.h"
12 #include "playlists/SmartPlayList.h"
16 class CGUIDialogSmartPlaylistEditor
:
20 enum PLAYLIST_TYPE
{ TYPE_SONGS
= 1, TYPE_ALBUMS
, TYPE_ARTISTS
, TYPE_MIXED
, TYPE_MUSICVIDEOS
, TYPE_MOVIES
, TYPE_TVSHOWS
, TYPE_EPISODES
};
22 CGUIDialogSmartPlaylistEditor(void);
23 ~CGUIDialogSmartPlaylistEditor(void) override
;
24 bool OnMessage(CGUIMessage
& message
) override
;
25 bool OnBack(int actionID
) override
;
26 void OnInitWindow() override
;
27 void OnDeinitWindow(int nextWindowID
) override
;
29 static bool EditPlaylist(const std::string
&path
, const std::string
&type
= "");
30 static bool NewPlaylist(const std::string
&type
);
33 void OnRuleList(int item
);
35 void OnRuleRemove(int item
);
41 void OnOrderDirection();
46 void OnPopupMenu(int item
);
48 void UpdateRuleControlButtons();
49 int GetSelectedItem();
50 void HighlightItem(int item
);
51 std::vector
<PLAYLIST_TYPE
> GetAllowedTypes(const std::string
& mode
);
52 PLAYLIST_TYPE
ConvertType(const std::string
&type
);
53 std::string
ConvertType(PLAYLIST_TYPE type
);
54 std::string
GetLocalizedType(PLAYLIST_TYPE type
);
56 KODI::PLAYLIST::CSmartPlaylist m_playlist
;
58 // our list of rules for display purposes
59 CFileItemList
* m_ruleLabels
;
63 std::string m_mode
; // mode we're in (partymode etc.)