Web   ·   Wiki   ·   Activities   ·   Blog   ·   Lists   ·   Chat   ·   Meeting   ·   Bugs   ·   Git   ·   Translate   ·   Archive   ·   People   ·   Donate
summaryrefslogtreecommitdiffstats
path: root/cut-n-paste/recent-files/egg-recent-item.c
diff options
context:
space:
mode:
authorNickolay V. Shmyrev <nshmyrev@src.gnome.org>2006-01-17 21:53:17 (GMT)
committer Nickolay V. Shmyrev <nshmyrev@src.gnome.org>2006-01-17 21:53:17 (GMT)
commitc7bae2c213369b853bb420e5cf09d192f38f8cce (patch)
tree7dcbe628e1289f4297214ae3f1b71eed8409c5a9 /cut-n-paste/recent-files/egg-recent-item.c
parentaf71939e1812703087b8f9e4b39a3f79aa97f5a3 (diff)
Update from libegg.
* cut-n-paste/recent-files/egg-recent-item.c: (get_uri_shortname_for_display), (egg_recent_item_get_short_name): * cut-n-paste/recent-files/egg-recent-model.c: (parse_info_init), (parse_info_free), (valid_element), (start_element_handler), (end_element_handler), (text_handler), (egg_recent_model_filter), (egg_recent_model_monitor_cb), (egg_recent_model_poll_timeout), (egg_recent_model_monitor), (egg_recent_model_read), (egg_recent_model_open_file), (egg_recent_model_lock_file), (egg_recent_model_unlock_file), (egg_recent_model_finalize), (egg_recent_model_set_property), (egg_recent_model_class_init), (egg_recent_model_init), (egg_recent_model_add_full), (egg_recent_model_delete), (egg_recent_model_get_list), (egg_recent_model_clear), (egg_recent_model_clear_mime_filter), (egg_recent_model_set_filter_mime_types), (egg_recent_model_clear_group_filter), (egg_recent_model_set_filter_groups), (egg_recent_model_clear_scheme_filter), (egg_recent_model_set_filter_uri_schemes), (egg_recent_model_remove_expired): * cut-n-paste/recent-files/egg-recent-util.c: (egg_recent_util_get_icon): * cut-n-paste/recent-files/egg-recent-util.h: * cut-n-paste/recent-files/egg-recent-view-uimanager.c: (connect_proxy_cb), (egg_recent_view_uimanager_set_list), (egg_recent_view_uimanager_set_empty_list), (model_changed_cb), (egg_recent_view_uimanager_set_property), (egg_recent_view_uimanager_get_property), (egg_recent_view_uimanager_class_init), (egg_recent_view_uimanager_init), (egg_recent_view_uimanager_set_label_width), (egg_recent_view_uimanager_get_label_width): * cut-n-paste/recent-files/egg-recent-view-uimanager.h: * cut-n-paste/toolbar-editor/egg-editable-toolbar.c: * cut-n-paste/toolbar-editor/egg-editable-toolbar.h: * cut-n-paste/toolbar-editor/egg-toolbar-editor.c: * cut-n-paste/toolbar-editor/egg-toolbars-model.c: * cut-n-paste/toolbar-editor/egg-toolbars-model.h: Update from libegg.
Diffstat (limited to 'cut-n-paste/recent-files/egg-recent-item.c')
-rw-r--r--cut-n-paste/recent-files/egg-recent-item.c173
1 files changed, 66 insertions, 107 deletions
diff --git a/cut-n-paste/recent-files/egg-recent-item.c b/cut-n-paste/recent-files/egg-recent-item.c
index bf7fee6..ce4b64e 100644
--- a/cut-n-paste/recent-files/egg-recent-item.c
+++ b/cut-n-paste/recent-files/egg-recent-item.c
@@ -101,84 +101,6 @@ egg_recent_item_new_from_uri (const gchar *uri)
return item;
}
-/*
-static GList *
-egg_recent_item_copy_groups (const GList *list)
-{
- GList *newlist = NULL;
-
- while (list) {
- gchar *group = (gchar *)list->data;
-
- newlist = g_list_prepend (newlist, g_strdup (group));
-
- list = list->next;
- }
-
- return newlist;
-}
-
-
-EggRecentItem *
-egg_recent_item_copy (const EggRecentItem *item)
-{
- EggRecentItem *newitem;
-
- newitem = egg_recent_item_new ();
- newitem->uri = g_strdup (item->uri);
- if (item->mime_type)
- newitem->mime_type = g_strdup (item->mime_type);
- newitem->mime_type_is_explicit = item->mime_type_is_explicit
- newitem->timestamp = item->timestamp;
- newitem->private_data = item->private_data;
- newitem->groups = egg_recent_item_copy_groups (item->groups);
-
- return newitem;
-}
-*/
-
-/*
-EggRecentItem *
-egg_recent_item_new_valist (const gchar *uri, va_list args)
-{
- EggRecentItem *item;
- EggRecentArg arg;
- gchar *str1;
- gchar *str2;
- gboolean priv;
-
- item = egg_recent_item_new ();
-
- arg = va_arg (args, EggRecentArg);
-
- while (arg != EGG_RECENT_ARG_NONE) {
- switch (arg) {
- case EGG_RECENT_ARG_MIME_TYPE:
- str1 = va_arg (args, gchar*);
-
- egg_recent_item_set_mime_type (item, str1);
- break;
- case EGG_RECENT_ARG_GROUP:
- str1 = va_arg (args, gchar*);
-
- egg_recent_item_add_group (item, str1);
- break;
- case EGG_RECENT_ARG_PRIVATE:
- priv = va_arg (args, gboolean);
-
- egg_recent_item_set_private (item, priv);
- break;
- default:
- break;
- }
-
- arg = va_arg (args, EggRecentArg);
- }
-
- return item;
-}
-*/
-
static void
egg_recent_item_update_mime_type (EggRecentItem *item)
{
@@ -288,6 +210,70 @@ make_valid_utf8 (const char *name)
return g_string_free (string, FALSE);
}
+static gchar *
+get_uri_shortname_for_display (GnomeVFSURI *uri)
+{
+ gchar *name;
+ gboolean validated;
+
+ validated = FALSE;
+ name = gnome_vfs_uri_extract_short_name (uri);
+
+ if (name == NULL)
+ {
+ name = gnome_vfs_uri_to_string (uri, GNOME_VFS_URI_HIDE_PASSWORD);
+ }
+ else if (g_ascii_strcasecmp (uri->method_string, "file") == 0)
+ {
+ gchar *text_uri;
+ gchar *local_file;
+ text_uri = gnome_vfs_uri_to_string (uri, GNOME_VFS_URI_HIDE_PASSWORD);
+ local_file = gnome_vfs_get_local_path_from_uri (text_uri);
+
+ if (local_file != NULL)
+ {
+ g_free (name);
+ name = g_filename_display_basename (local_file);
+ validated = TRUE;
+ }
+
+ g_free (local_file);
+ g_free (text_uri);
+ }
+ else if (!gnome_vfs_uri_has_parent (uri))
+ {
+ const gchar *method;
+
+ method = uri->method_string;
+
+ if (name == NULL ||
+ strcmp (name, GNOME_VFS_URI_PATH_STR) == 0)
+ {
+ g_free (name);
+ name = g_strdup (method);
+ }
+ else
+ {
+ gchar *tmp;
+
+ tmp = name;
+ name = g_strdup_printf ("%s: %s", method, name);
+ g_free (tmp);
+ }
+ }
+
+ if (!validated && !g_utf8_validate (name, -1, NULL))
+ {
+ gchar *utf8_name;
+
+ utf8_name = make_valid_utf8 (name);
+ g_free (name);
+ name = utf8_name;
+ }
+
+ return name;
+}
+
/**
* egg_recent_item_get_short_name:
* @item: an #EggRecentItem
@@ -303,8 +289,7 @@ gchar *
egg_recent_item_get_short_name (const EggRecentItem *item)
{
GnomeVFSURI *uri;
- char *short_name;
- gboolean valid;
+ gchar *short_name;
g_return_val_if_fail (item != NULL, NULL);
@@ -315,33 +300,7 @@ egg_recent_item_get_short_name (const EggRecentItem *item)
if (uri == NULL)
return NULL;
- short_name = gnome_vfs_uri_extract_short_name (uri);
- if (short_name == NULL) {
- gnome_vfs_uri_unref (uri);
- return NULL;
- }
-
- valid = FALSE;
-
- if (strcmp (gnome_vfs_uri_get_scheme (uri), "file") == 0) {
- char *tmp;
-
- tmp = g_filename_to_utf8 (short_name, -1, NULL, NULL, NULL);
- if (tmp) {
- g_free (short_name);
- short_name = tmp;
- valid = TRUE;
- }
- }
-
- if (!valid) {
- char *tmp;
-
- tmp = make_valid_utf8 (short_name);
- g_assert (tmp != NULL);
- g_free (short_name);
- short_name = tmp;
- }
+ short_name = get_uri_shortname_for_display (uri);
gnome_vfs_uri_unref (uri);