summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorRebecca Schulman <rebecka@eazel.com>2001-02-05 21:36:04 +0000
committerRebecca Schulman <rebecka@src.gnome.org>2001-02-05 21:36:04 +0000
commite115f75c63d73e5a168e2314eb09b5700d684e44 (patch)
tree18b4ef39c9cf457b1ff6cbf7b618de157b226c77
parent1d10bfc8a08b70dbc5ef47ecb15e5654618a025d (diff)
downloadnautilus-e115f75c63d73e5a168e2314eb09b5700d684e44.tar.gz
reviewed by: Maciej Stachowiak <mjs@eazel.com>
2001-02-05 Rebecca Schulman <rebecka@eazel.com> reviewed by: Maciej Stachowiak <mjs@eazel.com> * libnautilus-extensions/nautilus-mime-actions.c: (nautilus_mime_get_default_component_sort_conditions), (nautilus_mime_get_default_component_for_file_internal), (nautilus_mime_get_short_list_components_for_file): Changes to make sure the short list is sorted correctly, so the correct default application is chosen.
-rw-r--r--ChangeLog11
-rw-r--r--libnautilus-extensions/nautilus-mime-actions.c16
-rw-r--r--libnautilus-private/nautilus-mime-actions.c16
3 files changed, 27 insertions, 16 deletions
diff --git a/ChangeLog b/ChangeLog
index 547b0d8d9..9dfdc2923 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,14 @@
+2001-02-05 Rebecca Schulman <rebecka@eazel.com>
+
+ reviewed by: Maciej Stachowiak <mjs@eazel.com>
+
+ * libnautilus-extensions/nautilus-mime-actions.c:
+ (nautilus_mime_get_default_component_sort_conditions),
+ (nautilus_mime_get_default_component_for_file_internal),
+ (nautilus_mime_get_short_list_components_for_file):
+ Changes to make sure the short list is sorted
+ correctly, so the correct default application is chosen.
+
2001-02-05 Andy Hertzfeld <andy@eazel.com>
* librsvg/rsvg.c: (rsvg_render_svp):
diff --git a/libnautilus-extensions/nautilus-mime-actions.c b/libnautilus-extensions/nautilus-mime-actions.c
index 7e11d78d6..79a97deea 100644
--- a/libnautilus-extensions/nautilus-mime-actions.c
+++ b/libnautilus-extensions/nautilus-mime-actions.c
@@ -291,9 +291,8 @@ nautilus_mime_get_default_component_sort_conditions (NautilusFile *file, char *d
/* Prefer something from the short list */
short_list = nautilus_mime_get_short_list_components_for_file (file);
-
if (short_list != NULL) {
- sort_conditions[1] = g_strdup ("has (['");
+ sort_conditions[1] = g_strdup ("prefer_by_list_order (iid, ['");
for (p = short_list; p != NULL; p = p->next) {
prev = sort_conditions[1];
@@ -303,7 +302,7 @@ nautilus_mime_get_default_component_sort_conditions (NautilusFile *file, char *d
"','", NULL);
} else {
sort_conditions[1] = g_strconcat (prev, ((OAF_ServerInfo *) (p->data))->iid,
- "'], iid)", NULL);
+ "'])", NULL);
}
g_free (prev);
}
@@ -415,7 +414,7 @@ nautilus_mime_get_default_component_for_file_internal (NautilusFile *file,
if (info_list != NULL) {
server = OAF_ServerInfo_duplicate (info_list->data);
gnome_vfs_mime_component_list_free (info_list);
-
+
if (default_component_string != NULL && strcmp (server->iid, default_component_string) == 0) {
used_user_chosen_info = TRUE; /* Default component chosen based on user-stored . */
}
@@ -601,12 +600,15 @@ nautilus_mime_get_short_list_components_for_file (NautilusFile *file)
iids = g_list_prepend (iids, p->data);
}
}
-
+
+ /* By copying the iids using g_list_prepend, we've reversed the short
+ list order. We need to use the order to determine the first available
+ component, so reverse it now to maintain original ordering */
+ iids = g_list_reverse (iids);
result = NULL;
if (iids != NULL) {
extra_requirements = g_strdup ("has (['");
-
for (p = iids; p != NULL; p = p->next) {
prev = extra_requirements;
@@ -615,11 +617,9 @@ nautilus_mime_get_short_list_components_for_file (NautilusFile *file)
} else {
extra_requirements = g_strconcat (prev, p->data, "'], iid)", NULL);
}
-
g_free (prev);
}
-
result = nautilus_do_component_query (mime_type, uri_scheme, item_mime_types, FALSE,
explicit_iids, NULL, extra_requirements, &ev);
g_free (extra_requirements);
diff --git a/libnautilus-private/nautilus-mime-actions.c b/libnautilus-private/nautilus-mime-actions.c
index 7e11d78d6..79a97deea 100644
--- a/libnautilus-private/nautilus-mime-actions.c
+++ b/libnautilus-private/nautilus-mime-actions.c
@@ -291,9 +291,8 @@ nautilus_mime_get_default_component_sort_conditions (NautilusFile *file, char *d
/* Prefer something from the short list */
short_list = nautilus_mime_get_short_list_components_for_file (file);
-
if (short_list != NULL) {
- sort_conditions[1] = g_strdup ("has (['");
+ sort_conditions[1] = g_strdup ("prefer_by_list_order (iid, ['");
for (p = short_list; p != NULL; p = p->next) {
prev = sort_conditions[1];
@@ -303,7 +302,7 @@ nautilus_mime_get_default_component_sort_conditions (NautilusFile *file, char *d
"','", NULL);
} else {
sort_conditions[1] = g_strconcat (prev, ((OAF_ServerInfo *) (p->data))->iid,
- "'], iid)", NULL);
+ "'])", NULL);
}
g_free (prev);
}
@@ -415,7 +414,7 @@ nautilus_mime_get_default_component_for_file_internal (NautilusFile *file,
if (info_list != NULL) {
server = OAF_ServerInfo_duplicate (info_list->data);
gnome_vfs_mime_component_list_free (info_list);
-
+
if (default_component_string != NULL && strcmp (server->iid, default_component_string) == 0) {
used_user_chosen_info = TRUE; /* Default component chosen based on user-stored . */
}
@@ -601,12 +600,15 @@ nautilus_mime_get_short_list_components_for_file (NautilusFile *file)
iids = g_list_prepend (iids, p->data);
}
}
-
+
+ /* By copying the iids using g_list_prepend, we've reversed the short
+ list order. We need to use the order to determine the first available
+ component, so reverse it now to maintain original ordering */
+ iids = g_list_reverse (iids);
result = NULL;
if (iids != NULL) {
extra_requirements = g_strdup ("has (['");
-
for (p = iids; p != NULL; p = p->next) {
prev = extra_requirements;
@@ -615,11 +617,9 @@ nautilus_mime_get_short_list_components_for_file (NautilusFile *file)
} else {
extra_requirements = g_strconcat (prev, p->data, "'], iid)", NULL);
}
-
g_free (prev);
}
-
result = nautilus_do_component_query (mime_type, uri_scheme, item_mime_types, FALSE,
explicit_iids, NULL, extra_requirements, &ev);
g_free (extra_requirements);