aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorfuzzard <fuzzard@users.noreply.github.com>2024-02-11 08:21:52 +1000
committerGitHub <noreply@github.com>2024-02-11 08:21:52 +1000
commit85d014442846bc8b22a84e33222d476bb4c68422 (patch)
tree1e85e17ebd8bbc0aae976f8f04456d6ca3129b5d
parent522894301504ff80d54ba680edcd17fbb282ddb5 (diff)
parentc2cf8a66c1e66fde3291e52e005a760480f8b4f8 (diff)
Merge pull request #24649 from the-black-eagle/artist_stuff
[MUSIC] Allow navigating from artist directly to songs via AS.xml setting
-rw-r--r--xbmc/filesystem/MusicDatabaseDirectory/DirectoryNodeArtist.cpp8
-rw-r--r--xbmc/settings/AdvancedSettings.cpp2
-rw-r--r--xbmc/settings/AdvancedSettings.h1
3 files changed, 10 insertions, 1 deletions
diff --git a/xbmc/filesystem/MusicDatabaseDirectory/DirectoryNodeArtist.cpp b/xbmc/filesystem/MusicDatabaseDirectory/DirectoryNodeArtist.cpp
index b087fa2db4..7906b98d94 100644
--- a/xbmc/filesystem/MusicDatabaseDirectory/DirectoryNodeArtist.cpp
+++ b/xbmc/filesystem/MusicDatabaseDirectory/DirectoryNodeArtist.cpp
@@ -12,6 +12,7 @@
#include "ServiceBroker.h"
#include "guilib/LocalizeStrings.h"
#include "music/MusicDatabase.h"
+#include "settings/AdvancedSettings.h"
#include "settings/Settings.h"
#include "settings/SettingsComponent.h"
@@ -25,7 +26,12 @@ CDirectoryNodeArtist::CDirectoryNodeArtist(const std::string& strName, CDirector
NODE_TYPE CDirectoryNodeArtist::GetChildType() const
{
- return NODE_TYPE_ALBUM;
+ if (!CServiceBroker::GetSettingsComponent()
+ ->GetAdvancedSettings()
+ ->m_bMusicLibraryArtistNavigatesToSongs)
+ return NODE_TYPE_ALBUM;
+ else
+ return NODE_TYPE_SONG;
}
std::string CDirectoryNodeArtist::GetLocalizedName() const
diff --git a/xbmc/settings/AdvancedSettings.cpp b/xbmc/settings/AdvancedSettings.cpp
index 4f42c05d8f..b59ba893bd 100644
--- a/xbmc/settings/AdvancedSettings.cpp
+++ b/xbmc/settings/AdvancedSettings.cpp
@@ -315,6 +315,7 @@ void CAdvancedSettings::Initialize()
m_videoItemSeparator = " / ";
m_iMusicLibraryDateAdded = 1; // prefer mtime over ctime and current time
m_bMusicLibraryUseISODates = false;
+ m_bMusicLibraryArtistNavigatesToSongs = false;
m_bVideoLibraryAllItemsOnBottom = false;
m_iVideoLibraryRecentlyAddedItems = 25;
@@ -790,6 +791,7 @@ void CAdvancedSettings::ParseSettingsFile(const std::string &file)
XMLUtils::GetString(pElement, "itemseparator", m_musicItemSeparator);
XMLUtils::GetInt(pElement, "dateadded", m_iMusicLibraryDateAdded);
XMLUtils::GetBoolean(pElement, "useisodates", m_bMusicLibraryUseISODates);
+ XMLUtils::GetBoolean(pElement, "artistnavigatestosongs", m_bMusicLibraryArtistNavigatesToSongs);
//Music artist name separators
TiXmlElement* separators = pElement->FirstChildElement("artistseparators");
if (separators)
diff --git a/xbmc/settings/AdvancedSettings.h b/xbmc/settings/AdvancedSettings.h
index eacae6507c..b5df5118dd 100644
--- a/xbmc/settings/AdvancedSettings.h
+++ b/xbmc/settings/AdvancedSettings.h
@@ -246,6 +246,7 @@ class CAdvancedSettings : public ISettingCallback, public ISettingsHandler
bool m_bMusicLibraryCleanOnUpdate;
bool m_bMusicLibraryArtistSortOnUpdate;
bool m_bMusicLibraryUseISODates;
+ bool m_bMusicLibraryArtistNavigatesToSongs;
std::string m_strMusicLibraryAlbumFormat;
bool m_prioritiseAPEv2tags;
std::string m_musicItemSeparator;