[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