#include "vvReadState.h"
#include "vvMainWindow.h"
+#include "vvSlicerManager.h"
#include <qtreewidget.h>
vvReadState::vvReadState() : m_XmlReader(new QXmlStreamReader), m_File(new QFile)
{
+ m_NumImages = 0;
}
vvReadState::~vvReadState()
{
assert(vvWindow);
+ m_NumImages = 0;
m_File->setFileName(file.c_str());
m_File->open(QIODevice::ReadOnly);
m_XmlReader->setDevice(m_File.get());
}
}
else if (current_index >= 0) {
- if (value == "Fusion")
+ if (value == "Fusion")
value = ReadFusion(current_index);
else if (value == "Overlay")
value = ReadOverlay(current_index);
}
}
}
+
+ if (!m_XmlReader->hasError())
+ m_NumImages++;
return value;
}
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();
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();
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;
}