Bug 795101 - Fix the reconcile window sort order

When the reconcile column was moved, the default sort order was not
altered for the change so fixed it. Also added enum so model columns
can be referenced by name which hopefully will make it easier to read.
This commit is contained in:
Robert Fewell 2018-05-01 15:07:46 +01:00 committed by Geert Janssens
parent 2e53d64726
commit 836705f980
4 changed files with 29 additions and 18 deletions

View File

@ -125,10 +125,10 @@ gnc_reconcile_view_tooltip_cb (GNCQueryView *qview, gint x, gint y,
g_list_free (cols); g_list_free (cols);
/* If column is not description, do not show tooltip */ /* If column is not description, do not show tooltip */
if (col_pos != 2) if (col_pos != (REC_DESC - 1)) // allow for the pointer model column at 0
return FALSE; return FALSE;
gtk_tree_model_get (model, &iter, 3, &desc_text, -1); gtk_tree_model_get (model, &iter, REC_DESC, &desc_text, -1);
if (desc_text) if (desc_text)
{ {
@ -259,8 +259,9 @@ gnc_reconcile_view_construct (GNCReconcileView *view, Query *query)
gnc_query_view_construct (qview, view->column_list, query); gnc_query_view_construct (qview, view->column_list, query);
gnc_query_view_set_numerics (qview, TRUE, inv_sort); gnc_query_view_set_numerics (qview, TRUE, inv_sort);
/* Set the description field to have spare space */ /* Set the description field to have spare space,
col = gtk_tree_view_get_column (GTK_TREE_VIEW (qview), 3); REC_DESC -1 to allow for the pointer model column at 0 */
col = gtk_tree_view_get_column (GTK_TREE_VIEW (qview), (REC_DESC - 1));
gtk_tree_view_column_set_expand (col, TRUE); gtk_tree_view_column_set_expand (col, TRUE);
/* Get the renderer of the description column and set ellipsize value */ /* Get the renderer of the description column and set ellipsize value */
@ -411,7 +412,7 @@ gnc_reconcile_view_init (GNCReconcileView *view)
gnc_reconcile_view_is_reconciled, view); gnc_reconcile_view_is_reconciled, view);
gnc_search_param_set_title ((GNCSearchParam *) param, _("Reconciled:R") + 11); gnc_search_param_set_title ((GNCSearchParam *) param, _("Reconciled:R") + 11);
gnc_search_param_set_justify ((GNCSearchParam *) param, GTK_JUSTIFY_CENTER); gnc_search_param_set_justify ((GNCSearchParam *) param, GTK_JUSTIFY_CENTER);
gnc_search_param_set_passive ((GNCSearchParam *) param, TRUE); gnc_search_param_set_passive ((GNCSearchParam *) param, FALSE);
gnc_search_param_set_non_resizeable ((GNCSearchParam *) param, TRUE); gnc_search_param_set_non_resizeable ((GNCSearchParam *) param, TRUE);
columns = g_list_prepend (columns, param); columns = g_list_prepend (columns, param);
@ -540,13 +541,13 @@ gnc_reconcile_view_toggle_children (Account *account, GNCReconcileView *view, Sp
while (valid) while (valid)
{ {
// Walk through the list, reading each row // Walk through the list, reading each row
gtk_tree_model_get (model, &iter, 0, &pointer, -1); gtk_tree_model_get (model, &iter, REC_POINTER, &pointer, -1);
if(pointer == other_split) if(pointer == other_split)
{ {
gboolean toggled; gboolean toggled;
gtk_tree_model_get (model, &iter, 1, &toggled, -1); gtk_tree_model_get (model, &iter, REC_RECN, &toggled, -1);
gtk_list_store_set (GTK_LIST_STORE (model), &iter, 1, !toggled, -1); gtk_list_store_set (GTK_LIST_STORE (model), &iter, REC_RECN, !toggled, -1);
break; break;
} }
@ -597,7 +598,7 @@ gnc_reconcile_view_line_toggled (GNCQueryView *qview,
model = gtk_tree_view_get_model (GTK_TREE_VIEW (qview)); model = gtk_tree_view_get_model (GTK_TREE_VIEW (qview));
gtk_tree_model_iter_nth_child (model, &iter, NULL, qview->toggled_row); gtk_tree_model_iter_nth_child (model, &iter, NULL, qview->toggled_row);
gtk_list_store_set (GTK_LIST_STORE (model), &iter, qview->toggled_column, GPOINTER_TO_INT(item), -1); gtk_list_store_set (GTK_LIST_STORE (model), &iter, qview->toggled_column, GPOINTER_TO_INT(item), -1);
gtk_tree_model_get (model, &iter, 0, &entry, -1); gtk_tree_model_get (model, &iter, REC_POINTER, &entry, -1);
gnc_reconcile_view_toggle (view, entry); gnc_reconcile_view_toggle (view, entry);
} }
@ -659,10 +660,10 @@ gnc_reconcile_view_set_list ( GNCReconcileView *view, gboolean reconcile)
if(gtk_tree_model_get_iter(model, &iter, node->data)) if(gtk_tree_model_get_iter(model, &iter, node->data))
{ {
/* now iter is a valid row iterator */ /* now iter is a valid row iterator */
gtk_tree_model_get (model, &iter, 0, &entry, -1); gtk_tree_model_get (model, &iter, REC_POINTER, &entry, -1);
gtk_tree_model_get (model, &iter, 1, &toggled, -1); gtk_tree_model_get (model, &iter, REC_RECN, &toggled, -1);
gtk_list_store_set (GTK_LIST_STORE (model), &iter, 1, reconcile, -1); gtk_list_store_set (GTK_LIST_STORE (model), &iter, REC_RECN, reconcile, -1);
if(reconcile != toggled) if(reconcile != toggled)
gnc_reconcile_view_toggle (view, entry); gnc_reconcile_view_toggle (view, entry);
@ -709,7 +710,7 @@ gnc_reconcile_view_set_toggle (GNCReconcileView *view)
if(gtk_tree_model_get_iter(model, &iter, node->data)) if(gtk_tree_model_get_iter(model, &iter, node->data))
{ {
/* now iter is a valid row iterator */ /* now iter is a valid row iterator */
gtk_tree_model_get (model, &iter, 1, &toggled, -1); gtk_tree_model_get (model, &iter, REC_RECN, &toggled, -1);
if(toggled) if(toggled)
num_toggled++; num_toggled++;
@ -943,7 +944,7 @@ gnc_reconcile_view_postpone (GNCReconcileView *view)
{ {
char recn; char recn;
gtk_tree_model_get (model, &iter, 0, &entry, -1); gtk_tree_model_get (model, &iter, REC_POINTER, &entry, -1);
// Don't change splits past reconciliation date that haven't been // Don't change splits past reconciliation date that haven't been
// set to be reconciled // set to be reconciled

View File

@ -44,6 +44,16 @@ typedef enum
RECLIST_CREDIT RECLIST_CREDIT
} GNCReconcileViewType; } GNCReconcileViewType;
enum
{
REC_POINTER, //0
REC_RECN, //1
REC_DATE, //2
REC_NUM, //3
REC_DESC, //4
REC_AMOUNT //5
};
struct GNCReconcileView struct GNCReconcileView
{ {
GNCQueryView qview; GNCQueryView qview;

View File

@ -1946,8 +1946,8 @@ recnWindowWithBalance (Account *account, gnc_numeric new_ending,
gnc_window_adjust_for_screen(GTK_WINDOW(recnData->window)); gnc_window_adjust_for_screen(GTK_WINDOW(recnData->window));
/* Set the sort orders of the debit and credit tree views */ /* Set the sort orders of the debit and credit tree views */
gnc_query_sort_order(GNC_QUERY_VIEW(recnData->debit), 1, GTK_SORT_ASCENDING); gnc_query_sort_order(GNC_QUERY_VIEW(recnData->debit), REC_DATE, GTK_SORT_ASCENDING);
gnc_query_sort_order(GNC_QUERY_VIEW(recnData->credit), 1, GTK_SORT_ASCENDING); gnc_query_sort_order(GNC_QUERY_VIEW(recnData->credit), REC_DATE, GTK_SORT_ASCENDING);
gtk_widget_grab_focus (recnData->debit); gtk_widget_grab_focus (recnData->debit);

View File

@ -1886,8 +1886,8 @@ recnWindow2WithBalance (GtkWidget *parent, Account *account,
gnc_window_adjust_for_screen (GTK_WINDOW (recnData->window)); gnc_window_adjust_for_screen (GTK_WINDOW (recnData->window));
/* Set the sort orders of the debit and credit tree views */ /* Set the sort orders of the debit and credit tree views */
gnc_query_sort_order (GNC_QUERY_VIEW (recnData->debit), 1, GTK_SORT_ASCENDING); gnc_query_sort_order (GNC_QUERY_VIEW (recnData->debit), REC_DATE, GTK_SORT_ASCENDING);
gnc_query_sort_order (GNC_QUERY_VIEW (recnData->credit), 1, GTK_SORT_ASCENDING); gnc_query_sort_order (GNC_QUERY_VIEW (recnData->credit), REC_DATE, GTK_SORT_ASCENDING);
gtk_widget_grab_focus (recnData->debit); gtk_widget_grab_focus (recnData->debit);