/* Properties dialog */ static void save_macros_to_mateconf (MCData *mc) { MCPrefsDialog *dialog; GtkTreeIter iter; MateConfValue *patterns; MateConfValue *commands; GSList *pattern_list = NULL; GSList *command_list = NULL; MateConfClient *client; dialog = &mc->prefs_dialog; if (!gtk_tree_model_get_iter_first (GTK_TREE_MODEL (dialog->macros_store), &iter)) return; patterns = mateconf_value_new (MATECONF_VALUE_LIST); mateconf_value_set_list_type (patterns, MATECONF_VALUE_STRING); commands = mateconf_value_new (MATECONF_VALUE_LIST); mateconf_value_set_list_type (commands, MATECONF_VALUE_STRING); do { char *pattern = NULL; char *command = NULL; gtk_tree_model_get ( GTK_TREE_MODEL (dialog->macros_store), &iter, 0, &pattern, 1, &command, -1); pattern_list = g_slist_prepend (pattern_list, mateconf_value_new_from_string (MATECONF_VALUE_STRING, pattern, NULL)); command_list = g_slist_prepend (command_list, mateconf_value_new_from_string (MATECONF_VALUE_STRING, command, NULL)); } while (gtk_tree_model_iter_next (GTK_TREE_MODEL (dialog->macros_store), &iter)); pattern_list = g_slist_reverse (pattern_list); command_list = g_slist_reverse (command_list); mateconf_value_set_list_nocopy (patterns, pattern_list); pattern_list = NULL; mateconf_value_set_list_nocopy (commands, command_list); command_list = NULL; client = mateconf_client_get_default (); mateconf_client_set (client, "/apps/mini-commander/macro_patterns", patterns, NULL); mateconf_client_set (client, "/apps/mini-commander/macro_commands", commands, NULL); mateconf_value_free (patterns); mateconf_value_free (commands); }
void mate_panel_applet_mateconf_set_value (MatePanelApplet *applet, const gchar *key, MateConfValue *value, GError **opt_error) { MateConfClient *client; gchar *full_key; GError **error = NULL; GError *our_error = NULL; g_return_if_fail (PANEL_IS_APPLET (applet)); 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 (); mateconf_client_set (client, full_key, value, 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); } }