[gtksourceview/wip/loader-saver: 11/28] Move mount_operation_factory to GtkSourceFile



commit 27c0aa0612c07025f2787b19f311ede192cd8536
Author: Sébastien Wilmet <swilmet gnome org>
Date:   Sun Jun 8 22:32:01 2014 +0200

    Move mount_operation_factory to GtkSourceFile

 docs/reference/gtksourceview-3.0-sections.txt |    3 +-
 gtksourceview/gtksourcefile.c                 |   38 ++++++++++++++++++++++++
 gtksourceview/gtksourcefile.h                 |    7 ++++
 gtksourceview/gtksourcefileloader.c           |   39 ++-----------------------
 gtksourceview/gtksourcefileloader.h           |    5 ---
 gtksourceview/gtksourcefilesaver.c            |   39 ++-----------------------
 gtksourceview/gtksourcefilesaver.h            |    5 ---
 7 files changed, 52 insertions(+), 84 deletions(-)
---
diff --git a/docs/reference/gtksourceview-3.0-sections.txt b/docs/reference/gtksourceview-3.0-sections.txt
index 91976fb..883a6f4 100644
--- a/docs/reference/gtksourceview-3.0-sections.txt
+++ b/docs/reference/gtksourceview-3.0-sections.txt
@@ -243,6 +243,7 @@ gtk_source_file_get_location
 gtk_source_file_get_encoding
 gtk_source_file_get_newline_type
 gtk_source_file_get_compression_type
+gtk_source_file_set_mount_operation_factory
 <SUBSECTION Standard>
 GTK_SOURCE_FILE
 GTK_SOURCE_FILE_CLASS
@@ -268,7 +269,6 @@ gtk_source_file_loader_set_candidate_encodings
 gtk_source_file_loader_get_file
 gtk_source_file_loader_get_location
 gtk_source_file_loader_get_input_stream
-gtk_source_file_loader_set_mount_operation_factory
 gtk_source_file_loader_load_async
 gtk_source_file_loader_load_finish
 gtk_source_file_loader_get_encoding
@@ -301,7 +301,6 @@ gtk_source_file_saver_set_compression_type
 gtk_source_file_saver_get_compression_type
 gtk_source_file_saver_set_create_backup
 gtk_source_file_saver_get_create_backup
-gtk_source_file_saver_set_mount_operation_factory
 gtk_source_file_saver_save_async
 gtk_source_file_saver_save_finish
 <SUBSECTION Standard>
diff --git a/gtksourceview/gtksourcefile.c b/gtksourceview/gtksourcefile.c
index 6bc1253..b5fcbe8 100644
--- a/gtksourceview/gtksourcefile.c
+++ b/gtksourceview/gtksourcefile.c
@@ -62,6 +62,9 @@ struct _GtkSourceFilePrivate
        const GtkSourceEncoding *encoding;
        GtkSourceNewlineType newline_type;
        GtkSourceCompressionType compression_type;
+
+       GtkSourceMountOperationFactory mount_operation_factory;
+       gpointer mount_operation_userdata;
 };
 
 G_DEFINE_TYPE_WITH_PRIVATE (GtkSourceFile, gtk_source_file, G_TYPE_OBJECT)
@@ -403,3 +406,38 @@ gtk_source_file_get_compression_type (GtkSourceFile *file)
 
        return file->priv->compression_type;
 }
+
+/**
+ * gtk_source_file_set_mount_operation_factory:
+ * @file: a #GtkSourceFile.
+ * @callback: a #GtkSourceMountOperationFactory to call when a #GMountOperation
+ *   is needed.
+ * @user_data: the data to pass to the @callback function.
+ *
+ * Sets a #GtkSourceMountOperationFactory function that will be called when a
+ * #GMountOperation must be created. This is useful for creating a
+ * #GtkMountOperation with the parent #GtkWindow.
+ *
+ * If a mount operation factory isn't set, g_mount_operation_new() will be
+ * called.
+ *
+ * Since: 3.14
+ */
+void
+gtk_source_file_set_mount_operation_factory (GtkSourceFile                  *file,
+                                            GtkSourceMountOperationFactory  callback,
+                                            gpointer                        user_data)
+{
+       g_return_if_fail (GTK_SOURCE_IS_FILE (file));
+
+       file->priv->mount_operation_factory = callback;
+       file->priv->mount_operation_userdata = user_data;
+}
+
+GMountOperation *
+_gtk_source_file_create_mount_operation (GtkSourceFile *file)
+{
+       return (file != NULL && file->priv->mount_operation_factory != NULL) ?
+               file->priv->mount_operation_factory (file->priv->mount_operation_userdata) :
+               g_mount_operation_new ();
+}
diff --git a/gtksourceview/gtksourcefile.h b/gtksourceview/gtksourcefile.h
index 0748cbe..be41162 100644
--- a/gtksourceview/gtksourcefile.h
+++ b/gtksourceview/gtksourcefile.h
@@ -66,6 +66,10 @@ GtkSourceNewlineType
 GtkSourceCompressionType
                 gtk_source_file_get_compression_type           (GtkSourceFile *file);
 
+void            gtk_source_file_set_mount_operation_factory    (GtkSourceFile                  *file,
+                                                                GtkSourceMountOperationFactory  callback,
+                                                                gpointer                        user_data);
+
 G_GNUC_INTERNAL
 void            _gtk_source_file_set_location                  (GtkSourceFile *file,
                                                                 GFile         *location);
@@ -82,6 +86,9 @@ G_GNUC_INTERNAL
 void            _gtk_source_file_set_compression_type          (GtkSourceFile            *file,
                                                                 GtkSourceCompressionType  compression_type);
 
+G_GNUC_INTERNAL
+GMountOperation        *_gtk_source_file_create_mount_operation        (GtkSourceFile *file);
+
 G_END_DECLS
 
 #endif /* __GTK_SOURCE_FILE_H__ */
diff --git a/gtksourceview/gtksourcefileloader.c b/gtksourceview/gtksourcefileloader.c
index 1b3c637..0d9cabb 100644
--- a/gtksourceview/gtksourcefileloader.c
+++ b/gtksourceview/gtksourcefileloader.c
@@ -81,9 +81,6 @@ struct _GtkSourceFileLoaderPrivate
        GtkSourceNewlineType auto_detected_newline_type;
        GtkSourceCompressionType auto_detected_compression_type;
 
-       GtkSourceMountOperationFactory mount_operation_factory;
-       gpointer mount_operation_userdata;
-
        GTask *task;
 
        goffset total_bytes_read;
@@ -613,18 +610,12 @@ mount_cb (GFile               *file,
        }
 }
 
-static GMountOperation *
-create_mount_operation (GtkSourceFileLoader *loader)
-{
-       return loader->priv->mount_operation_factory != NULL ?
-               loader->priv->mount_operation_factory (loader->priv->mount_operation_userdata) :
-               g_mount_operation_new ();
-}
-
 static void
 recover_not_mounted (GtkSourceFileLoader *loader)
 {
-       GMountOperation *mount_operation = create_mount_operation (loader);
+       GMountOperation *mount_operation;
+
+       mount_operation = _gtk_source_file_create_mount_operation (loader->priv->file);
 
        DEBUG ({
               g_print ("%s\n", G_STRFUNC);
@@ -1022,27 +1013,3 @@ gtk_source_file_loader_get_compression_type (GtkSourceFileLoader *loader)
 
        return loader->priv->auto_detected_compression_type;
 }
-
-/**
- * gtk_source_file_loader_set_mount_operation_factory:
- * @loader: a #GtkSourceFileLoader.
- * @callback: a #GtkSourceMountOperationFactory to call when a #GMountOperation
- * is needed.
- * @user_data: the data to pass to the @callback function.
- *
- * Sets a #GtkSourceMountOperationFactory function that will be called when a
- * #GMountOperation must be created. This is useful for creating a
- * #GtkMountOperation with the parent #GtkWindow.
- *
- * Since: 3.14
- */
-void
-gtk_source_file_loader_set_mount_operation_factory (GtkSourceFileLoader            *loader,
-                                                   GtkSourceMountOperationFactory  callback,
-                                                   gpointer                        user_data)
-{
-       g_return_if_fail (GTK_SOURCE_IS_FILE_LOADER (loader));
-
-       loader->priv->mount_operation_factory = callback;
-       loader->priv->mount_operation_userdata = user_data;
-}
diff --git a/gtksourceview/gtksourcefileloader.h b/gtksourceview/gtksourcefileloader.h
index 2ac3ced..7bc8f4a 100644
--- a/gtksourceview/gtksourcefileloader.h
+++ b/gtksourceview/gtksourcefileloader.h
@@ -113,11 +113,6 @@ GtkSourceNewlineType        gtk_source_file_loader_get_newline_type (GtkSourceFileLoad
 GtkSourceCompressionType gtk_source_file_loader_get_compression_type
                                                                (GtkSourceFileLoader     *loader);
 
-void                    gtk_source_file_loader_set_mount_operation_factory
-                                                               (GtkSourceFileLoader            *loader,
-                                                                GtkSourceMountOperationFactory  callback,
-                                                                gpointer                        user_data);
-
 G_END_DECLS
 
 #endif  /* __GTK_SOURCE_FILE_LOADER_H__  */
diff --git a/gtksourceview/gtksourcefilesaver.c b/gtksourceview/gtksourcefilesaver.c
index 439ae5b..c8d1820 100644
--- a/gtksourceview/gtksourcefilesaver.c
+++ b/gtksourceview/gtksourcefilesaver.c
@@ -80,9 +80,6 @@ struct _GtkSourceFileSaverPrivate
        GtkSourceNewlineType newline_type;
        GtkSourceCompressionType compression_type;
 
-       GtkSourceMountOperationFactory mount_operation_factory;
-       gpointer mount_operation_userdata;
-
        GTask *task;
 
        /* This field is used when cancelling the output stream: an error occurs
@@ -786,18 +783,12 @@ mount_cb (GFile              *file,
        begin_write (saver);
 }
 
-static GMountOperation *
-create_mount_operation (GtkSourceFileSaver *saver)
-{
-       return saver->priv->mount_operation_factory != NULL ?
-               saver->priv->mount_operation_factory (saver->priv->mount_operation_userdata) :
-               g_mount_operation_new ();
-}
-
 static void
 recover_not_mounted (GtkSourceFileSaver *saver)
 {
-       GMountOperation *mount_operation = create_mount_operation (saver);
+       GMountOperation *mount_operation;
+
+       mount_operation = _gtk_source_file_create_mount_operation (saver->priv->file);
 
        DEBUG ({
               g_print ("%s\n", G_STRFUNC);
@@ -1144,27 +1135,3 @@ gtk_source_file_saver_save_finish (GtkSourceFileSaver  *saver,
 
        return ok;
 }
-
-/**
- * gtk_source_file_saver_set_mount_operation_factory:
- * @saver: a #GtkSourceFileSaver.
- * @callback: a #GtkSourceMountOperationFactory to call when a #GMountOperation
- * is needed.
- * @user_data: the data to pass to the @callback function.
- *
- * Sets a #GtkSourceMountOperationFactory function that will be called when a
- * #GMountOperation must be created. This is useful for creating a
- * #GtkMountOperation with the parent #GtkWindow.
- *
- * Since: 3.14
- */
-void
-gtk_source_file_saver_set_mount_operation_factory (GtkSourceFileSaver             *saver,
-                                                  GtkSourceMountOperationFactory  callback,
-                                                  gpointer                        user_data)
-{
-       g_return_if_fail (GTK_SOURCE_IS_FILE_SAVER (saver));
-
-       saver->priv->mount_operation_factory = callback;
-       saver->priv->mount_operation_userdata = user_data;
-}
diff --git a/gtksourceview/gtksourcefilesaver.h b/gtksourceview/gtksourcefilesaver.h
index 9c7399b..b2b1d19 100644
--- a/gtksourceview/gtksourcefilesaver.h
+++ b/gtksourceview/gtksourcefilesaver.h
@@ -98,11 +98,6 @@ gboolean              gtk_source_file_saver_save_finish      (GtkSourceFileSaver       
*saver,
                                                                 GAsyncResult             *result,
                                                                 GError                  **error);
 
-void                    gtk_source_file_saver_set_mount_operation_factory
-                                                               (GtkSourceFileSaver             *saver,
-                                                                GtkSourceMountOperationFactory  callback,
-                                                                gpointer                        user_data);
-
 G_END_DECLS
 
 #endif  /* __GTK_SOURCE_FILE_SAVER_H__  */


[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]