X-Git-Url: https://git.creatis.insa-lyon.fr/pubgit/?a=blobdiff_plain;f=vv%2FvvReadState.cxx;h=dafcf3f4865f7f038d17f47820161a93d322bae4;hb=b2fd61648c05339dd302e102361c22c4b11d48ff;hp=6ad544b17f990bb65d134ccc2c3af1ad30e5bcc0;hpb=acdc20ec4afc95db1db29bf8d885a3b72c9c7ee0;p=clitk.git diff --git a/vv/vvReadState.cxx b/vv/vvReadState.cxx index 6ad544b..dafcf3f 100644 --- a/vv/vvReadState.cxx +++ b/vv/vvReadState.cxx @@ -1,5 +1,6 @@ #include "vvReadState.h" #include "vvMainWindow.h" +#include "vvSlicerManager.h" #include @@ -11,6 +12,7 @@ vvReadState::vvReadState() : m_XmlReader(new QXmlStreamReader), m_File(new QFile) { + m_NumImages = 0; } vvReadState::~vvReadState() @@ -21,6 +23,7 @@ void vvReadState::Run(vvMainWindow* vvWindow, const std::string& file) { assert(vvWindow); + m_NumImages = 0; m_File->setFileName(file.c_str()); m_File->open(QIODevice::ReadOnly); m_XmlReader->setDevice(m_File.get()); @@ -73,7 +76,7 @@ std::string vvReadState::ReadImage() } } else if (current_index >= 0) { - if (value == "Fusion") + if (value == "Fusion") value = ReadFusion(current_index); else if (value == "Overlay") value = ReadOverlay(current_index); @@ -82,6 +85,9 @@ std::string vvReadState::ReadImage() } } } + + if (!m_XmlReader->hasError()) + m_NumImages++; return value; } @@ -89,6 +95,9 @@ std::string vvReadState::ReadImage() std::string vvReadState::ReadFusion(int index) { std::string file, value; + int vali; + double vald; + vvSlicerManager* slicerManager = m_Window->GetSlicerManagers()[index]; while (!m_XmlReader->isEndElement() || value != "Fusion") { m_XmlReader->readNext(); value = m_XmlReader->qualifiedName().toString().toStdString(); @@ -98,14 +107,43 @@ std::string vvReadState::ReadFusion(int index) if (!m_XmlReader->hasError()) m_Window->AddFusionImage(index, file.c_str()); } + if (value == "FusionOpacity") { + vali = m_XmlReader->readElementText().toInt(); + if (!m_XmlReader->hasError()) + slicerManager->SetFusionOpacity(vali); + } + if (value == "FusionThresholdOpacity") { + vali = m_XmlReader->readElementText().toInt(); + if (!m_XmlReader->hasError()) + slicerManager->SetFusionThresholdOpacity(vali); + } + if (value == "FusionColorMap") { + vali = m_XmlReader->readElementText().toInt(); + if (!m_XmlReader->hasError()) + slicerManager->SetFusionColorMap(vali); + } + if (value == "FusionWindow") { + vald = m_XmlReader->readElementText().toDouble(); + if (!m_XmlReader->hasError()) + slicerManager->SetFusionWindow(vald); + } + if (value == "FusionLevel") { + vald = m_XmlReader->readElementText().toDouble(); + if (!m_XmlReader->hasError()) + slicerManager->SetFusionLevel(vald); + } } } + m_Window->ImageInfoChanged(); return value; } std::string vvReadState::ReadOverlay(int index) { std::string file, value; + int vali; + double vald; + vvSlicerManager* slicerManager = m_Window->GetSlicerManagers()[index]; while (!m_XmlReader->isEndElement() || value != "Overlay") { m_XmlReader->readNext(); value = m_XmlReader->qualifiedName().toString().toStdString(); @@ -115,8 +153,29 @@ std::string vvReadState::ReadOverlay(int index) if (!m_XmlReader->hasError()) m_Window->AddOverlayImage(index, file.c_str()); } + if (value == "OverlayColorWindow") { + vald = m_XmlReader->readElementText().toDouble(); + if (!m_XmlReader->hasError()) + slicerManager->SetOverlayColorWindow(vald); + } + if (value == "OverlayColorLevel") { + vald = m_XmlReader->readElementText().toDouble(); + if (!m_XmlReader->hasError()) + slicerManager->SetOverlayColorLevel(vald); + } + if (value == "LinkOverlayWindowLevel") { + vali = m_XmlReader->readElementText().toInt(); + if (!m_XmlReader->hasError()) + slicerManager->SetLinkOverlayWindowLevel(vali); + } + if (value == "OverlayColor") { + vali = m_XmlReader->readElementText().toInt(); + if (!m_XmlReader->hasError()) + slicerManager->SetOverlayColor(vali); + } } } + m_Window->ImageInfoChanged(); return value; }