diff options
author | Dan Winship <danw@src.gnome.org> | 2002-03-08 02:26:57 +0800 |
---|---|---|
committer | Dan Winship <danw@src.gnome.org> | 2002-03-08 02:26:57 +0800 |
commit | 7065f6dba35467cb77519e0b9144659581746289 (patch) | |
tree | b6758e28708d8b973d920810495b847e106aea6a /shell/e-shortcuts.c | |
parent | 654b9618c8bc54e248a7cd5c36bed6e116bfe6a3 (diff) | |
download | gsoc2013-evolution-7065f6dba35467cb77519e0b9144659581746289.tar.gz gsoc2013-evolution-7065f6dba35467cb77519e0b9144659581746289.tar.zst gsoc2013-evolution-7065f6dba35467cb77519e0b9144659581746289.zip |
Make storages-with-toplevel-views less of a hack.
* e-folder-tree.c (e_folder_tree_add): Allow the caller to "add" a
root folder, if the existing root folder has no children.
(e_folder_tree_new): Use e_folder_tree_add to create the root
folder, since it can do that now.
* e-storage.c: (e_storage_construct): Replace toplevel_node_uri
and toplevel_node_type args with root_folder.
(e_storage_new): Likewise.
(*): Remove toplevel uri/type stuff everywhere. Also remove
display_name since now we will use the name of the root folder for
that.
* evolution-storage.c: Remove toplevel uri/type stuff everywhere.
* e-local-storage.c (construct): Pass root_folder to
e_storage_construct instead of toplevel uri/type.
Also, evolution_storage_new no longer takes toplevel uri/type.
* e-corba-storage.c (e_corba_storage_construct): Out with toplevel
uri/type, in with root_folder.
(e_corba_storage_new): Remove toplevel uri/type.
* e-shell.c (setup_local_storage): Create a top-level folder of
type "summary" for the Summary storage.
* e-storage-set-view.c (set_e_shortcut_selection): Remove
special-case for storages.
(etree_icon_at): Remove special case for figuring out storage
icons (but leave the code that makes the icon disappear once the
storage is opened).
(etree_value_at): Remove special case for storage names. (But
still make storages always bold.) Remove unused special-case code
for Summary.
* e-shortcuts.c (load_shortcuts): Remove special case for
storages, reorganize a bit.
* e-shortcuts-view.c (get_shortcut_info): Remove special case for
storages.
* e-shell-view.c (update_for_current_uri): Remove special case for
storages.
(socket_destroy_cb): Likewise.
(get_type_for_storage): No longer needed.
(get_view_for_uri): No longer needs to special-case storages (but
add a special case for folders of type "noselect", to make them
unselectable like storages-without-toplevel-views used to be).
* e-storage-set.c (get_storage_for_path): If passed "/foo", return
"/" as subpath_return so e_storage_set_get_folder will DTRT in the
NWO.
* Evolution-Storage.idl (addStorage): Remove the toplevel_node_uri
and toplevel_node_type arguments.
* e-corba-storage-registry.c (impl_StorageRegistry_addStorage):
Likewise.
svn path=/trunk/; revision=15965
Diffstat (limited to 'shell/e-shortcuts.c')
-rw-r--r-- | shell/e-shortcuts.c | 43 |
1 files changed, 12 insertions, 31 deletions
diff --git a/shell/e-shortcuts.c b/shell/e-shortcuts.c index 3b155f0acc..b231bc4df2 100644 --- a/shell/e-shortcuts.c +++ b/shell/e-shortcuts.c @@ -328,51 +328,32 @@ load_shortcuts (EShortcuts *shortcuts, continue; uri = xmlNodeListGetString (doc, q->childs, 1); - name = xmlGetProp (q, "name"); - type = xmlGetProp (q, "type"); + if (uri == NULL) + continue; - if (uri != NULL && strncmp (uri, E_SHELL_URI_PREFIX, E_SHELL_URI_PREFIX_LEN) == 0) { + if (strncmp (uri, E_SHELL_URI_PREFIX, E_SHELL_URI_PREFIX_LEN) == 0) { EFolder *folder; folder = e_storage_set_get_folder (priv->storage_set, uri + E_SHELL_URI_PREFIX_LEN); if (folder != NULL) { - if (type != NULL) - xmlFree (type); + name = xmlMemStrdup (e_folder_get_name (folder)); type = xmlMemStrdup (e_folder_get_type_string (folder)); } else { - EStorage *storage; - const char *storage_type; - - storage = e_storage_set_get_storage (priv->storage_set, - uri + E_SHELL_URI_PREFIX_LEN + 1); - if (storage != NULL) { - if (type != NULL) - xmlFree (type); - storage_type = e_storage_get_toplevel_node_type (storage); - - if (storage_type == NULL) - type = NULL; - else - type = xmlMemStrdup (storage_type); - - if (name != NULL) - xmlFree (name); - - name = xmlMemStrdup (e_storage_get_display_name (storage)); - } + name = xmlGetProp (q, "name"); + type = xmlGetProp (q, "type"); } shortcut_item = shortcut_item_new (uri, name, 0, type); shortcut_group->shortcuts = g_slist_prepend (shortcut_group->shortcuts, shortcut_item); + + if (name != NULL) + xmlFree (name); + if (type != NULL) + xmlFree (type); } - if (uri != NULL) - xmlFree (uri); - if (name != NULL) - xmlFree (name); - if (type != NULL) - xmlFree (type); + xmlFree (uri); } shortcut_group->shortcuts = g_slist_reverse (shortcut_group->shortcuts); |