Exemple #1
0
void
sort_view(FileView *v)
{
	int i;

	if(v->sort[0] > SK_LAST)
	{
		/* Completely skip sorting if primary key isn't set. */
		return;
	}

	view = v;
	custom_view = flist_custom_active(v);

	i = SK_COUNT;
	while(--i >= 0)
	{
		const char sorting_key = view->sort[i];

		if(abs(sorting_key) > SK_LAST)
		{
			continue;
		}

		sort_by_key(sorting_key);
	}

	if(!ui_view_sort_list_contains(v->sort, SK_BY_DIR))
	{
		sort_by_key(SK_BY_DIR);
	}
}
Exemple #2
0
/* Sorts sequence of file entries (plain list, not tree). */
static void
sort_sequence(dir_entry_t *entries, size_t nentries)
{
	int i = SK_COUNT;
	while(--i >= 0)
	{
		const char sorting_key = view_sort[i];

		if(abs(sorting_key) > SK_LAST)
		{
			continue;
		}

		if(sorting_key == SK_BY_GROUPS)
		{
			sort_by_groups(entries, nentries);
			continue;
		}

		sort_by_key(entries, nentries, sorting_key, NULL);
	}

	if(!ui_view_sort_list_contains(view_sort, SK_BY_DIR))
	{
		sort_by_key(entries, nentries, SK_BY_DIR, NULL);
	}
}
Exemple #3
0
void
sort_view(FileView *v)
{
	int i;

	view = v;
	i = SORT_OPTION_COUNT;
	while(--i >= 0)
	{
		const char sorting_key = view->sort[i];

		if(abs(sorting_key) > LAST_SORT_OPTION)
		{
			continue;
		}

		sort_by_key(sorting_key);
	}

	if(!ui_view_sort_list_contains(v->sort, SORT_BY_TYPE))
	{
		sort_by_key(SORT_BY_TYPE);
	}
}