Avoid unnecessary changes of register style and sort mode and reconcile

window sort mode. Radio buttons invoke their callbacks when they are
toggled off, too!


git-svn-id: svn+ssh://svn.gnucash.org/repo/gnucash/trunk@2660 57a11ea4-9604-0410-9ed3-97b8803252fd
This commit is contained in:
Dave Peticolas 2000-08-11 18:58:56 +00:00
parent c83b4eeacd
commit 6cc775f779
2 changed files with 29 additions and 1 deletions

View File

@ -65,6 +65,9 @@ struct _RecnWindow
time_t statement_date; /* The statement date */
gboolean use_shares; /* Use share balances */
sort_type_t debit_sort; /* Sorting style of the debit list */
sort_type_t credit_sort; /* Sorting style of the credit list */
GtkWidget *window; /* The reconcile window */
GtkWidget *toolbar; /* Toolbar widget */
@ -813,11 +816,21 @@ gnc_reconcile_sort(RecnWindow *recnData, GNCReconcileListType list_type,
sort_type_t sort_code)
{
GNCReconcileList *list;
sort_type_t *old_type_p;
if (list_type == RECLIST_DEBIT)
{
list = GNC_RECONCILE_LIST(recnData->debit);
old_type_p = &recnData->debit_sort;
}
else
{
list = GNC_RECONCILE_LIST(recnData->credit);
old_type_p = &recnData->credit_sort;
}
if (sort_code == *old_type_p)
return;
switch(sort_code)
{
@ -836,6 +849,8 @@ gnc_reconcile_sort(RecnWindow *recnData, GNCReconcileListType list_type,
break;
}
*old_type_p = sort_code;
gnc_reconcile_list_refresh(GNC_RECONCILE_LIST(recnData->debit));
gnc_reconcile_list_refresh(GNC_RECONCILE_LIST(recnData->credit));
}
@ -1275,6 +1290,8 @@ recnWindow(GtkWidget *parent, Account *account)
recnData->statement_date = statement_date;
recnData->window = gtk_window_new(GTK_WINDOW_TOPLEVEL);
recnData->delete_refresh = FALSE;
recnData->debit_sort = BY_STANDARD;
recnData->credit_sort = BY_STANDARD;
gnc_recn_set_window_name(recnData);

View File

@ -90,6 +90,8 @@ struct _RegWindow
GnucashRegister *reg;
sort_type_t sort_type;
RegDateWindow *date_window;
/* Do we close the ledger when the window closes? */
@ -265,6 +267,9 @@ gnc_register_change_style(RegWindow *regData, SplitRegisterStyle style)
{
SplitRegister *reg = regData->ledger->ledger;
if (style == reg->style)
return;
xaccConfigSplitRegister(reg, reg->type, style);
regData->ledger->dirty = 1;
@ -317,6 +322,9 @@ gnc_register_sort(RegWindow *regData, sort_type_t sort_code)
{
Query *query = regData->ledger->query;
if (regData->sort_type == sort_code)
return;
switch(sort_code)
{
case BY_STANDARD:
@ -348,6 +356,8 @@ gnc_register_sort(RegWindow *regData, sort_type_t sort_code)
assert(0); /* we should never be here */
}
regData->sort_type = sort_code;
regData->ledger->dirty = 1;
xaccLedgerDisplayRefresh(regData->ledger);
}
@ -1551,7 +1561,7 @@ regWindowLedger(xaccLedgerDisplay *ledger)
GtkWidget *table_frame;
GtkWidget *statusbar;
regData = (RegWindow *) (ledger->gui_hook);
regData = ledger->gui_hook;
if (regData != NULL)
return regData;
@ -1574,6 +1584,7 @@ regWindowLedger(xaccLedgerDisplay *ledger)
regData->ledger = ledger;
regData->close_ledger = GNC_T;
regData->window = register_window;
regData->sort_type = BY_STANDARD;
gnc_reg_set_window_name(regData);