[brasero] Make sure the BraseroImageProperties respect the video image type that is set in the session
- From: Philippe Rouquier <philippr src gnome org>
- To: svn-commits-list gnome org
- Subject: [brasero] Make sure the BraseroImageProperties respect the video image type that is set in the session
- Date: Fri, 3 Jul 2009 13:13:25 +0000 (UTC)
commit b4d5a57ccd4e90f7aab7ad74816bf053529be22a
Author: Philippe Rouquier <bonfire-app wanadoo fr>
Date: Fri Jul 3 14:48:40 2009 +0200
Make sure the BraseroImageProperties respect the video image type that is set in the session
libbrasero-burn/brasero-image-properties.c | 19 ++++++++++--
libbrasero-burn/brasero-image-type-chooser.c | 40 +++++++++++++++++++++++++-
libbrasero-burn/brasero-image-type-chooser.h | 6 +++-
3 files changed, 60 insertions(+), 5 deletions(-)
---
diff --git a/libbrasero-burn/brasero-image-properties.c b/libbrasero-burn/brasero-image-properties.c
index cd62edd..c05efa7 100644
--- a/libbrasero-burn/brasero-image-properties.c
+++ b/libbrasero-burn/brasero-image-properties.c
@@ -214,8 +214,21 @@ brasero_image_properties_set_formats (BraseroImageProperties *self,
formats,
FALSE,
priv->is_video);
- brasero_image_type_chooser_set_format (BRASERO_IMAGE_TYPE_CHOOSER (priv->format),
- format);
+
+ if (priv->is_video && format == BRASERO_IMAGE_FORMAT_CUE) {
+ GValue *value = NULL;
+
+ /* see whether it's a SVCD or a VCD */
+ brasero_burn_session_tag_lookup (BRASERO_BURN_SESSION (priv->session),
+ BRASERO_VCD_TYPE,
+ &value);
+
+ brasero_image_type_chooser_set_VCD_type (BRASERO_IMAGE_TYPE_CHOOSER (priv->format),
+ (value && g_value_get_int (value) == BRASERO_SVCD));
+ }
+ else
+ brasero_image_type_chooser_set_format (BRASERO_IMAGE_TYPE_CHOOSER (priv->format),
+ format);
if (num > 1)
gtk_widget_show (priv->format_box);
@@ -289,7 +302,7 @@ brasero_image_properties_response (GtkFileChooser *chooser,
value = g_new0 (GValue, 1);
g_value_init (value, G_TYPE_INT);
- res = brasero_image_type_chooser_is_SVCD (BRASERO_IMAGE_TYPE_CHOOSER (priv->format));
+ res = brasero_image_type_chooser_get_VCD_type (BRASERO_IMAGE_TYPE_CHOOSER (priv->format));
if (res)
g_value_set_int (value, BRASERO_SVCD);
else
diff --git a/libbrasero-burn/brasero-image-type-chooser.c b/libbrasero-burn/brasero-image-type-chooser.c
index 1836f32..fb1e850 100644
--- a/libbrasero-burn/brasero-image-type-chooser.c
+++ b/libbrasero-burn/brasero-image-type-chooser.c
@@ -205,6 +205,44 @@ brasero_image_type_chooser_set_format (BraseroImageTypeChooser *self,
}
void
+brasero_image_type_chooser_set_VCD_type (BraseroImageTypeChooser *chooser,
+ gboolean is_SVCD)
+{
+ GtkTreeIter iter;
+ GtkTreeModel *store;
+ BraseroImageTypeChooserPrivate *priv;
+
+ priv = BRASERO_IMAGE_TYPE_CHOOSER_PRIVATE (chooser);
+
+ store = gtk_combo_box_get_model (GTK_COMBO_BOX (priv->combo));
+
+ if (!gtk_tree_model_get_iter_first (store, &iter))
+ return;
+
+ do {
+ BraseroImageFormat iter_format;
+ gboolean is_svcd;
+
+ gtk_tree_model_get (store, &iter,
+ FORMAT_TYPE, &iter_format,
+ FORMAT_SVCD, &is_svcd,
+ -1);
+
+ if (iter_format == BRASERO_IMAGE_FORMAT_CUE && is_SVCD == is_svcd) {
+ gtk_combo_box_set_active_iter (GTK_COMBO_BOX (priv->combo), &iter);
+ return;
+ }
+
+ } while (gtk_tree_model_iter_next (store, &iter));
+
+ /* just to make sure we see if there is a line which is active. It can
+ * happens that the last time it was a CD and the user chose RAW. If it
+ * is now a DVD it can't be raw any more */
+ if (gtk_combo_box_get_active (GTK_COMBO_BOX (priv->combo)) == -1)
+ gtk_combo_box_set_active (GTK_COMBO_BOX (priv->combo), 0);
+}
+
+void
brasero_image_type_chooser_get_format (BraseroImageTypeChooser *self,
BraseroImageFormat *format)
{
@@ -215,7 +253,7 @@ brasero_image_type_chooser_get_format (BraseroImageTypeChooser *self,
}
gboolean
-brasero_image_type_chooser_is_SVCD (BraseroImageTypeChooser *chooser)
+brasero_image_type_chooser_get_VCD_type (BraseroImageTypeChooser *chooser)
{
BraseroImageTypeChooserPrivate *priv;
GtkTreeModel *model;
diff --git a/libbrasero-burn/brasero-image-type-chooser.h b/libbrasero-burn/brasero-image-type-chooser.h
index d97f6d3..e4d9a0d 100644
--- a/libbrasero-burn/brasero-image-type-chooser.h
+++ b/libbrasero-burn/brasero-image-type-chooser.h
@@ -72,7 +72,11 @@ void
brasero_image_type_chooser_get_format (BraseroImageTypeChooser *self,
BraseroImageFormat *format);
gboolean
-brasero_image_type_chooser_is_SVCD (BraseroImageTypeChooser *chooser);
+brasero_image_type_chooser_get_VCD_type (BraseroImageTypeChooser *chooser);
+
+void
+brasero_image_type_chooser_set_VCD_type (BraseroImageTypeChooser *chooser,
+ gboolean is_svcd);
G_END_DECLS
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]