Re: [Nautilus-list] Another question: nautilus and XALF
- From: Rémi Cohen-Scali <Remi Cohen-Scali com>
- To: Havoc Pennington <hp redhat com>
- Cc: Darin Adler <darin bentspoon com>, Dan Berger <dberger ix netcom com>, Nautilus <nautilus-list lists eazel com>
- Subject: Re: [Nautilus-list] Another question: nautilus and XALF
- Date: Sat, 26 Jan 2002 13:19:31 +0100
I tried a patch where I made the NautilusDesktopFile class public. It is
better because the localized name of the command (the one that is IN the
desktop file) appears in the xalf frontend.
The patch should applied softly on gnome2 nautilus (without the
ChangeLog part).
Havoc Pennington wrote:
Darin Adler <darin bentspoon com> writes:
Oh, that's new code that the Red Hat guys added after 1.0.
I have never looked at nautilus_desktop_file_launch -- it's quite
possible that it does something different.
Havoc, can you remember who did this part?
I don't remember. It appears to use
nautilus_launch_application_from_command and do some xalf stuff
though.
Havoc
_______________________________________________
nautilus-list mailing list
nautilus-list lists eazel com
http://lists.eazel.com/mailman/listinfo/nautilus-list
--
-o)
Remi Cohen-Scali /\\
<Remi Cohen-Scali com> <rcoscali rcsnet net> _\_v
----
diff -u -r1.4797.2.9 nautilus/ChangeLog
--- nautilus/ChangeLog 2001/11/08 05:37:33 1.4797.2.9
+++ nautilus/ChangeLog 2002/01/26 12:11:30
@@ -1,3 +1,16 @@
+2002-01-26 Remi Cohen-Scali <remi cohen-scali com>
+
+ * src/file-manager/fm-directory-view.c (activate_callback):
+ Now use newly public NautilusDesktopFile class & nautilus_desktop_file_launch
+ to launch the corresponding command.
+
+ * libnautilus-private/nautilus-desktop-file-loader.c:
+ * libnautilus-private/nautilus-desktop-file-loader.h:
+ Made the NautilusDesktopFile class public. The struct has been moved
+ from the source to the header. The nautilus_desktop_file_new method
+ is not static any more.
+
+
2001-11-07 Darin Adler <darin bentspoon com>
* configure.in: Update version to 1.0.6.
diff -u -r1.2 nautilus/libnautilus-private/nautilus-desktop-file-loader.c
--- nautilus/libnautilus-private/nautilus-desktop-file-loader.c 2001/09/26 16:37:15 1.2
+++ nautilus/libnautilus-private/nautilus-desktop-file-loader.c 2002/01/26 12:03:07
@@ -41,7 +41,6 @@
#include <iconv.h>
#include <langinfo.h>
-typedef struct NautilusDesktopFileSection NautilusDesktopFileSection;
typedef struct NautilusDesktopFileAddition NautilusDesktopFileAddition;
typedef struct NautilusDesktopFileForeachData NautilusDesktopFileForeachData;
@@ -50,18 +49,6 @@
gpointer data);
-struct NautilusDesktopFile {
- char **lines;
-
- /* hash of section names, from pointer to start of name (just after
- * bracket) to NautilusDesktopFileSection structs
- */
- GHashTable *section_hash;
- GList *addition_list;
-
- NautilusDesktopFileSection *main_section;
-};
-
struct NautilusDesktopFileSection {
/* pointer into a line of df->lines for start of name */
const char *name;
@@ -105,7 +92,6 @@
NautilusDesktopFileForeachFunc func,
gpointer user_data);
-static NautilusDesktopFile * nautilus_desktop_file_new (void);
static void hash_lines (NautilusDesktopFile *df);
static NautilusDesktopFileSection* section_new (const char *name,
char **start_line);
@@ -118,7 +104,7 @@
static void addition_free (NautilusDesktopFileAddition *addition);
-static NautilusDesktopFile*
+NautilusDesktopFile*
nautilus_desktop_file_new (void)
{
NautilusDesktopFile *df;
@@ -1160,8 +1146,7 @@
char *url;
char *exec;
char *subst;
-
-
+ char *name;
if (!nautilus_desktop_file_get_string (df, NULL, "Type", &type)) {
return;
@@ -1187,11 +1172,13 @@
in_terminal = FALSE;
nautilus_desktop_file_get_boolean (df, NULL, "Terminal", &in_terminal);
+ nautilus_desktop_file_get_locale_string (df, NULL, "Name", &name);
- nautilus_launch_application_from_command ("",
+ nautilus_launch_application_from_command (name,
subst,
NULL,
in_terminal);
+ g_free (name);
g_free (subst);
}
diff -u -r1.2 nautilus/libnautilus-private/nautilus-desktop-file-loader.h
--- nautilus/libnautilus-private/nautilus-desktop-file-loader.h 2001/09/26 16:37:15 1.2
+++ nautilus/libnautilus-private/nautilus-desktop-file-loader.h 2002/01/26 12:03:07
@@ -30,6 +30,21 @@
#include <glib.h>
#include <libgnomevfs/gnome-vfs-result.h>
+struct NautilusDesktopFileSection;
+typedef struct NautilusDesktopFileSection NautilusDesktopFileSection;
+
+struct NautilusDesktopFile {
+ char **lines;
+
+ /* hash of section names, from pointer to start of name (just after
+ * bracket) to NautilusDesktopFileSection structs
+ */
+ GHashTable *section_hash;
+ GList *addition_list;
+
+ NautilusDesktopFileSection *main_section;
+};
+
typedef struct NautilusDesktopFile NautilusDesktopFile;
/* This is a quick-hack to read and modify .desktop files.
@@ -40,6 +55,7 @@
* and put it in another library for use by the panel, nautilus etc.
*/
+NautilusDesktopFile *nautilus_desktop_file_new (void);
GnomeVFSResult nautilus_desktop_file_load (const char *uri,
NautilusDesktopFile **desktop_file);
NautilusDesktopFile *nautilus_desktop_file_from_string (const char *data);
diff -u -r1.473.2.3 nautilus/src/file-manager/fm-directory-view.c
--- nautilus/src/file-manager/fm-directory-view.c 2001/10/26 01:06:47 1.473.2.3
+++ nautilus/src/file-manager/fm-directory-view.c 2002/01/26 12:05:09
@@ -75,6 +75,7 @@
#include <libnautilus-private/nautilus-trash-directory.h>
#include <libnautilus-private/nautilus-trash-monitor.h>
#include <libnautilus-private/nautilus-view-identifier.h>
+#include <libnautilus-private/nautilus-desktop-file-loader.h>
#include <libnautilus/nautilus-bonobo-ui.h>
#include <math.h>
@@ -4594,8 +4595,10 @@
ActivateParameters *parameters;
FMDirectoryView *view;
char *uri, *command, *executable_path, *quoted_path, *name;
+ char *dfpath;
GnomeVFSMimeApplication *application;
ActivationAction action;
+ NautilusDesktopFile *df;
parameters = callback_data;
@@ -4632,8 +4635,14 @@
* enforced by using a call that uses
* fork/execlp instead of system.
*/
- command = uri + strlen (NAUTILUS_COMMAND_SPECIFIER);
- eel_gnome_shell_execute (command);
+ name = nautilus_file_get_name(file);
+ df = nautilus_desktop_file_new ();
+ dfpath = g_strdup_printf ("%s/%s",
+ nautilus_get_desktop_directory (),
+ name);
+ g_free (name);
+ nautilus_desktop_file_load (dfpath, &df);
+ nautilus_desktop_file_launch(df);
action = ACTIVATION_ACTION_DO_NOTHING;
}
}
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]