[brasero] Fix function setting output image settings that were not properly updating in some cases
- From: Philippe Rouquier <philippr src gnome org>
- To: svn-commits-list gnome org
- Cc:
- Subject: [brasero] Fix function setting output image settings that were not properly updating in some cases
- Date: Sat, 10 Oct 2009 13:40:23 +0000 (UTC)
commit 3acae90b6d73ac26dc522726dbb468864eb80599
Author: Philippe Rouquier <bonfire-app wanadoo fr>
Date: Fri Oct 9 21:07:06 2009 +0200
Fix function setting output image settings that were not properly updating in some cases
libbrasero-burn/brasero-session.c | 54 +++++++++++++++---------------------
1 files changed, 23 insertions(+), 31 deletions(-)
---
diff --git a/libbrasero-burn/brasero-session.c b/libbrasero-burn/brasero-session.c
index f3a2076..35d2a2a 100644
--- a/libbrasero-burn/brasero-session.c
+++ b/libbrasero-burn/brasero-session.c
@@ -984,6 +984,23 @@ brasero_burn_session_set_image_output_real (BraseroBurnSession *self,
brasero_track_type_set_image_format (&(priv->settings->output), format);
}
+static void
+brasero_burn_session_set_fake_drive (BraseroBurnSession *self)
+{
+ BraseroMediumMonitor *monitor;
+ BraseroDrive *drive;
+ GSList *list;
+
+ /* NOTE: changing/changed signals are handled in
+ * set_burner (). */
+ monitor = brasero_medium_monitor_get_default ();
+ list = brasero_medium_monitor_get_media (monitor, BRASERO_MEDIA_TYPE_FILE);
+ drive = brasero_medium_get_drive (list->data);
+ brasero_burn_session_set_burner (self, drive);
+ g_object_unref (monitor);
+ g_slist_free (list);
+}
+
static BraseroBurnResult
brasero_burn_session_set_output_image_real (BraseroBurnSession *self,
BraseroImageFormat format,
@@ -997,45 +1014,20 @@ brasero_burn_session_set_output_image_real (BraseroBurnSession *self,
if (brasero_track_type_get_image_format (&(priv->settings->output)) == format
&& BRASERO_STR_EQUAL (image, priv->settings->image)
&& BRASERO_STR_EQUAL (toc, priv->settings->toc)) {
- if (!BRASERO_BURN_SESSION_WRITE_TO_FILE (priv)) {
- BraseroMediumMonitor *monitor;
- BraseroDrive *drive;
- GSList *list;
-
- /* NOTE: changing/changed signals are handled in
- * set_burner (). */
- monitor = brasero_medium_monitor_get_default ();
- list = brasero_medium_monitor_get_media (monitor, BRASERO_MEDIA_TYPE_FILE);
- drive = brasero_medium_get_drive (list->data);
- brasero_burn_session_set_burner (self, drive);
- g_object_unref (monitor);
- g_slist_free (list);
- }
+ if (!BRASERO_BURN_SESSION_WRITE_TO_FILE (priv))
+ brasero_burn_session_set_fake_drive (self);
return BRASERO_BURN_OK;
}
- if (!BRASERO_BURN_SESSION_WRITE_TO_FILE (priv)) {
- BraseroMediumMonitor *monitor;
- BraseroDrive *drive;
- GSList *list;
-
- brasero_burn_session_set_image_output_real (self, format, image, toc);
-
- monitor = brasero_medium_monitor_get_default ();
- list = brasero_medium_monitor_get_media (monitor, BRASERO_MEDIA_TYPE_FILE);
- drive = brasero_medium_get_drive (list->data);
- brasero_burn_session_set_burner (self, drive);
- g_object_unref (monitor);
- g_slist_free (list);
- }
- else {
- brasero_burn_session_set_image_output_real (self, format, image, toc);
+ brasero_burn_session_set_image_output_real (self, format, image, toc);
+ if (BRASERO_BURN_SESSION_WRITE_TO_FILE (priv))
g_signal_emit (self,
brasero_burn_session_signals [OUTPUT_CHANGED_SIGNAL],
0,
brasero_drive_get_medium (priv->settings->burner));
- }
+ else
+ brasero_burn_session_set_fake_drive (self);
return BRASERO_BURN_OK;
}
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]