r22285 - gnucash/trunk/src/business/business-gnome - Payment dialog - amend r22263
Geert Janssens
gjanssens at code.gnucash.org
Sat Aug 4 12:08:55 EDT 2012
Author: gjanssens
Date: 2012-08-04 12:08:55 -0400 (Sat, 04 Aug 2012)
New Revision: 22285
Trac: http://svn.gnucash.org/trac/changeset/22285
Modified:
gnucash/trunk/src/business/business-gnome/dialog-payment.c
Log:
Payment dialog - amend r22263
Properly fix selection of documents when first loading the dialog
Modified: gnucash/trunk/src/business/business-gnome/dialog-payment.c
===================================================================
--- gnucash/trunk/src/business/business-gnome/dialog-payment.c 2012-08-04 16:08:43 UTC (rev 22284)
+++ gnucash/trunk/src/business/business-gnome/dialog-payment.c 2012-08-04 16:08:55 UTC (rev 22285)
@@ -209,6 +209,45 @@
}
static void
+gnc_payment_dialog_highlight_document (PaymentWindow *pw)
+{
+ if (pw->invoice)
+ {
+ GtkTreeIter iter;
+ GtkTreeModel *model = gtk_tree_view_get_model(GTK_TREE_VIEW(pw->docs_list_tree_view));
+ GtkTreeSelection *selection = gtk_tree_view_get_selection (GTK_TREE_VIEW(pw->docs_list_tree_view));
+
+ if (gtk_tree_model_get_iter_first (model, &iter))
+ {
+ do
+ {
+ GValue value = { 0 };
+ GNCLot *lot;
+ GncInvoice *invoice;
+
+ gtk_tree_model_get_value (model, &iter, 5, &value);
+ lot = (GNCLot *) g_value_get_pointer (&value);
+ g_value_unset (&value);
+
+
+ invoice = gncInvoiceGetInvoiceFromLot (lot);
+ if (!invoice)
+ continue;
+
+ if (pw->invoice == invoice)
+ {
+ gtk_tree_selection_select_iter (selection, &iter);
+ gnc_payment_dialog_document_selection_changed (pw);
+ }
+ else
+ gtk_tree_selection_unselect_iter (selection, &iter);
+ }
+ while (gtk_tree_model_iter_next (model, &iter));
+ }
+ }
+}
+
+static void
gnc_payment_window_fill_docs_list (PaymentWindow *pw)
{
GtkListStore *store;
@@ -306,39 +345,7 @@
g_list_free (list);
/* Highlight the preset invoice if it's in the new list */
- if (pw->invoice)
- {
- GtkTreeIter iter;
- GtkTreeModel *model = GTK_TREE_MODEL (store);
- GtkTreeSelection *selection = gtk_tree_view_get_selection (GTK_TREE_VIEW(pw->docs_list_tree_view));
-
- if (gtk_tree_model_get_iter_first (model, &iter))
- {
- do
- {
- GValue value = { 0 };
- GNCLot *lot;
- GncInvoice *invoice;
-
- gtk_tree_model_get_value (model, &iter, 5, &value);
- lot = (GNCLot *) g_value_get_pointer (&value);
- g_value_unset (&value);
-
-
- invoice = gncInvoiceGetInvoiceFromLot (lot);
- if (!invoice)
- continue;
-
- if (pw->invoice == invoice)
- {
- gtk_tree_selection_select_iter (selection, &iter);
- gnc_payment_dialog_document_selection_changed (pw);
- break;
- }
- }
- while (gtk_tree_model_iter_next (model, &iter));
- }
- }
+ gnc_payment_dialog_highlight_document (pw);
}
static void
@@ -479,6 +486,8 @@
pw->post_acct = post_acct;
gnc_payment_dialog_post_to_changed(pw);
}
+ else
+ gnc_payment_dialog_highlight_document (pw);
return FALSE;
}
More information about the gnucash-changes
mailing list