[gedit/wip/loader-saver] tab: load stream with GtkSourceFileLoader



commit 959a633ad327ab95fa7c71ac9c105974938944ac
Author: Sébastien Wilmet <swilmet gnome org>
Date:   Mon Jun 23 16:37:38 2014 +0200

    tab: load stream with GtkSourceFileLoader

 gedit/gedit-tab.c |   68 +++++++++++++++++++++++++++++-----------------------
 1 files changed, 38 insertions(+), 30 deletions(-)
---
diff --git a/gedit/gedit-tab.c b/gedit/gedit-tab.c
index 265364c..9edd657 100644
--- a/gedit/gedit-tab.c
+++ b/gedit/gedit-tab.c
@@ -2060,6 +2060,7 @@ load_cb (GtkSourceFileLoader *loader,
 
        g_clear_object (&tab->priv->loader);
        g_clear_object (&tab->priv->cancellable);
+       tab->priv->load_create = FALSE;
 
        g_signal_emit_by_name (doc, "loaded", NULL);
 
@@ -2074,30 +2075,17 @@ load_cb (GtkSourceFileLoader *loader,
        }
 }
 
-void
-_gedit_tab_load (GeditTab                *tab,
-                GFile                   *location,
-                const GtkSourceEncoding *encoding,
-                gint                     line_pos,
-                gint                     column_pos,
-                gboolean                 create)
+static void
+load (GeditTab                *tab,
+      const GtkSourceEncoding *encoding,
+      gint                     line_pos,
+      gint                     column_pos)
 {
-       GeditDocument *doc;
-       GtkSourceFile *file;
-
-       g_return_if_fail (GEDIT_IS_TAB (tab));
-       g_return_if_fail (G_IS_FILE (location));
-       g_return_if_fail (tab->priv->state == GEDIT_TAB_STATE_NORMAL);
-       g_return_if_fail (tab->priv->loader == NULL);
+       g_return_if_fail (GTK_SOURCE_IS_FILE_LOADER (tab->priv->loader));
        g_return_if_fail (tab->priv->cancellable == NULL);
 
-       doc = gedit_tab_get_document (tab);
-       file = gedit_document_get_file (doc);
-
        gedit_tab_set_state (tab, GEDIT_TAB_STATE_LOADING);
 
-       tab->priv->loader = gtk_source_file_loader_new (file, location);
-
        if (encoding != NULL)
        {
                tab->priv->user_requested_encoding = TRUE;
@@ -2114,7 +2102,6 @@ _gedit_tab_load (GeditTab                *tab,
 
        tab->priv->tmp_line_pos = line_pos;
        tab->priv->tmp_column_pos = column_pos;
-       tab->priv->load_create = create != FALSE;
 
        tab->priv->cancellable = g_cancellable_new ();
 
@@ -2132,6 +2119,32 @@ _gedit_tab_load (GeditTab                *tab,
 }
 
 void
+_gedit_tab_load (GeditTab                *tab,
+                GFile                   *location,
+                const GtkSourceEncoding *encoding,
+                gint                     line_pos,
+                gint                     column_pos,
+                gboolean                 create)
+{
+       GeditDocument *doc;
+       GtkSourceFile *file;
+
+       g_return_if_fail (GEDIT_IS_TAB (tab));
+       g_return_if_fail (G_IS_FILE (location));
+       g_return_if_fail (tab->priv->state == GEDIT_TAB_STATE_NORMAL);
+       g_return_if_fail (tab->priv->loader == NULL);
+
+       doc = gedit_tab_get_document (tab);
+       file = gedit_document_get_file (doc);
+
+       tab->priv->loader = gtk_source_file_loader_new (file, location);
+
+       tab->priv->load_create = create != FALSE;
+
+       load (tab, encoding, line_pos, column_pos);
+}
+
+void
 _gedit_tab_load_stream (GeditTab                *tab,
                        GInputStream            *stream,
                        const GtkSourceEncoding *encoding,
@@ -2139,24 +2152,19 @@ _gedit_tab_load_stream (GeditTab                *tab,
                        gint                     column_pos)
 {
        GeditDocument *doc;
+       GtkSourceFile *file;
 
        g_return_if_fail (GEDIT_IS_TAB (tab));
        g_return_if_fail (G_IS_INPUT_STREAM (stream));
        g_return_if_fail (tab->priv->state == GEDIT_TAB_STATE_NORMAL);
+       g_return_if_fail (tab->priv->loader == NULL);
 
        doc = gedit_tab_get_document (tab);
+       file = gedit_document_get_file (doc);
 
-       gedit_tab_set_state (tab, GEDIT_TAB_STATE_LOADING);
-
-       tab->priv->tmp_line_pos = line_pos;
-       tab->priv->tmp_column_pos = column_pos;
-       tab->priv->tmp_encoding = encoding;
+       tab->priv->loader = gtk_source_file_loader_new_from_stream (file, stream);
 
-       _gedit_document_load_stream (doc,
-                                    stream,
-                                    encoding,
-                                    line_pos,
-                                    column_pos);
+       load (tab, encoding, line_pos, column_pos);
 }
 
 void


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