Skip to content

Commit

Permalink
Display the sub-categories alphabetically sorted
Browse files Browse the repository at this point in the history
  • Loading branch information
LudovicRousseau committed Jun 5, 2019
1 parent f0848cd commit 937db6c
Show file tree
Hide file tree
Showing 2 changed files with 25 additions and 16 deletions.
36 changes: 22 additions & 14 deletions src/gsb_data_category.c
Expand Up @@ -604,18 +604,23 @@ gint gsb_data_category_new_sub_category ( gint category_number,
{
gint sub_category_number;

sub_category_number = gsb_data_category_new_sub_category_with_number ( gsb_data_category_max_sub_category_number (category_number) + 1,
category_number );
sub_category_number = gsb_data_category_new_sub_category_with_number_and_name ( gsb_data_category_max_sub_category_number (category_number) + 1,
category_number,
name );

/* append the name if necessary */

if (name)
gsb_data_category_set_sub_category_name ( category_number,
sub_category_number,
name );
return sub_category_number;
}

/**
* compare the name of two sub-categories
* */
static gint gsb_sub_category_cmp(gconstpointer a,
gconstpointer b)
{
const SubCategoryStruct *elt1 = a;
const SubCategoryStruct *elt2 = b;
return strcmp(elt1 -> sub_category_name, elt2 -> sub_category_name);
}

/**
* create a new sub-category with a number, append it to the list
Expand All @@ -626,8 +631,9 @@ gint gsb_data_category_new_sub_category ( gint category_number,
*
* \return the number of the new sub-category or 0 if problem
* */
gint gsb_data_category_new_sub_category_with_number ( gint number,
gint category_number)
gint gsb_data_category_new_sub_category_with_number_and_name ( gint number,
gint category_number,
const gchar * name)
{
CategoryStruct *category;
SubCategoryStruct *sub_category;
Expand All @@ -640,9 +646,12 @@ gint gsb_data_category_new_sub_category_with_number ( gint number,
sub_category = g_malloc0 ( sizeof (SubCategoryStruct));
sub_category -> sub_category_number = number;
sub_category -> mother_category_number = category_number;
if (name)
sub_category -> sub_category_name = strdup(name);

category -> sub_category_list = g_slist_append ( category -> sub_category_list,
sub_category );
category -> sub_category_list = g_slist_insert_sorted ( category -> sub_category_list,
sub_category,
gsb_sub_category_cmp);

sub_category_buffer = sub_category;

Expand Down Expand Up @@ -1740,8 +1749,7 @@ gboolean gsb_data_category_test_create_sub_category ( gint no_category,
no_sub_category );
if ( !sub_category )
{
gsb_data_category_new_sub_category_with_number (no_sub_category, no_category);
gsb_data_category_set_sub_category_name ( no_category, no_sub_category, name );
gsb_data_category_new_sub_category_with_number_and_name (no_sub_category, no_category, name);
}
else
{
Expand Down
5 changes: 3 additions & 2 deletions src/gsb_data_category.h
Expand Up @@ -57,8 +57,9 @@ gpointer gsb_data_category_get_sub_category_structure (gint no_category,
gint no_sub_category);
gint gsb_data_category_get_type (gint no_category);
gboolean gsb_data_category_init_variables (void);
gint gsb_data_category_new_sub_category_with_number (gint number,
gint category_number);
gint gsb_data_category_new_sub_category_with_number_and_name (gint number,
gint category_number,
const gchar *name);
gint gsb_data_category_new_with_number (gint number);
gboolean gsb_data_category_remove (gint no_category);
void gsb_data_category_remove_transaction_from_category (gint transaction_number);
Expand Down

0 comments on commit 937db6c

Please sign in to comment.