project: Disable update in the project rather than the formatter
authorThibault Saunier <thibault.saunier@collabora.com>
Wed, 12 Jun 2013 15:32:16 +0000 (11:32 -0400)
committerThibault Saunier <thibault.saunier@collabora.com>
Wed, 12 Jun 2013 16:00:59 +0000 (12:00 -0400)
We need to make sure the update are disabled until the project is fully
loaded, let the responsability to the project instead of the formatter

ges/ges-formatter.c
ges/ges-project.c

index 46c97b864afabebc2353d10a69b21264729453a4..bab0e0e72cfd0bcf11e145103679fb8dbad8b49e 100644 (file)
@@ -319,10 +319,8 @@ ges_formatter_load_from_uri (GESFormatter * formatter,
   g_return_val_if_fail (GES_IS_TIMELINE (timeline), FALSE);
 
   if (klass->load_from_uri) {
-    ges_timeline_enable_update (timeline, FALSE);
     formatter->timeline = timeline;
     ret = klass->load_from_uri (formatter, timeline, uri, error);
-    ges_timeline_enable_update (timeline, TRUE);
   }
 
   return ret;
index 1fc2e24752487d3f8605d63adfb0b211115a643e..1dd22c7d790f84b71709c8686c248d50560dbb09 100644 (file)
@@ -100,6 +100,7 @@ _emit_loaded_in_idle (EmitLoadedInIdle * data)
 {
   g_signal_emit (data->project, _signals[LOADED_SIGNAL], 0, data->timeline);
 
+  ges_timeline_enable_update (data->timeline, TRUE);
   gst_object_unref (data->project);
   gst_object_unref (data->timeline);
   g_slice_free (EmitLoadedInIdle, data);
@@ -200,6 +201,7 @@ _load_project (GESProject * project, GESTimeline * timeline, GError ** error)
   }
 
   ges_project_add_formatter (GES_PROJECT (project), formatter);
+  ges_timeline_enable_update (timeline, FALSE);
   ges_formatter_load_from_uri (formatter, timeline, priv->uri, &lerr);
   if (lerr) {
     GST_WARNING_OBJECT (project, "Could not load the timeline,"
@@ -515,6 +517,7 @@ ges_project_set_loaded (GESProject * project, GESFormatter * formatter)
 
   /* We are now done with that formatter */
   ges_project_remove_formatter (project, formatter);
+  ges_timeline_enable_update (formatter->timeline, TRUE);
   return TRUE;
 }