[Xfce4-commits] <midori:master> Implement an 'Edit rule' dialogue when blocking images

Christian Dywan noreply at xfce.org
Wed Feb 3 19:00:01 CET 2010


Updating branch refs/heads/master
         to c550d366499f1ab8db19721dd2faab825231f9e1 (commit)
       from ae1ea1214bb056dbc294c32e84e769dae84c907f (commit)

commit c550d366499f1ab8db19721dd2faab825231f9e1
Author: Alexander Butenko <a.butenka at gmail.com>
Date:   Wed Feb 3 18:58:07 2010 +0100

    Implement an 'Edit rule' dialogue when blocking images

 extensions/adblock.c |   47 ++++++++++++++++++++++++++++++++++++++++++++---
 1 files changed, 44 insertions(+), 3 deletions(-)

diff --git a/extensions/adblock.c b/extensions/adblock.c
index 5035e33..73b2146 100644
--- a/extensions/adblock.c
+++ b/extensions/adblock.c
@@ -803,7 +803,48 @@ adblock_custom_block_image_cb (GtkWidget*       widget,
 {
     gchar* custom_list;
     FILE* list;
-    gchar* uri;
+    MidoriApp* app;
+    GtkWidget* browser;
+    GtkWidget* dialog;
+    GtkSizeGroup* sizegroup;
+    GtkWidget* hbox;
+    GtkWidget* label;
+    GtkWidget* entry;
+    gchar* title;
+
+    app = midori_extension_get_app (extension);
+    browser = katze_object_get_object (app, "browser");
+
+    title = _("Edit rule");
+    dialog = gtk_dialog_new_with_buttons (title, GTK_WINDOW (browser),
+            GTK_DIALOG_DESTROY_WITH_PARENT | GTK_DIALOG_NO_SEPARATOR,
+            GTK_STOCK_CANCEL, GTK_RESPONSE_CANCEL,
+            GTK_STOCK_ADD, GTK_RESPONSE_ACCEPT,
+            NULL);
+    gtk_window_set_icon_name (GTK_WINDOW (dialog), GTK_STOCK_ADD);
+    gtk_container_set_border_width (GTK_CONTAINER (dialog), 5);
+    gtk_container_set_border_width (GTK_CONTAINER (GTK_DIALOG (dialog)->vbox), 5);
+    sizegroup = gtk_size_group_new (GTK_SIZE_GROUP_HORIZONTAL);
+
+    hbox = gtk_hbox_new (FALSE, 8);
+    gtk_container_set_border_width (GTK_CONTAINER (hbox), 5);
+    label = gtk_label_new_with_mnemonic (_("_Rule:"));
+    gtk_size_group_add_widget (sizegroup, label);
+    gtk_box_pack_start (GTK_BOX (hbox), label, FALSE, FALSE, 0);
+    entry = gtk_entry_new ();
+    gtk_entry_set_activates_default (GTK_ENTRY (entry), TRUE);
+    gtk_entry_set_text (GTK_ENTRY (entry),
+                        g_object_get_data (G_OBJECT (widget), "uri"));
+    gtk_box_pack_start (GTK_BOX (hbox), entry, TRUE, TRUE, 0);
+    gtk_container_add (GTK_CONTAINER (GTK_DIALOG (dialog)->vbox), hbox);
+    gtk_widget_show_all (hbox);
+
+    gtk_dialog_set_default_response (GTK_DIALOG (dialog), GTK_RESPONSE_ACCEPT);
+    if (gtk_dialog_run (GTK_DIALOG (dialog)) != GTK_RESPONSE_ACCEPT)
+    {
+        gtk_widget_destroy (dialog);
+        return;
+    }
 
     custom_list = g_build_filename (midori_extension_get_config_dir (extension),
                                     CUSTOM_LIST_NAME, NULL);
@@ -812,13 +853,13 @@ adblock_custom_block_image_cb (GtkWidget*       widget,
         g_free (custom_list);
         return;
     }
-    uri = g_object_get_data (G_OBJECT (widget), "uri");
 
-    g_fprintf (list, "%s\n", uri);
+    g_fprintf (list, "%s\n", gtk_entry_get_text (GTK_ENTRY (entry)));
     fclose (list);
     adblock_reload_rules (extension, TRUE);
 
     g_free (custom_list);
+    gtk_widget_destroy (dialog);
 }
 
 static void



More information about the Xfce4-commits mailing list