summaryrefslogtreecommitdiffstats
path: root/xbmc/addons/gui/GUIViewStateAddonBrowser.cpp
diff options
context:
space:
mode:
authorDaniel Baumann <daniel.baumann@progress-linux.org>2024-04-10 18:07:22 +0000
committerDaniel Baumann <daniel.baumann@progress-linux.org>2024-04-10 18:07:22 +0000
commitc04dcc2e7d834218ef2d4194331e383402495ae1 (patch)
tree7333e38d10d75386e60f336b80c2443c1166031d /xbmc/addons/gui/GUIViewStateAddonBrowser.cpp
parentInitial commit. (diff)
downloadkodi-c04dcc2e7d834218ef2d4194331e383402495ae1.tar.xz
kodi-c04dcc2e7d834218ef2d4194331e383402495ae1.zip
Adding upstream version 2:20.4+dfsg.upstream/2%20.4+dfsg
Signed-off-by: Daniel Baumann <daniel.baumann@progress-linux.org>
Diffstat (limited to 'xbmc/addons/gui/GUIViewStateAddonBrowser.cpp')
-rw-r--r--xbmc/addons/gui/GUIViewStateAddonBrowser.cpp64
1 files changed, 64 insertions, 0 deletions
diff --git a/xbmc/addons/gui/GUIViewStateAddonBrowser.cpp b/xbmc/addons/gui/GUIViewStateAddonBrowser.cpp
new file mode 100644
index 0000000..5504f33
--- /dev/null
+++ b/xbmc/addons/gui/GUIViewStateAddonBrowser.cpp
@@ -0,0 +1,64 @@
+/*
+ * Copyright (C) 2005-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 "GUIViewStateAddonBrowser.h"
+
+#include "FileItem.h"
+#include "filesystem/File.h"
+#include "guilib/WindowIDs.h"
+#include "utils/StringUtils.h"
+#include "utils/URIUtils.h"
+#include "view/ViewState.h"
+#include "windowing/GraphicContext.h"
+
+using namespace XFILE;
+using namespace ADDON;
+
+CGUIViewStateAddonBrowser::CGUIViewStateAddonBrowser(const CFileItemList& items)
+ : CGUIViewState(items)
+{
+ if (URIUtils::PathEquals(items.GetPath(), "addons://"))
+ {
+ AddSortMethod(SortByNone, 551, LABEL_MASKS("%F", "", "%L", ""));
+ SetSortMethod(SortByNone);
+ }
+ else if (URIUtils::PathEquals(items.GetPath(), "addons://recently_updated/", true))
+ {
+ AddSortMethod(SortByLastUpdated, 12014, LABEL_MASKS("%L", "%v", "%L", "%v"),
+ SortAttributeIgnoreFolders, SortOrderDescending);
+ }
+ else
+ {
+ AddSortMethod(SortByLabel, SortAttributeIgnoreFolders, 551,
+ LABEL_MASKS("%L", "%s", "%L", "%s"));
+
+ if (StringUtils::StartsWith(items.GetPath(), "addons://sources/"))
+ AddSortMethod(SortByLastUsed, 12012, LABEL_MASKS("%L", "%u", "%L", "%u"),
+ SortAttributeIgnoreFolders, SortOrderDescending); //Label, Last used
+
+ if (StringUtils::StartsWith(items.GetPath(), "addons://user/") &&
+ items.GetContent() == "addons")
+ AddSortMethod(SortByInstallDate, 12013, LABEL_MASKS("%L", "%i", "%L", "%i"),
+ SortAttributeIgnoreFolders, SortOrderDescending);
+
+ SetSortMethod(SortByLabel);
+ }
+ SetViewAsControl(DEFAULT_VIEW_AUTO);
+
+ LoadViewState(items.GetPath(), WINDOW_ADDON_BROWSER);
+}
+
+void CGUIViewStateAddonBrowser::SaveViewState()
+{
+ SaveViewToDb(m_items.GetPath(), WINDOW_ADDON_BROWSER);
+}
+
+std::string CGUIViewStateAddonBrowser::GetExtensions()
+{
+ return "";
+}