2 * Copyright (C) 2012-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.
9 #include "GUIViewStatePVR.h"
12 #include "FileItemList.h"
13 #include "ServiceBroker.h"
14 #include "pvr/PVRManager.h"
15 #include "pvr/addons/PVRClients.h"
16 #include "pvr/epg/EpgSearchPath.h"
17 #include "pvr/providers/PVRProvidersPath.h"
18 #include "pvr/recordings/PVRRecordingsPath.h"
19 #include "pvr/timers/PVRTimersPath.h"
20 #include "settings/AdvancedSettings.h"
21 #include "settings/Settings.h"
22 #include "settings/SettingsComponent.h"
23 #include "view/ViewStateSettings.h"
27 CGUIViewStateWindowPVRChannels::CGUIViewStateWindowPVRChannels(const int windowId
,
28 const CFileItemList
& items
)
29 : CGUIViewStatePVR(windowId
, items
)
31 AddSortMethod(SortByChannelNumber
, 549, // "Number"
32 LABEL_MASKS("%L", "", "%L", "")); // Filename, empty | Foldername, empty
33 AddSortMethod(SortByChannel
, 551, // "Name"
34 LABEL_MASKS("%L", "", "%L", "")); // Filename, empty | Foldername, empty
36 SortByLastPlayed
, 568, // "Last played"
37 LABEL_MASKS("%L", "%p", "%L", "%p")); // Filename, LastPlayed | Foldername, LastPlayed
38 AddSortMethod(SortByDateAdded
, 570, // "Date added"
39 LABEL_MASKS("%L", "%a", "%L", "%a"), // Filename, DateAdded | Foldername, DateAdded
40 SortAttributeNone
, SortOrderDescending
);
41 AddSortMethod(SortByClientChannelOrder
, 19315, // "Backend number"
42 LABEL_MASKS("%L", "", "%L", "")); // Filename, empty | Foldername, empty
43 AddSortMethod(SortByProvider
, 19348, // "Provider"
44 LABEL_MASKS("%L", "", "%L", "")); // Filename, empty | Foldername, empty
47 SetSortMethod(SortByChannelNumber
);
49 LoadViewState("pvr://channels/", m_windowId
);
52 void CGUIViewStateWindowPVRChannels::SaveViewState()
54 SaveViewToDb("pvr://channels/", m_windowId
, CViewStateSettings::GetInstance().Get("pvrchannels"));
57 CGUIViewStateWindowPVRRecordings::CGUIViewStateWindowPVRRecordings(const int windowId
,
58 const CFileItemList
& items
)
59 : CGUIViewStatePVR(windowId
, items
)
61 AddSortMethod(SortByLabel
, 551, // "Name"
62 LABEL_MASKS("%L", "%d", "%L", ""), // Filename, DateTime | Foldername, empty
63 CServiceBroker::GetSettingsComponent()->GetSettings()->GetBool(
64 CSettings::SETTING_FILELISTS_IGNORETHEWHENSORTING
)
65 ? SortAttributeIgnoreArticle
67 AddSortMethod(SortByDate
, 552, // "Date"
68 LABEL_MASKS("%L", "%d", "%L", "%d")); // Filename, DateTime | Foldername, DateTime
69 AddSortMethod(SortByTime
, 180, // "Duration"
70 LABEL_MASKS("%L", "%D", "%L", "")); // Filename, Duration | Foldername, empty
71 AddSortMethod(SortByFile
, 561, // "File"
72 LABEL_MASKS("%L", "%d", "%L", "")); // Filename, DateTime | Foldername, empty
74 if (CServiceBroker::GetPVRManager().Clients()->AnyClientSupportingRecordingsSize())
76 // "Size" : Filename, Size | Foldername, Size
77 AddSortMethod(SortBySize
, 553, LABEL_MASKS("%L", "%I", "%L", "%I"));
80 AddSortMethod(SortByEpisodeNumber
, 20359, // "Episode"
81 LABEL_MASKS("%L", "%d", "%L", "")); // Filename, DateTime | Foldername, empty
82 AddSortMethod(SortByProvider
, 19348, // "Provider"
83 LABEL_MASKS("%L", "", "%L", "")); // Filename, empty | Foldername, empty
86 CServiceBroker::GetSettingsComponent()->GetAdvancedSettings()->m_PVRDefaultSortOrder
);
88 LoadViewState(items
.GetPath(), m_windowId
);
91 void CGUIViewStateWindowPVRRecordings::SaveViewState()
93 SaveViewToDb(m_items
.GetPath(), m_windowId
,
94 CViewStateSettings::GetInstance().Get("pvrrecordings"));
97 bool CGUIViewStateWindowPVRRecordings::HideParentDirItems()
99 return (CGUIViewState::HideParentDirItems() ||
100 CPVRRecordingsPath(m_items
.GetPath()).IsRecordingsRoot());
103 CGUIViewStateWindowPVRGuide::CGUIViewStateWindowPVRGuide(const int windowId
,
104 const CFileItemList
& items
)
105 : CGUIViewStatePVR(windowId
, items
)
107 AddSortMethod(SortByChannelNumber
, 549, // "Number"
108 LABEL_MASKS("%L", "", "%L", "")); // Filename, empty | Foldername, empty
109 AddSortMethod(SortByChannel
, 551, // "Name"
110 LABEL_MASKS("%L", "", "%L", "")); // Filename, empty | Foldername, empty
112 SortByLastPlayed
, SortAttributeIgnoreLabel
, 568, // "Last played"
113 LABEL_MASKS("%L", "%p", "%L", "%p")); // Filename, LastPlayed | Foldername, LastPlayed
114 AddSortMethod(SortByDateAdded
, 570, // "Date added"
115 LABEL_MASKS("%L", "%a", "%L", "%a"), // Filename, DateAdded | Foldername, DateAdded
116 SortAttributeNone
, SortOrderDescending
);
117 AddSortMethod(SortByClientChannelOrder
, 19315, // "Backend number"
118 LABEL_MASKS("%L", "", "%L", "")); // Filename, empty | Foldername, empty
119 AddSortMethod(SortByProvider
, 19348, // "Provider"
120 LABEL_MASKS("%L", "", "%L", "")); // Filename, empty | Foldername, empty
123 SetSortMethod(SortByChannelNumber
);
125 LoadViewState("pvr://guide/", m_windowId
);
128 void CGUIViewStateWindowPVRGuide::SaveViewState()
130 SaveViewToDb("pvr://guide/", m_windowId
, CViewStateSettings::GetInstance().Get("pvrguide"));
133 CGUIViewStateWindowPVRTimers::CGUIViewStateWindowPVRTimers(const int windowId
,
134 const CFileItemList
& items
)
135 : CGUIViewStatePVR(windowId
, items
)
137 int sortAttributes(CServiceBroker::GetSettingsComponent()->GetSettings()->GetBool(
138 CSettings::SETTING_FILELISTS_IGNORETHEWHENSORTING
)
139 ? SortAttributeIgnoreArticle
140 : SortAttributeNone
);
141 sortAttributes
|= SortAttributeIgnoreFolders
;
142 AddSortMethod(SortByLabel
, static_cast<SortAttribute
>(sortAttributes
), 551, // "Name"
143 LABEL_MASKS("%L", "", "%L", "")); // Filename, empty | Foldername, empty
144 AddSortMethod(SortByDate
, static_cast<SortAttribute
>(sortAttributes
), 552, // "Date"
145 LABEL_MASKS("%L", "%d", "%L", "%d")); // Filename, DateTime | Foldername, DateTime
148 SetSortMethod(SortByDate
);
150 LoadViewState("pvr://timers/", m_windowId
);
153 void CGUIViewStateWindowPVRTimers::SaveViewState()
155 SaveViewToDb("pvr://timers/", m_windowId
, CViewStateSettings::GetInstance().Get("pvrtimers"));
158 bool CGUIViewStateWindowPVRTimers::HideParentDirItems()
160 return (CGUIViewState::HideParentDirItems() || CPVRTimersPath(m_items
.GetPath()).IsTimersRoot());
163 CGUIViewStateWindowPVRSearch::CGUIViewStateWindowPVRSearch(const int windowId
,
164 const CFileItemList
& items
)
165 : CGUIViewStatePVR(windowId
, items
)
167 AddSortMethod(SortByLabel
, 551, // "Name"
168 LABEL_MASKS("%L", "", "%L", "")); // Filename, empty | Foldername, empty
169 AddSortMethod(SortByDate
, 552, // "Date"
170 LABEL_MASKS("%L", "%d", "%L", "%d")); // Filename, DateTime | Foldername, DateTime
173 if (CPVREpgSearchPath(m_items
.GetPath()).IsSavedSearchesRoot())
174 SetSortMethod(SortByDate
, SortOrderDescending
);
176 SetSortMethod(SortByDate
, SortOrderAscending
);
178 LoadViewState(m_items
.GetPath(), m_windowId
);
181 void CGUIViewStateWindowPVRSearch::SaveViewState()
183 SaveViewToDb(m_items
.GetPath(), m_windowId
, CViewStateSettings::GetInstance().Get("pvrsearch"));
186 bool CGUIViewStateWindowPVRSearch::HideParentDirItems()
188 return (CGUIViewState::HideParentDirItems() ||
189 CPVREpgSearchPath(m_items
.GetPath()).IsSearchRoot());
192 CGUIViewStateWindowPVRProviders::CGUIViewStateWindowPVRProviders(const int windowId
,
193 const CFileItemList
& items
)
194 : CGUIViewStatePVR(windowId
, items
)
196 AddSortMethod(SortByLabel
, 551, // "Name"
197 LABEL_MASKS("%L", "", "%L", "")); // Filename, empty | Foldername, empty
199 if (CPVRProvidersPath(m_items
.GetPath()).IsProvidersRoot())
201 AddSortMethod(SortByProvider
, 19348, // "Provider"
202 LABEL_MASKS("%L", "", "%L", "")); // Filename, empty | Foldername, empty
204 SetSortMethod(SortByProvider
, SortOrderAscending
);
208 SetSortMethod(SortByLabel
, SortOrderAscending
);
211 LoadViewState(m_items
.GetPath(), m_windowId
);
214 void CGUIViewStateWindowPVRProviders::SaveViewState()
216 SaveViewToDb(m_items
.GetPath(), m_windowId
,
217 CViewStateSettings::GetInstance().Get("pvrproviders"));
220 bool CGUIViewStateWindowPVRProviders::HideParentDirItems()
222 return (CGUIViewState::HideParentDirItems() ||
223 CPVRProvidersPath(m_items
.GetPath()).IsProvidersRoot());