[rygel/wip/track-changes: 121/128] WIP: Some more random changes in SimpleContainer.



commit b884bb4f09f4e2f4800e8f82bd2c26c269d680f4
Author: Krzesimir Nowak <qdlacz gmail com>
Date:   Thu Sep 13 14:01:45 2012 +0200

    WIP: Some more random changes in SimpleContainer.
    
    Unfinished, not working, interrupted in the middle.

 src/librygel-server/rygel-simple-container.vala |   17 +++++++++++++++++
 1 files changed, 17 insertions(+), 0 deletions(-)
---
diff --git a/src/librygel-server/rygel-simple-container.vala b/src/librygel-server/rygel-simple-container.vala
index 7f52510..b945f12 100644
--- a/src/librygel-server/rygel-simple-container.vala
+++ b/src/librygel-server/rygel-simple-container.vala
@@ -70,6 +70,7 @@ public class Rygel.SimpleContainer : Rygel.MediaContainer,
      */
     public void add_child_item (MediaItem child) {
         this.add_child (child);
+        this.updated (child, ObjectEventType.ADDED, false);
     }
 
     /**
@@ -104,6 +105,12 @@ public class Rygel.SimpleContainer : Rygel.MediaContainer,
 
         if (child.child_count > 0) {
             this.add_child (child);
+            this.updated (child, ObjectEventType.ADDED, false);
+            var grand_children = child.get_children (0, UINT_MAX, "", null);
+
+            foreach (var grand_child in grand_children) {
+                updated.updated (grand_child, ObjectEventType.ADDED, false);
+            }
         } else {
             debug ("Container '%s' empty, refusing to add to hierarchy " +
                    "until it has any children to offer.",
@@ -120,6 +127,15 @@ public class Rygel.SimpleContainer : Rygel.MediaContainer,
         this.children.remove (child);
 
         this.child_count--;
+        if (child is MediaContainer) {
+            var grand_children = child.get_children (0, UINT_MAX, "", null);
+
+            foreach (var grand_child in grand_children) {
+                updated.updated (grand_child, ObjectEventType.DELETED, false);
+            }
+        }
+        this.updated (child, ObjectEventType.DELETED, false);
+        this.updated (this, ObjectEventType.MODIFIED, false);
     }
 
     /**
@@ -129,6 +145,7 @@ public class Rygel.SimpleContainer : Rygel.MediaContainer,
     public void clear () {
         // TODO: this will have to emit sub-tree events of object being deleted.
         this.children.clear ();
+        foreach (var child
 
         this.child_count = 0;
     }



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