]> git.0d.be Git - empathy.git/commitdiff
CallWindow: add a Settings menu item
authorEmilio Pozuelo Monfort <emilio.pozuelo@collabora.co.uk>
Wed, 3 Aug 2011 08:12:15 +0000 (09:12 +0100)
committerEmilio Pozuelo Monfort <emilio.pozuelo@collabora.co.uk>
Thu, 4 Aug 2011 09:10:20 +0000 (10:10 +0100)
https://bugzilla.gnome.org/show_bug.cgi?id=655884

src/empathy-call-window.c
src/empathy-call-window.ui

index 2d7d53efd76a04633ac175b526f5b5e8dcfd7d9b..b3272bdccd3e5b5cfdf3e3c80bd8f4cb0551acac 100644 (file)
@@ -730,6 +730,54 @@ create_pipeline (EmpathyCallWindow *self)
   g_object_unref (bus);
 }
 
+static void
+empathy_call_window_settings_cb (GtkAction *action,
+    EmpathyCallWindow *self)
+{
+  GdkDisplay *display;
+  GError *error = NULL;
+  gchar *path, *cmd;
+  GAppInfo *app_info;
+  GdkAppLaunchContext *context = NULL;
+
+  /* Try to run from source directory if possible */
+  path = g_build_filename (g_getenv ("EMPATHY_SRCDIR"), "src",
+      "empathy", NULL);
+
+  if (!g_file_test (path, G_FILE_TEST_EXISTS))
+    {
+      g_free (path);
+      path = g_build_filename (BIN_DIR, "empathy", NULL);
+    }
+
+  cmd = g_strconcat (path, " -p", NULL);
+
+  app_info = g_app_info_create_from_commandline (cmd, NULL, 0, &error);
+  if (app_info == NULL)
+    {
+      DEBUG ("Failed to create app info: %s", error->message);
+      g_error_free (error);
+      goto out;
+    }
+
+  display = gdk_display_get_default ();
+  context = gdk_display_get_app_launch_context (display);
+
+  if (!g_app_info_launch (app_info, NULL, (GAppLaunchContext *) context,
+      &error))
+    {
+      g_warning ("Failed to open debug window: %s", error->message);
+      g_error_free (error);
+      goto out;
+    }
+
+out:
+  tp_clear_object (&app_info);
+  tp_clear_object (&context);
+  g_free (path);
+  g_free (cmd);
+}
+
 static void
 empathy_call_window_contents_cb (GtkAction *action,
     EmpathyCallWindow *self)
@@ -883,6 +931,7 @@ empathy_call_window_init (EmpathyCallWindow *self)
     "camera", "toggled", empathy_call_window_camera_toggled_cb,
     "dialpad", "toggled", empathy_call_window_dialpad_cb,
     "menufullscreen", "activate", empathy_call_window_fullscreen_cb,
+    "menusettings", "activate", empathy_call_window_settings_cb,
     "menucontents", "activate", empathy_call_window_contents_cb,
     "menudebug", "activate", empathy_call_window_debug_cb,
     "menuabout", "activate", empathy_call_window_about_cb,
index 17ab4754d40e10eec78aa007bf90cef114458b10..b376323e02eafdc20e2110227014556f469db8a3 100644 (file)
             <property name="icon_name">gnome-stock-mic</property>
           </object>
         </child>
+        <child>
+          <object class="GtkAction" id="menusettings">
+            <property name="stock_id">gtk-preferences</property>
+            <property name="name">menusettings</property>
+            <property name="label" translatable="yes">_Settings</property>
+          </object>
+        </child>
         <child>
           <object class="GtkAction" id="help">
             <property name="name">help</property>
@@ -83,6 +90,7 @@
         </menu>
         <menu action="edit">
           <menu action="menumicrophone"/>
+          <menuitem name="menusettings" action="menusettings"/>
         </menu>
         <menu action="help">
           <menuitem name="menucontents" action="menucontents"/>