GSList *
mate_panel_applet_mateconf_get_list (MatePanelApplet     *applet,
			     const gchar     *key,
			     MateConfValueType   list_type,
			     GError         **opt_error)
{
	MateConfClient  *client;
	gchar        *full_key;
	GSList       *retval;
	GError      **error = NULL;
	GError       *our_error = NULL;

	g_return_val_if_fail (PANEL_IS_APPLET (applet), NULL);

	if (opt_error)
		error = opt_error;
	else
		error = &our_error;

	full_key = mate_panel_applet_mateconf_get_full_key (applet, key);

	client = mate_panel_applet_mateconf_get_client ();

	retval = mateconf_client_get_list (client, full_key, list_type, error);

	g_free (full_key);

	if (!opt_error && our_error) {
		g_warning (G_STRLOC ": mateconf error : '%s'", our_error->message);
		g_error_free (our_error);
	}

	return retval;
}
static void
mateconf_bookmarks_dialog_populate_model (MateConfBookmarksDialog *dialog)
{
	MateConfClient *client;
	GSList *value_list, *p;
	GtkTreeIter iter;
	
	client = mateconf_client_get_default ();
	
	/* First clear the list store */
	dialog->changing_model = TRUE;
	gtk_list_store_clear (dialog->list_store);

	value_list = mateconf_client_get_list (client, BOOKMARKS_KEY,
					    MATECONF_VALUE_STRING, NULL);

	for (p = value_list; p; p = p->next) {
		gtk_list_store_append (dialog->list_store, &iter);
		gtk_list_store_set (dialog->list_store, &iter,
				    0, p->data,
				    -1);
		g_free (p->data);
	}

	if (value_list)
		g_slist_free (value_list);

	dialog->changing_model = FALSE;

	g_object_unref (client);
}
void
mateconf_bookmarks_add_bookmark (const char *path)
{
	GSList *list, *tmp;
	MateConfClient *client;

	client = mateconf_client_get_default ();

	/* Get the old list and then set it */
	list = mateconf_client_get_list (client,
				     "/apps/mateconf-editor/bookmarks", MATECONF_VALUE_STRING, NULL);

	/* FIXME: We need error handling here, also this function leaks memory */

	/* Check that the bookmark hasn't been added already */
	for (tmp = list; tmp; tmp = tmp->next) {
		if (strcmp (tmp->data, path) == 0) {
			g_slist_free (list);
			return;
		}
	}

	/* Append the new bookmark */
	list = g_slist_append (list, g_strdup (path));
	
	mateconf_client_set_list (client,
			       "/apps/mateconf-editor/bookmarks", MATECONF_VALUE_STRING, list, NULL);
	g_slist_free (list);
	g_object_unref (client);
}
Ejemplo n.º 4
0
static void
gn_combo_history_mateconf_load (GnComboHistory *history)
{
	gchar  *key;
	GSList *mateconf_items, *last;

	g_return_if_fail (GN_IS_COMBO_HISTORY (history));
	g_return_if_fail (history->priv->mateconf_client != NULL);
	g_return_if_fail (history->priv->id != NULL);

	gn_combo_free_items (history);

	key = g_strconcat ("/apps/mate-settings/",
			   "mate-nettool",
			   "/history-",
			   history->priv->id,
			   NULL);
	   
	mateconf_items = mateconf_client_get_list (history->priv->mateconf_client,
					     key, MATECONF_VALUE_STRING, NULL);
	g_free (key);

	/* truncate the list */
	last = g_slist_nth (mateconf_items, history->priv->max_history - 1);
	if (last) {
		g_slist_foreach (last->next, (GFunc) g_free, NULL);
		g_slist_free (last->next);
		last->next = NULL;
	}

	history->priv->items = mateconf_items;
}
static void
calendar_sources_load_sources (CalendarSources    *sources,
			       CalendarSourceData *source_data,
			       const char         *sources_key,
			       const char         *selected_sources_key,
			       const char         *selected_sources_dir)
{
  MateConfClient *mateconf_client;
  GError      *error;

  dprintf ("---------------------------\n");
  dprintf ("Loading sources:\n");
  dprintf ("  sources_key: %s\n", sources_key);
  dprintf ("  selected_sources_key: %s\n", selected_sources_key);
  dprintf ("  selected_sources_dir: %s\n", selected_sources_dir);

  mateconf_client = sources->priv->mateconf_client;

  error = NULL;
  source_data->selected_sources = mateconf_client_get_list (mateconf_client,
							 selected_sources_key,
							 MATECONF_VALUE_STRING,
							 &error);
  if (error)
    {
      g_warning ("Failed to get selected sources from '%s': %s\n",
		 selected_sources_key,
		 error->message);
      g_error_free (error);
      return;
    }

  mateconf_client_add_dir (mateconf_client,
			selected_sources_dir,
			MATECONF_CLIENT_PRELOAD_NONE,
			NULL);
  source_data->selected_sources_dir = g_strdup (selected_sources_dir);

  source_data->selected_sources_listener =
    mateconf_client_notify_add (mateconf_client,
			     selected_sources_dir,
			     (MateConfClientNotifyFunc) calendar_sources_selected_sources_notify,
			     source_data, NULL, NULL);

  source_data->esource_list = e_source_list_new_for_mateconf (mateconf_client, sources_key);
  g_signal_connect (source_data->esource_list, "changed",
		    G_CALLBACK (calendar_sources_esource_list_changed),
		    source_data);

  calendar_sources_load_esource_list (source_data);

  source_data->loaded = TRUE;

  dprintf ("---------------------------\n");
}
void
matekbd_indicator_config_load_from_mateconf (MatekbdIndicatorConfig * ind_config)
{
	GError *gerror = NULL;

	ind_config->secondary_groups_mask =
	    mateconf_client_get_int (ind_config->conf_client,
				  MATEKBD_INDICATOR_CONFIG_KEY_SECONDARIES,
				  &gerror);
	if (gerror != NULL) {
		g_warning ("Error reading configuration:%s\n",
			   gerror->message);
		ind_config->secondary_groups_mask = 0;
		g_error_free (gerror);
		gerror = NULL;
	}

	ind_config->show_flags =
	    mateconf_client_get_bool (ind_config->conf_client,
				   MATEKBD_INDICATOR_CONFIG_KEY_SHOW_FLAGS,
				   &gerror);
	if (gerror != NULL) {
		g_warning ("Error reading kbdConfiguration:%s\n",
			   gerror->message);
		ind_config->show_flags = FALSE;
		g_error_free (gerror);
		gerror = NULL;
	}

	matekbd_indicator_config_load_font (ind_config);
	matekbd_indicator_config_load_colors (ind_config);

	matekbd_indicator_config_free_enabled_plugins (ind_config);
	ind_config->enabled_plugins =
	    mateconf_client_get_list (ind_config->conf_client,
				   MATEKBD_INDICATOR_CONFIG_KEY_ENABLED_PLUGINS,
				   MATECONF_VALUE_STRING, &gerror);

	if (gerror != NULL) {
		g_warning ("Error reading kbd_configuration:%s\n",
			   gerror->message);
		ind_config->enabled_plugins = NULL;
		g_error_free (gerror);
		gerror = NULL;
	}
}
GSList *
xkb_layouts_get_selected_list (void)
{
	GSList *retval;

	retval = mateconf_client_get_list (xkb_mateconf_client,
					MATEKBD_KEYBOARD_CONFIG_KEY_LAYOUTS,
					MATECONF_VALUE_STRING, NULL);
	if (retval == NULL) {
		GSList *cur_layout;

		for (cur_layout = initial_config.layouts_variants;
		     cur_layout != NULL; cur_layout = cur_layout->next)
			retval =
			    g_slist_prepend (retval,
					     g_strdup (cur_layout->data));

		retval = g_slist_reverse (retval);
	}

	return retval;
}
static void
mateconf_bookmarks_update_menu (GtkWidget *menu)
{
	GSList *list, *tmp;
	GtkWidget *menuitem, *window;
	MateConfClient *client;

	window = g_object_get_data (G_OBJECT (menu), "editor-window");
	client = mateconf_client_get_default ();
	
	/* Get the old list and then set it */
	list = mateconf_client_get_list (client,
				     "/apps/mateconf-editor/bookmarks", MATECONF_VALUE_STRING, NULL);

	if (list != NULL) {
		menuitem = gtk_separator_menu_item_new ();
		gtk_widget_show (menuitem);
		gtk_menu_shell_append (GTK_MENU_SHELL (menu), menuitem);
	}

	for (tmp = list; tmp; tmp = tmp->next) {
		menuitem = gtk_image_menu_item_new_with_label (tmp->data);
		g_signal_connect (menuitem, "activate",
				  G_CALLBACK (mateconf_bookmarks_bookmark_activated), window);
		g_object_set_data_full (G_OBJECT (menuitem), "mateconf-key", g_strdup (tmp->data), g_free);
		gtk_image_menu_item_set_image (GTK_IMAGE_MENU_ITEM (menuitem), gtk_image_new_from_stock (STOCK_BOOKMARK,
													 GTK_ICON_SIZE_MENU));
		gtk_menu_shell_append (GTK_MENU_SHELL (menu), menuitem);
		gtk_widget_show_all (menuitem);

		g_free (tmp->data);
	}

	g_object_unref (client);
	g_slist_free (list);
}