re-sort the list of visible items when the appropriate entries

change.


git-svn-id: svn+ssh://svn.gnucash.org/repo/gnucash/trunk@7001 57a11ea4-9604-0410-9ed3-97b8803252fd
This commit is contained in:
Derek Atkins
2002-06-23 01:23:28 +00:00
parent 7060f342cd
commit 98f2b6a280
2 changed files with 24 additions and 1 deletions

View File

@@ -60,6 +60,7 @@ struct _book_info {
static void add_or_rem_object (GncBillTerm *term, gboolean add);
static void addObj (GncBillTerm *term);
static void remObj (GncBillTerm *term);
static void maybe_resort_list (GncBillTerm *term);
G_INLINE_FUNC void mark_term (GncBillTerm *term);
G_INLINE_FUNC void
@@ -115,6 +116,7 @@ void gncBillTermSetName (GncBillTerm *term, const char *name)
if (!term || !name) return;
SET_STR (term->name, name);
mark_term (term);
maybe_resort_list (term);
}
void gncBillTermSetDescription (GncBillTerm *term, const char *desc)
@@ -122,6 +124,7 @@ void gncBillTermSetDescription (GncBillTerm *term, const char *desc)
if (!term || !desc) return;
SET_STR (term->desc, desc);
mark_term (term);
maybe_resort_list (term);
}
void gncBillTermSetType (GncBillTerm *term, GncBillTermType type)
@@ -360,7 +363,7 @@ int gncBillTermCompare (GncBillTerm *a, GncBillTerm *b)
if (!b) return 1;
ret = safe_strcmp (a->name, b->name);
if (!ret) return ret;
if (ret) return ret;
return safe_strcmp (a->desc, b->desc);
}
@@ -451,6 +454,15 @@ gncBillTermComputeDiscountDate (GncBillTerm *term, Timespec post_date)
/* Package-Private functions */
static void maybe_resort_list (GncBillTerm *term)
{
struct _book_info *bi;
if (term->parent || term->invisible) return;
bi = gnc_book_get_data (term->book, _GNC_MOD_NAME);
bi->terms = g_list_sort (bi->terms, (GCompareFunc)gncBillTermCompare);
}
static void add_or_rem_object (GncBillTerm *term, gboolean add)
{
struct _book_info *bi;

View File

@@ -63,6 +63,7 @@ struct _book_info {
static void add_or_rem_object (GncTaxTable *table, gboolean add);
static void addObj (GncTaxTable *table);
static void remObj (GncTaxTable *table);
static void maybe_resort_list (GncTaxTable *table);
G_INLINE_FUNC void mark_table (GncTaxTable *table);
G_INLINE_FUNC void
@@ -142,6 +143,7 @@ void gncTaxTableSetName (GncTaxTable *table, const char *name)
if (!table || !name) return;
SET_STR (table->name, name);
mark_table (table);
maybe_resort_list (table);
}
void gncTaxTableSetParent (GncTaxTable *table, GncTaxTable *parent)
@@ -497,6 +499,15 @@ void gncAccountValueDestroy (GList *list)
/* Package-Private functions */
static void maybe_resort_list (GncTaxTable *table)
{
struct _book_info *bi;
if (table->parent || table->invisible) return;
bi = gnc_book_get_data (table->book, _GNC_MOD_NAME);
bi->tables = g_list_sort (bi->tables, (GCompareFunc)gncTaxTableCompare);
}
static void add_or_rem_object (GncTaxTable *table, gboolean add)
{
struct _book_info *bi;