diff -r 16d3598f611f -r ab83f030285e mapeditor.cpp --- a/mapeditor.cpp Wed Jul 04 11:05:15 2007 +0000 +++ b/mapeditor.cpp Mon Jul 30 09:47:08 2007 +0000 @@ -20,6 +20,7 @@ #include "texteditor.h" #include "warningdialog.h" #include "xml.h" +#include "xml-fm.h" extern TextEditor *textEditor; @@ -1514,7 +1515,7 @@ } - mapBuilderHandler handler; + parseVYMHandler handler; QFile file( fname ); // I am paranoid: file should exist anyway @@ -1721,7 +1722,7 @@ QPixmap MapEditor::getPixmap() { QRectF mapRect=mapCenter->getTotalBBox(); - QPixmap pix((int)mapRect.width()+2,(int)mapRect.height()+2); + QPixmap pix((int)mapRect.width()+2,(int)mapRect.height()+1); QPainter pp (&pix); pp.setRenderHints(renderHints()); @@ -2132,7 +2133,7 @@ if (d.exists() ) { // We need to parse saved XML data - mapBuilderHandler handler; + parseVYMHandler handler; QXmlInputSource source( file); QXmlSimpleReader reader; reader.setContentHandler( &handler ); @@ -2174,7 +2175,7 @@ if (d.exists() ) { // We need to parse saved XML data - mapBuilderHandler handler; + parseVYMHandler handler; QXmlInputSource source( file); QXmlSimpleReader reader; reader.setContentHandler( &handler ); @@ -4110,7 +4111,64 @@ void MapEditor::testFunction1() { - + ErrorCode err=success; + LoadMode lmode=NewMap; + + //QString fname="test/freemind/doc/freemind.xml"; + QString fname="test/freemind/doc/icons.mm"; + parseFMHandler handler; + QFile file( fname ); + + // I am paranoid: file should exist anyway + // according to check in mainwindow. + if (!file.exists() ) + { + QMessageBox::critical( 0, tr( "Critical Parse Error" ), + tr("Couldn't open map " +fname)+"."); + err=aborted; + } else + { + bool blockSaveStateOrg=blockSaveState; + blockReposition=true; + blockSaveState=true; + QXmlInputSource source( file); + QXmlSimpleReader reader; + reader.setContentHandler( &handler ); + reader.setErrorHandler( &handler ); + handler.setMapEditor( this ); + + + // We need to set the tmpDir in order to load files with rel. path + QString tmpdir= fname.left(fname.findRev("/",-1)); + handler.setTmpDir (tmpdir); + handler.setInputFile (file.name()); + //handler.setLoadMode (lmode); + bool ok = reader.parse( source ); + blockReposition=false; + blockSaveState=blockSaveStateOrg; + file.close(); + if ( ok ) + { + mapCenter->reposition(); + xelection.update(); + if (lmode==NewMap) + { + mapDefault=false; + mapChanged=false; + mapUnsaved=false; + autosaveTimer->stop(); + } + } else + { + QMessageBox::critical( 0, tr( "Critical Parse Error" ), + tr( handler.errorProtocol() ) ); + // returnCode=1; + // Still return "success": the map maybe at least + // partially read by the parser + } + } + updateActions(); + //return err; /* BranchObj *bo=xelection.getBranch(); if (bo) animObjList.append( bo );