[ease] [general] Fixed PDFs not persisting through a save



commit 9dbe3c1841b3741cab881e2b46b8a94d5c3af05b
Author: Nate Stedman <natesm gmail com>
Date:   Fri Oct 8 15:36:36 2010 -0400

    [general] Fixed PDFs not persisting through a save

 ease-core/ease-document.vala    |    2 +-
 ease-core/ease-pdf-element.vala |    4 +++-
 ease-core/ease-slide.vala       |    6 ++++--
 3 files changed, 8 insertions(+), 4 deletions(-)
---
diff --git a/ease-core/ease-document.vala b/ease-core/ease-document.vala
index 775665c..4549465 100644
--- a/ease-core/ease-document.vala
+++ b/ease-core/ease-document.vala
@@ -167,7 +167,7 @@ public class Ease.Document : GLib.Object, UndoSource
 		for (var i = 0; i < json_slides.get_length(); i++)
 		{
 			var node = json_slides.get_object_element(i);
-			append_slide(new Slide.from_json(node));
+			append_slide(new Slide.from_json(node, this));
 		}
 		
 		// get the document's theme
diff --git a/ease-core/ease-pdf-element.vala b/ease-core/ease-pdf-element.vala
index f116b06..bc588af 100644
--- a/ease-core/ease-pdf-element.vala
+++ b/ease-core/ease-pdf-element.vala
@@ -48,9 +48,10 @@ public class Ease.PdfElement : MediaElement
 		signals();
 	}
 	
-	internal PdfElement.from_json(Json.Object obj)
+	internal PdfElement.from_json(Json.Object obj, Slide owner)
 	{
 		base.from_json(obj);
+		parent = owner;
 		default_page = obj.get_string_member(Theme.PDF_DEFAULT_PAGE).to_int();
 		
 		background = new Background.from_json(obj);
@@ -68,6 +69,7 @@ public class Ease.PdfElement : MediaElement
 	public override Json.Object to_json()
 	{
 		var obj = base.to_json();
+		background.to_json(ref obj);
 		obj.set_string_member(Theme.PDF_DEFAULT_PAGE, default_page.to_string());
 		return obj;
 	}
diff --git a/ease-core/ease-slide.vala b/ease-core/ease-slide.vala
index bf18fe5..e6aa678 100644
--- a/ease-core/ease-slide.vala
+++ b/ease-core/ease-slide.vala
@@ -236,10 +236,12 @@ public class Ease.Slide : GLib.Object, UndoSource
 	/**
 	 * Constructs a Slide from a JsonObject.
 	 */
-	internal Slide.from_json(Json.Object obj)
+	internal Slide.from_json(Json.Object obj, Document owner)
 	{
 		this();
 		
+		parent = owner;
+		
 		var slide = new Slide();
 		
 		// get the slide's master
@@ -305,7 +307,7 @@ public class Ease.Slide : GLib.Object, UndoSource
 					e = new VideoElement.from_json(node);
 					break;
 				case PDF_TYPE:
-					e = new PdfElement.from_json(node);
+					e = new PdfElement.from_json(node, this);
 					break;
 				default: // text element, probably plugins later...
 					e = new TextElement.from_json(node);



[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]