diff -r 2a33304714ba -r f9f7922989d8 exports.cpp --- a/exports.cpp Tue Nov 17 08:24:59 2009 +0000 +++ b/exports.cpp Wed Nov 25 10:58:21 2009 +0000 @@ -125,6 +125,111 @@ } //////////////////////////////////////////////////////////////////////// +ExportAO::ExportAO() +{ + filter="TXT (*.txt)"; + caption=vymName+ " -" +QObject::tr("Export as ASCII")+" "+QObject::tr("(still experimental)"); +} + +void ExportAO::doExport() +{ + QFile file (outputFile); + if ( !file.open( QIODevice::WriteOnly ) ) + { + qWarning ("ExportAO::doExport couldn't open "+outputFile); + return; + } + QTextStream ts( &file ); // use LANG decoding here... + + // Main loop over all branches + QString s; + QString curIndent; + int i; + BranchItem *cur=NULL; + BranchItem *prev=NULL; + + QString colString; + QColor col; + + cur=model->nextBranch (cur,prev); + while (cur) + { + if (cur->getType()==TreeItem::Branch || cur->getType()==TreeItem::MapCenter) + { + // Make indentstring + curIndent=""; + for (i=0;idepth()-1;i++) curIndent+= indentPerDepth; + + if (!cur->hasHiddenExportParent() ) + { + col=cur->getHeadingColor(); + if (col==QColor (255,0,0)) + colString="[R]"; + else if (col==QColor (217,81,0)) + colString="[O]"; + else if (col==QColor (0,85,0)) + colString="[G]"; + else + colString="[?]"; + switch (cur->depth()) + { + case 0: + //ts << underline (cur->getHeading(),QString("=")); + //ts << "\n"; + break; + case 1: + //ts << "\n"; + //ts << (underline ( cur->getHeading(), QString("-") ) ); + //ts << "\n"; + break; + case 2: // Main heading + ts << "\n"; + ts << underline ( cur->getHeading(), QString("=") ); + ts << "\n\n"; + break; + case 3: // Achievement, Bonus, Objective ... + ts << underline ( cur->getHeading(), "-"); + ts << "\n\n"; + break; + case 4: // That's the item we need to know + ts << (curIndent + "* " + colString+" "+ cur->getHeading()); + if (cur->isActiveStandardFlag ("hook-green")) + ts << " [DONE] "; + else if (cur->isActiveStandardFlag ("clock")) + ts << " [WIP] "; + else if (cur->isActiveStandardFlag ("cross-red")) + ts << " [NOT STARTED] "; + ts << "\n"; + default: + break; + ts << (curIndent + "- " + cur->getHeading()); + ts << "\n"; + break; + } + + // If necessary, write note + if (!cur->getNoteObj().isEmpty()) + { + curIndent +=" | "; + s=cur->getNoteASCII( curIndent, 80); + ts << s; + } + } + } + cur=model->nextBranch(cur,prev); + } + file.close(); +} + +QString ExportAO::underline (const QString &text, const QString &line) +{ + QString r=text + "\n"; + for (int j=0;j