Skip to content

Commit 273d142

Browse files
committed
Updated AssetBrowser to always sort files in alphabetical order
1 parent a982fbd commit 273d142

1 file changed

Lines changed: 17 additions & 3 deletions

File tree

Sources/OvEditor/src/OvEditor/Panels/AssetBrowser.cpp

Lines changed: 17 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -4,10 +4,12 @@
44
* @licence: MIT
55
*/
66

7+
#include <algorithm>
78
#include <format>
89
#include <fstream>
910
#include <iostream>
1011
#include <regex>
12+
#include <vector>
1113
#include <tinyxml2.h>
1214

1315
#include <OvCore/Global/ServiceLocator.h>
@@ -909,17 +911,29 @@ void OvEditor::Panels::AssetBrowser::Refresh()
909911

910912
void OvEditor::Panels::AssetBrowser::ParseFolder(Layout::TreeNode& p_root, const std::filesystem::directory_entry& p_directory, bool p_isEngineItem, bool p_scriptFolder)
911913
{
912-
// Iterates another time to display list files
914+
// Collect all entries first
915+
std::vector<std::filesystem::directory_entry> entries;
913916
for (auto& item : std::filesystem::directory_iterator(p_directory))
917+
{
918+
entries.push_back(item);
919+
}
920+
921+
// Sort entries alphabetically by filename
922+
std::sort(entries.begin(), entries.end(), [](const auto& a, const auto& b) {
923+
return a.path().filename().string() < b.path().filename().string();
924+
});
925+
926+
// Display directories first, in alphabetical order
927+
for (auto& item : entries)
914928
{
915929
if (item.is_directory())
916930
{
917931
ConsiderItem(&p_root, item, p_isEngineItem, false, p_scriptFolder);
918932
}
919933
}
920934

921-
// Iterates another time to display list files
922-
for (auto& item : std::filesystem::directory_iterator(p_directory))
935+
// Display files second, in alphabetical order
936+
for (auto& item : entries)
923937
{
924938
if (!item.is_directory())
925939
{

0 commit comments

Comments
 (0)