plug memory leaks. Closes bug #395212.
2007-02-03 Jens Granseuer <jensgr@gmx.net> * gnome-da-capplet.c: (fill_combo_box), (show_dialog), (main): * gnome-da-xml.c: (gnome_da_xml_load_xml), (gnome_da_xml_load_list), (gnome_da_xml_free): * gnome-da-xml.h: plug memory leaks. Closes bug #395212. svn path=/trunk/; revision=7235
This commit is contained in:
parent
0441bef79d
commit
779fedcd6b
4 changed files with 83 additions and 27 deletions
|
@ -1,3 +1,10 @@
|
||||||
|
2007-02-03 Jens Granseuer <jensgr@gmx.net>
|
||||||
|
|
||||||
|
* gnome-da-capplet.c: (fill_combo_box), (show_dialog), (main):
|
||||||
|
* gnome-da-xml.c: (gnome_da_xml_load_xml),
|
||||||
|
(gnome_da_xml_load_list), (gnome_da_xml_free):
|
||||||
|
* gnome-da-xml.h: plug memory leaks. Closes bug #395212.
|
||||||
|
|
||||||
2007-02-02 Christian Persch <chpe@svn.gnome.org>
|
2007-02-02 Christian Persch <chpe@svn.gnome.org>
|
||||||
|
|
||||||
* gnome-da-capplet.c: (main): Use specific string as app ID in
|
* gnome-da-capplet.c: (main): Use specific string as app ID in
|
||||||
|
|
|
@ -215,7 +215,7 @@ web_combo_changed_cb (GtkComboBox *combo, GnomeDACapplet *capplet)
|
||||||
gtk_widget_set_sensitive (capplet->web_browser_command_label, is_custom_active);
|
gtk_widget_set_sensitive (capplet->web_browser_command_label, is_custom_active);
|
||||||
gtk_widget_set_sensitive (capplet->web_browser_terminal_checkbutton, is_custom_active);
|
gtk_widget_set_sensitive (capplet->web_browser_terminal_checkbutton, is_custom_active);
|
||||||
}
|
}
|
||||||
|
|
||||||
static void
|
static void
|
||||||
mail_combo_changed_cb (GtkComboBox *combo, GnomeDACapplet *capplet)
|
mail_combo_changed_cb (GtkComboBox *combo, GnomeDACapplet *capplet)
|
||||||
{
|
{
|
||||||
|
@ -688,7 +688,6 @@ fill_combo_box (GtkIconTheme *theme, GtkComboBox *combo_box, GList *app_list)
|
||||||
GtkCellRenderer *renderer;
|
GtkCellRenderer *renderer;
|
||||||
GtkTreeIter iter;
|
GtkTreeIter iter;
|
||||||
GdkPixbuf *pixbuf;
|
GdkPixbuf *pixbuf;
|
||||||
gchar *label;
|
|
||||||
|
|
||||||
if (theme == NULL) {
|
if (theme == NULL) {
|
||||||
theme = gtk_icon_theme_get_default ();
|
theme = gtk_icon_theme_get_default ();
|
||||||
|
@ -720,19 +719,17 @@ fill_combo_box (GtkIconTheme *theme, GtkComboBox *combo_box, GList *app_list)
|
||||||
item = (GnomeDAItem *) entry->data;
|
item = (GnomeDAItem *) entry->data;
|
||||||
|
|
||||||
pixbuf = gtk_icon_theme_load_icon (theme, item->icon_name, 22, 0, NULL);
|
pixbuf = gtk_icon_theme_load_icon (theme, item->icon_name, 22, 0, NULL);
|
||||||
label = g_strdup (item->name);
|
|
||||||
|
|
||||||
gtk_list_store_append (GTK_LIST_STORE (model), &iter);
|
gtk_list_store_append (GTK_LIST_STORE (model), &iter);
|
||||||
gtk_list_store_set (GTK_LIST_STORE (model), &iter,
|
gtk_list_store_set (GTK_LIST_STORE (model), &iter,
|
||||||
PIXBUF_COL, pixbuf,
|
PIXBUF_COL, pixbuf,
|
||||||
TEXT_COL, label,
|
TEXT_COL, item->name,
|
||||||
-1);
|
-1);
|
||||||
|
|
||||||
item->icon_path = gtk_tree_model_get_string_from_iter (model, &iter);
|
item->icon_path = gtk_tree_model_get_string_from_iter (model, &iter);
|
||||||
|
|
||||||
if (pixbuf)
|
if (pixbuf)
|
||||||
g_object_unref (pixbuf);
|
g_object_unref (pixbuf);
|
||||||
g_free (label);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
gtk_list_store_append (GTK_LIST_STORE (model), &iter);
|
gtk_list_store_append (GTK_LIST_STORE (model), &iter);
|
||||||
|
@ -802,26 +799,50 @@ show_dialog (GnomeDACapplet *capplet)
|
||||||
|
|
||||||
/* update ui to gconf content */
|
/* update ui to gconf content */
|
||||||
value = gconf_client_get (capplet->gconf, DEFAULT_APPS_KEY_HTTP_EXEC, NULL);
|
value = gconf_client_get (capplet->gconf, DEFAULT_APPS_KEY_HTTP_EXEC, NULL);
|
||||||
web_browser_update_combo_box (capplet, gconf_value_get_string (value));
|
if (value)
|
||||||
web_browser_update_radio_buttons (capplet, gconf_value_get_string (value));
|
{
|
||||||
|
web_browser_update_combo_box (capplet, gconf_value_get_string (value));
|
||||||
|
web_browser_update_radio_buttons (capplet, gconf_value_get_string (value));
|
||||||
|
gconf_value_free (value);
|
||||||
|
}
|
||||||
|
|
||||||
value = gconf_client_get (capplet->gconf, DEFAULT_APPS_KEY_HTTP_NEEDS_TERM, NULL);
|
value = gconf_client_get (capplet->gconf, DEFAULT_APPS_KEY_HTTP_NEEDS_TERM, NULL);
|
||||||
gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON (capplet->web_browser_terminal_checkbutton),
|
if (value)
|
||||||
gconf_value_get_bool (value));
|
{
|
||||||
|
gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON (capplet->web_browser_terminal_checkbutton),
|
||||||
|
gconf_value_get_bool (value));
|
||||||
|
gconf_value_free (value);
|
||||||
|
}
|
||||||
|
|
||||||
value = gconf_client_get (capplet->gconf, DEFAULT_APPS_KEY_MAILER_EXEC, NULL);
|
value = gconf_client_get (capplet->gconf, DEFAULT_APPS_KEY_MAILER_EXEC, NULL);
|
||||||
mail_reader_update_combo_box (capplet, gconf_value_get_string (value));
|
if (value)
|
||||||
|
{
|
||||||
|
mail_reader_update_combo_box (capplet, gconf_value_get_string (value));
|
||||||
|
gconf_value_free (value);
|
||||||
|
}
|
||||||
|
|
||||||
value = gconf_client_get (capplet->gconf, DEFAULT_APPS_KEY_MAILER_NEEDS_TERM, NULL);
|
value = gconf_client_get (capplet->gconf, DEFAULT_APPS_KEY_MAILER_NEEDS_TERM, NULL);
|
||||||
gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON (capplet->mail_reader_terminal_checkbutton),
|
if (value)
|
||||||
gconf_value_get_bool (value));
|
{
|
||||||
|
gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON (capplet->mail_reader_terminal_checkbutton),
|
||||||
|
gconf_value_get_bool (value));
|
||||||
|
gconf_value_free (value);
|
||||||
|
}
|
||||||
|
|
||||||
value = gconf_client_get (capplet->gconf, DEFAULT_APPS_KEY_TERMINAL_EXEC, NULL);
|
if (value)
|
||||||
terminal_update_combo_box (capplet, gconf_value_get_string (value));
|
{
|
||||||
|
value = gconf_client_get (capplet->gconf, DEFAULT_APPS_KEY_TERMINAL_EXEC, NULL);
|
||||||
|
terminal_update_combo_box (capplet, gconf_value_get_string (value));
|
||||||
|
gconf_value_free (value);
|
||||||
|
}
|
||||||
|
|
||||||
value = gconf_client_get (capplet->gconf, DEFAULT_APPS_KEY_TERMINAL_EXEC_ARG, NULL);
|
value = gconf_client_get (capplet->gconf, DEFAULT_APPS_KEY_TERMINAL_EXEC_ARG, NULL);
|
||||||
gtk_entry_set_text (GTK_ENTRY (capplet->terminal_exec_flag_entry),
|
if (value)
|
||||||
gconf_value_get_string (value));
|
{
|
||||||
|
gtk_entry_set_text (GTK_ENTRY (capplet->terminal_exec_flag_entry),
|
||||||
|
gconf_value_get_string (value));
|
||||||
|
gconf_value_free (value);
|
||||||
|
}
|
||||||
|
|
||||||
g_signal_connect (capplet->web_combo_box, "changed", G_CALLBACK (web_combo_changed_cb), capplet);
|
g_signal_connect (capplet->web_combo_box, "changed", G_CALLBACK (web_combo_changed_cb), capplet);
|
||||||
g_signal_connect (capplet->mail_combo_box, "changed", G_CALLBACK (mail_combo_changed_cb), capplet);
|
g_signal_connect (capplet->mail_combo_box, "changed", G_CALLBACK (mail_combo_changed_cb), capplet);
|
||||||
|
@ -853,21 +874,22 @@ show_dialog (GnomeDACapplet *capplet)
|
||||||
int
|
int
|
||||||
main (int argc, char **argv)
|
main (int argc, char **argv)
|
||||||
{
|
{
|
||||||
|
GnomeProgram *program;
|
||||||
GnomeDACapplet *capplet;
|
GnomeDACapplet *capplet;
|
||||||
|
|
||||||
capplet = g_new0 (GnomeDACapplet, 1);
|
|
||||||
|
|
||||||
#ifdef ENABLE_NLS
|
#ifdef ENABLE_NLS
|
||||||
bindtextdomain (GETTEXT_PACKAGE, GNOMELOCALEDIR);
|
bindtextdomain (GETTEXT_PACKAGE, GNOMELOCALEDIR);
|
||||||
bind_textdomain_codeset (GETTEXT_PACKAGE, "UTF-8");
|
bind_textdomain_codeset (GETTEXT_PACKAGE, "UTF-8");
|
||||||
textdomain (GETTEXT_PACKAGE);
|
textdomain (GETTEXT_PACKAGE);
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
gnome_program_init ("gnome-default-applications-properties", VERSION, LIBGNOMEUI_MODULE, argc, argv,
|
program = gnome_program_init ("gnome-default-applications-properties",
|
||||||
GNOME_PARAM_NONE);
|
VERSION, LIBGNOMEUI_MODULE, argc, argv,
|
||||||
|
GNOME_PARAM_NONE);
|
||||||
|
|
||||||
glade_init ();
|
glade_init ();
|
||||||
|
|
||||||
|
capplet = g_new0 (GnomeDACapplet, 1);
|
||||||
capplet->gconf = gconf_client_get_default ();
|
capplet->gconf = gconf_client_get_default ();
|
||||||
|
|
||||||
gconf_client_add_dir (capplet->gconf, "/desktop/gnome/applications/browser", GCONF_CLIENT_PRELOAD_ONELEVEL, NULL);
|
gconf_client_add_dir (capplet->gconf, "/desktop/gnome/applications/browser", GCONF_CLIENT_PRELOAD_ONELEVEL, NULL);
|
||||||
|
@ -891,7 +913,9 @@ main (int argc, char **argv)
|
||||||
gtk_main ();
|
gtk_main ();
|
||||||
|
|
||||||
g_object_unref (capplet->gconf);
|
g_object_unref (capplet->gconf);
|
||||||
g_object_unref (capplet->xml);
|
|
||||||
|
gnome_da_xml_free (capplet);
|
||||||
|
g_object_unref (program);
|
||||||
|
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
|
@ -128,6 +128,7 @@ gnome_da_xml_load_xml (GnomeDACapplet *capplet, const gchar * filename)
|
||||||
{
|
{
|
||||||
xmlDoc *xml_doc;
|
xmlDoc *xml_doc;
|
||||||
xmlNode *root, *section, *element;
|
xmlNode *root, *section, *element;
|
||||||
|
gchar *executable;
|
||||||
GnomeDAWebItem *web_item;
|
GnomeDAWebItem *web_item;
|
||||||
GnomeDAMailItem *mail_item;
|
GnomeDAMailItem *mail_item;
|
||||||
GnomeDATermItem *term_item;
|
GnomeDATermItem *term_item;
|
||||||
|
@ -143,11 +144,12 @@ gnome_da_xml_load_xml (GnomeDACapplet *capplet, const gchar * filename)
|
||||||
if (!xmlStrncmp (section->name, "web-browsers", 12)) {
|
if (!xmlStrncmp (section->name, "web-browsers", 12)) {
|
||||||
for (element = section->children; element != NULL; element = element->next) {
|
for (element = section->children; element != NULL; element = element->next) {
|
||||||
if (!xmlStrncmp (element->name, "web-browser", 11)) {
|
if (!xmlStrncmp (element->name, "web-browser", 11)) {
|
||||||
if (is_executable_valid (gnome_da_xml_get_string (element, "executable"))) {
|
executable = gnome_da_xml_get_string (element, "executable");
|
||||||
|
if (is_executable_valid (executable)) {
|
||||||
web_item = gnome_da_web_item_new ();
|
web_item = gnome_da_web_item_new ();
|
||||||
|
|
||||||
web_item->generic.name = gnome_da_xml_get_string (element, "name");
|
web_item->generic.name = gnome_da_xml_get_string (element, "name");
|
||||||
web_item->generic.executable = gnome_da_xml_get_string (element, "executable");
|
web_item->generic.executable = executable;
|
||||||
web_item->generic.command = gnome_da_xml_get_string (element, "command");
|
web_item->generic.command = gnome_da_xml_get_string (element, "command");
|
||||||
web_item->generic.icon_name = gnome_da_xml_get_string (element, "icon-name");
|
web_item->generic.icon_name = gnome_da_xml_get_string (element, "icon-name");
|
||||||
|
|
||||||
|
@ -160,17 +162,20 @@ gnome_da_xml_load_xml (GnomeDACapplet *capplet, const gchar * filename)
|
||||||
|
|
||||||
capplet->web_browsers = g_list_append (capplet->web_browsers, web_item);
|
capplet->web_browsers = g_list_append (capplet->web_browsers, web_item);
|
||||||
}
|
}
|
||||||
|
else
|
||||||
|
g_free (executable);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
else if (!xmlStrncmp (section->name, "mail-readers", 12)) {
|
else if (!xmlStrncmp (section->name, "mail-readers", 12)) {
|
||||||
for (element = section->children; element != NULL; element = element->next) {
|
for (element = section->children; element != NULL; element = element->next) {
|
||||||
if (!xmlStrncmp (element->name, "mail-reader", 11)) {
|
if (!xmlStrncmp (element->name, "mail-reader", 11)) {
|
||||||
if (is_executable_valid (gnome_da_xml_get_string (element, "executable"))) {
|
executable = gnome_da_xml_get_string (element, "executable");
|
||||||
|
if (is_executable_valid (executable)) {
|
||||||
mail_item = gnome_da_mail_item_new ();
|
mail_item = gnome_da_mail_item_new ();
|
||||||
|
|
||||||
mail_item->generic.name = gnome_da_xml_get_string (element, "name");
|
mail_item->generic.name = gnome_da_xml_get_string (element, "name");
|
||||||
mail_item->generic.executable = gnome_da_xml_get_string (element, "executable");
|
mail_item->generic.executable = executable;
|
||||||
mail_item->generic.command = gnome_da_xml_get_string (element, "command");
|
mail_item->generic.command = gnome_da_xml_get_string (element, "command");
|
||||||
mail_item->generic.icon_name = gnome_da_xml_get_string (element, "icon-name");
|
mail_item->generic.icon_name = gnome_da_xml_get_string (element, "icon-name");
|
||||||
|
|
||||||
|
@ -178,17 +183,20 @@ gnome_da_xml_load_xml (GnomeDACapplet *capplet, const gchar * filename)
|
||||||
|
|
||||||
capplet->mail_readers = g_list_append (capplet->mail_readers, mail_item);
|
capplet->mail_readers = g_list_append (capplet->mail_readers, mail_item);
|
||||||
}
|
}
|
||||||
|
else
|
||||||
|
g_free (executable);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
else if (!xmlStrncmp (section->name, "terminals", 9)) {
|
else if (!xmlStrncmp (section->name, "terminals", 9)) {
|
||||||
for (element = section->children; element != NULL; element = element->next) {
|
for (element = section->children; element != NULL; element = element->next) {
|
||||||
if (!xmlStrncmp (element->name, "terminal", 8)) {
|
if (!xmlStrncmp (element->name, "terminal", 8)) {
|
||||||
if (is_executable_valid (gnome_da_xml_get_string (element, "executable"))) {
|
executable = gnome_da_xml_get_string (element, "executable");
|
||||||
|
if (is_executable_valid (executable)) {
|
||||||
term_item = gnome_da_term_item_new ();
|
term_item = gnome_da_term_item_new ();
|
||||||
|
|
||||||
term_item->generic.name = gnome_da_xml_get_string (element, "name");
|
term_item->generic.name = gnome_da_xml_get_string (element, "name");
|
||||||
term_item->generic.executable = gnome_da_xml_get_string (element, "executable");
|
term_item->generic.executable = executable;
|
||||||
term_item->generic.command = gnome_da_xml_get_string (element, "command");
|
term_item->generic.command = gnome_da_xml_get_string (element, "command");
|
||||||
term_item->generic.icon_name = gnome_da_xml_get_string (element, "icon-name");
|
term_item->generic.icon_name = gnome_da_xml_get_string (element, "icon-name");
|
||||||
|
|
||||||
|
@ -196,6 +204,8 @@ gnome_da_xml_load_xml (GnomeDACapplet *capplet, const gchar * filename)
|
||||||
|
|
||||||
capplet->terminals = g_list_append (capplet->terminals, term_item);
|
capplet->terminals = g_list_append (capplet->terminals, term_item);
|
||||||
}
|
}
|
||||||
|
else
|
||||||
|
g_free (executable);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -222,3 +232,17 @@ gnome_da_xml_load_list (GnomeDACapplet *capplet)
|
||||||
if (capplet->web_browsers == NULL)
|
if (capplet->web_browsers == NULL)
|
||||||
gnome_da_xml_load_xml (capplet, "./gnome-default-applications.xml");
|
gnome_da_xml_load_xml (capplet, "./gnome-default-applications.xml");
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void
|
||||||
|
gnome_da_xml_free (GnomeDACapplet *capplet)
|
||||||
|
{
|
||||||
|
g_list_foreach (capplet->web_browsers, (GFunc) gnome_da_web_item_free, NULL);
|
||||||
|
g_list_foreach (capplet->mail_readers, (GFunc) gnome_da_mail_item_free, NULL);
|
||||||
|
g_list_foreach (capplet->terminals, (GFunc) gnome_da_term_item_free, NULL);
|
||||||
|
g_list_free (capplet->web_browsers);
|
||||||
|
g_list_free (capplet->mail_readers);
|
||||||
|
g_list_free (capplet->terminals);
|
||||||
|
|
||||||
|
g_object_unref (capplet->xml);
|
||||||
|
g_free (capplet);
|
||||||
|
}
|
||||||
|
|
|
@ -22,5 +22,6 @@
|
||||||
#define _GNOME_DA_XML_H_
|
#define _GNOME_DA_XML_H_
|
||||||
|
|
||||||
void gnome_da_xml_load_list (GnomeDACapplet *capplet);
|
void gnome_da_xml_load_list (GnomeDACapplet *capplet);
|
||||||
|
void gnome_da_xml_free (GnomeDACapplet *capplet);
|
||||||
|
|
||||||
#endif
|
#endif
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue