From 0ea6ebe253ea7529e37d16f46eba82a636164b22 Mon Sep 17 00:00:00 2001 From: David Hampton Date: Sat, 18 Feb 2006 03:02:32 +0000 Subject: [PATCH] Prepare for gtk change that will issue warnings if the return value of the gtk_tree_model iter functions are not used. git-svn-id: svn+ssh://svn.gnucash.org/repo/gnucash/trunk@13287 57a11ea4-9604-0410-9ed3-97b8803252fd --- ChangeLog | 15 +++++++++++++ lib/goffice-0.0.4/goffice/graph/gog-guru.c | 18 ++++++++++------ lib/goffice-0.0.4/goffice/gtk/go-format-sel.c | 10 +++++---- src/gnome-utils/dialog-options.c | 4 ++-- src/gnome-utils/gnc-tree-model-account.c | 4 ++-- src/gnome-utils/gnc-tree-model-budget.c | 17 ++++++++------- src/gnome-utils/gnc-tree-model-budget.h | 6 +++--- src/gnome-utils/gnc-tree-model-commodity.c | 21 ++++++++++--------- src/gnome-utils/gnc-tree-model-price.c | 12 +++++------ src/gnome-utils/gnc-tree-view-account.c | 21 ++++++++++--------- .../register-gnome/gnucash-item-list.c | 8 +++++-- src/report/report-gnome/dialog-style-sheet.c | 10 ++++----- 12 files changed, 89 insertions(+), 57 deletions(-) diff --git a/ChangeLog b/ChangeLog index 7047e1b8df..f7f1da169c 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,18 @@ +2006-02-17 David Hampton + + * src/register/register-gnome/gnucash-item-list.c: + * src/report/report-gnome/dialog-style-sheet.c: + * src/gnome-utils/gnc-tree-model-commodity.c: + * src/gnome-utils/gnc-tree-model-budget.[ch]: + * src/gnome-utils/gnc-tree-model-account.c: + * src/gnome-utils/gnc-tree-model-price.c: + * src/gnome-utils/gnc-tree-view-account.c: + * src/gnome-utils/dialog-options.c: + * lib/goffice-0.0.4/goffice/graph/gog-guru.c: + * lib/goffice-0.0.4/goffice/gtk/go-format-sel.c: Prepare for gtk + change that will issue warnings if the return value of the + gtk_tree_model iter functions are not used. + 2006-02-17 Derek Atkins * intl-scm/Makefile.am: diff --git a/lib/goffice-0.0.4/goffice/graph/gog-guru.c b/lib/goffice-0.0.4/goffice/graph/gog-guru.c index 080e5a8be5..950485140b 100644 --- a/lib/goffice-0.0.4/goffice/graph/gog-guru.c +++ b/lib/goffice-0.0.4/goffice/graph/gog-guru.c @@ -539,14 +539,17 @@ cb_graph_guru_delete_item (GraphGuruState *s) if (s->prop_object != NULL) { GtkTreeIter iter; GogObject *obj = s->prop_object; + gboolean have_iter; /* store parent iter */ - gtk_tree_model_iter_parent (GTK_TREE_MODEL (s->prop_model), - &iter, &s->prop_iter); + have_iter = + gtk_tree_model_iter_parent (GTK_TREE_MODEL (s->prop_model), + &iter, &s->prop_iter); gog_object_clear_parent (obj); g_object_unref (obj); /* then select the parent after we delete */ - gtk_tree_selection_select_iter (s->prop_selection, &iter); + if (have_iter) + gtk_tree_selection_select_iter (s->prop_selection, &iter); } } @@ -955,10 +958,13 @@ populate_graph_item_list (GogObject *obj, GogObject *select, GraphGuruState *s, gint i = g_slist_index (gparent->children, obj); if (i > 0) { GtkTreeIter sibling; - gtk_tree_model_iter_nth_child (GTK_TREE_MODEL (s->prop_model), - &sibling, parent, i-1); - gtk_tree_store_insert_after (s->prop_model, &iter, + if (gtk_tree_model_iter_nth_child (GTK_TREE_MODEL (s->prop_model), + &sibling, parent, i-1)) { + gtk_tree_store_insert_after (s->prop_model, &iter, parent, &sibling); + } else { + gtk_tree_store_append (s->prop_model, &iter, parent); + } } else gtk_tree_store_prepend (s->prop_model, &iter, parent); } else diff --git a/lib/goffice-0.0.4/goffice/gtk/go-format-sel.c b/lib/goffice-0.0.4/goffice/gtk/go-format-sel.c index a37444ce71..d9577934da 100644 --- a/lib/goffice-0.0.4/goffice/gtk/go-format-sel.c +++ b/lib/goffice-0.0.4/goffice/gtk/go-format-sel.c @@ -563,10 +563,12 @@ stays: char *tmp = go_format_as_XL (gfs->format.spec, TRUE); format_entry_set_text (gfs, tmp); g_free (tmp); - } else if (select.stamp == 0) - gtk_tree_model_get_iter_first ( - GTK_TREE_MODEL (gfs->format.formats.model), - &select); + } else if (select.stamp == 0) { + if (!gtk_tree_model_get_iter_first ( + GTK_TREE_MODEL (gfs->format.formats.model), + &select)) + select.stamp = 0; + } if (select.stamp != 0) { GtkTreePath *path = gtk_tree_model_get_path ( diff --git a/src/gnome-utils/dialog-options.c b/src/gnome-utils/dialog-options.c index 5fb7468b8c..67599f514f 100644 --- a/src/gnome-utils/dialog-options.c +++ b/src/gnome-utils/dialog-options.c @@ -2383,8 +2383,8 @@ static gboolean gnc_option_set_ui_value_budget( bgt = gw_wcp_get_ptr(value); cb = GTK_COMBO_BOX(widget); tm = gtk_combo_box_get_model(cb); - gnc_tree_model_budget_get_iter_for_budget(tm, &iter, bgt); - gtk_combo_box_set_active_iter(cb, &iter); + if (gnc_tree_model_budget_get_iter_for_budget(tm, &iter, bgt)) + gtk_combo_box_set_active_iter(cb, &iter); } diff --git a/src/gnome-utils/gnc-tree-model-account.c b/src/gnome-utils/gnc-tree-model-account.c index ca19306ceb..3ff79ee40c 100644 --- a/src/gnome-utils/gnc-tree-model-account.c +++ b/src/gnome-utils/gnc-tree-model-account.c @@ -1247,8 +1247,8 @@ gnc_tree_model_account_set_toplevel (GncTreeModelAccount *model, if (priv->toplevel != NULL) { path = gtk_tree_path_new_first (); - gtk_tree_model_get_iter (GTK_TREE_MODEL (model), &iter, path); - gtk_tree_model_row_inserted (GTK_TREE_MODEL (model), path, &iter); + if (gtk_tree_model_get_iter (GTK_TREE_MODEL (model), &iter, path)) + gtk_tree_model_row_inserted (GTK_TREE_MODEL (model), path, &iter); gtk_tree_path_free (path); } diff --git a/src/gnome-utils/gnc-tree-model-budget.c b/src/gnome-utils/gnc-tree-model-budget.c index 3d67778c4b..37545ba0e7 100644 --- a/src/gnome-utils/gnc-tree-model-budget.c +++ b/src/gnome-utils/gnc-tree-model-budget.c @@ -119,7 +119,7 @@ gnc_tree_model_budget_get_budget(GtkTreeModel *tm, GtkTreeIter *iter) return bgt; } -void +gboolean gnc_tree_model_budget_get_iter_for_budget(GtkTreeModel *tm, GtkTreeIter *iter, GncBudget *bgt) { @@ -127,20 +127,23 @@ gnc_tree_model_budget_get_iter_for_budget(GtkTreeModel *tm, GtkTreeIter *iter, const GUID *guid1; GUID *guid2; - g_return_if_fail(GNC_BUDGET(bgt)); + g_return_val_if_fail(GNC_BUDGET(bgt), FALSE); guid1 = gnc_budget_get_guid(bgt); - for (gtk_tree_model_get_iter_first(tm, iter); - gtk_list_store_iter_is_valid(GTK_LIST_STORE(tm), iter); - gtk_tree_model_iter_next(tm, iter)) { - + if (!gtk_tree_model_get_iter_first(tm, iter)) + return FALSE; + while (gtk_list_store_iter_is_valid(GTK_LIST_STORE(tm), iter)) { gtk_tree_model_get_value(tm, iter, BUDGET_GUID_COLUMN, &gv); guid2 = (GUID *) g_value_get_pointer(&gv); g_value_unset(&gv); if (guid_equal(guid1, guid2)) - return; + return TRUE; + + if (!gtk_tree_model_iter_next(tm, iter)) + return FALSE; } + return FALSE; } /** @} */ diff --git a/src/gnome-utils/gnc-tree-model-budget.h b/src/gnome-utils/gnc-tree-model-budget.h index 841e03a8dc..8fa7ced179 100644 --- a/src/gnome-utils/gnc-tree-model-budget.h +++ b/src/gnome-utils/gnc-tree-model-budget.h @@ -49,8 +49,8 @@ void gnc_tree_view_budget_set_model(GtkTreeView *tv, GtkTreeModel *tm); GncBudget *gnc_tree_model_budget_get_budget(GtkTreeModel *tm, GtkTreeIter *iter); -void gnc_tree_model_budget_get_iter_for_budget(GtkTreeModel *tm, - GtkTreeIter *iter, - GncBudget *bgt); +gboolean gnc_tree_model_budget_get_iter_for_budget(GtkTreeModel *tm, + GtkTreeIter *iter, + GncBudget *bgt); /** @} */ #endif // __GNC_TREE_MODEL_BUDGET_H__ diff --git a/src/gnome-utils/gnc-tree-model-commodity.c b/src/gnome-utils/gnc-tree-model-commodity.c index d286b080e5..024a48d7b3 100644 --- a/src/gnome-utils/gnc-tree-model-commodity.c +++ b/src/gnome-utils/gnc-tree-model-commodity.c @@ -1107,16 +1107,17 @@ gnc_tree_model_commodity_path_deleted (GncTreeModelCommodity *model, /* It seems sufficient to tell the model that the parent row * changed. This appears to force a reload of all its child rows, * which handles removing the now gone commodity. */ - gtk_tree_path_up (path); - gnc_tree_model_commodity_get_iter (GTK_TREE_MODEL(model), &iter, path); - debug_path(DEBUG, path); - DEBUG("iter %s", iter_to_string(&iter)); - gtk_tree_model_row_changed (GTK_TREE_MODEL(model), path, &iter); - namespace = gnc_tree_model_commodity_get_namespace (model, &iter); - if (namespace) { - list = gnc_commodity_namespace_get_commodity_list(namespace); - if (g_list_length(list) == 0) { - gtk_tree_model_row_has_child_toggled(GTK_TREE_MODEL(model), path, &iter); + if (gtk_tree_path_up (path)) { + gnc_tree_model_commodity_get_iter (GTK_TREE_MODEL(model), &iter, path); + debug_path(DEBUG, path); + DEBUG("iter %s", iter_to_string(&iter)); + gtk_tree_model_row_changed (GTK_TREE_MODEL(model), path, &iter); + namespace = gnc_tree_model_commodity_get_namespace (model, &iter); + if (namespace) { + list = gnc_commodity_namespace_get_commodity_list(namespace); + if (g_list_length(list) == 0) { + gtk_tree_model_row_has_child_toggled(GTK_TREE_MODEL(model), path, &iter); + } } } } diff --git a/src/gnome-utils/gnc-tree-model-price.c b/src/gnome-utils/gnc-tree-model-price.c index 5010303d90..56ec51502f 100644 --- a/src/gnome-utils/gnc-tree-model-price.c +++ b/src/gnome-utils/gnc-tree-model-price.c @@ -1362,13 +1362,13 @@ gnc_tree_model_price_path_deleted (GncTreeModelPrice *model, GtkTreeIter iter; debug_path(ENTER, path); - do { - gtk_tree_path_up (path); + while (gtk_tree_path_up(path) && (gtk_tree_path_get_depth(path) > 0)) { debug_path(DEBUG, path); - gtk_tree_model_get_iter (GTK_TREE_MODEL(model), &iter, path); - DEBUG("iter %s", iter_to_string(model, &iter)); - gtk_tree_model_row_changed (GTK_TREE_MODEL(model), path, &iter); - } while (gtk_tree_path_get_depth(path) > 1); + if (gtk_tree_model_get_iter (GTK_TREE_MODEL(model), &iter, path)) { + DEBUG("iter %s", iter_to_string(model, &iter)); + gtk_tree_model_row_changed (GTK_TREE_MODEL(model), path, &iter); + } + } do { model->stamp++; diff --git a/src/gnome-utils/gnc-tree-view-account.c b/src/gnome-utils/gnc-tree-view-account.c index b661a61f23..8dcfc5656a 100644 --- a/src/gnome-utils/gnc-tree-view-account.c +++ b/src/gnome-utils/gnc-tree-view-account.c @@ -1215,18 +1215,19 @@ gnc_tree_view_account_select_subaccounts (GncTreeViewAccount *view, gtk_tree_view_expand_row (GTK_TREE_VIEW(view), sp_account, TRUE); /* compute start/end paths */ - gtk_tree_model_iter_nth_child (s_model, &si_start, &si_account, 0); - gtk_tree_model_iter_nth_child (s_model, &si_end, &si_account, num_children - 1); - sp_start = gtk_tree_model_get_path (s_model, &si_start); - sp_end = gtk_tree_model_get_path (s_model, &si_end); + if (gtk_tree_model_iter_nth_child(s_model, &si_start, &si_account, 0) && + gtk_tree_model_iter_nth_child(s_model, &si_end, &si_account, num_children - 1)) { + sp_start = gtk_tree_model_get_path (s_model, &si_start); + sp_end = gtk_tree_model_get_path (s_model, &si_end); - /* select everything between */ - selection = gtk_tree_view_get_selection(GTK_TREE_VIEW(view)); - gtk_tree_selection_select_range (selection, sp_start, sp_end); + /* select everything between */ + selection = gtk_tree_view_get_selection(GTK_TREE_VIEW(view)); + gtk_tree_selection_select_range (selection, sp_start, sp_end); - /* clean up */ - gtk_tree_path_free(sp_start); - gtk_tree_path_free(sp_end); + /* clean up */ + gtk_tree_path_free(sp_start); + gtk_tree_path_free(sp_end); + } gtk_tree_path_free(sp_account); LEAVE(" "); return; diff --git a/src/register/register-gnome/gnucash-item-list.c b/src/register/register-gnome/gnucash-item-list.c index 5f6a6a90da..94ecbb1628 100644 --- a/src/register/register-gnome/gnucash-item-list.c +++ b/src/register/register-gnome/gnucash-item-list.c @@ -217,6 +217,7 @@ gnc_item_list_button_event(GtkWidget *widget, GdkEventButton *event, GtkTreePath *path; GtkTreeModel *model; gchar *string; + gboolean success; g_return_val_if_fail(IS_GNC_ITEM_LIST (data), FALSE); @@ -239,11 +240,14 @@ gnc_item_list_button_event(GtkWidget *widget, GdkEventButton *event, gtk_tree_view_set_cursor (item_list->tree_view, path, NULL, FALSE); model = GTK_TREE_MODEL (item_list->list_store); - gtk_tree_model_get_iter (model, &iter, path); + success = gtk_tree_model_get_iter (model, &iter, path); gtk_tree_path_free (path); - gtk_tree_model_get (model, &iter, 0, &string, -1); + if (!success) + return FALSE; + + gtk_tree_model_get (model, &iter, 0, &string, -1); g_signal_emit (G_OBJECT (item_list), gnc_item_list_signals[ACTIVATE_ITEM], diff --git a/src/report/report-gnome/dialog-style-sheet.c b/src/report/report-gnome/dialog-style-sheet.c index dcd98e7d21..66d733f8db 100644 --- a/src/report/report-gnome/dialog-style-sheet.c +++ b/src/report/report-gnome/dialog-style-sheet.c @@ -107,11 +107,11 @@ gnc_style_sheet_options_close_cb(GNCOptionWin * propertybox, if (gtk_tree_row_reference_valid (ssi->row_ref)) { StyleSheetDialog * ss = gnc_style_sheet_dialog; - gtk_tree_model_get_iter (GTK_TREE_MODEL(ss->list_store), &iter, - gtk_tree_row_reference_get_path (ssi->row_ref)); - gtk_list_store_set (ss->list_store, &iter, - COLUMN_DIALOG, NULL, - -1); + if (gtk_tree_model_get_iter (GTK_TREE_MODEL(ss->list_store), &iter, + gtk_tree_row_reference_get_path (ssi->row_ref))) + gtk_list_store_set (ss->list_store, &iter, + COLUMN_DIALOG, NULL, + -1); } gtk_tree_row_reference_free (ssi->row_ref);