diff options
author | fuzzard <fuzzard@users.noreply.github.com> | 2024-02-11 08:21:52 +1000 |
---|---|---|
committer | GitHub <noreply@github.com> | 2024-02-11 08:21:52 +1000 |
commit | 85d014442846bc8b22a84e33222d476bb4c68422 (patch) | |
tree | 1e85e17ebd8bbc0aae976f8f04456d6ca3129b5d | |
parent | 522894301504ff80d54ba680edcd17fbb282ddb5 (diff) | |
parent | c2cf8a66c1e66fde3291e52e005a760480f8b4f8 (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.cpp | 8 | ||||
-rw-r--r-- | xbmc/settings/AdvancedSettings.cpp | 2 | ||||
-rw-r--r-- | xbmc/settings/AdvancedSettings.h | 1 |
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; |