Author: mbarnes
Date: Sat Feb  9 06:05:03 2008
New Revision: 8725
URL: http://svn.gnome.org/viewvc/gtkhtml?rev=8725&view=rev

Log:
Add a handy public function for running file chooser dialogs.
It takes care of loading and saving the "current-folder" property.


Modified:
   branches/mbarnes-composer/components/editor/gtkhtml-editor-private.c
   branches/mbarnes-composer/components/editor/gtkhtml-editor.c
   branches/mbarnes-composer/components/editor/gtkhtml-editor.h

Modified: branches/mbarnes-composer/components/editor/gtkhtml-editor-private.c
==============================================================================
--- branches/mbarnes-composer/components/editor/gtkhtml-editor-private.c        
(original)
+++ branches/mbarnes-composer/components/editor/gtkhtml-editor-private.c        
Sat Feb  9 06:05:03 2008
@@ -375,22 +375,9 @@
        gtk_dialog_set_default_response (
                GTK_DIALOG (dialog), GTK_RESPONSE_OK);
 
-       gtk_file_chooser_set_current_folder (
-               GTK_FILE_CHOOSER (dialog),
-               gtkhtml_editor_get_current_folder (editor));
-
        g_signal_connect (dialog, "response", response_cb, editor);
 
-       response = gtk_dialog_run (GTK_DIALOG (dialog));
-
-       if (response == GTK_RESPONSE_OK) {
-               gchar *current_folder;
-
-               current_folder = gtk_file_chooser_get_current_folder (
-                       GTK_FILE_CHOOSER (dialog));
-               gtkhtml_editor_set_current_folder (editor, current_folder);
-               g_free (current_folder);
-       }
+       response = gtkhtml_editor_file_chooser_dialog_run (editor, dialog);
 
        gtk_widget_destroy (dialog);
 

Modified: branches/mbarnes-composer/components/editor/gtkhtml-editor.c
==============================================================================
--- branches/mbarnes-composer/components/editor/gtkhtml-editor.c        
(original)
+++ branches/mbarnes-composer/components/editor/gtkhtml-editor.c        Sat Feb 
 9 06:05:03 2008
@@ -832,6 +832,40 @@
        g_object_notify (G_OBJECT (editor), "current-folder");
 }
 
+gint
+gtkhtml_editor_file_chooser_dialog_run (GtkhtmlEditor *editor,
+                                        GtkWidget *dialog)
+{
+       gint response = GTK_RESPONSE_NONE;
+       gboolean save_folder;
+
+       g_return_val_if_fail (GTKHTML_IS_EDITOR (editor), response);
+       g_return_val_if_fail (GTK_IS_FILE_CHOOSER_DIALOG (dialog), response);
+
+       gtk_file_chooser_set_current_folder (
+               GTK_FILE_CHOOSER (dialog),
+               gtkhtml_editor_get_current_folder (editor));
+
+       response = gtk_dialog_run (GTK_DIALOG (dialog));
+
+       save_folder =
+               (response == GTK_RESPONSE_ACCEPT) ||
+               (response == GTK_RESPONSE_OK) ||
+               (response == GTK_RESPONSE_YES) ||
+               (response == GTK_RESPONSE_APPLY);
+
+       if (save_folder) {
+               gchar *folder;
+
+               folder = gtk_file_chooser_get_current_folder (
+                       GTK_FILE_CHOOSER (dialog));
+               gtkhtml_editor_set_current_folder (editor, folder);
+               g_free (folder);
+       }
+
+       return response;
+}
+
 /* Helper for gtkhtml_editor_get_text_[html/plain]() */
 static gboolean
 editor_save_receiver (HTMLEngine *engine,

Modified: branches/mbarnes-composer/components/editor/gtkhtml-editor.h
==============================================================================
--- branches/mbarnes-composer/components/editor/gtkhtml-editor.h        
(original)
+++ branches/mbarnes-composer/components/editor/gtkhtml-editor.h        Sat Feb 
 9 06:05:03 2008
@@ -91,6 +91,9 @@
 void           gtkhtml_editor_set_current_folder
                                                (GtkhtmlEditor *editor,
                                                 const gchar *current_folder);
+gint           gtkhtml_editor_file_chooser_dialog_run
+                                               (GtkhtmlEditor *editor,
+                                                GtkWidget *dialog);
 
 /*****************************************************************************
  * High-Level Editing Interface
_______________________________________________
SVN-commits-list mailing list (read only)
http://mail.gnome.org/mailman/listinfo/svn-commits-list

Want to limit the commits to a few modules? Go to above URL, log in to edit 
your options and select the modules ('topics') you want.
Module maintainer? It is possible to set the reply-to to your development 
mailing list. Email [EMAIL PROTECTED] if interested.

Reply via email to