nautilus r13784 - in trunk: . libnautilus-private
- From: cosimoc svn gnome org
- To: svn-commits-list gnome org
- Subject: nautilus r13784 - in trunk: . libnautilus-private
- Date: Wed, 20 Feb 2008 15:11:17 +0000 (GMT)
Author: cosimoc
Date: Wed Feb 20 15:11:17 2008
New Revision: 13784
URL: http://svn.gnome.org/viewvc/nautilus?rev=13784&view=rev
Log:
2008-02-20 Cosimo Cecchi <cosimoc gnome org>
* libnautilus-private/nautilus-mime-application-chooser.c:
(get_extension_from_file), (set_uri_and_type_for_multiple_files):
Finish work on open with tab with multiple files selected. (#343930).
Modified:
trunk/ChangeLog
trunk/libnautilus-private/nautilus-mime-application-chooser.c
Modified: trunk/libnautilus-private/nautilus-mime-application-chooser.c
==============================================================================
--- trunk/libnautilus-private/nautilus-mime-application-chooser.c (original)
+++ trunk/libnautilus-private/nautilus-mime-application-chooser.c Wed Feb 20 15:11:17 2008
@@ -30,8 +30,10 @@
#include "nautilus-open-with-dialog.h"
#include "nautilus-signaller.h"
+#include "nautilus-file.h"
#include <eel/eel-stock-dialogs.h>
#include <eel/eel-glib-extensions.h>
+#include <eel/eel-string.h>
#include <string.h>
#include <glib/gi18n-lib.h>
@@ -657,37 +659,59 @@
return TRUE;
}
+static char *
+get_extension_from_file (NautilusFile *nfile)
+{
+ char *name;
+ char *extension;
+
+ name = nautilus_file_get_name (nfile);
+ extension = get_extension (name);
+
+ g_free (name);
+
+ return extension;
+}
+
static gboolean
set_uri_and_type_for_multiple_files (NautilusMimeApplicationChooser *chooser,
GList *uris,
const char *mime_type)
{
char *label;
- char *extension;
- char *name;
- GFile *file;
+ char *first_extension;
+ gboolean same_extension;
GList *iter;
chooser->details->for_multiple_files = TRUE;
chooser->details->uri = NULL;
chooser->details->orig_mime_type = g_strdup (mime_type);
- extension = NULL;
- iter = uris;
-
- while (extension == NULL && iter != NULL) {
- g_free (extension);
-
- file = g_file_new_for_uri ((const char *) uris->data);
- name = g_file_get_basename (file);
- extension = get_extension (name);
+ same_extension = TRUE;
+ first_extension = get_extension_from_file (NAUTILUS_FILE (uris->data));
+ iter = uris->next;
+
+ while (iter != NULL) {
+ char *extension_current;
+
+ extension_current = get_extension_from_file (NAUTILUS_FILE (iter->data));
+ if (eel_strcmp (first_extension, extension_current)) {
+ same_extension = FALSE;
+ g_free (extension_current);
+ break;
+ }
iter = iter->next;
- g_free (name);
- g_object_unref (file);
+ g_free (extension_current);
}
- set_extension_and_description (NAUTILUS_MIME_APPLICATION_CHOOSER (chooser),
- extension, mime_type);
- g_free (extension);
+ if (!same_extension) {
+ set_extension_and_description (NAUTILUS_MIME_APPLICATION_CHOOSER (chooser),
+ NULL, mime_type);
+ } else {
+ set_extension_and_description (NAUTILUS_MIME_APPLICATION_CHOOSER (chooser),
+ first_extension, mime_type);
+ }
+
+ g_free (first_extension);
label = g_strdup_printf (_("Open all files of type \"%s\" with:"),
chooser->details->type_description);
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]