r20628 - gnucash/trunk/src/gnome-utils - Properly handle owner add events in the owner tree view
Geert Janssens
gjanssens at code.gnucash.org
Wed May 11 17:52:20 EDT 2011
Author: gjanssens
Date: 2011-05-11 17:52:20 -0400 (Wed, 11 May 2011)
New Revision: 20628
Trac: http://svn.gnucash.org/trac/changeset/20628
Modified:
gnucash/trunk/src/gnome-utils/gnc-tree-model-owner.c
Log:
Properly handle owner add events in the owner tree view
Modified: gnucash/trunk/src/gnome-utils/gnc-tree-model-owner.c
===================================================================
--- gnucash/trunk/src/gnome-utils/gnc-tree-model-owner.c 2011-05-11 21:52:12 UTC (rev 20627)
+++ gnucash/trunk/src/gnome-utils/gnc-tree-model-owner.c 2011-05-11 21:52:20 UTC (rev 20628)
@@ -1058,35 +1058,40 @@
entity, event_type, model, ed);
priv = GNC_TREE_MODEL_OWNER_GET_PRIVATE(model);
- if (qof_instance_get_book (entity) != priv->book)
+ qofOwnerSetEntity (&owner, entity);
+ if (gncOwnerGetType(&owner) != priv->owner_type)
{
- LEAVE("not in this book");
+ LEAVE("model type and owner type differ");
return;
}
- qofOwnerSetEntity (&owner, entity);
- if (!gnc_tree_model_owner_get_iter_from_owner (model, &owner, &iter))
+
+ if (qof_instance_get_book (entity) != priv->book)
{
- LEAVE("not in this model");
+ LEAVE("not in this book");
return;
}
+
/* What to do, that to do. */
switch (event_type)
{
case QOF_EVENT_ADD:
/* Tell the filters/views where the new owner was added. */
DEBUG("add owner %p (%s)", &owner, gncOwnerGetName(&owner));
+ /* First update our copy of the owner list. This isn't done automatically */
+ priv->owner_list = gncBusinessGetOwnerList (priv->book,
+ gncOwnerTypeToQofIdType(priv->owner_type), TRUE);
+ increment_stamp(model);
+ if (!gnc_tree_model_owner_get_iter_from_owner (model, &owner, &iter))
+ {
+ LEAVE("can't generate iter");
+ break;
+ }
path = gnc_tree_model_owner_get_path(GTK_TREE_MODEL(model), &iter);
if (!path)
{
DEBUG("can't generate path");
break;
}
- increment_stamp(model);
- if (!gnc_tree_model_owner_get_iter(GTK_TREE_MODEL(model), &iter, path))
- {
- DEBUG("can't generate iter");
- break;
- }
gtk_tree_model_row_inserted (GTK_TREE_MODEL(model), path, &iter);
break;
@@ -1108,17 +1113,17 @@
case QOF_EVENT_MODIFY:
DEBUG("modify owner %p (%s)", &owner, gncOwnerGetName(&owner));
+ if (!gnc_tree_model_owner_get_iter_from_owner (model, &owner, &iter))
+ {
+ LEAVE("can't generate iter");
+ return;
+ }
path = gnc_tree_model_owner_get_path(GTK_TREE_MODEL(model), &iter);
if (!path)
{
DEBUG("can't generate path");
break;
}
- if (!gnc_tree_model_owner_get_iter(GTK_TREE_MODEL(model), &iter, path))
- {
- DEBUG("can't generate iter");
- break;
- }
gtk_tree_model_row_changed(GTK_TREE_MODEL(model), path, &iter);
break;
More information about the gnucash-changes
mailing list