diff options
author | Christopher James Lahey <clahey@helixcode.com> | 2001-02-06 05:18:25 +0800 |
---|---|---|
committer | Chris Lahey <clahey@src.gnome.org> | 2001-02-06 05:18:25 +0800 |
commit | fdb765da597c1929ffc8d5275e74b78f5624fe60 (patch) | |
tree | 14a86b60a86f23e719034d30be433ccfa6b8911a /widgets/menus/gal-view-collection.c | |
parent | 707cce7733ad5bd9fda46ed3b48259df4e2d73f0 (diff) | |
download | gsoc2013-evolution-fdb765da597c1929ffc8d5275e74b78f5624fe60.tar.gz gsoc2013-evolution-fdb765da597c1929ffc8d5275e74b78f5624fe60.tar.zst gsoc2013-evolution-fdb765da597c1929ffc8d5275e74b78f5624fe60.zip |
Fixed a number of small bugs in how we were saving and loading view
2001-02-05 Christopher James Lahey <clahey@helixcode.com>
* gal-view-collection.c: Fixed a number of small bugs in how we
were saving and loading view collections.
* gal-view-etable.c (config_changed): Send the changed signal
properly.
(gal_view_etable_construct): Duplicate the spec's state here.
svn path=/trunk/; revision=7986
Diffstat (limited to 'widgets/menus/gal-view-collection.c')
-rw-r--r-- | widgets/menus/gal-view-collection.c | 26 |
1 files changed, 22 insertions, 4 deletions
diff --git a/widgets/menus/gal-view-collection.c b/widgets/menus/gal-view-collection.c index fb5192f0c7..9b1922b102 100644 --- a/widgets/menus/gal-view-collection.c +++ b/widgets/menus/gal-view-collection.c @@ -196,6 +196,7 @@ view_changed (GalView *view, GalViewCollectionItem *item) { item->changed = TRUE; + item->ever_changed = TRUE; } static GalViewCollectionItem * @@ -269,17 +270,18 @@ load_single_dir (GalViewCollection *collection, } if (!found) { for (i = 0; i < collection->removed_view_count; i++) { - if (!strcmp(id, collection->removed_view_data[i]->id)) + if (!strcmp(id, collection->removed_view_data[i]->id)) { if (!local) collection->removed_view_data[i]->built_in = TRUE; - found = TRUE; - break; + found = TRUE; + break; + } } } if (!found) { GalViewCollectionItem *item = load_single_file (collection, dir, local, child); - if (item->filename) { + if (item->filename && *item->filename) { collection->view_data = g_renew(GalViewCollectionItem *, collection->view_data, collection->view_count + 1); collection->view_data[collection->view_count] = item; collection->view_count ++; @@ -348,6 +350,18 @@ gal_view_collection_save (GalViewCollection *collection) } } } + for (i = 0; i < collection->removed_view_count; i++) { + xmlNode *child; + GalViewCollectionItem *item; + + item = collection->removed_view_data[i]; + + child = xmlNewChild(root, NULL, "GalView", NULL); + e_xml_set_string_prop_by_name(child, "id", item->id); + e_xml_set_string_prop_by_name(child, "title", item->title); + e_xml_set_string_prop_by_name(child, "type", item->type); + + } filename = g_concat_dir_and_file(collection->local_dir, "galview.xml"); xmlSaveFile(filename, doc); xmlFreeDoc(doc); @@ -432,6 +446,10 @@ gal_view_check_string (GalViewCollection *collection, if (!strcmp(string, collection->view_data[i]->id)) return FALSE; } + for (i = 0; i < collection->removed_view_count; i++) { + if (!strcmp(string, collection->removed_view_data[i]->id)) + return FALSE; + } return TRUE; } |