[Goodies-commits] r5386 - in xfce4-mailwatch-plugin/trunk: . libmailwatch-core

Brian Tarricone kelnos at xfce.org
Thu Sep 11 06:55:12 CEST 2008


Author: kelnos
Date: 2008-09-11 04:55:12 +0000 (Thu, 11 Sep 2008)
New Revision: 5386

Modified:
   xfce4-mailwatch-plugin/trunk/NEWS
   xfce4-mailwatch-plugin/trunk/libmailwatch-core/mailwatch-mailbox-maildir.c
   xfce4-mailwatch-plugin/trunk/libmailwatch-core/mailwatch-mailbox-mbox.c
Log:
use GtkFileChooserButton for file/dir selection for mbox/maildir

GtkEntry+GtkButton is so 2003.

Modified: xfce4-mailwatch-plugin/trunk/NEWS
===================================================================
--- xfce4-mailwatch-plugin/trunk/NEWS	2008-09-10 15:43:45 UTC (rev 5385)
+++ xfce4-mailwatch-plugin/trunk/NEWS	2008-09-11 04:55:12 UTC (rev 5386)
@@ -37,6 +37,8 @@
       just be more resource-friendly in general.
     * Allow non-square plugin buttons.
     * Allow deselecting INBOX in the IMAP folder list (bug 4150).
+    * Use GtkFileChooserButton for mbox and maildir file/dir entries rather
+      than a GtkEntry+GtkButton.
 
 
 Version 1.0.1 (20 Apr 2006):

Modified: xfce4-mailwatch-plugin/trunk/libmailwatch-core/mailwatch-mailbox-maildir.c
===================================================================
--- xfce4-mailwatch-plugin/trunk/libmailwatch-core/mailwatch-mailbox-maildir.c	2008-09-10 15:43:45 UTC (rev 5385)
+++ xfce4-mailwatch-plugin/trunk/libmailwatch-core/mailwatch-mailbox-maildir.c	2008-09-11 04:55:12 UTC (rev 5386)
@@ -268,65 +268,28 @@
     DBG( "<<--" );
 }
 
-static gboolean
-maildir_path_entry_changed_cb( GtkWidget *widget, XfceMailwatchMaildirMailbox *maildir )
+static void
+maildir_folder_set_cb( GtkWidget *button,
+        XfceMailwatchMaildirMailbox *maildir )
 {
-    const gchar                 *text;
+    gchar *folder;
 
     DBG( "-->>" );
 
+    folder = gtk_file_chooser_get_filename( GTK_FILE_CHOOSER( button ) );
     g_mutex_lock( maildir->mutex );
-    if ( maildir->path ) {
-        g_free( maildir->path );
+    g_free( maildir->path );
+    if( folder ) {
+        maildir->path = folder;
+    } else {
+        maildir->path = g_strdup( "" );
     }
-    
-    text = gtk_entry_get_text( GTK_ENTRY( widget ) );
-    maildir->path = g_strdup( text ? text : "" );
-
     g_mutex_unlock( maildir->mutex );
 
     DBG( "<<--" );
-
-    return ( FALSE );
 }
 
 static void
-maildir_browse_button_clicked_cb( GtkWidget *button,
-        XfceMailwatchMaildirMailbox *maildir )
-{
-    GtkWidget       *chooser;
-    gint            result;
-    GtkWidget       *parent;
-
-    DBG( "-->>" );
-
-    parent = gtk_widget_get_toplevel( button );
-    chooser = gtk_file_chooser_dialog_new( _( "Select Maildir Folder" ),
-            GTK_WINDOW( parent ),
-            GTK_FILE_CHOOSER_ACTION_SELECT_FOLDER,
-            GTK_STOCK_CANCEL, GTK_RESPONSE_CANCEL,
-            GTK_STOCK_OPEN, GTK_RESPONSE_OK,
-            NULL );
-    if ( maildir->path ) {
-        gtk_file_chooser_set_filename( GTK_FILE_CHOOSER( chooser ), maildir->path );
-    }
-    
-    result = gtk_dialog_run( GTK_DIALOG( chooser ) );
-    if ( result == GTK_RESPONSE_OK ) {
-        gchar       *path =
-            gtk_file_chooser_get_filename( GTK_FILE_CHOOSER( chooser ) );
-        GtkWidget   *entry = g_object_get_data( G_OBJECT( button ), "maildir_entry" );
-        
-        gtk_entry_set_text( GTK_ENTRY( entry ), ( path ) ? path : "" );
-        g_free( path );
-    }
-
-    gtk_widget_destroy( chooser );
-
-    DBG( "<<--" );
-}
-
-static void
 maildir_interval_changed_cb( GtkWidget *spinner, XfceMailwatchMaildirMailbox *maildir ) {
     gint value = gtk_spin_button_get_value_as_int( GTK_SPIN_BUTTON( spinner ) ) * 60;
 
@@ -353,8 +316,8 @@
 {
     XfceMailwatchMaildirMailbox *maildir = XFCE_MAILWATCH_MAILDIR_MAILBOX( mailbox );
     GtkWidget                   *vbox, *hbox;
-    GtkWidget                   *label, *entry;
-    GtkWidget                   *button, *image;
+    GtkWidget                   *label;
+    GtkWidget                   *button;
     GtkWidget                   *spin;
     GtkSizeGroup                *sg;
 
@@ -374,34 +337,20 @@
     gtk_box_pack_start( GTK_BOX( hbox ), label, FALSE, FALSE, 0 );
     gtk_size_group_add_widget( sg, label );
 
-    entry = gtk_entry_new();
-    gtk_entry_set_activates_default( GTK_ENTRY ( entry ), TRUE );
+    button = gtk_file_chooser_button_new( _("Select Maildir Folder"),
+                                          GTK_FILE_CHOOSER_ACTION_SELECT_FOLDER );
     g_mutex_lock( maildir->mutex );
     if ( maildir->path ) {
-        gtk_entry_set_text( GTK_ENTRY( entry ), maildir->path );
+        gtk_file_chooser_set_filename( GTK_FILE_CHOOSER( button ), maildir->path );
     }
     g_mutex_unlock( maildir->mutex );
-    
-    gtk_widget_show( entry );
-    gtk_box_pack_start( GTK_BOX( hbox ), entry, FALSE, FALSE, 0 );
-    gtk_label_set_mnemonic_widget( GTK_LABEL( label ), entry );
-
-    g_signal_connect( G_OBJECT( entry ), "changed",
-            G_CALLBACK( maildir_path_entry_changed_cb ), maildir );
-
-    button = gtk_button_new();
     gtk_widget_show( button );
+    gtk_box_pack_start( GTK_BOX( hbox ), button, TRUE, TRUE, 0 );
+    g_signal_connect( G_OBJECT( button ), "file-set",
+            G_CALLBACK( maildir_folder_set_cb ), maildir );
 
-    image = gtk_image_new_from_stock( GTK_STOCK_OPEN, GTK_ICON_SIZE_LARGE_TOOLBAR );
-    gtk_widget_show( image );
+    gtk_label_set_mnemonic_widget( GTK_LABEL( label ), button );
 
-    gtk_container_add( GTK_CONTAINER( button ), image );
-    gtk_box_pack_start( GTK_BOX( hbox ), button, FALSE, FALSE, 0 );
-
-    g_object_set_data( G_OBJECT( button ), "maildir_entry", entry );
-    g_signal_connect( G_OBJECT( button ), "clicked",
-            G_CALLBACK( maildir_browse_button_clicked_cb ), maildir );
-
     hbox = gtk_hbox_new( FALSE, BORDER );
     gtk_widget_show( hbox );
     gtk_box_pack_start( GTK_BOX( vbox ), hbox, FALSE, FALSE, 0 );

Modified: xfce4-mailwatch-plugin/trunk/libmailwatch-core/mailwatch-mailbox-mbox.c
===================================================================
--- xfce4-mailwatch-plugin/trunk/libmailwatch-core/mailwatch-mailbox-mbox.c	2008-09-10 15:43:45 UTC (rev 5385)
+++ xfce4-mailwatch-plugin/trunk/libmailwatch-core/mailwatch-mailbox-mbox.c	2008-09-11 04:55:12 UTC (rev 5386)
@@ -312,61 +312,29 @@
     g_mutex_unlock( mbox->settings_mutex );
 }
 
-static gboolean
-mbox_path_entry_changed_cb( GtkWidget *widget, XfceMailwatchMboxMailbox *mbox )
+static void
+mbox_file_set_cb( GtkWidget *button,
+        XfceMailwatchMboxMailbox *mbox )
 {
-    const gchar     *text;
+    gchar *text;
 
+    text = gtk_file_chooser_get_filename( GTK_FILE_CHOOSER( button ) );
+
     g_mutex_lock( mbox->settings_mutex );
     if ( mbox->fn ) {
         g_free( mbox->fn );
     }
 
-    text = gtk_entry_get_text( GTK_ENTRY( widget ) );
     if ( text ) {
-        mbox->fn = g_strdup( text );
+        mbox->fn = text;
     }
     else {
         mbox->fn = g_strdup( "" );
     }
     g_mutex_unlock( mbox->settings_mutex );
-
-    return ( FALSE );
 }
 
 static void
-mbox_browse_button_clicked_cb( GtkWidget *button,
-        XfceMailwatchMboxMailbox *mbox )
-{
-    GtkWidget       *chooser;
-    gint            result;
-    GtkWidget       *top;
-
-    top = gtk_widget_get_toplevel( button );
-
-    chooser = gtk_file_chooser_dialog_new( _( "Select mbox file" ),
-            GTK_WINDOW( top ),
-            GTK_FILE_CHOOSER_ACTION_OPEN,
-            GTK_STOCK_CANCEL, GTK_RESPONSE_CANCEL,
-            GTK_STOCK_OK, GTK_RESPONSE_OK,
-            NULL );
-    if ( mbox->fn ) {
-        gtk_file_chooser_set_filename( GTK_FILE_CHOOSER( chooser ), mbox->fn );
-    }
-
-    result = gtk_dialog_run( GTK_DIALOG( chooser ) );
-    if ( result == GTK_RESPONSE_OK ) {
-        gchar       *fn =
-            gtk_file_chooser_get_filename( GTK_FILE_CHOOSER( chooser ) );
-        GtkWidget   *entry = g_object_get_data( G_OBJECT( button ), "mbox_entry" );
-
-        gtk_entry_set_text( GTK_ENTRY( entry ), ( fn ) ? fn : "" );
-        g_free( fn );
-    }
-    gtk_widget_destroy( chooser );
-}
-
-static void
 mbox_interval_changed_cb( GtkWidget *spinner, XfceMailwatchMboxMailbox *mbox ) {
     gint val = gtk_spin_button_get_value_as_int( GTK_SPIN_BUTTON( spinner ) ) * 60;
 
@@ -386,8 +354,8 @@
 {
     XfceMailwatchMboxMailbox    *mbox = XFCE_MAILWATCH_MBOX_MAILBOX( mailbox );
     GtkWidget                   *vbox, *hbox;
-    GtkWidget                   *label, *entry;
-    GtkWidget                   *button, *image, *spinner;
+    GtkWidget                   *label;
+    GtkWidget                   *button, *spinner;
     GtkSizeGroup                *sg;
 
     vbox = gtk_vbox_new( FALSE, BORDER / 2 );
@@ -405,33 +373,20 @@
 
     gtk_size_group_add_widget( GTK_SIZE_GROUP( sg ), label );
 
-    entry = gtk_entry_new();
-    gtk_entry_set_activates_default( GTK_ENTRY( entry ), TRUE );
+    button = gtk_file_chooser_button_new( _("Select mbox file"),
+                                          GTK_FILE_CHOOSER_ACTION_OPEN );
     g_mutex_lock( mbox->settings_mutex );
     if ( mbox->fn ) {
-        gtk_entry_set_text( GTK_ENTRY( entry ), mbox->fn );
+        gtk_file_chooser_set_filename( GTK_FILE_CHOOSER( button ), mbox->fn );
     }
     g_mutex_unlock( mbox->settings_mutex );
-    gtk_widget_show( entry );
-    gtk_box_pack_start( GTK_BOX( hbox ), entry, FALSE, FALSE, 0 );
-    gtk_label_set_mnemonic_widget( GTK_LABEL( label ), entry );
-
-    g_signal_connect( G_OBJECT( entry ), "changed",
-            G_CALLBACK( mbox_path_entry_changed_cb ), mbox );
-    
-    button = gtk_button_new();
     gtk_widget_show( button );
+    gtk_box_pack_start( GTK_BOX( hbox ), button, TRUE, TRUE, 0 );
+    g_signal_connect( G_OBJECT( button ), "file-set",
+            G_CALLBACK( mbox_file_set_cb ), mbox );
 
-    image = gtk_image_new_from_stock( GTK_STOCK_OPEN, GTK_ICON_SIZE_LARGE_TOOLBAR );
-    gtk_widget_show( image );
+    gtk_label_set_mnemonic_widget( GTK_LABEL( label ), button );
 
-    gtk_container_add( GTK_CONTAINER( button ), image );
-    gtk_box_pack_start( GTK_BOX( hbox ), button, FALSE, FALSE, 0 );
-
-    g_object_set_data( G_OBJECT( button ), "mbox_entry", entry );
-    g_signal_connect( G_OBJECT( button ), "clicked",
-            G_CALLBACK( mbox_browse_button_clicked_cb ), mbox );
-
     hbox = gtk_hbox_new( FALSE, BORDER );
     gtk_widget_show( hbox );
     gtk_box_pack_start( GTK_BOX( vbox ), hbox, FALSE, FALSE, 0 );




More information about the Goodies-commits mailing list