X-Git-Url: https://git.creatis.insa-lyon.fr/pubgit/?a=blobdiff_plain;f=vv%2FvvSaveState.cxx;h=71e22ef0cff854e7305484255b83e23a0e0deba1;hb=218f969afcab817217d1cb456400ed9d88c742fc;hp=e573bb9e0f9bcb940c5863f7a6dd5a6ab8b447dd;hpb=acdc20ec4afc95db1db29bf8d885a3b72c9c7ee0;p=clitk.git diff --git a/vv/vvSaveState.cxx b/vv/vvSaveState.cxx index e573bb9..71e22ef 100644 --- a/vv/vvSaveState.cxx +++ b/vv/vvSaveState.cxx @@ -1,5 +1,7 @@ #include "vvSaveState.h" #include "vvMainWindow.h" +#include "vvToolCreatorBase.h" +#include "vvToolBaseBase.h" #include #include @@ -10,14 +12,20 @@ #include #include +//------------------------------------------------------------------------------ vvSaveState::vvSaveState() : m_XmlWriter(new QXmlStreamWriter), m_File(new QFile) { } +//------------------------------------------------------------------------------ +//------------------------------------------------------------------------------ vvSaveState::~vvSaveState() { } +//------------------------------------------------------------------------------ + +//------------------------------------------------------------------------------ void vvSaveState::Run(vvMainWindow* vvWindow, const std::string& file) { assert(vvWindow); @@ -36,16 +44,23 @@ void vvSaveState::Run(vvMainWindow* vvWindow, const std::string& file) SaveGlobals(); SaveGUI(); SaveTree(); + SaveTools(); m_XmlWriter->writeEndDocument(); m_XmlWriter->writeEndElement(); } +//------------------------------------------------------------------------------ + +//------------------------------------------------------------------------------ void vvSaveState::SaveGlobals() { m_XmlWriter->writeStartElement("Globals"); m_XmlWriter->writeEndElement(); } +//------------------------------------------------------------------------------ + +//------------------------------------------------------------------------------ void vvSaveState::SaveTree() { QTreeWidget* tree = m_Window->GetTree(); @@ -58,11 +73,15 @@ void vvSaveState::SaveTree() } m_XmlWriter->writeEndElement(); } +//------------------------------------------------------------------------------ -void vvSaveState::SaveImage(QTreeWidgetItem* item, int index) + +//------------------------------------------------------------------------------ +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; @@ -70,50 +89,95 @@ void vvSaveState::SaveImage(QTreeWidgetItem* item, int index) std::string filename = item->data(0, Qt::UserRole).toString().toStdString(); m_XmlWriter->writeTextElement("FileName", QDir::current().absoluteFilePath(filename.c_str())); - + QTreeWidgetItem* item_child; std::string role; for (int i = 0; i < item->childCount(); i++) { item_child = item->child(i); role = item_child->data(1,Qt::UserRole).toString().toStdString(); if (role == "fusion") - SaveFusion(item_child); + SaveFusion(item_child, slicerManager); else if (role == "overlay") - SaveOverlay(item_child); + SaveOverlay(item_child, slicerManager); else if (role == "vector") SaveVector(item_child); } - + + // End m_XmlWriter->writeEndElement(); } +//------------------------------------------------------------------------------ -void vvSaveState::SaveFusion(QTreeWidgetItem* item) + +//------------------------------------------------------------------------------ +void vvSaveState::SaveFusion(const QTreeWidgetItem* item, const vvSlicerManager* vvManager) { m_XmlWriter->writeStartElement("Fusion"); std::string filename = item->data(0, Qt::UserRole).toString().toStdString(); m_XmlWriter->writeTextElement("FileName", QDir::current().absoluteFilePath(filename.c_str())); + m_XmlWriter->writeTextElement("FusionOpacity", QString::number(vvManager->GetFusionOpacity())); + m_XmlWriter->writeTextElement("FusionThresholdOpacity", QString::number(vvManager->GetFusionThresholdOpacity())); + m_XmlWriter->writeTextElement("FusionColorMap", QString::number(vvManager->GetFusionColorMap())); + m_XmlWriter->writeTextElement("FusionWindow", QString::number(vvManager->GetFusionWindow())); + m_XmlWriter->writeTextElement("FusionLevel", QString::number(vvManager->GetFusionLevel())); m_XmlWriter->writeEndElement(); } +//------------------------------------------------------------------------------ + -void vvSaveState::SaveOverlay(QTreeWidgetItem* item) +//------------------------------------------------------------------------------ +void vvSaveState::SaveOverlay(const QTreeWidgetItem* item, const vvSlicerManager* vvManager) { m_XmlWriter->writeStartElement("Overlay"); std::string filename = item->data(0, Qt::UserRole).toString().toStdString(); m_XmlWriter->writeTextElement("FileName", QDir::current().absoluteFilePath(filename.c_str())); + m_XmlWriter->writeTextElement("OverlayColorWindow", QString::number(vvManager->GetOverlayColorWindow())); + m_XmlWriter->writeTextElement("OverlayColorLevel", QString::number(vvManager->GetOverlayColorLevel())); + m_XmlWriter->writeTextElement("LinkOverlayWindowLevel", QString::number(vvManager->GetLinkOverlayWindowLevel())); + m_XmlWriter->writeTextElement("OverlayColor", QString::number(vvManager->GetOverlayColor())); m_XmlWriter->writeEndElement(); } +//------------------------------------------------------------------------------ + -void vvSaveState::SaveVector(QTreeWidgetItem* item) +//------------------------------------------------------------------------------ +void vvSaveState::SaveVector(const QTreeWidgetItem* item) { m_XmlWriter->writeStartElement("Vector"); std::string filename = item->data(0, Qt::UserRole).toString().toStdString(); m_XmlWriter->writeTextElement("FileName", QDir::current().absoluteFilePath(filename.c_str())); m_XmlWriter->writeEndElement(); } +//------------------------------------------------------------------------------ + +//------------------------------------------------------------------------------ void vvSaveState::SaveGUI() { m_XmlWriter->writeStartElement("GUI"); m_XmlWriter->writeEndElement(); } +//------------------------------------------------------------------------------ + +//------------------------------------------------------------------------------ +void vvSaveState::SaveTools() +{ + + m_XmlWriter->writeStartElement("Tools"); + // Check if a tool is open and need to be store + std::vector & v = vvToolManager::GetInstance()->GetListOfTools(); + for(uint i=0; i & t = v[i]->GetListOfTool(); + for(uint j=0; jmToolName.toStdString(); + m_XmlWriter->writeStartElement(name.c_str()); + m_XmlWriter->writeTextElement("ToolType_Index", QString::number(i)); + m_XmlWriter->writeTextElement("Tool_Index", QString::number(j)); + t[j]->SaveState(m_XmlWriter); + m_XmlWriter->writeEndElement(); + } + } + m_XmlWriter->writeEndElement(); +} +//------------------------------------------------------------------------------