diff options
Diffstat (limited to 'e-util/gal-view-collection.c')
-rw-r--r-- | e-util/gal-view-collection.c | 19 |
1 files changed, 15 insertions, 4 deletions
diff --git a/e-util/gal-view-collection.c b/e-util/gal-view-collection.c index 24d70a67b6..2a48f03513 100644 --- a/e-util/gal-view-collection.c +++ b/e-util/gal-view-collection.c @@ -642,16 +642,19 @@ gal_view_collection_append (GalViewCollection *collection, GalView *view) { GalViewCollectionItem *item; + GalViewClass *view_class; g_return_if_fail (GAL_IS_VIEW_COLLECTION (collection)); g_return_if_fail (GAL_IS_VIEW (view)); + view_class = GAL_VIEW_GET_CLASS (view); + item = g_new (GalViewCollectionItem, 1); item->ever_changed = TRUE; item->changed = TRUE; item->built_in = FALSE; item->title = g_strdup (gal_view_get_title (view)); - item->type = g_strdup (gal_view_get_type_code (view)); + item->type = g_strdup (view_class->type_code); item->id = gal_view_generate_id (collection, view); item->filename = g_strdup_printf ("%s.galview", item->id); item->view = view; @@ -701,18 +704,20 @@ gal_view_collection_copy_view (GalViewCollection *collection, { GalViewCollectionItem *item; GalView *view; + GalViewClass *view_class; g_return_if_fail (GAL_IS_VIEW_COLLECTION (collection)); g_return_if_fail (i >= 0 && i < collection->view_count); view = collection->view_data[i]->view; + view_class = GAL_VIEW_GET_CLASS (view); item = g_new (GalViewCollectionItem, 1); item->ever_changed = TRUE; item->changed = FALSE; item->built_in = FALSE; item->title = g_strdup (gal_view_get_title (view)); - item->type = g_strdup (gal_view_get_type_code (view)); + item->type = g_strdup (view_class->type_code); item->id = gal_view_generate_id (collection, view); item->filename = g_strdup_printf ("%s.galview", item->id); item->view = gal_view_clone (view); @@ -741,10 +746,13 @@ gal_view_collection_append_with_title (GalViewCollection *collection, GalView *view) { GalViewCollectionItem *item; + GalViewClass *view_class; g_return_val_if_fail (GAL_IS_VIEW_COLLECTION (collection), NULL); g_return_val_if_fail (GAL_IS_VIEW (view), NULL); + view_class = GAL_VIEW_GET_CLASS (view); + gal_view_set_title (view, title); d (g_print ("%s: %p\n", G_STRFUNC, view)); @@ -754,7 +762,7 @@ gal_view_collection_append_with_title (GalViewCollection *collection, item->changed = TRUE; item->built_in = FALSE; item->title = g_strdup (gal_view_get_title (view)); - item->type = g_strdup (gal_view_get_type_code (view)); + item->type = g_strdup (view_class->type_code); item->id = gal_view_generate_id (collection, view); item->filename = g_strdup_printf ("%s.galview", item->id); item->view = view; @@ -779,6 +787,7 @@ gal_view_collection_set_nth_view (GalViewCollection *collection, GalView *view) { GalViewCollectionItem *item; + GalViewClass *view_class; g_return_val_if_fail (GAL_IS_VIEW_COLLECTION (collection), NULL); g_return_val_if_fail (GAL_IS_VIEW (view), NULL); @@ -787,6 +796,8 @@ gal_view_collection_set_nth_view (GalViewCollection *collection, d (g_print ("%s: %p\n", G_STRFUNC, view)); + view_class = GAL_VIEW_GET_CLASS (view); + item = collection->view_data[i]; gal_view_set_title (view, item->title); @@ -801,7 +812,7 @@ gal_view_collection_set_nth_view (GalViewCollection *collection, item->ever_changed = TRUE; item->changed = TRUE; - item->type = g_strdup (gal_view_get_type_code (view)); + item->type = g_strdup (view_class->type_code); item->view_changed_id = g_signal_connect ( item->view, "changed", |