[brasero] Fix image format retrieval which failed after several images had been selected
- From: Philippe Rouquier <philippr src gnome org>
- To: svn-commits-list gnome org
- Subject: [brasero] Fix image format retrieval which failed after several images had been selected
- Date: Wed, 27 May 2009 14:43:12 -0400 (EDT)
commit c76379db2bcecc2b2d72a7c64adac32d68be34a9
Author: Philippe Rouquier <bonfire-app wanadoo fr>
Date: Wed May 27 20:26:15 2009 +0200
Fix image format retrieval which failed after several images had been selected
---
libbrasero-burn/brasero-src-image.c | 9 +++++----
libbrasero-burn/brasero-track-image-cfg.c | 14 ++++++++++++--
2 files changed, 17 insertions(+), 6 deletions(-)
diff --git a/libbrasero-burn/brasero-src-image.c b/libbrasero-burn/brasero-src-image.c
index b4f93e6..e9f9287 100644
--- a/libbrasero-burn/brasero-src-image.c
+++ b/libbrasero-burn/brasero-src-image.c
@@ -229,8 +229,6 @@ brasero_src_image_update (BraseroSrcImage *self)
/* See if information retrieval went fine and/or is ready */
status = brasero_status_new ();
result = brasero_track_get_status (BRASERO_TRACK (priv->track), status);
- brasero_status_free (status);
-
if (result == BRASERO_BURN_NOT_READY) {
/* Translators: %s is a path */
string = g_strdup_printf (_("\"%s\": loading"), path);
@@ -238,11 +236,13 @@ brasero_src_image_update (BraseroSrcImage *self)
goto end;
}
else if (result != BRASERO_BURN_OK) {
+ /* Translators: %s is a path and image refers to a disc image */
+ string = g_strdup_printf (_("\"%s\": unknown image type"), path);
+
+ error = brasero_status_get_error (status);
if (!error)
goto end;
- /* Translators: %s is a path and image refers to a disc image */
- string = g_strdup_printf (_("\"%s\": unknown image type"), path);
gtk_widget_set_tooltip_text (GTK_WIDGET (self), error->message);
brasero_src_image_error (self, error);
g_error_free (error);
@@ -263,6 +263,7 @@ brasero_src_image_update (BraseroSrcImage *self)
end:
+ brasero_status_free (status);
if (string) {
/* This is hackish and meant to avoid ellipsization to make the
* label to small. */
diff --git a/libbrasero-burn/brasero-track-image-cfg.c b/libbrasero-burn/brasero-track-image-cfg.c
index 0688944..ef58364 100644
--- a/libbrasero-burn/brasero-track-image-cfg.c
+++ b/libbrasero-burn/brasero-track-image-cfg.c
@@ -98,18 +98,26 @@ brasero_track_image_cfg_get_info_cb (GObject *object,
GAsyncResult *result,
gpointer user_data)
{
+ gboolean was_cancelled;
BraseroTrackImageInfo *info;
BraseroTrackImageCfgPrivate *priv;
- info = g_simple_async_result_get_op_res_gpointer (G_SIMPLE_ASYNC_RESULT (result));
priv = BRASERO_TRACK_IMAGE_CFG_PRIVATE (object);
+ was_cancelled = g_cancellable_is_cancelled (priv->cancel);
if (priv->cancel) {
g_object_unref (priv->cancel);
priv->cancel = NULL;
}
- if (info->format == BRASERO_IMAGE_FORMAT_NONE || info->blocks == 0) {
+ if (was_cancelled) {
+ brasero_track_changed (BRASERO_TRACK (object));
+ return;
+ }
+
+ info = g_simple_async_result_get_op_res_gpointer (G_SIMPLE_ASYNC_RESULT (result));
+ if (info->format == BRASERO_IMAGE_FORMAT_NONE
+ || info->blocks == 0) {
GError *error = NULL;
g_simple_async_result_propagate_error (G_SIMPLE_ASYNC_RESULT (result), &error);
@@ -324,6 +332,8 @@ brasero_track_image_cfg_force_format (BraseroTrackImageCfg *track,
if (current_format == format)
return BRASERO_BURN_OK;
}
+ else if (format == priv->format)
+ return BRASERO_BURN_OK;
priv->format = format;
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]