[gedit/wip/loader-saver: 2/3] tab: clear_loading() function
- From: Sébastien Wilmet <swilmet src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [gedit/wip/loader-saver: 2/3] tab: clear_loading() function
- Date: Wed, 25 Jun 2014 18:15:16 +0000 (UTC)
commit d51500b6a08a0301f7ec8bd4054ce5ed0b98d557
Author: Sébastien Wilmet <swilmet gnome org>
Date: Wed Jun 25 19:54:25 2014 +0200
tab: clear_loading() function
gedit/gedit-tab.c | 35 ++++++++++++++++++++++++++++-------
1 files changed, 28 insertions(+), 7 deletions(-)
---
diff --git a/gedit/gedit-tab.c b/gedit/gedit-tab.c
index 953a271..499cac2 100644
--- a/gedit/gedit-tab.c
+++ b/gedit/gedit-tab.c
@@ -221,6 +221,14 @@ gedit_tab_set_property (GObject *object,
}
static void
+clear_loading (GeditTab *tab)
+{
+ g_clear_object (&tab->priv->loader);
+ g_clear_object (&tab->priv->cancellable);
+ tab->priv->load_create = FALSE;
+}
+
+static void
gedit_tab_dispose (GObject *object)
{
GeditTab *tab = GEDIT_TAB (object);
@@ -235,6 +243,8 @@ gedit_tab_dispose (GObject *object)
g_clear_object (&tab->priv->tmp_save_location);
g_clear_object (&tab->priv->editor);
+ clear_loading (tab);
+
G_OBJECT_CLASS (gedit_tab_parent_class)->dispose (object);
}
@@ -608,6 +618,7 @@ io_loading_error_info_bar_response (GtkWidget *info_bar,
tab->priv->editable = TRUE;
gtk_text_view_set_editable (GTK_TEXT_VIEW (view), TRUE);
set_info_bar (tab, NULL, GTK_RESPONSE_NONE);
+ clear_loading (tab);
break;
default:
@@ -661,6 +672,8 @@ unrecoverable_reverting_error_info_bar_response (GtkWidget *info_bar,
set_info_bar (tab, NULL, GTK_RESPONSE_NONE);
+ clear_loading (tab);
+
view = gedit_tab_get_view (tab);
gtk_widget_grab_focus (GTK_WIDGET (view));
}
@@ -2043,13 +2056,11 @@ load_cb (GtkSourceFileLoader *loader,
if (error == NULL)
{
- 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);
+ clear_loading (tab);
}
+ g_signal_emit_by_name (doc, "loaded", NULL);
+
end:
/* Async operation finished. */
g_object_unref (tab);
@@ -2117,11 +2128,16 @@ _gedit_tab_load (GeditTab *tab,
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);
+ if (tab->priv->loader != NULL)
+ {
+ g_warning ("GeditTab: file loader already exists.");
+ g_object_unref (tab->priv->loader);
+ }
+
tab->priv->loader = gtk_source_file_loader_new (file, location);
tab->priv->load_create = create != FALSE;
@@ -2142,11 +2158,16 @@ _gedit_tab_load_stream (GeditTab *tab,
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);
+ if (tab->priv->loader != NULL)
+ {
+ g_warning ("GeditTab: file loader already exists.");
+ g_object_unref (tab->priv->loader);
+ }
+
tab->priv->loader = gtk_source_file_loader_new_from_stream (file, stream);
load (tab, encoding, line_pos, column_pos);
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]