[gedit/wip/loader-saver: 2/2] tab: GtkSourceFileLoader port: progress info and cancel



commit 49fac13a4639ba18c1656148176819e5263caebf
Author: Sébastien Wilmet <swilmet gnome org>
Date:   Mon Jun 23 12:14:39 2014 +0200

    tab: GtkSourceFileLoader port: progress info and cancel
    
    It more or less works, but there is still a lot of work to do.

 gedit/gedit-tab.c |   92 +++++++++++++++++++---------------------------------
 1 files changed, 34 insertions(+), 58 deletions(-)
---
diff --git a/gedit/gedit-tab.c b/gedit/gedit-tab.c
index 936b678..4ca395f 100644
--- a/gedit/gedit-tab.c
+++ b/gedit/gedit-tab.c
@@ -643,15 +643,10 @@ load_cancelled (GtkWidget *bar,
                gint       response_id,
                GeditTab  *tab)
 {
-       GeditDocument *doc;
-
        g_return_if_fail (GEDIT_IS_PROGRESS_INFO_BAR (tab->priv->info_bar));
+       g_return_if_fail (G_IS_CANCELLABLE (tab->priv->cancellable));
 
-       doc = gedit_tab_get_document (tab);
-
-       g_object_ref (tab);
-       _gedit_document_load_cancel (doc);
-       g_object_unref (tab);
+       g_cancellable_cancel (tab->priv->cancellable);
 }
 
 static void
@@ -747,13 +742,10 @@ show_loading_info_bar (GeditTab *tab)
                }
                else
                {
-                       msg = g_strdup_printf (_("Reverting %s"),
-                                              name_markup);
+                       msg = g_strdup_printf (_("Reverting %s"), name_markup);
                }
 
-               bar = gedit_progress_info_bar_new ("document-revert",
-                                                  msg,
-                                                  TRUE);
+               bar = gedit_progress_info_bar_new ("document-revert", msg, TRUE);
        }
        else
        {
@@ -770,13 +762,10 @@ show_loading_info_bar (GeditTab *tab)
                }
                else
                {
-                       msg = g_strdup_printf (_("Loading %s"),
-                                              name_markup);
+                       msg = g_strdup_printf (_("Loading %s"), name_markup);
                }
 
-               bar = gedit_progress_info_bar_new ("document-open",
-                                                  msg,
-                                                  TRUE);
+               bar = gedit_progress_info_bar_new ("document-open", msg, TRUE);
        }
 
        g_signal_connect (bar,
@@ -906,40 +895,6 @@ info_bar_set_progress (GeditTab *tab,
        }
 }
 
-static void
-document_loading (GeditDocument *document,
-                 goffset        size,
-                 goffset        total_size,
-                 GeditTab      *tab)
-{
-       gdouble elapsed_time;
-       gdouble total_time;
-       gdouble remaining_time;
-
-       g_return_if_fail ((tab->priv->state == GEDIT_TAB_STATE_LOADING) ||
-                         (tab->priv->state == GEDIT_TAB_STATE_REVERTING));
-
-       if (tab->priv->timer == NULL)
-       {
-               tab->priv->timer = g_timer_new ();
-       }
-
-       elapsed_time = g_timer_elapsed (tab->priv->timer, NULL);
-
-       /* elapsed_time / total_time = size / total_size */
-       total_time = (elapsed_time * total_size) / size;
-
-       remaining_time = total_time - elapsed_time;
-
-       /* Approximately more than 3 seconds remaining. */
-       if (remaining_time > 3.0)
-       {
-               show_loading_info_bar (tab);
-       }
-
-       info_bar_set_progress (tab, size, total_size);
-}
-
 static gboolean
 remove_tab_idle (GeditTab *tab)
 {
@@ -1661,11 +1616,6 @@ gedit_tab_init (GeditTab *tab)
                          tab);
 
        g_signal_connect (doc,
-                         "loading",
-                         G_CALLBACK (document_loading),
-                         tab);
-
-       g_signal_connect (doc,
                          "loaded",
                          G_CALLBACK (document_loaded),
                          tab);
@@ -1981,10 +1931,36 @@ gedit_tab_get_from_document (GeditDocument *doc)
 }
 
 static void
-progress_cb (goffset   current_num_bytes,
-            goffset   total_num_bytes,
+progress_cb (goffset   size,
+            goffset   total_size,
             GeditTab *tab)
 {
+       gdouble elapsed_time;
+       gdouble total_time;
+       gdouble remaining_time;
+
+       g_return_if_fail (tab->priv->state == GEDIT_TAB_STATE_LOADING ||
+                         tab->priv->state == GEDIT_TAB_STATE_REVERTING);
+
+       if (tab->priv->timer == NULL)
+       {
+               tab->priv->timer = g_timer_new ();
+       }
+
+       elapsed_time = g_timer_elapsed (tab->priv->timer, NULL);
+
+       /* elapsed_time / total_time = size / total_size */
+       total_time = (elapsed_time * total_size) / size;
+
+       remaining_time = total_time - elapsed_time;
+
+       /* Approximately more than 3 seconds remaining. */
+       if (remaining_time > 3.0)
+       {
+               show_loading_info_bar (tab);
+       }
+
+       info_bar_set_progress (tab, size, total_size);
 }
 
 static void


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