summaryrefslogtreecommitdiff
path: root/gnome-2-24/gconf/gapplookupgconf.c
diff options
context:
space:
mode:
Diffstat (limited to 'gnome-2-24/gconf/gapplookupgconf.c')
-rw-r--r--gnome-2-24/gconf/gapplookupgconf.c184
1 files changed, 0 insertions, 184 deletions
diff --git a/gnome-2-24/gconf/gapplookupgconf.c b/gnome-2-24/gconf/gapplookupgconf.c
deleted file mode 100644
index 059659d1..00000000
--- a/gnome-2-24/gconf/gapplookupgconf.c
+++ /dev/null
@@ -1,184 +0,0 @@
-
-/* GIO - GLib Input, Output and Streaming Library
- *
- * Copyright (C) 2006-2007 Red Hat, Inc.
- *
- * This library is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Lesser General Public
- * License as published by the Free Software Foundation; either
- * version 2 of the License, or (at your option) any later version.
- *
- * This library is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- * Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General
- * Public License along with this library; if not, write to the
- * Free Software Foundation, Inc., 59 Temple Place, Suite 330,
- * Boston, MA 02111-1307, USA.
- *
- * Author: Alexader Larsson <alexl@redhat.com>
- */
-
-#include <config.h>
-
-#include <string.h>
-
-#include <glib.h>
-#include <glib/gi18n-lib.h>
-#include <gio/gio.h>
-#include <gconf/gconf-client.h>
-
-#include "gapplookupgconf.h"
-
-
-struct _GAppLookupGConf {
- GObject parent;
-
-};
-
-static void lookup_iface_init (GDesktopAppInfoLookupIface *iface);
-static void g_app_lookup_gconf_finalize (GObject *object);
-
-#define _G_IMPLEMENT_INTERFACE_DYNAMIC(TYPE_IFACE, iface_init) { \
- const GInterfaceInfo g_implement_interface_info = { \
- (GInterfaceInitFunc) iface_init, NULL, NULL \
- }; \
- g_type_module_add_interface (type_module, g_define_type_id, TYPE_IFACE, &g_implement_interface_info); \
-}
-
-G_DEFINE_DYNAMIC_TYPE_EXTENDED (GAppLookupGConf, g_app_lookup_gconf, G_TYPE_OBJECT, 0,
- _G_IMPLEMENT_INTERFACE_DYNAMIC (G_TYPE_DESKTOP_APP_INFO_LOOKUP,
- lookup_iface_init))
-
-static void
-g_app_lookup_gconf_finalize (GObject *object)
-{
- if (G_OBJECT_CLASS (g_app_lookup_gconf_parent_class)->finalize)
- (*G_OBJECT_CLASS (g_app_lookup_gconf_parent_class)->finalize) (object);
-}
-
-static GObject *
-g_app_lookup_gconf_constructor (GType type,
- guint n_construct_properties,
- GObjectConstructParam *construct_properties)
-{
- GObject *object;
- GAppLookupGConfClass *klass;
- GObjectClass *parent_class;
-
- object = NULL;
-
- /* Invoke parent constructor. */
- klass = G_APP_LOOKUP_GCONF_CLASS (g_type_class_peek (G_TYPE_APP_LOOKUP_GCONF));
- parent_class = G_OBJECT_CLASS (g_type_class_peek_parent (klass));
- object = parent_class->constructor (type,
- n_construct_properties,
- construct_properties);
-
- return object;
-}
-
-static void
-g_app_lookup_gconf_init (GAppLookupGConf *lookup)
-{
-}
-
-static void
-g_app_lookup_gconf_class_finalize (GAppLookupGConfClass *klass)
-{
-}
-
-
-static void
-g_app_lookup_gconf_class_init (GAppLookupGConfClass *klass)
-{
- GObjectClass *gobject_class = G_OBJECT_CLASS (klass);
-
- gobject_class->constructor = g_app_lookup_gconf_constructor;
- gobject_class->finalize = g_app_lookup_gconf_finalize;
-}
-
-#define GCONF_PATH_PREFIX "/desktop/gnome/url-handlers/"
-
-static GAppInfo *
-get_default_for_uri_scheme (GDesktopAppInfoLookup *lookup,
- const char *uri_scheme)
-{
- GAppInfo *appinfo;
- GConfClient *client;
- char *command_key, *enabled_key, *terminal_key, *command;
- gboolean enabled, needs_terminal;
- GAppInfoCreateFlags flags;
-
- appinfo = NULL;
-
- client = gconf_client_get_default ();
-
- command_key = g_strconcat (GCONF_PATH_PREFIX,
- uri_scheme,
- "/command",
- NULL);
- command = gconf_client_get_string (client,
- command_key,
- NULL);
- g_free (command_key);
- if (command)
- {
- enabled_key = g_strconcat (GCONF_PATH_PREFIX,
- uri_scheme,
- "/enabled",
- NULL);
- enabled = gconf_client_get_bool (client,
- enabled_key,
- NULL);
- g_free (enabled_key);
-
- terminal_key = g_strconcat (GCONF_PATH_PREFIX,
- uri_scheme,
- "/needs_terminal",
- NULL);
- needs_terminal = gconf_client_get_bool (client,
- terminal_key,
- NULL);
- g_free (terminal_key);
-
- if (enabled)
- {
- if (g_str_has_suffix (command, "\"%s\"") ||
- g_str_has_suffix (command, "\'%s\'"))
- command[strlen (command) - 4] = 0;
- else if (g_str_has_suffix (command, "%s"))
- command[strlen (command) - 2] = 0;
-
- flags = G_APP_INFO_CREATE_SUPPORTS_URIS;
- if (needs_terminal)
- flags |= G_APP_INFO_CREATE_NEEDS_TERMINAL;
- appinfo = g_app_info_create_from_commandline (command,
- NULL,
- flags,
- NULL);
- }
- }
-
- g_object_unref (client);
-
- return appinfo;
-}
-
-static void
-lookup_iface_init (GDesktopAppInfoLookupIface *iface)
-{
- iface->get_default_for_uri_scheme = get_default_for_uri_scheme;
-}
-
-void
-g_app_lookup_gconf_register (GIOModule *module)
-{
- g_app_lookup_gconf_register_type (G_TYPE_MODULE (module));
- g_io_extension_point_implement (G_DESKTOP_APP_INFO_LOOKUP_EXTENSION_POINT_NAME,
- G_TYPE_APP_LOOKUP_GCONF,
- "gconf",
- 10);
-}