+
+//------------------------------------------------------------------------------
+void vvReadState::ReadTools()
+{
+ std::string value;
+
+ while ((!m_XmlReader->hasError()) && (!m_XmlReader->isEndElement() || value != "Tools")) {
+ m_XmlReader->readNext();
+ value = m_XmlReader->qualifiedName().toString().toStdString();
+ if (value != "Tools") {
+ if (m_XmlReader->isStartElement()) {
+ ReadTool(value);
+ }
+ }
+ }
+
+ if (m_XmlReader->hasError())
+ std::cout << "Error " << m_XmlReader->error() << " XML " << std::endl;
+}
+//------------------------------------------------------------------------------
+
+
+//------------------------------------------------------------------------------
+void vvReadState::ReadTool(const std::string & toolname)
+{
+ // Find name into vvToolManager::GetInstance()->GetListOfTools();
+ vvToolCreatorBase * v = vvToolManager::GetInstance()->GetToolCreatorFromName(toolname.c_str());
+ if (v == NULL) {
+ std::cerr << "Error, I do not know the tool named '" << toolname << "' ; ignored." << std::endl;
+ std::string value="";
+ while (!m_XmlReader->isEndElement() || value != toolname) {
+ m_XmlReader->readNext();
+ value = m_XmlReader->qualifiedName().toString().toStdString();
+ if (m_XmlReader->hasError()) {
+ std::cout << "Error " << m_XmlReader->error() << " XML " << std::endl;
+ return;
+ }
+ }
+ return;
+ }
+
+ // CreateTool
+ // std::vector<vvToolBaseBase*> & tools = v->GetListOfTool();
+ v->m_XmlReader = m_XmlReader;
+ v->mReadStateFlag = true;
+ v->mImageIndex = m_TreeItemCount;
+ v->MenuSpecificToolSlot();
+ v->mReadStateFlag = false;
+ m_XmlReader = v->m_XmlReader; // Need because auto_ptr operator= release on the right.
+}
+//------------------------------------------------------------------------------