]> git.0d.be Git - empathy.git/commitdiff
factor out start_from_desktop_file()
authorGuillaume Desmottes <guillaume.desmottes@collabora.co.uk>
Tue, 24 Jul 2012 13:31:22 +0000 (15:31 +0200)
committerXavier Claessens <xavier.claessens@collabora.co.uk>
Thu, 26 Jul 2012 13:26:08 +0000 (15:26 +0200)
src/empathy-accounts-dialog.c

index 2a630d257f1d5fa2be38f41b1942356adab593da..8e5f327859015ce33d83a8d7dd12a815c27b0595 100644 (file)
@@ -658,6 +658,22 @@ start_external_app (GAppInfo *app_info)
   tp_clear_object (&context);
 }
 
+static void
+start_from_desktop_file (const char *desktop)
+{
+  GDesktopAppInfo *desktop_info;
+
+  desktop_info = g_desktop_app_info_new (desktop);
+  if (desktop_info == NULL)
+    {
+      g_critical ("Could not locate '%s'", desktop);
+      return;
+    }
+
+  start_external_app (G_APP_INFO (desktop_info));
+  g_object_unref (desktop_info);
+}
+
 static void
 use_external_storage_provider (EmpathyAccountsDialog *self,
     TpAccount *account)
@@ -702,20 +718,7 @@ use_external_storage_provider (EmpathyAccountsDialog *self,
     }
   else if (!tp_strdiff (provider, "org.gnome.OnlineAccounts"))
     {
-      GDesktopAppInfo *desktop_info;
-
-      desktop_info = g_desktop_app_info_new (
-          "gnome-online-accounts-panel.desktop");
-      if (desktop_info == NULL)
-        {
-          g_critical ("Could not locate 'gnome-online-accounts-panel.desktop'");
-        }
-      else
-        {
-          start_external_app (G_APP_INFO (desktop_info));
-          g_object_unref (desktop_info);
-        }
-
+      start_from_desktop_file ("gnome-online-accounts-panel.desktop");
       return;
     }
   else