summaryrefslogtreecommitdiffstats
path: root/xbmc/pvr/windows/GUIViewStatePVR.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'xbmc/pvr/windows/GUIViewStatePVR.cpp')
-rw-r--r--xbmc/pvr/windows/GUIViewStatePVR.cpp182
1 files changed, 182 insertions, 0 deletions
diff --git a/xbmc/pvr/windows/GUIViewStatePVR.cpp b/xbmc/pvr/windows/GUIViewStatePVR.cpp
new file mode 100644
index 0000000..d86f6fc
--- /dev/null
+++ b/xbmc/pvr/windows/GUIViewStatePVR.cpp
@@ -0,0 +1,182 @@
+/*
+ * Copyright (C) 2012-2018 Team Kodi
+ * This file is part of Kodi - https://kodi.tv
+ *
+ * SPDX-License-Identifier: GPL-2.0-or-later
+ * See LICENSES/README.md for more information.
+ */
+
+#include "GUIViewStatePVR.h"
+
+#include "FileItem.h"
+#include "ServiceBroker.h"
+#include "pvr/PVRManager.h"
+#include "pvr/addons/PVRClients.h"
+#include "pvr/epg/EpgSearchPath.h"
+#include "pvr/recordings/PVRRecordingsPath.h"
+#include "pvr/timers/PVRTimersPath.h"
+#include "settings/AdvancedSettings.h"
+#include "settings/Settings.h"
+#include "settings/SettingsComponent.h"
+#include "view/ViewStateSettings.h"
+
+using namespace PVR;
+
+CGUIViewStateWindowPVRChannels::CGUIViewStateWindowPVRChannels(const int windowId,
+ const CFileItemList& items)
+ : CGUIViewStatePVR(windowId, items)
+{
+ AddSortMethod(SortByChannelNumber, 549, // "Number"
+ LABEL_MASKS("%L", "", "%L", "")); // Filename, empty | Foldername, empty
+ AddSortMethod(SortByChannel, 551, // "Name"
+ LABEL_MASKS("%L", "", "%L", "")); // Filename, empty | Foldername, empty
+ AddSortMethod(
+ SortByLastPlayed, 568, // "Last played"
+ LABEL_MASKS("%L", "%p", "%L", "%p")); // Filename, LastPlayed | Foldername, LastPlayed
+ AddSortMethod(SortByClientChannelOrder, 19315, // "Backend number"
+ LABEL_MASKS("%L", "", "%L", "")); // Filename, empty | Foldername, empty
+ AddSortMethod(SortByProvider, 19348, // "Provider"
+ LABEL_MASKS("%L", "", "%L", "")); // Filename, empty | Foldername, empty
+
+ // Default sorting
+ SetSortMethod(SortByChannelNumber);
+
+ LoadViewState("pvr://channels/", m_windowId);
+}
+
+void CGUIViewStateWindowPVRChannels::SaveViewState()
+{
+ SaveViewToDb("pvr://channels/", m_windowId, CViewStateSettings::GetInstance().Get("pvrchannels"));
+}
+
+CGUIViewStateWindowPVRRecordings::CGUIViewStateWindowPVRRecordings(const int windowId,
+ const CFileItemList& items)
+ : CGUIViewStatePVR(windowId, items)
+{
+ AddSortMethod(SortByLabel, 551, // "Name"
+ LABEL_MASKS("%L", "%d", "%L", ""), // Filename, DateTime | Foldername, empty
+ CServiceBroker::GetSettingsComponent()->GetSettings()->GetBool(
+ CSettings::SETTING_FILELISTS_IGNORETHEWHENSORTING)
+ ? SortAttributeIgnoreArticle
+ : SortAttributeNone);
+ AddSortMethod(SortByDate, 552, // "Date"
+ LABEL_MASKS("%L", "%d", "%L", "%d")); // Filename, DateTime | Foldername, DateTime
+ AddSortMethod(SortByTime, 180, // "Duration"
+ LABEL_MASKS("%L", "%D", "%L", "")); // Filename, Duration | Foldername, empty
+ AddSortMethod(SortByFile, 561, // "File"
+ LABEL_MASKS("%L", "%d", "%L", "")); // Filename, DateTime | Foldername, empty
+
+ if (CServiceBroker::GetPVRManager().Clients()->AnyClientSupportingRecordingsSize())
+ {
+ // "Size" : Filename, Size | Foldername, Size
+ AddSortMethod(SortBySize, 553, LABEL_MASKS("%L", "%I", "%L", "%I"));
+ }
+
+ AddSortMethod(SortByEpisodeNumber, 20359, // "Episode"
+ LABEL_MASKS("%L", "%d", "%L", "")); // Filename, DateTime | Foldername, empty
+ AddSortMethod(SortByProvider, 19348, // "Provider"
+ LABEL_MASKS("%L", "", "%L", "")); // Filename, empty | Foldername, empty
+
+ SetSortMethod(
+ CServiceBroker::GetSettingsComponent()->GetAdvancedSettings()->m_PVRDefaultSortOrder);
+
+ LoadViewState(items.GetPath(), m_windowId);
+}
+
+void CGUIViewStateWindowPVRRecordings::SaveViewState()
+{
+ SaveViewToDb(m_items.GetPath(), m_windowId,
+ CViewStateSettings::GetInstance().Get("pvrrecordings"));
+}
+
+bool CGUIViewStateWindowPVRRecordings::HideParentDirItems()
+{
+ return (CGUIViewState::HideParentDirItems() ||
+ CPVRRecordingsPath(m_items.GetPath()).IsRecordingsRoot());
+}
+
+CGUIViewStateWindowPVRGuide::CGUIViewStateWindowPVRGuide(const int windowId,
+ const CFileItemList& items)
+ : CGUIViewStatePVR(windowId, items)
+{
+ AddSortMethod(SortByChannelNumber, 549, // "Number"
+ LABEL_MASKS("%L", "", "%L", "")); // Filename, empty | Foldername, empty
+ AddSortMethod(SortByChannel, 551, // "Name"
+ LABEL_MASKS("%L", "", "%L", "")); // Filename, empty | Foldername, empty
+ AddSortMethod(
+ SortByLastPlayed, SortAttributeIgnoreLabel, 568, // "Last played"
+ LABEL_MASKS("%L", "%p", "%L", "%p")); // Filename, LastPlayed | Foldername, LastPlayed
+ AddSortMethod(SortByClientChannelOrder, 19315, // "Backend number"
+ LABEL_MASKS("%L", "", "%L", "")); // Filename, empty | Foldername, empty
+ AddSortMethod(SortByProvider, 19348, // "Provider"
+ LABEL_MASKS("%L", "", "%L", "")); // Filename, empty | Foldername, empty
+
+ // Default sorting
+ SetSortMethod(SortByChannelNumber);
+
+ LoadViewState("pvr://guide/", m_windowId);
+}
+
+void CGUIViewStateWindowPVRGuide::SaveViewState()
+{
+ SaveViewToDb("pvr://guide/", m_windowId, CViewStateSettings::GetInstance().Get("pvrguide"));
+}
+
+CGUIViewStateWindowPVRTimers::CGUIViewStateWindowPVRTimers(const int windowId,
+ const CFileItemList& items)
+ : CGUIViewStatePVR(windowId, items)
+{
+ int sortAttributes(CServiceBroker::GetSettingsComponent()->GetSettings()->GetBool(
+ CSettings::SETTING_FILELISTS_IGNORETHEWHENSORTING)
+ ? SortAttributeIgnoreArticle
+ : SortAttributeNone);
+ sortAttributes |= SortAttributeIgnoreFolders;
+ AddSortMethod(SortByLabel, static_cast<SortAttribute>(sortAttributes), 551, // "Name"
+ LABEL_MASKS("%L", "", "%L", "")); // Filename, empty | Foldername, empty
+ AddSortMethod(SortByDate, static_cast<SortAttribute>(sortAttributes), 552, // "Date"
+ LABEL_MASKS("%L", "%d", "%L", "%d")); // Filename, DateTime | Foldername, DateTime
+
+ // Default sorting
+ SetSortMethod(SortByDate);
+
+ LoadViewState("pvr://timers/", m_windowId);
+}
+
+void CGUIViewStateWindowPVRTimers::SaveViewState()
+{
+ SaveViewToDb("pvr://timers/", m_windowId, CViewStateSettings::GetInstance().Get("pvrtimers"));
+}
+
+bool CGUIViewStateWindowPVRTimers::HideParentDirItems()
+{
+ return (CGUIViewState::HideParentDirItems() || CPVRTimersPath(m_items.GetPath()).IsTimersRoot());
+}
+
+CGUIViewStateWindowPVRSearch::CGUIViewStateWindowPVRSearch(const int windowId,
+ const CFileItemList& items)
+ : CGUIViewStatePVR(windowId, items)
+{
+ AddSortMethod(SortByLabel, 551, // "Name"
+ LABEL_MASKS("%L", "", "%L", "")); // Filename, empty | Foldername, empty
+ AddSortMethod(SortByDate, 552, // "Date"
+ LABEL_MASKS("%L", "%d", "%L", "%d")); // Filename, DateTime | Foldername, DateTime
+
+ // Default sorting
+ if (CPVREpgSearchPath(m_items.GetPath()).IsSavedSearchesRoot())
+ SetSortMethod(SortByDate, SortOrderDescending);
+ else
+ SetSortMethod(SortByDate, SortOrderAscending);
+
+ LoadViewState(m_items.GetPath(), m_windowId);
+}
+
+void CGUIViewStateWindowPVRSearch::SaveViewState()
+{
+ SaveViewToDb(m_items.GetPath(), m_windowId, CViewStateSettings::GetInstance().Get("pvrsearch"));
+}
+
+bool CGUIViewStateWindowPVRSearch::HideParentDirItems()
+{
+ return (CGUIViewState::HideParentDirItems() ||
+ CPVREpgSearchPath(m_items.GetPath()).IsSearchRoot());
+}