# HG changeset patch # User insilmaril # Date 1122046686 0 # Node ID 16b250a57c1730019468be3ea50f5b925a04c69c # Parent 30cd58b70d0235c2b615b03cc6400537064e77a6 reactivated experimental ASCII export, more changes in undo system diff -r 30cd58b70d02 -r 16b250a57c17 demos/todo.vym Binary file demos/todo.vym has changed diff -r 30cd58b70d02 -r 16b250a57c17 exports.cpp --- a/exports.cpp Tue Jul 19 15:57:49 2005 +0000 +++ b/exports.cpp Fri Jul 22 15:38:06 2005 +0000 @@ -1,6 +1,9 @@ #include "exports.h" +#include + #include "linkablemapobj.h" +#include "texteditor.h" Export::Export() @@ -8,24 +11,6 @@ indentPerDepth=" "; } -bool Export::setOutputDir(QString dirname) -{ - outdir.setPath (dirname); - if ( outdir.exists() ) - { - // FIXME - // ask for confirmation - // then delete outdir - return true; - } else - { - // try to create directory - //return outdir.mkdir (outdir.absPath()); - // FIXME - return true; - } -} - void Export::setPath (const QString &p) { filepath=p; @@ -41,7 +26,7 @@ QFile file (filepath); if ( !file.open( IO_WriteOnly ) ) { - // FIXME + // FIXME experimental, testing cout << "Export::exportMap couldn't open "<first(); while (bo) @@ -60,18 +45,24 @@ // Write heading // write (actIndent + getSectionString(bo) + bo->getHeading()+ "\n"); - if (bo->getDepth()==1) - ts << (getSectionString(bo) + bo->getHeading()+ "\n"); + if (bo->getDepth()==0) + { + ts << (bo->getHeading()+ "\n"); + for (i=0;igetHeading().length();i++) ts<<"="; + ts << "\n"; + } else if (bo->getDepth()==1) + ts << ("\n"+getSectionString(bo) + bo->getHeading()+ "\n"); + else if (bo->getDepth()==2) + ts << (actIndent + " o " + bo->getHeading()+ "\n"); else ts << (actIndent + " - " + bo->getHeading()+ "\n"); // If necessary, write note if (!bo->getNote().isEmpty()) { - ts << ("-------------------Begin of Note-----------------\n"); - ts << (bo->getNote()); - ts << ("\n"); - ts << ("-------------------End of Note-------------------\n"); + s =textConvertToASCII(bo->getNote()); + s=s.replace ("\n","\n"+actIndent); + ts << (s+"\n\n"); } bo=bo->next(); @@ -97,36 +88,3 @@ return r + " "; } -void Export::exportAsHTML() -{ - // FIXME just testing... - // Main loop over all branches - QString s; - QString actIndent(""); - int i; - BranchObj *bo; - bo=mapCenter->first(); - while (bo) - { - // Make indentstring - for (i=0;igetDepth();i++) actIndent+= indentPerDepth; - - // Write heading - write (actIndent + getSectionString(bo) + bo->getHeading()+ "\n"); - - // If necessary, write note - if (!bo->getNote().isEmpty()) - { - write (bo->getNote()); - } - - bo=bo->next(); - actIndent=""; - } -} - -void Export::write(QString s) -{ - cout << s; -} - diff -r 30cd58b70d02 -r 16b250a57c17 exports.h --- a/exports.h Tue Jul 19 15:57:49 2005 +0000 +++ b/exports.h Fri Jul 22 15:38:06 2005 +0000 @@ -14,15 +14,12 @@ { public: Export(); - bool setOutputDir (QString); void setPath(const QString &); void setMapCenter (MapCenterObj*); void setIndentPerDepth (QString); void exportMap(); - void exportAsHTML(); protected: QString getSectionString (BranchObj*); - void write (QString); private: QDir outdir; diff -r 30cd58b70d02 -r 16b250a57c17 mainwindow.cpp --- a/mainwindow.cpp Tue Jul 19 15:57:49 2005 +0000 +++ b/mainwindow.cpp Fri Jul 22 15:38:06 2005 +0000 @@ -967,8 +967,9 @@ a = new QAction( tr( "Export as ASCII (still experimental)" ), QPixmap(), tr( "Export (ASCII)" ), 0, this, "exportASCII" ); connect( a, SIGNAL( activated() ), this, SLOT( fileExportASCII() ) ); - // TODO deactivated, doesn't work with QRichtext anyway - // a->addTo( exportMenu ); + // FIXME Usually deactivated, still experimental + if (settings.readBoolEntry( "/vym/mainwindow/showTestMenu",false)) ; + a->addTo( exportMenu ); a = new QAction( tr( "Export XML" ), QPixmap(), tr( "Export XML" ), 0, this, "exportXML" ); connect( a, SIGNAL( activated() ), this, SLOT( fileExportXML() ) ); diff -r 30cd58b70d02 -r 16b250a57c17 mapeditor.cpp --- a/mapeditor.cpp Tue Jul 19 15:57:49 2005 +0000 +++ b/mapeditor.cpp Fri Jul 22 15:38:06 2005 +0000 @@ -592,6 +592,7 @@ void MapEditor::saveState(const SaveMode &savemode, LinkableMapObj *undoSel, const QString &undoCom) { + setChanged(); if (savemode==UndoCommand) { undoCommand=undoCom; @@ -832,7 +833,6 @@ // (map state is set later at end of load...) } else { - setChanged(); saveState(selection); } @@ -1029,7 +1029,7 @@ l->setPen (QPen(QColor(black), 1)); l->setZ (200); l->show(); - */ + */ if (printFooter) { @@ -1137,6 +1137,9 @@ void MapEditor::exportASCII() { // FIXME still experimental + Export ex; + ex.setMapCenter(mapCenter); + QFileDialog *fd=new QFileDialog( this, tr("VYM - Export (ASCII)")); fd->addFilter ("TXT (*.txt)"); fd->setCaption("VYM - Export (ASCII) (still experimental)"); @@ -1162,21 +1165,14 @@ { case QMessageBox::Yes: // save - if (!ex.setOutputDir ("out")) - { - QMessageBox::critical (0,tr("Critical Export Error "),tr("Couldn't create directory ") + "out"); - return; - } break;; case QMessageBox::Cancel: - // do nothing + // return, do nothing return; break; } } - Export ex; ex.setPath (fd->selectedFile() ); - ex.setMapCenter(mapCenter); ex.exportMap(); } } @@ -1288,15 +1284,6 @@ // Finish open lineEdits if (lineedit) finishedLineEditNoSave(); - // Unselect - /*FIXME testing - if (selection) - { - selection->unselect(); - selection=NULL; - } - */ - parseAtom (undoCommand); mapCenter->reposition(); @@ -1414,7 +1401,6 @@ void MapEditor::paste() { - setChanged(); saveState(selection); pasteNoSave(); mapCenter->reposition(); @@ -1423,7 +1409,6 @@ void MapEditor::cut() { - setChanged(); saveState(selection->getParObj()); copy(); cutNoSave(); @@ -1448,7 +1433,6 @@ BranchObj* par; if (typeid(*selection) == typeid(BranchObj) ) { - setChanged(); saveState("moveBranchDown ()"); bo=(BranchObj*)(selection); par=(BranchObj*)(bo->getParObj()); @@ -1469,7 +1453,6 @@ BranchObj* par; if (typeid(*selection) == typeid(BranchObj) ) { - setChanged(); saveState("moveBranchUp ()"); bo=(BranchObj*)(selection); par=(BranchObj*)(bo->getParObj()); @@ -1490,7 +1473,6 @@ (typeid(*selection) == typeid(BranchObj) || typeid(*selection) == typeid(MapCenterObj) ) ) { - setChanged(); saveState("setHeading (\""+((BranchObj*)(selection))->getHeading()+"\")"); ensureSelectionVisible(); @@ -1532,7 +1514,6 @@ (typeid(*selection) == typeid(BranchObj) || typeid(*selection) == typeid(MapCenterObj) ) ) { - setChanged(); saveState(selection); BranchObj* bo1 = (BranchObj*) (selection); @@ -1598,7 +1579,6 @@ if (selection && (typeid(*selection) == typeid(BranchObj) ) ) { - setChanged(); saveState(selection); BranchObj* bo1 = (BranchObj*) (selection); @@ -1647,7 +1627,6 @@ if (selection && typeid(*selection) ==typeid(BranchObj) ) { - setChanged(); saveState(selection->getParObj()); BranchObj* bo=dynamic_cast (selection); BranchObj* par=(BranchObj*)(bo->getParObj()); @@ -1662,7 +1641,6 @@ } if (selection && typeid(*selection) ==typeid(FloatImageObj) ) { - setChanged(); saveState(selection->getParObj()); FloatImageObj* fio=dynamic_cast (selection); BranchObj* par=(BranchObj*)(fio->getParObj()); @@ -2104,7 +2082,7 @@ QColor col = QColorDialog::getColor( mapCanvas->backgroundColor(), this ); if ( !col.isValid() ) return; setBackgroundColor( col ); - setChanged(); + saveState(); } void MapEditor::setBackgroundColor(QColor c) @@ -2133,7 +2111,6 @@ if (typeid(*selection) == typeid(BranchObj) || typeid(*selection) == typeid(MapCenterObj)) { - setChanged(); saveState(selection); BranchObj *bo=(BranchObj*)(selection); bo->setColor(actColor, false); // color links, color childs @@ -2148,7 +2125,6 @@ if (typeid(*selection) == typeid(BranchObj) || typeid(*selection) == typeid(MapCenterObj)) { - setChanged(); saveState(selection); BranchObj *bo=(BranchObj*)(selection); bo->setColor(actColor, true); // color links, color childs @@ -2161,7 +2137,6 @@ { if (selection) { - setChanged(); saveState(selection); ((BranchObj*)(selection))->toggleStandardFlag (f,actionSettingsUseFlagGroups); } @@ -2280,7 +2255,7 @@ // user entered something and pressed OK ((BranchObj*)(selection))->setURL (text); updateActions(); - setChanged(); + saveState(); //FIXME undoCommand } } } @@ -2293,7 +2268,7 @@ BranchObj *b=(BranchObj*)(selection); b->setURL (b->getHeading()); updateActions(); - setChanged(); + saveState(); //FIXME undoCommand } } @@ -2305,7 +2280,7 @@ BranchObj *b=(BranchObj*)(selection); b->setURL ("https://bugzilla.novell.com/show_bug.cgi?id="+b->getHeading()); updateActions(); - setChanged(); + saveState(); //FIXME undoCommand } } @@ -2328,7 +2303,7 @@ mapCenter->reposition(); adjustCanvasSize(); canvas()->update(); - setChanged(); + saveState(); //FIXME undoCommand } } @@ -2342,7 +2317,7 @@ mapCenter->reposition(); adjustCanvasSize(); canvas()->update(); - setChanged(); + saveState(); //FIXME undoCommand } } @@ -2361,7 +2336,6 @@ { if (selection && (typeid(*selection) == typeid(BranchObj) )) { - setChanged(); saveState(selection->getParObj()); QString sel=selection->getSelectString(); BranchObj* bo=(BranchObj*)(selection); @@ -2377,7 +2351,6 @@ { if (selection && (typeid(*selection) == typeid(BranchObj) )) { - setChanged(); saveState(selection->getParObj()); ((BranchObj*)(selection))->removeChilds(); mapCenter->reposition(); @@ -2424,7 +2397,7 @@ { mapCenter->setAuthor (dia.getAuthor() ); mapCenter->setComment (dia.getComment() ); - setChanged(); + saveState(); //FIXME undoCommand } } @@ -2577,7 +2550,6 @@ { linkstyle=ls; - setChanged(); saveState(); BranchObj *bo; bo=mapCenter->first(); @@ -2672,7 +2644,8 @@ QColor col = QColorDialog::getColor( defLinkColor, this ); if ( !col.isValid() ) return; setLinkColor( col ); - setChanged(); + saveState(); //FIXME undoCommand + } void MapEditor::toggleScroll() @@ -2682,7 +2655,6 @@ BranchObj *bo=((BranchObj*)(selection)); if (bo->countBranches()==0) return; if (bo->getDepth()==0) return; - setChanged(); saveState(selection); bo->toggleScroll(); adjustCanvasSize(); @@ -2722,7 +2694,6 @@ QString fn; if ( fd->exec() == QDialog::Accepted ) { - setChanged(); saveState(selection); QString fn=fd->selectedFile(); lastImageDir=fn.left(fn.findRev ("/")); @@ -2929,7 +2900,7 @@ } if (dia.deleteXLink()) ((BranchObj*)(selection))->deleteXLinkAt(i); - setChanged(); + saveState(); //FIXME undoCommand } } } @@ -3163,7 +3134,6 @@ if (typeid(*selection) == typeid(FloatImageObj)) { - setChanged(); saveState("move "+qpointToString(movingObj_orgPos)); FloatObj *fo=(FloatObj*)(selection); if (fo->getLinkStyle()==StyleUndef) @@ -3185,6 +3155,7 @@ { if (typeid(*fo) == typeid(FloatImageObj)) { + saveState(); FloatImageObj *fio=(FloatImageObj*)(fo); ((BranchObj*)(lmo))->addFloatImage (fio); fio->unselect(); @@ -3215,7 +3186,6 @@ if (lmosel->getDepth()==1) { // depth==1, mainbranch - setChanged(); saveState("move "+qpointToString(movingObj_orgPos)); lmosel->move(p.x() -movingObj_start.x(), p.y()-movingObj_start.y() ); } else @@ -3324,8 +3294,7 @@ tmpXLink->setEnd ( ((BranchObj*)(dst)) ); tmpXLink->updateXLink(); tmpXLink->activate(); - setChanged(); - + saveState(); //FIXME undoCommand } else { delete(tmpXLink); @@ -3362,7 +3331,6 @@ if (dst ) { BranchObj* bs=((BranchObj*)(selection)); - setChanged(); saveState ("linkBranchToPos (\""+ (bs->getParObj())->getSelectString()+ "\","+ @@ -3415,7 +3383,6 @@ if (selection) selection->unselect(); selection=lmo; selection->select(); - setChanged(); saveState(selection); editHeading(); } @@ -3588,7 +3555,7 @@ if (update) { - setChanged(); + saveState(); //FIXME undo Command mapCenter->reposition(); adjustCanvasSize(); canvas()->update(); @@ -3603,7 +3570,6 @@ (typeid(*selection) == typeid(MapCenterObj)) ) { BranchObj *bo=((BranchObj*)(selection)); - setChanged(); saveState(selection); //QString fn=fd->selectedFile(); //lastImageDir=fn.left(fn.findRev ("/")); diff -r 30cd58b70d02 -r 16b250a57c17 texteditor.cpp --- a/texteditor.cpp Tue Jul 19 15:57:49 2005 +0000 +++ b/texteditor.cpp Fri Jul 22 15:38:06 2005 +0000 @@ -678,7 +678,7 @@ e->setText(t); } -QString TextEditor::textConvertToASCII(const QString &t) +QString textConvertToASCII(const QString &t) { QString r=t; @@ -687,8 +687,8 @@ re.setMinimal(true); r.replace (re,"\n"); - // convert all "

" to "\n" - re.setPattern ("/p"); + // convert all "

" to "\n" + re.setPattern ("

"); r.replace (re,"\n"); // remove all remaining tags @@ -702,6 +702,8 @@ r.replace (re,"<"); re.setPattern ("&"); r.replace (re,"&"); + re.setPattern ("""); + r.replace (re,"\""); return r; } diff -r 30cd58b70d02 -r 16b250a57c17 texteditor.h --- a/texteditor.h Tue Jul 19 15:57:49 2005 +0000 +++ b/texteditor.h Fri Jul 22 15:38:06 2005 +0000 @@ -10,6 +10,8 @@ enum EditorState {inactiveEditor,emptyEditor,filledEditor}; +QString textConvertToASCII(const QString &); + class TextEditor : public QMainWindow { Q_OBJECT public: @@ -56,7 +58,6 @@ void textSave(); void textConvertPar(); void textJoinLines(); - QString textConvertToASCII(const QString &); void textExportAsASCII(); void textPrint(); void textEditUndo(); diff -r 30cd58b70d02 -r 16b250a57c17 version.h --- a/version.h Tue Jul 19 15:57:49 2005 +0000 +++ b/version.h Fri Jul 22 15:38:06 2005 +0000 @@ -2,6 +2,6 @@ #define VERSION_H #define __VYM_VERSION__ "1.7.1" -#define __BUILD_DATE__ "July 19, 2005" +#define __BUILD_DATE__ "July 22, 2005" #endif