idnode: make tree's default sorted by title
This commit is contained in:
parent
05dd018b5a
commit
95c76059f7
3 changed files with 20 additions and 0 deletions
|
@ -333,6 +333,7 @@ api_idnode_tree
|
|||
idnode_set_t *v = node ? idnode_get_childs(node) : rootfn();
|
||||
if (v) {
|
||||
int i;
|
||||
idnode_set_sort_by_title(v);
|
||||
for(i = 0; i < v->is_count; i++) {
|
||||
htsmsg_t *m = idnode_serialize(v->is_array[i]);
|
||||
htsmsg_add_u32(m, "leaf", idnode_is_leaf(v->is_array[i]));
|
||||
|
|
18
src/idnode.c
18
src/idnode.c
|
@ -427,6 +427,17 @@ idnode_find_all ( const idclass_t *idc )
|
|||
* Set processing
|
||||
* *************************************************************************/
|
||||
|
||||
static int
|
||||
idnode_cmp_title
|
||||
( const void *a, const void *b )
|
||||
{
|
||||
idnode_t *ina = *(idnode_t**)a;
|
||||
idnode_t *inb = *(idnode_t**)b;
|
||||
const char *sa = idnode_get_title(ina);
|
||||
const char *sb = idnode_get_title(inb);
|
||||
return strcmp(sa, sb);
|
||||
}
|
||||
|
||||
static int
|
||||
idnode_cmp_sort
|
||||
( const void *a, const void *b, void *s )
|
||||
|
@ -613,6 +624,13 @@ idnode_set_sort
|
|||
qsort_r(is->is_array, is->is_count, sizeof(idnode_t*), idnode_cmp_sort, sort);
|
||||
}
|
||||
|
||||
void
|
||||
idnode_set_sort_by_title
|
||||
( idnode_set_t *is )
|
||||
{
|
||||
qsort(is->is_array, is->is_count, sizeof(idnode_t*), idnode_cmp_title);
|
||||
}
|
||||
|
||||
void
|
||||
idnode_set_free ( idnode_set_t *is )
|
||||
{
|
||||
|
|
|
@ -157,6 +157,7 @@ int idnode_filter
|
|||
void idnode_set_add
|
||||
( idnode_set_t *is, idnode_t *in, idnode_filter_t *filt );
|
||||
void idnode_set_sort ( idnode_set_t *is, idnode_sort_t *s );
|
||||
void idnode_set_sort_by_title ( idnode_set_t *is );
|
||||
void idnode_set_free ( idnode_set_t *is );
|
||||
|
||||
#endif /* __TVH_IDNODE_H__ */
|
||||
|
|
Loading…
Add table
Reference in a new issue