[Igarden-commit] Garden/source/PlanTool PlanChangeAction.h, 1.4, 1.4.2.1 PlanChangeAction.cpp, 1.4,
Status: Beta
Brought to you by:
jlbedell
|
From: Jeffrey B. <jlb...@us...> - 2007-01-19 13:42:40
|
Update of /cvsroot/igarden/Garden/source/PlanTool In directory sc8-pr-cvs2.sourceforge.net:/tmp/cvs-serv22036 Modified Files: Tag: Release_branch_v1 PlanChangeAction.h PlanChangeAction.cpp Log Message: BUG: Couldn't do planChange on more than one element Index: PlanChangeAction.h =================================================================== RCS file: /cvsroot/igarden/Garden/source/PlanTool/PlanChangeAction.h,v retrieving revision 1.4 retrieving revision 1.4.2.1 diff -C2 -d -r1.4 -r1.4.2.1 *** PlanChangeAction.h 16 May 2005 23:05:32 -0000 1.4 --- PlanChangeAction.h 19 Jan 2007 13:42:35 -0000 1.4.2.1 *************** *** 24,27 **** --- 24,34 ---- using yaaf::XGHandle; + typedef struct + { + Element *elem; + XGHandle beforeData; // Save on redo + XGHandle afterData; // Save on undo + } changeItem_t; + class PlanChangeAction : public PlanAction { *************** *** 44,50 **** // attributes ! XGHandle _beforeData; // Save on redo ! XGHandle _afterData; // Save on undo ! Element *_currentVersion; short _undoResource; short _redoResource; --- 51,55 ---- // attributes ! XGDynArray<changeItem_t> _currentVersions; short _undoResource; short _redoResource; Index: PlanChangeAction.cpp =================================================================== RCS file: /cvsroot/igarden/Garden/source/PlanTool/PlanChangeAction.cpp,v retrieving revision 1.4 retrieving revision 1.4.2.1 diff -C2 -d -r1.4 -r1.4.2.1 *** PlanChangeAction.cpp 13 Mar 2005 20:43:34 -0000 1.4 --- PlanChangeAction.cpp 19 Jan 2007 13:42:35 -0000 1.4.2.1 *************** *** 57,68 **** { RGXMLWriter writer; ! _currentVersion = newVersion; ! _beforeData.SetSize(0); ! XGStreamHandle before(_beforeData); writer.StartXMLWriter(&before); ! _currentVersion->SaveAsXML(writer); writer.EndXMLWriter(); } --- 57,70 ---- { RGXMLWriter writer; + changeItem_t item; ! item.elem = newVersion; + XGStreamHandle before(item.beforeData); writer.StartXMLWriter(&before); ! newVersion->SaveAsXML(writer); writer.EndXMLWriter(); + + _currentVersions.push_back(item); } *************** *** 77,91 **** XGXMLDOMParser parser; XGXMLObject *parseTree; ! _afterData.SetSize(0); ! XGStreamHandle after(_afterData); ! XGStreamHandle before(_beforeData); ! ! writer.StartXMLWriter(&after); ! _currentVersion->SaveAsXML(writer); ! writer.EndXMLWriter(); ! parseTree = parser.RunDOMParser(&before); ! MyAssert(parseTree != NULL); ! _currentVersion->ParseXML(parseTree); _view->InvalView(); } --- 79,100 ---- XGXMLDOMParser parser; XGXMLObject *parseTree; + long i, count; + + count = _currentVersions.Length(); + for(i = 0; i < count; i++) + { + _currentVersions[i].afterData.SetSize(0); ! XGStreamHandle after(_currentVersions[i].afterData); ! writer.StartXMLWriter(&after); ! _currentVersions[i].elem->SaveAsXML(writer); ! writer.EndXMLWriter(); ! } ! for(i = 0; i < count; i++) ! { ! XGStreamHandle before(_currentVersions[i].beforeData); ! parseTree = parser.RunDOMParser(&before); ! _currentVersions[i].elem->ParseXML(parseTree); ! } _view->InvalView(); } *************** *** 101,115 **** XGXMLDOMParser parser; XGXMLObject *parseTree; - _beforeData.SetSize(0); - XGStreamHandle after(_afterData); - XGStreamHandle before(_beforeData); ! writer.StartXMLWriter(&before); ! _currentVersion->SaveAsXML(writer); ! writer.EndXMLWriter(); ! parseTree = parser.RunDOMParser(&after); ! MyAssert(parseTree != NULL); ! _currentVersion->ParseXML(parseTree); _view->InvalView(); } --- 110,132 ---- XGXMLDOMParser parser; XGXMLObject *parseTree; + long i, count; ! count = _currentVersions.Length(); ! for(i = 0; i < count; i++) ! { ! _currentVersions[i].beforeData.SetSize(0); ! ! XGStreamHandle before(_currentVersions[i].beforeData); ! writer.StartXMLWriter(&before); ! _currentVersions[i].elem->SaveAsXML(writer); ! writer.EndXMLWriter(); ! } ! for(i = 0; i < count; i++) ! { ! XGStreamHandle after(_currentVersions[i].afterData); ! parseTree = parser.RunDOMParser(&after); ! _currentVersions[i].elem->ParseXML(parseTree); ! } _view->InvalView(); } |