mirror of
https://github.com/Gnucash/gnucash.git
synced 2025-02-25 18:55:30 -06:00
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:
parent
c83b4eeacd
commit
6cc775f779
@ -65,6 +65,9 @@ struct _RecnWindow
|
|||||||
time_t statement_date; /* The statement date */
|
time_t statement_date; /* The statement date */
|
||||||
gboolean use_shares; /* Use share balances */
|
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 *window; /* The reconcile window */
|
||||||
|
|
||||||
GtkWidget *toolbar; /* Toolbar widget */
|
GtkWidget *toolbar; /* Toolbar widget */
|
||||||
@ -813,11 +816,21 @@ gnc_reconcile_sort(RecnWindow *recnData, GNCReconcileListType list_type,
|
|||||||
sort_type_t sort_code)
|
sort_type_t sort_code)
|
||||||
{
|
{
|
||||||
GNCReconcileList *list;
|
GNCReconcileList *list;
|
||||||
|
sort_type_t *old_type_p;
|
||||||
|
|
||||||
if (list_type == RECLIST_DEBIT)
|
if (list_type == RECLIST_DEBIT)
|
||||||
|
{
|
||||||
list = GNC_RECONCILE_LIST(recnData->debit);
|
list = GNC_RECONCILE_LIST(recnData->debit);
|
||||||
|
old_type_p = &recnData->debit_sort;
|
||||||
|
}
|
||||||
else
|
else
|
||||||
|
{
|
||||||
list = GNC_RECONCILE_LIST(recnData->credit);
|
list = GNC_RECONCILE_LIST(recnData->credit);
|
||||||
|
old_type_p = &recnData->credit_sort;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (sort_code == *old_type_p)
|
||||||
|
return;
|
||||||
|
|
||||||
switch(sort_code)
|
switch(sort_code)
|
||||||
{
|
{
|
||||||
@ -836,6 +849,8 @@ gnc_reconcile_sort(RecnWindow *recnData, GNCReconcileListType list_type,
|
|||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
*old_type_p = sort_code;
|
||||||
|
|
||||||
gnc_reconcile_list_refresh(GNC_RECONCILE_LIST(recnData->debit));
|
gnc_reconcile_list_refresh(GNC_RECONCILE_LIST(recnData->debit));
|
||||||
gnc_reconcile_list_refresh(GNC_RECONCILE_LIST(recnData->credit));
|
gnc_reconcile_list_refresh(GNC_RECONCILE_LIST(recnData->credit));
|
||||||
}
|
}
|
||||||
@ -1275,6 +1290,8 @@ recnWindow(GtkWidget *parent, Account *account)
|
|||||||
recnData->statement_date = statement_date;
|
recnData->statement_date = statement_date;
|
||||||
recnData->window = gtk_window_new(GTK_WINDOW_TOPLEVEL);
|
recnData->window = gtk_window_new(GTK_WINDOW_TOPLEVEL);
|
||||||
recnData->delete_refresh = FALSE;
|
recnData->delete_refresh = FALSE;
|
||||||
|
recnData->debit_sort = BY_STANDARD;
|
||||||
|
recnData->credit_sort = BY_STANDARD;
|
||||||
|
|
||||||
gnc_recn_set_window_name(recnData);
|
gnc_recn_set_window_name(recnData);
|
||||||
|
|
||||||
|
@ -90,6 +90,8 @@ struct _RegWindow
|
|||||||
|
|
||||||
GnucashRegister *reg;
|
GnucashRegister *reg;
|
||||||
|
|
||||||
|
sort_type_t sort_type;
|
||||||
|
|
||||||
RegDateWindow *date_window;
|
RegDateWindow *date_window;
|
||||||
|
|
||||||
/* Do we close the ledger when the window closes? */
|
/* 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;
|
SplitRegister *reg = regData->ledger->ledger;
|
||||||
|
|
||||||
|
if (style == reg->style)
|
||||||
|
return;
|
||||||
|
|
||||||
xaccConfigSplitRegister(reg, reg->type, style);
|
xaccConfigSplitRegister(reg, reg->type, style);
|
||||||
|
|
||||||
regData->ledger->dirty = 1;
|
regData->ledger->dirty = 1;
|
||||||
@ -317,6 +322,9 @@ gnc_register_sort(RegWindow *regData, sort_type_t sort_code)
|
|||||||
{
|
{
|
||||||
Query *query = regData->ledger->query;
|
Query *query = regData->ledger->query;
|
||||||
|
|
||||||
|
if (regData->sort_type == sort_code)
|
||||||
|
return;
|
||||||
|
|
||||||
switch(sort_code)
|
switch(sort_code)
|
||||||
{
|
{
|
||||||
case BY_STANDARD:
|
case BY_STANDARD:
|
||||||
@ -348,6 +356,8 @@ gnc_register_sort(RegWindow *regData, sort_type_t sort_code)
|
|||||||
assert(0); /* we should never be here */
|
assert(0); /* we should never be here */
|
||||||
}
|
}
|
||||||
|
|
||||||
|
regData->sort_type = sort_code;
|
||||||
|
|
||||||
regData->ledger->dirty = 1;
|
regData->ledger->dirty = 1;
|
||||||
xaccLedgerDisplayRefresh(regData->ledger);
|
xaccLedgerDisplayRefresh(regData->ledger);
|
||||||
}
|
}
|
||||||
@ -1551,7 +1561,7 @@ regWindowLedger(xaccLedgerDisplay *ledger)
|
|||||||
GtkWidget *table_frame;
|
GtkWidget *table_frame;
|
||||||
GtkWidget *statusbar;
|
GtkWidget *statusbar;
|
||||||
|
|
||||||
regData = (RegWindow *) (ledger->gui_hook);
|
regData = ledger->gui_hook;
|
||||||
if (regData != NULL)
|
if (regData != NULL)
|
||||||
return regData;
|
return regData;
|
||||||
|
|
||||||
@ -1574,6 +1584,7 @@ regWindowLedger(xaccLedgerDisplay *ledger)
|
|||||||
regData->ledger = ledger;
|
regData->ledger = ledger;
|
||||||
regData->close_ledger = GNC_T;
|
regData->close_ledger = GNC_T;
|
||||||
regData->window = register_window;
|
regData->window = register_window;
|
||||||
|
regData->sort_type = BY_STANDARD;
|
||||||
|
|
||||||
gnc_reg_set_window_name(regData);
|
gnc_reg_set_window_name(regData);
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user