Fix two memory leaks in filtering action dialog widgets.
[claws.git] / src / prefs_filtering_action.c
index 7c01caa110fecd6302795e8438343739ea360d38..587a41823bda6385093fd0ee877ef9389ff1ec52 100644 (file)
@@ -56,7 +56,7 @@
 #include "colorlabel.h"
 #include "combobox.h"
 #include "account.h"
-#ifndef USE_NEW_ADDRBOOK
+#ifndef USE_ALT_ADDRBOOK
        #include "addressbook.h"
 #endif
 
@@ -81,7 +81,7 @@ static gint prefs_filtering_action_deleted(GtkWidget *widget,
 static void prefs_filtering_action_type_selection_changed(GtkWidget *widget,
     gpointer user_data);
 static void prefs_filtering_action_select_dest(void);
-#ifndef USE_NEW_ADDRBOOK
+#ifndef USE_ALT_ADDRBOOK
 static void prefs_filtering_action_select_addressbook(void);
 #endif
 static void prefs_filtering_action_up(void);
@@ -127,7 +127,7 @@ static struct FilteringAction_ {
 #endif
        GtkWidget *header_combo;
        GtkWidget *header_entry;
-#ifndef USE_NEW_ADDRBOOK
+#ifndef USE_ALT_ADDRBOOK
        GtkWidget *addressbook_btn;
 #endif
        GtkWidget *score_entry;
@@ -300,6 +300,7 @@ void prefs_filtering_action_open(GSList *action_list,
        prefs_filtering_action_set_dialog(action_list);
 
        gtk_widget_show(filtering_action.window);
+       gtk_window_set_modal(GTK_WINDOW(filtering_action.window), TRUE);
 }
 
 /*!
@@ -349,7 +350,7 @@ static void prefs_filtering_action_create(void)
        GtkWidget *account_combo;
        GtkWidget *header_combo;
        GtkWidget *header_entry;
-#ifndef USE_NEW_ADDRBOOK
+#ifndef USE_ALT_ADDRBOOK
        GtkWidget *addressbook_btn;
 #endif
        GtkWidget *dest_entry;
@@ -393,7 +394,6 @@ static void prefs_filtering_action_create(void)
        window = gtkut_window_new(GTK_WINDOW_TOPLEVEL, "prefs_filtering_action");
        gtk_container_set_border_width(GTK_CONTAINER(window), VBOX_BORDER);
        gtk_window_set_position(GTK_WINDOW(window), GTK_WIN_POS_CENTER);
-       gtk_window_set_modal(GTK_WINDOW(window), TRUE);
        gtk_window_set_resizable(GTK_WINDOW(window), TRUE);
 
        vbox = gtk_vbox_new(FALSE, 6);
@@ -570,14 +570,14 @@ static void prefs_filtering_action_create(void)
        gtk_table_attach(GTK_TABLE(table), hbox1, 2, 3, 2, 3, 
                        GTK_FILL, GTK_SHRINK, 0, 0);
 
-       dest_btn = gtk_button_new_with_label (_("Select ..."));
+       dest_btn = gtk_button_new_with_label (_("Select..."));
        gtk_box_pack_start (GTK_BOX (hbox1), dest_btn, FALSE, FALSE, 0);
        g_signal_connect (G_OBJECT (dest_btn), "clicked",
                          G_CALLBACK(prefs_filtering_action_select_dest),
                          NULL);
 
-#ifndef USE_NEW_ADDRBOOK
-       addressbook_btn = gtk_button_new_with_label (_("Select ..."));
+#ifndef USE_ALT_ADDRBOOK
+       addressbook_btn = gtk_button_new_with_label (_("Select..."));
        gtk_box_pack_start (GTK_BOX (hbox1), addressbook_btn, FALSE, FALSE, 0);
        g_signal_connect (G_OBJECT (addressbook_btn), "clicked",
                          G_CALLBACK(prefs_filtering_action_select_addressbook),
@@ -607,13 +607,15 @@ static void prefs_filtering_action_create(void)
        g_signal_connect(G_OBJECT(reg_btn), "clicked",
                         G_CALLBACK(prefs_filtering_action_register_cb), NULL);
 
-       subst_btn = gtkut_get_replace_btn(_("Replace"));
+       subst_btn = gtkut_get_replace_btn(_("_Replace"));
        gtk_box_pack_start(GTK_BOX(btn_hbox), subst_btn, FALSE, TRUE, 0);
        g_signal_connect(G_OBJECT(subst_btn), "clicked",
                         G_CALLBACK(prefs_filtering_action_substitute_cb),
                         NULL);
 
-       del_btn = gtk_button_new_from_stock(GTK_STOCK_DELETE);
+       del_btn = gtk_button_new_with_mnemonic (_("D_elete"));
+       gtk_button_set_image(GTK_BUTTON(del_btn),
+                       gtk_image_new_from_stock(GTK_STOCK_REMOVE,GTK_ICON_SIZE_BUTTON));
        gtk_box_pack_start(GTK_BOX(btn_hbox), del_btn, FALSE, TRUE, 0);
        g_signal_connect(G_OBJECT(del_btn), "clicked",
                         G_CALLBACK(prefs_filtering_action_delete_cb), NULL);
@@ -657,6 +659,9 @@ static void prefs_filtering_action_create(void)
        gtk_widget_set_size_request(window, prefs_common.filteringactionwin_width,
                                    prefs_common.filteringactionwin_height);
 
+       g_object_unref(G_OBJECT(size_group));
+       g_object_unref(G_OBJECT(size_action));
+
        gtk_widget_show_all(window);
 
        filtering_action.window    = window;
@@ -675,7 +680,7 @@ static void prefs_filtering_action_create(void)
        filtering_action.score_entry = score_entry;
        filtering_action.header_combo = header_combo;
        filtering_action.header_entry = header_entry;
-#ifndef USE_NEW_ADDRBOOK
+#ifndef USE_ALT_ADDRBOOK
        filtering_action.addressbook_btn = addressbook_btn;
 #endif
        filtering_action.ok_btn = ok_btn;
@@ -1267,7 +1272,8 @@ static gchar *exec_desc_strings[] = {
 
 static DescriptionWindow exec_desc_win = { 
        NULL,
-        NULL, 
+        NULL,
+       TRUE,
         2,
         N_("Filtering Action: 'Execute'"),
        N_("'Execute' allows you to send a message or message element "
@@ -1290,7 +1296,8 @@ static void prefs_filtering_action_select_dest(void)
        FolderItem *dest;
        gchar * path;
 
-       dest = foldersel_folder_sel(NULL, FOLDER_SEL_COPY, NULL, FALSE);
+       dest = foldersel_folder_sel(NULL, FOLDER_SEL_COPY, NULL, FALSE,
+                       _("Select destination folder"));
        if (!dest) return;
 
        path = folder_item_get_identifier(dest);
@@ -1299,7 +1306,7 @@ static void prefs_filtering_action_select_dest(void)
        g_free(path);
 }
 
-#ifndef USE_NEW_ADDRBOOK
+#ifndef USE_ALT_ADDRBOOK
 static void prefs_filtering_action_select_addressbook(void)
 {
        const gchar *folderpath = NULL;
@@ -1404,7 +1411,7 @@ static void prefs_filtering_action_type_selection_changed(GtkWidget *combo,
 
        prefs_filtering_action_enable_widget(filtering_action.header_combo,
                                        (value == ACTION_ADD_TO_ADDRESSBOOK));  
-#ifndef USE_NEW_ADDRBOOK
+#ifndef USE_ALT_ADDRBOOK
        prefs_filtering_action_enable_widget(filtering_action.addressbook_btn,
                                        (value == ACTION_ADD_TO_ADDRESSBOOK));
 #endif
@@ -1698,7 +1705,7 @@ static gboolean prefs_filtering_actions_selected
                                     ACTION_CLEAR_TAGS);
                break;
        default:
-               g_warning("unhandled case !\n");
+               g_warning("unhandled action type");
        }
        if (action->destination)
                gtk_entry_set_text(GTK_ENTRY(filtering_action.dest_entry), action->destination);