]> www.fi.muni.cz Git - evince.git/commitdiff
Don't use libgnome to open help, instead call Yelp directly.
authorRoss Burton <ross@openedhand.com>
Fri, 4 May 2007 15:14:02 +0000 (15:14 +0000)
committerRoss Burton <rburton@src.gnome.org>
Fri, 4 May 2007 15:14:02 +0000 (15:14 +0000)
2007-05-04  Ross Burton  <ross@openedhand.com>

* shell/ev-window.c:
Don't use libgnome to open help, instead call Yelp directly.

svn path=/trunk/; revision=2435

ChangeLog
shell/ev-window.c

index 8aace3186c830d4955d528bdec2337fe740fd9a3..99c8bb10edbc80de9629b28bf03d5fe6adb284ed 100644 (file)
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,8 @@
+2007-05-04  Ross Burton  <ross@openedhand.com>
+
+       * shell/ev-window.c:
+       Don't use libgnome to open help, instead call Yelp directly.
+
 2007-05-04  Ross Burton  <ross@openedhand.com>
 
        * shell/ev-sidebar-attachments.c:
index cb7f71bb61959b32f23ff6a5d5ef6716b2b678bb..b18abe7625ce1af8df1c51166c1f8e5543f6f327 100644 (file)
@@ -87,7 +87,6 @@
 #include <glib/gstdio.h>
 #include <glib/gi18n.h>
 #include <gtk/gtk.h>
-#include <gnome.h>
 #include <libgnomevfs/gnome-vfs-utils.h>
 #include <libgnomevfs/gnome-vfs-async-ops.h>
 #include <gconf/gconf-client.h>
@@ -3133,15 +3132,45 @@ static void
 ev_window_cmd_help_contents (GtkAction *action, EvWindow *ev_window)
 {
        GError *error = NULL;
+       char *command;
+       const char *lang;
+       char *uri = NULL;
 
-       g_return_if_fail (EV_IS_WINDOW (ev_window));
+       int i;
+
+       const char * const * langs = g_get_language_names ();
+
+       for (i = 0; langs[i]; i++) {
+               lang = langs[i];
+               if (strchr (lang, '.')) {
+                       continue;
+               }
 
-       gnome_help_display ("evince.xml", NULL, &error);
+               uri = g_build_filename(GNOMEDATADIR,
+                                      "/gnome/help/" PACKAGE,
+                                      lang,
+                                      "/evince.xml",
+                                      NULL);
+                                       
+               if (g_file_test (uri, G_FILE_TEST_EXISTS)) {
+                       break;
+               }
+       }
 
-       if(error != NULL) {
+       if (uri == NULL) {
+               g_warning ("Cannot find help");
+               return;
+       }
+       
+       command = g_strconcat ("gnome-help ghelp://", uri,  NULL);
+       g_free (uri);
+       
+       g_spawn_command_line_async (command, &error);
+       if (error != NULL) {
                g_warning (error->message);
                g_error_free (error);
        }
+       g_free (command);
 }
 
 static void