diff --git a/xbmc/Util.h b/xbmc/Util.h index 4144f47bf7846..cd6edf49c2dab 100644 --- a/xbmc/Util.h +++ b/xbmc/Util.h @@ -24,7 +24,6 @@ #include #include #include -#include "utils/StringUtils.h" #include "MediaSource.h" #define ARRAY_SIZE(X) (sizeof(X)/sizeof((X)[0])) @@ -37,18 +36,6 @@ class CFileItemList; class CURL; -struct sortstringbyname -{ - bool operator()(const std::string& strItem1, const std::string& strItem2) - { - std::string strLine1 = strItem1; - std::string strLine2 = strItem2; - StringUtils::ToLower(strLine1); - StringUtils::ToLower(strLine2); - return strcmp(strLine1.c_str(), strLine2.c_str()) < 0; - } -}; - struct ExternalStreamInfo { std::string name; diff --git a/xbmc/addons/AddonCallbacksPVR.cpp b/xbmc/addons/AddonCallbacksPVR.cpp index 59c58d108b4d9..1d769e1d61a51 100644 --- a/xbmc/addons/AddonCallbacksPVR.cpp +++ b/xbmc/addons/AddonCallbacksPVR.cpp @@ -22,6 +22,7 @@ #include "AddonCallbacksPVR.h" #include "settings/AdvancedSettings.h" #include "utils/log.h" +#include "utils/StringUtils.h" #include "dialogs/GUIDialogKaiToast.h" #include "epg/EpgContainer.h" diff --git a/xbmc/dialogs/GUIDialogFileBrowser.cpp b/xbmc/dialogs/GUIDialogFileBrowser.cpp index 825e442afdc06..0dccd83de832b 100644 --- a/xbmc/dialogs/GUIDialogFileBrowser.cpp +++ b/xbmc/dialogs/GUIDialogFileBrowser.cpp @@ -21,6 +21,7 @@ #include "GUIDialogFileBrowser.h" #include "Util.h" #include "utils/URIUtils.h" +#include "utils/StringUtils.h" #include "network/GUIDialogNetworkSetup.h" #include "GUIDialogMediaSource.h" #include "GUIDialogContextMenu.h" diff --git a/xbmc/filesystem/AFPFile.cpp b/xbmc/filesystem/AFPFile.cpp index b3047bb138fe1..a4de580f90208 100644 --- a/xbmc/filesystem/AFPFile.cpp +++ b/xbmc/filesystem/AFPFile.cpp @@ -32,6 +32,7 @@ #include "settings/AdvancedSettings.h" #include "threads/SingleLock.h" #include "utils/log.h" +#include "utils/StringUtils.h" #include "utils/TimeUtils.h" using namespace XFILE; diff --git a/xbmc/filesystem/HDHomeRunFile.cpp b/xbmc/filesystem/HDHomeRunFile.cpp index e35ebb4d355ca..2fcfdd5be1fda 100644 --- a/xbmc/filesystem/HDHomeRunFile.cpp +++ b/xbmc/filesystem/HDHomeRunFile.cpp @@ -25,6 +25,7 @@ #include "HDHomeRunFile.h" #include "utils/TimeUtils.h" #include "utils/log.h" +#include "utils/StringUtils.h" #include "utils/URIUtils.h" #include "Util.h" #include "DllHDHomeRun.h" diff --git a/xbmc/filesystem/IDirectory.cpp b/xbmc/filesystem/IDirectory.cpp index c013778dbf097..6bd2a3b950513 100644 --- a/xbmc/filesystem/IDirectory.cpp +++ b/xbmc/filesystem/IDirectory.cpp @@ -25,6 +25,7 @@ #include "URL.h" #include "PasswordManager.h" #include "utils/URIUtils.h" +#include "utils/StringUtils.h" using namespace XFILE; diff --git a/xbmc/filesystem/PVRDirectory.cpp b/xbmc/filesystem/PVRDirectory.cpp index e03a9a04c6a19..7248020ccff33 100644 --- a/xbmc/filesystem/PVRDirectory.cpp +++ b/xbmc/filesystem/PVRDirectory.cpp @@ -23,6 +23,7 @@ #include "Util.h" #include "URL.h" #include "utils/log.h" +#include "utils/StringUtils.h" #include "utils/URIUtils.h" #include "guilib/LocalizeStrings.h" diff --git a/xbmc/playlists/PlayListB4S.cpp b/xbmc/playlists/PlayListB4S.cpp index d09af8c04774a..f1ca2a793e270 100644 --- a/xbmc/playlists/PlayListB4S.cpp +++ b/xbmc/playlists/PlayListB4S.cpp @@ -25,6 +25,7 @@ #include "music/tags/MusicInfoTag.h" #include "filesystem/File.h" #include "utils/log.h" +#include "utils/StringUtils.h" #include "utils/URIUtils.h" #include "utils/XMLUtils.h" diff --git a/xbmc/playlists/PlayListWPL.cpp b/xbmc/playlists/PlayListWPL.cpp index 159081498680d..bbbb426f5653c 100644 --- a/xbmc/playlists/PlayListWPL.cpp +++ b/xbmc/playlists/PlayListWPL.cpp @@ -24,6 +24,7 @@ #include "settings/AdvancedSettings.h" #include "filesystem/File.h" #include "utils/log.h" +#include "utils/StringUtils.h" #include "utils/URIUtils.h" #include "utils/XMLUtils.h" diff --git a/xbmc/playlists/PlayListXML.cpp b/xbmc/playlists/PlayListXML.cpp index 66bea084b31b7..57786e50c3064 100644 --- a/xbmc/playlists/PlayListXML.cpp +++ b/xbmc/playlists/PlayListXML.cpp @@ -23,6 +23,7 @@ #include "Util.h" #include "utils/RegExp.h" #include "utils/log.h" +#include "utils/StringUtils.h" #include "utils/URIUtils.h" #include "utils/XMLUtils.h" #include "utils/Variant.h" diff --git a/xbmc/profiles/dialogs/GUIDialogProfileSettings.cpp b/xbmc/profiles/dialogs/GUIDialogProfileSettings.cpp index a65c1b6d9f71a..1d5511a695e78 100644 --- a/xbmc/profiles/dialogs/GUIDialogProfileSettings.cpp +++ b/xbmc/profiles/dialogs/GUIDialogProfileSettings.cpp @@ -34,6 +34,7 @@ #include "settings/lib/Setting.h" #include "storage/MediaManager.h" #include "utils/log.h" +#include "utils/StringUtils.h" #include "utils/URIUtils.h" #define CONTROL_PROFILE_IMAGE CONTROL_SETTINGS_CUSTOM + 1 diff --git a/xbmc/pvr/addons/PVRClient.cpp b/xbmc/pvr/addons/PVRClient.cpp index 8a3bee65d550c..c1cea9c0f0815 100644 --- a/xbmc/pvr/addons/PVRClient.cpp +++ b/xbmc/pvr/addons/PVRClient.cpp @@ -30,6 +30,7 @@ #include "settings/AdvancedSettings.h" #include "settings/Settings.h" #include "utils/log.h" +#include "utils/StringUtils.h" #include diff --git a/xbmc/pvr/windows/GUIWindowPVRChannels.cpp b/xbmc/pvr/windows/GUIWindowPVRChannels.cpp index 7265fc3df3fe5..89f0481981912 100644 --- a/xbmc/pvr/windows/GUIWindowPVRChannels.cpp +++ b/xbmc/pvr/windows/GUIWindowPVRChannels.cpp @@ -40,6 +40,7 @@ #include "epg/EpgContainer.h" #include "settings/Settings.h" #include "utils/log.h" +#include "utils/StringUtils.h" #include "threads/SingleLock.h" using namespace PVR; diff --git a/xbmc/utils/HttpRangeUtils.cpp b/xbmc/utils/HttpRangeUtils.cpp index e09111e860ed4..1660198d7fd9b 100644 --- a/xbmc/utils/HttpRangeUtils.cpp +++ b/xbmc/utils/HttpRangeUtils.cpp @@ -21,6 +21,7 @@ #include "HttpRangeUtils.h" #include "Util.h" #include "network/httprequesthandler/IHTTPRequestHandler.h" +#include "utils/StringUtils.h" #include "utils/Variant.h" #include diff --git a/xbmc/utils/StringUtils.h b/xbmc/utils/StringUtils.h index 5ed81a56461a0..00a07cb1e4a7f 100644 --- a/xbmc/utils/StringUtils.h +++ b/xbmc/utils/StringUtils.h @@ -194,3 +194,11 @@ class StringUtils private: static std::string m_lastUUID; }; + +struct sortstringbyname +{ + bool operator()(const std::string& strItem1, const std::string& strItem2) + { + return StringUtils::CompareNoCase(strItem1, strItem2) < 0; + } +}; diff --git a/xbmc/utils/test/TestStringUtils.cpp b/xbmc/utils/test/TestStringUtils.cpp index f0adec0b1592b..1aaf8b850e16d 100644 --- a/xbmc/utils/test/TestStringUtils.cpp +++ b/xbmc/utils/test/TestStringUtils.cpp @@ -19,6 +19,7 @@ */ #include "utils/StringUtils.h" +#include #include "gtest/gtest.h" @@ -478,3 +479,16 @@ TEST(TestStringUtils, Paramify) std::string result = StringUtils::Paramify(input); EXPECT_STREQ(ref, result.c_str()); } + +TEST(TestStringUtils, sortstringbyname) +{ + std::vector strarray; + strarray.push_back("B"); + strarray.push_back("c"); + strarray.push_back("a"); + std::sort(strarray.begin(), strarray.end(), sortstringbyname()); + + EXPECT_STREQ("a", strarray[0].c_str()); + EXPECT_STREQ("B", strarray[1].c_str()); + EXPECT_STREQ("c", strarray[2].c_str()); +}