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 */
|
||||
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);
|
||||
|
||||
|
@ -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);
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user