]> Creatis software - clitk.git/blobdiff - vv/vvSaveState.cxx
Debug RTStruct conversion with empty struc
[clitk.git] / vv / vvSaveState.cxx
index 71e22ef0cff854e7305484255b83e23a0e0deba1..894e8e4a3aefb67968e9452a67dcf3c707d8d2bd 100644 (file)
@@ -72,6 +72,13 @@ void vvSaveState::SaveTree()
     SaveImage(item, i);
   }
   m_XmlWriter->writeEndElement();
+
+  m_XmlWriter->writeStartElement("Links");
+  for (int i = 0; i < tree->topLevelItemCount(); i++) {
+    const vvSlicerManager * slicerManager = m_Window->GetSlicerManagers()[i];
+    SaveLink(slicerManager);
+  }
+  m_XmlWriter->writeEndElement();
 }
 //------------------------------------------------------------------------------
 
@@ -82,14 +89,20 @@ void vvSaveState::SaveImage(const QTreeWidgetItem* item, int index)
   const vvSlicerManager * slicerManager = m_Window->GetSlicerManagers()[index];
   m_XmlWriter->writeStartElement("Image");
 
-  std::ostringstream indexStr;
-  indexStr.str("");
-  indexStr << index;
-  m_XmlWriter->writeAttribute("Index", indexStr.str().c_str());
+  std::ostringstream valueStr;
+  valueStr.str("");
+  valueStr << index;
+  m_XmlWriter->writeAttribute("Index", valueStr.str().c_str());
 
   std::string filename = item->data(0, Qt::UserRole).toString().toStdString();
   m_XmlWriter->writeTextElement("FileName", QDir::current().absoluteFilePath(filename.c_str()));
-
+  int preset = slicerManager->GetPreset();
+  m_XmlWriter->writeTextElement("Preset", QString::number(preset));
+  if (preset == 6) {
+    m_XmlWriter->writeTextElement("Window", QString::number(slicerManager->GetColorWindow()));
+    m_XmlWriter->writeTextElement("Level", QString::number(slicerManager->GetColorLevel()));
+  }
+  
   QTreeWidgetItem* item_child;
   std::string role;
   for (int i = 0; i < item->childCount(); i++) {
@@ -150,6 +163,24 @@ void vvSaveState::SaveVector(const QTreeWidgetItem* item)
 }
 //------------------------------------------------------------------------------
 
+//------------------------------------------------------------------------------
+void vvSaveState::SaveLink(const vvSlicerManager* vvManager)
+{
+  typedef std::list<std::string> LinkListType;
+  LinkListType links = vvManager->GetLinks();
+  if (!links.empty()) {
+    std::string my_id = vvManager->GetId();
+    m_XmlWriter->writeStartElement("LinkedFrom");
+    m_XmlWriter->writeAttribute("Id", my_id.c_str());
+    LinkListType::iterator i;
+    for (i = links.begin(); i != links.end(); i++) {
+      std::string link_id = *i;
+      m_XmlWriter->writeTextElement("LinkedTo", link_id.c_str());
+    }
+    m_XmlWriter->writeEndElement();
+  }
+}
+//------------------------------------------------------------------------------
 
 //------------------------------------------------------------------------------
 void vvSaveState::SaveGUI()