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/recordings/PVRRecordingsPath.h"
18 #include "pvr/timers/PVRTimersPath.h"
19 #include "settings/AdvancedSettings.h"
20 #include "settings/Settings.h"
21 #include "settings/SettingsComponent.h"
22 #include "view/ViewStateSettings.h"
26 CGUIViewStateWindowPVRChannels::CGUIViewStateWindowPVRChannels(const int windowId
,
27 const CFileItemList
& items
)
28 : CGUIViewStatePVR(windowId
, items
)
30 AddSortMethod(SortByChannelNumber
, 549, // "Number"
31 LABEL_MASKS("%L", "", "%L", "")); // Filename, empty | Foldername, empty
32 AddSortMethod(SortByChannel
, 551, // "Name"
33 LABEL_MASKS("%L", "", "%L", "")); // Filename, empty | Foldername, empty
35 SortByLastPlayed
, 568, // "Last played"
36 LABEL_MASKS("%L", "%p", "%L", "%p")); // Filename, LastPlayed | Foldername, LastPlayed
37 AddSortMethod(SortByClientChannelOrder
, 19315, // "Backend number"
38 LABEL_MASKS("%L", "", "%L", "")); // Filename, empty | Foldername, empty
39 AddSortMethod(SortByProvider
, 19348, // "Provider"
40 LABEL_MASKS("%L", "", "%L", "")); // Filename, empty | Foldername, empty
43 SetSortMethod(SortByChannelNumber
);
45 LoadViewState("pvr://channels/", m_windowId
);
48 void CGUIViewStateWindowPVRChannels::SaveViewState()
50 SaveViewToDb("pvr://channels/", m_windowId
, CViewStateSettings::GetInstance().Get("pvrchannels"));
53 CGUIViewStateWindowPVRRecordings::CGUIViewStateWindowPVRRecordings(const int windowId
,
54 const CFileItemList
& items
)
55 : CGUIViewStatePVR(windowId
, items
)
57 AddSortMethod(SortByLabel
, 551, // "Name"
58 LABEL_MASKS("%L", "%d", "%L", ""), // Filename, DateTime | Foldername, empty
59 CServiceBroker::GetSettingsComponent()->GetSettings()->GetBool(
60 CSettings::SETTING_FILELISTS_IGNORETHEWHENSORTING
)
61 ? SortAttributeIgnoreArticle
63 AddSortMethod(SortByDate
, 552, // "Date"
64 LABEL_MASKS("%L", "%d", "%L", "%d")); // Filename, DateTime | Foldername, DateTime
65 AddSortMethod(SortByTime
, 180, // "Duration"
66 LABEL_MASKS("%L", "%D", "%L", "")); // Filename, Duration | Foldername, empty
67 AddSortMethod(SortByFile
, 561, // "File"
68 LABEL_MASKS("%L", "%d", "%L", "")); // Filename, DateTime | Foldername, empty
70 if (CServiceBroker::GetPVRManager().Clients()->AnyClientSupportingRecordingsSize())
72 // "Size" : Filename, Size | Foldername, Size
73 AddSortMethod(SortBySize
, 553, LABEL_MASKS("%L", "%I", "%L", "%I"));
76 AddSortMethod(SortByEpisodeNumber
, 20359, // "Episode"
77 LABEL_MASKS("%L", "%d", "%L", "")); // Filename, DateTime | Foldername, empty
78 AddSortMethod(SortByProvider
, 19348, // "Provider"
79 LABEL_MASKS("%L", "", "%L", "")); // Filename, empty | Foldername, empty
82 CServiceBroker::GetSettingsComponent()->GetAdvancedSettings()->m_PVRDefaultSortOrder
);
84 LoadViewState(items
.GetPath(), m_windowId
);
87 void CGUIViewStateWindowPVRRecordings::SaveViewState()
89 SaveViewToDb(m_items
.GetPath(), m_windowId
,
90 CViewStateSettings::GetInstance().Get("pvrrecordings"));
93 bool CGUIViewStateWindowPVRRecordings::HideParentDirItems()
95 return (CGUIViewState::HideParentDirItems() ||
96 CPVRRecordingsPath(m_items
.GetPath()).IsRecordingsRoot());
99 CGUIViewStateWindowPVRGuide::CGUIViewStateWindowPVRGuide(const int windowId
,
100 const CFileItemList
& items
)
101 : CGUIViewStatePVR(windowId
, items
)
103 AddSortMethod(SortByChannelNumber
, 549, // "Number"
104 LABEL_MASKS("%L", "", "%L", "")); // Filename, empty | Foldername, empty
105 AddSortMethod(SortByChannel
, 551, // "Name"
106 LABEL_MASKS("%L", "", "%L", "")); // Filename, empty | Foldername, empty
108 SortByLastPlayed
, SortAttributeIgnoreLabel
, 568, // "Last played"
109 LABEL_MASKS("%L", "%p", "%L", "%p")); // Filename, LastPlayed | Foldername, LastPlayed
110 AddSortMethod(SortByClientChannelOrder
, 19315, // "Backend number"
111 LABEL_MASKS("%L", "", "%L", "")); // Filename, empty | Foldername, empty
112 AddSortMethod(SortByProvider
, 19348, // "Provider"
113 LABEL_MASKS("%L", "", "%L", "")); // Filename, empty | Foldername, empty
116 SetSortMethod(SortByChannelNumber
);
118 LoadViewState("pvr://guide/", m_windowId
);
121 void CGUIViewStateWindowPVRGuide::SaveViewState()
123 SaveViewToDb("pvr://guide/", m_windowId
, CViewStateSettings::GetInstance().Get("pvrguide"));
126 CGUIViewStateWindowPVRTimers::CGUIViewStateWindowPVRTimers(const int windowId
,
127 const CFileItemList
& items
)
128 : CGUIViewStatePVR(windowId
, items
)
130 int sortAttributes(CServiceBroker::GetSettingsComponent()->GetSettings()->GetBool(
131 CSettings::SETTING_FILELISTS_IGNORETHEWHENSORTING
)
132 ? SortAttributeIgnoreArticle
133 : SortAttributeNone
);
134 sortAttributes
|= SortAttributeIgnoreFolders
;
135 AddSortMethod(SortByLabel
, static_cast<SortAttribute
>(sortAttributes
), 551, // "Name"
136 LABEL_MASKS("%L", "", "%L", "")); // Filename, empty | Foldername, empty
137 AddSortMethod(SortByDate
, static_cast<SortAttribute
>(sortAttributes
), 552, // "Date"
138 LABEL_MASKS("%L", "%d", "%L", "%d")); // Filename, DateTime | Foldername, DateTime
141 SetSortMethod(SortByDate
);
143 LoadViewState("pvr://timers/", m_windowId
);
146 void CGUIViewStateWindowPVRTimers::SaveViewState()
148 SaveViewToDb("pvr://timers/", m_windowId
, CViewStateSettings::GetInstance().Get("pvrtimers"));
151 bool CGUIViewStateWindowPVRTimers::HideParentDirItems()
153 return (CGUIViewState::HideParentDirItems() || CPVRTimersPath(m_items
.GetPath()).IsTimersRoot());
156 CGUIViewStateWindowPVRSearch::CGUIViewStateWindowPVRSearch(const int windowId
,
157 const CFileItemList
& items
)
158 : CGUIViewStatePVR(windowId
, items
)
160 AddSortMethod(SortByLabel
, 551, // "Name"
161 LABEL_MASKS("%L", "", "%L", "")); // Filename, empty | Foldername, empty
162 AddSortMethod(SortByDate
, 552, // "Date"
163 LABEL_MASKS("%L", "%d", "%L", "%d")); // Filename, DateTime | Foldername, DateTime
166 if (CPVREpgSearchPath(m_items
.GetPath()).IsSavedSearchesRoot())
167 SetSortMethod(SortByDate
, SortOrderDescending
);
169 SetSortMethod(SortByDate
, SortOrderAscending
);
171 LoadViewState(m_items
.GetPath(), m_windowId
);
174 void CGUIViewStateWindowPVRSearch::SaveViewState()
176 SaveViewToDb(m_items
.GetPath(), m_windowId
, CViewStateSettings::GetInstance().Get("pvrsearch"));
179 bool CGUIViewStateWindowPVRSearch::HideParentDirItems()
181 return (CGUIViewState::HideParentDirItems() ||
182 CPVREpgSearchPath(m_items
.GetPath()).IsSearchRoot());