UI: Outliner Natural Sort
authorHarley Acheson <harley.acheson@gmail.com>
Fri, 30 Aug 2019 14:49:12 +0000 (07:49 -0700)
committerHarley Acheson <harley.acheson@gmail.com>
Fri, 30 Aug 2019 14:50:11 +0000 (07:50 -0700)
Collection contents alphabetical sort now uses a Natural Sort that takes number magnitude into account.

Differential Revision: https://developer.blender.org/D5636

Reviewed by Brecht Van Lommel

source/blender/editors/space_outliner/outliner_tree.c

index c3168a7a5327ab3d3761625d7e9c4f312497d297..4195865668849909861cf5c13b0632aaa861d3d3 100644 (file)
@@ -1601,7 +1601,7 @@ typedef struct tTreeSort {
   short idcode;
 } tTreeSort;
 
-/* alphabetical comparator, tryping to put objects first */
+/* alphabetical comparator, trying to put objects first */
 static int treesort_alpha_ob(const void *v1, const void *v2)
 {
   const tTreeSort *x1 = v1, *x2 = v2;
@@ -1627,7 +1627,7 @@ static int treesort_alpha_ob(const void *v1, const void *v2)
       return (x1->te->flag & TE_CHILD_NOT_IN_COLLECTION) ? 1 : -1;
     }
 
-    comp = strcmp(x1->name, x2->name);
+    comp = BLI_natstrcmp(x1->name, x2->name);
 
     if (comp > 0) {
       return 1;
@@ -1659,7 +1659,7 @@ static int treesort_alpha(const void *v1, const void *v2)
   const tTreeSort *x1 = v1, *x2 = v2;
   int comp;
 
-  comp = strcmp(x1->name, x2->name);
+  comp = BLI_natstrcmp(x1->name, x2->name);
 
   if (comp > 0) {
     return 1;
@@ -1697,7 +1697,7 @@ static int treesort_obtype_alpha(const void *v1, const void *v2)
       }
     }
     else {
-      int comp = strcmp(x1->name, x2->name);
+      int comp = BLI_natstrcmp(x1->name, x2->name);
 
       if (comp > 0) {
         return 1;