Code

inkboard-session now sends all changes to the document
[inkscape.git] / src / jabber_whiteboard / inkboard-node.cpp
index c7d325ab99bb468fc3b73df6eb5a6d2e5bc9b0ee..c463e461a2013b5206aa1596e3c0da66208bf4fd 100644 (file)
 #include <glib.h>
 #include <glibmm.h>
 
-#include "jabber_whiteboard/inkboard-node.h"
+#include "util/ucompose.hpp"
+
+#include "jabber_whiteboard/message-utilities.h"
+#include "jabber_whiteboard/defines.h"
+#include "jabber_whiteboard/inkboard-document.h"
 
 
 namespace Inkscape {
 
 namespace Whiteboard {
 
-InkboardNode::InkboardNode(int code, Inkscape::XML::NodeType type) :
-       XML::SimpleNode(code), version(0), nodetype(type)
+Glib::ustring
+InkboardDocument::addNodeToTracker(Inkscape::XML::Node *node)
+{
+    Glib::ustring key = this->tracker->generateKey(this->getRecipient());
+    this->tracker->put(key,node);
+    return key;
+}
+
+Message::Message
+InkboardDocument::composeNewMessage(Inkscape::XML::Node *node)
 {
+    Glib::ustring parentKey;
+    Glib::ustring key = this->tracker->get(node);
+    Inkscape::XML::Node *parent = node->parent();
+
+    Glib::ustring tempParentKey = this->tracker->get(node->parent());
+    if(tempParentKey.size() < 1)
+        parentKey = Vars::DOCUMENT_ROOT_NODE;
+    else
+        parentKey = tempParentKey;
+
+    unsigned int index = parent->_childPosition(*node);
+
+    Message::Message nodeMessage = MessageUtilities::objectToString(node);
+    Message::Message message = String::ucompose(Vars::NEW_MESSAGE,parentKey,key,index,nodeMessage);
 
+    return message;
 }
 
 } // namespace Whiteboard