[gtksourceview/wip/loader-saver] FileSaver: can be used several times
- From: Sébastien Wilmet <swilmet src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [gtksourceview/wip/loader-saver] FileSaver: can be used several times
- Date: Wed, 26 Mar 2014 15:50:16 +0000 (UTC)
commit 7f2c007d0d97692d3ffb2a0e5f79d15894045005
Author: Sébastien Wilmet <swilmet gnome org>
Date: Wed Mar 26 15:59:14 2014 +0100
FileSaver: can be used several times
gtksourceview/gtksourcefilesaver.c | 13 ++++++++++++-
1 files changed, 12 insertions(+), 1 deletions(-)
---
diff --git a/gtksourceview/gtksourcefilesaver.c b/gtksourceview/gtksourcefilesaver.c
index 498bfc5..5cd230c 100644
--- a/gtksourceview/gtksourcefilesaver.c
+++ b/gtksourceview/gtksourcefilesaver.c
@@ -135,6 +135,7 @@ gtk_source_file_saver_set_property (GObject *object,
break;
case PROP_ENCODING:
+ g_return_if_fail (saver->priv->task == NULL);
saver->priv->encoding = g_value_get_boxed (value);
if (saver->priv->encoding == NULL)
{
@@ -144,18 +145,22 @@ gtk_source_file_saver_set_property (GObject *object,
break;
case PROP_NEWLINE_TYPE:
+ g_return_if_fail (saver->priv->task == NULL);
saver->priv->newline_type = g_value_get_enum (value);
break;
case PROP_COMPRESSION_TYPE:
+ g_return_if_fail (saver->priv->task == NULL);
saver->priv->compression_type = g_value_get_enum (value);
break;
case PROP_ENSURE_TRAILING_NEWLINE:
+ g_return_if_fail (saver->priv->task == NULL);
saver->priv->ensure_trailing_newline = g_value_get_boolean (value);
break;
case PROP_CREATE_BACKUP:
+ g_return_if_fail (saver->priv->task == NULL);
saver->priv->create_backup = g_value_get_boolean (value);
break;
@@ -892,11 +897,17 @@ gtk_source_file_saver_save_finish (GtkSourceFileSaver *saver,
GAsyncResult *result,
GError **error)
{
+ gboolean ok;
+
g_return_val_if_fail (GTK_SOURCE_IS_FILE_SAVER (saver), FALSE);
g_return_val_if_fail (error == NULL || *error == NULL, FALSE);
g_return_val_if_fail (g_task_is_valid (result, saver), FALSE);
- return g_task_propagate_boolean (G_TASK (result), error);
+ ok = g_task_propagate_boolean (G_TASK (result), error);
+
+ g_clear_object (&saver->priv->task);
+
+ return ok;
}
/**
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]