11 #include "dbwrappers/DatabaseQuery.h" 12 #include "utils/SortUtils.h" 13 #include "utils/XBMCTinyXML.h" 29 std::string GetLocalizedRule()
const;
31 static SortBy TranslateOrder(
const char *order);
32 static std::string TranslateOrder(
SortBy order);
33 static Field TranslateGroup(
const char *
group);
34 static std::string TranslateGroup(Field group);
36 static std::string GetLocalizedField(
int field);
37 static std::string GetLocalizedGroup(Field group);
38 static bool CanGroupMix(Field group);
40 static std::vector<Field> GetFields(
const std::string &type);
41 static std::vector<SortBy> GetOrders(
const std::string &type);
42 static std::vector<Field> GetGroups(
const std::string &type);
43 FIELD_TYPE GetFieldType(
int field)
const override;
44 static bool IsFieldBrowseable(
int field);
46 static bool Validate(
const std::string &input,
void *data);
47 static bool ValidateRating(
const std::string &input,
void *data);
48 static bool ValidateMyRating(
const std::string &input,
void *data);
51 std::string GetField(
int field,
const std::string& type)
const override;
52 int TranslateField(
const char *field)
const override;
53 std::string TranslateField(
int field)
const override;
54 std::string FormatParameter(
const std::string &negate,
55 const std::string &oper,
57 const std::string &type)
const override;
58 std::string FormatWhereClause(
const std::string &negate,
59 const std::string& oper,
60 const std::string ¶m,
62 const std::string &type)
const override;
63 SEARCH_OPERATOR
GetOperator(
const std::string &type)
const override;
64 std::string GetBooleanQuery(
const std::string &negate,
65 const std::string &strType)
const override;
68 std::string GetVideoResolutionQuery(
const std::string ¶meter)
const;
69 static std::string FormatLinkQuery(
const char *field,
const char *table,
const MediaType& mediaType,
const std::string& mediaField,
const std::string& parameter);
70 std::string FormatYearQuery(
const std::string& field,
71 const std::string& param,
72 const std::string& parameter)
const;
81 std::string GetWhereClause(
const CDatabase &db,
82 const std::string& strType,
83 std::set<std::string> &referencedPlaylists)
const;
84 void GetVirtualFolders(
const std::string& strType,
85 std::vector<std::string> &virtualFolders)
const;
96 bool Load(
const CURL& url);
97 bool Load(
const std::string &path);
99 bool LoadFromXml(
const std::string &xml);
100 bool LoadFromJson(
const std::string &json);
101 bool Save(
const std::string &path)
const;
102 bool Save(
CVariant &obj,
bool full =
true)
const;
103 bool SaveAsJson(std::string &json,
bool full =
true)
const;
105 bool OpenAndReadName(
const CURL &url);
106 bool LoadFromXML(
const TiXmlNode *root,
const std::string &encoding =
"UTF-8");
110 void SetName(
const std::string &name);
111 void SetType(
const std::string &type);
112 const std::string& GetName()
const {
return m_playlistName; }
113 const std::string& GetType()
const {
return m_playlistType; }
114 bool IsVideoType()
const;
115 bool IsMusicType()
const;
117 void SetMatchAllRules(
bool matchAll) { m_ruleCombination.SetType(matchAll ? CSmartPlaylistRuleCombination::CombinationAnd : CSmartPlaylistRuleCombination::CombinationOr); }
118 bool GetMatchAllRules()
const {
return m_ruleCombination.GetType() == CSmartPlaylistRuleCombination::CombinationAnd; }
120 void SetLimit(
unsigned int limit) { m_limit = limit; }
121 unsigned int GetLimit()
const {
return m_limit; }
123 void SetOrder(
SortBy order) { m_orderField = order; }
124 SortBy GetOrder()
const {
return m_orderField; }
125 void SetOrderAscending(
bool orderAscending)
127 m_orderDirection = orderAscending ? SortOrderAscending : SortOrderDescending;
129 bool GetOrderAscending()
const {
return m_orderDirection != SortOrderDescending; }
130 SortOrder GetOrderDirection()
const {
return m_orderDirection; }
131 void SetOrderAttributes(SortAttribute attributes) { m_orderAttributes = attributes; }
132 SortAttribute GetOrderAttributes()
const {
return m_orderAttributes; }
134 void SetGroup(
const std::string &
group) { m_group = group; }
135 const std::string& GetGroup()
const {
return m_group; }
136 void SetGroupMixed(
bool mixed) { m_groupMixed = mixed; }
137 bool IsGroupMixed()
const {
return m_groupMixed; }
147 std::string GetWhereClause(
const CDatabase &db, std::set<std::string> &referencedPlaylists)
const;
148 void GetVirtualFolders(std::vector<std::string> &virtualFolders)
const;
150 std::string GetSaveLocation()
const;
152 static void GetAvailableFields(
const std::string &type, std::vector<std::string> &fieldList);
154 static bool IsVideoType(
const std::string &type);
155 static bool IsMusicType(
const std::string &type);
156 static bool CheckTypeCompatibility(
const std::string &typeLeft,
const std::string &typeRight);
158 bool IsEmpty(
bool ignoreSortAndLimit =
true)
const;
167 const TiXmlNode* readName(
const TiXmlNode *root);
168 const TiXmlNode* readNameFromPath(
const CURL &url);
169 const TiXmlNode* readNameFromXml(
const std::string &xml);
170 bool load(
const TiXmlNode *root);
173 std::string m_playlistName;
174 std::string m_playlistType;
177 unsigned int m_limit;
179 SortOrder m_orderDirection;
180 SortAttribute m_orderAttributes;
Definition: DatabaseQuery.h:118
Definition: SmartPlayList.h:75
Definition: DatabaseQuery.h:22
Definition: XBMCTinyXML.h:33
SEARCH_OPERATOR GetOperator(const std::string &type) const override
Definition: SmartPlayList.cpp:814
Definition: GUIDialogSmartPlaylistEditor.h:16
Definition: DatabaseQuery.h:110
Definition: SmartPlayList.h:23
Definition: Database.h:26
Definition: SmartPlayList.cpp:137
SortBy
Definition: SortUtils.h:49
Definition: SmartPlayList.h:90