fixed bug 1896587

This commit is contained in:
Erik Faye-Lund 2008-02-19 21:45:30 +00:00
parent 936fd39fe1
commit 7235c374a8

View File

@ -17,7 +17,7 @@ size_t SyncDocument::getTrackIndexFromPos(size_t track) const
return trackIter->second; return trackIter->second;
} }
/* void SyncDocument::purgeUnused() /* void SyncDocument::purgeUnusedTracks()
{ {
} */ } */
@ -28,6 +28,8 @@ bool SyncDocument::load(const std::string &fileName)
MSXML2::IXMLDOMDocumentPtr doc(MSXML2::CLSID_DOMDocument); MSXML2::IXMLDOMDocumentPtr doc(MSXML2::CLSID_DOMDocument);
try try
{ {
SyncDocument::MultiCommand *multiCmd = new SyncDocument::MultiCommand();
doc->load(fileName.c_str()); doc->load(fileName.c_str());
MSXML2::IXMLDOMNodeListPtr trackNodes = doc->documentElement->selectNodes("track"); MSXML2::IXMLDOMNodeListPtr trackNodes = doc->documentElement->selectNodes("track");
for (int i = 0; i < trackNodes->Getlength(); ++i) for (int i = 0; i < trackNodes->Getlength(); ++i)
@ -36,7 +38,7 @@ bool SyncDocument::load(const std::string &fileName)
MSXML2::IXMLDOMNamedNodeMapPtr attribs = trackNode->Getattributes(); MSXML2::IXMLDOMNamedNodeMapPtr attribs = trackNode->Getattributes();
std::string name = attribs->getNamedItem("name")->Gettext(); std::string name = attribs->getNamedItem("name")->Gettext();
sync::Track &t = getTrack(name); size_t trackIndex = getTrackIndex(name);
MSXML2::IXMLDOMNodeListPtr rowNodes = trackNode->GetchildNodes(); MSXML2::IXMLDOMNodeListPtr rowNodes = trackNode->GetchildNodes();
for (int i = 0; i < rowNodes->Getlength(); ++i) for (int i = 0; i < rowNodes->Getlength(); ++i)
@ -56,10 +58,17 @@ bool SyncDocument::load(const std::string &fileName)
atoi(interpolationString.c_str()) atoi(interpolationString.c_str())
) )
); );
t.setKeyFrame(atoi(rowString.c_str()), keyFrame); multiCmd->addCommand(
this->getSetKeyFrameCommand(
int(trackIndex),
atoi(rowString.c_str()),
keyFrame
)
);
} }
} }
} }
this->exec(multiCmd);
} }
catch(_com_error &e) catch(_com_error &e)
{ {