diff --git a/language/English/strings.po b/language/English/strings.po
index 795d596fc275e..bc39872e6523e 100644
--- a/language/English/strings.po
+++ b/language/English/strings.po
@@ -16335,3 +16335,15 @@ msgstr ""
msgctxt "#38010"
msgid "GPU accelerated"
msgstr ""
+
+#. Setting #38011 "Videos -> Library -> Hide All Items entry"
+#: system/settings/settings.xml
+msgctxt "#38011"
+msgid "Hide "All Items" entry"
+msgstr ""
+
+#. Description of setting "Videos -> Library -> Hide All Items entry"
+#: system/settings/settings.xml
+msgctxt "#38012"
+msgid "Hide "All Items" entry in directory (for example All Albums or All Seasons)"
+msgstr ""
\ No newline at end of file
diff --git a/system/settings/settings.xml b/system/settings/settings.xml
index 0fbb920ec0b57..12a57652de603 100644
--- a/system/settings/settings.xml
+++ b/system/settings/settings.xml
@@ -354,6 +354,11 @@
false
+
+ 2
+ false
+
+
0
false
@@ -1572,6 +1577,11 @@
+
+ 2
+ false
+
+
2
diff --git a/xbmc/filesystem/MusicDatabaseDirectory/DirectoryNode.cpp b/xbmc/filesystem/MusicDatabaseDirectory/DirectoryNode.cpp
index 87eb1f3af4ebd..7824a3f9d513d 100644
--- a/xbmc/filesystem/MusicDatabaseDirectory/DirectoryNode.cpp
+++ b/xbmc/filesystem/MusicDatabaseDirectory/DirectoryNode.cpp
@@ -46,6 +46,7 @@
#include "utils/StringUtils.h"
#include "guilib/LocalizeStrings.h"
#include "music/MusicDbUrl.h"
+#include "settings/Settings.h"
using namespace std;
using namespace XFILE::MUSICDATABASEDIRECTORY;
@@ -293,7 +294,7 @@ void CDirectoryNode::AddQueuingFolder(CFileItemList& items) const
return;
// always hide "all" items
- if (g_advancedSettings.m_bMusicLibraryHideAllItems)
+ if (CSettings::Get().GetBool("musiclibrary.hideallitems"))
return;
// no need for "all" item when only one item
diff --git a/xbmc/filesystem/VideoDatabaseDirectory/DirectoryNode.cpp b/xbmc/filesystem/VideoDatabaseDirectory/DirectoryNode.cpp
index afcd11bfce821..0ac3de4f6da6c 100644
--- a/xbmc/filesystem/VideoDatabaseDirectory/DirectoryNode.cpp
+++ b/xbmc/filesystem/VideoDatabaseDirectory/DirectoryNode.cpp
@@ -44,6 +44,7 @@
#include "guilib/LocalizeStrings.h"
#include "utils/Variant.h"
#include "video/VideoDatabase.h"
+#include "settings/Settings.h"
using namespace std;
using namespace XFILE::VIDEODATABASEDIRECTORY;
@@ -284,7 +285,7 @@ void CDirectoryNode::AddQueuingFolder(CFileItemList& items) const
CFileItemPtr pItem;
// always hide "all" items
- if (g_advancedSettings.m_bVideoLibraryHideAllItems)
+ if (CSettings::Get().GetBool("videolibrary.hideallitems"))
return;
// no need for "all" item when only one item
diff --git a/xbmc/settings/AdvancedSettings.cpp b/xbmc/settings/AdvancedSettings.cpp
index 20ed5d0a9154d..a84d4961becf0 100644
--- a/xbmc/settings/AdvancedSettings.cpp
+++ b/xbmc/settings/AdvancedSettings.cpp
@@ -266,7 +266,6 @@ void CAdvancedSettings::Initialize()
m_musicThumbs = "folder.jpg|Folder.jpg|folder.JPG|Folder.JPG|cover.jpg|Cover.jpg|cover.jpeg|thumb.jpg|Thumb.jpg|thumb.JPG|Thumb.JPG";
m_fanartImages = "fanart.jpg|fanart.png";
- m_bMusicLibraryHideAllItems = false;
m_bMusicLibraryAllItemsOnBottom = false;
m_bMusicLibraryAlbumsSortByArtistThenYear = false;
m_bMusicLibraryCleanOnUpdate = false;
@@ -277,7 +276,6 @@ void CAdvancedSettings::Initialize()
m_musicItemSeparator = " / ";
m_videoItemSeparator = " / ";
- m_bVideoLibraryHideAllItems = false;
m_bVideoLibraryAllItemsOnBottom = false;
m_iVideoLibraryRecentlyAddedItems = 25;
m_bVideoLibraryHideEmptySeries = false;
@@ -744,7 +742,6 @@ void CAdvancedSettings::ParseSettingsFile(const std::string &file)
pElement = pRootElement->FirstChildElement("musiclibrary");
if (pElement)
{
- XMLUtils::GetBoolean(pElement, "hideallitems", m_bMusicLibraryHideAllItems);
XMLUtils::GetInt(pElement, "recentlyaddeditems", m_iMusicLibraryRecentlyAddedItems, 1, INT_MAX);
XMLUtils::GetBoolean(pElement, "prioritiseapetags", m_prioritiseAPEv2tags);
XMLUtils::GetBoolean(pElement, "allitemsonbottom", m_bMusicLibraryAllItemsOnBottom);
@@ -758,7 +755,6 @@ void CAdvancedSettings::ParseSettingsFile(const std::string &file)
pElement = pRootElement->FirstChildElement("videolibrary");
if (pElement)
{
- XMLUtils::GetBoolean(pElement, "hideallitems", m_bVideoLibraryHideAllItems);
XMLUtils::GetBoolean(pElement, "allitemsonbottom", m_bVideoLibraryAllItemsOnBottom);
XMLUtils::GetInt(pElement, "recentlyaddeditems", m_iVideoLibraryRecentlyAddedItems, 1, INT_MAX);
XMLUtils::GetBoolean(pElement, "hideemptyseries", m_bVideoLibraryHideEmptySeries);
diff --git a/xbmc/settings/AdvancedSettings.h b/xbmc/settings/AdvancedSettings.h
index dc43ce1ebe004..de0a689ae5ece 100644
--- a/xbmc/settings/AdvancedSettings.h
+++ b/xbmc/settings/AdvancedSettings.h
@@ -263,7 +263,6 @@ class CAdvancedSettings : public ISettingCallback, public ISettingsHandler
std::string m_musicThumbs;
std::string m_fanartImages;
- bool m_bMusicLibraryHideAllItems;
int m_iMusicLibraryRecentlyAddedItems;
bool m_bMusicLibraryAllItemsOnBottom;
bool m_bMusicLibraryAlbumsSortByArtistThenYear;
@@ -275,7 +274,6 @@ class CAdvancedSettings : public ISettingCallback, public ISettingsHandler
std::string m_videoItemSeparator;
std::vector m_musicTagsFromFileFilters;
- bool m_bVideoLibraryHideAllItems;
bool m_bVideoLibraryAllItemsOnBottom;
int m_iVideoLibraryRecentlyAddedItems;
bool m_bVideoLibraryHideEmptySeries;