1.1 --- a/exports.cpp Tue Nov 17 08:24:59 2009 +0000
1.2 +++ b/exports.cpp Wed Nov 25 10:58:21 2009 +0000
1.3 @@ -125,6 +125,111 @@
1.4 }
1.5
1.6 ////////////////////////////////////////////////////////////////////////
1.7 +ExportAO::ExportAO()
1.8 +{
1.9 + filter="TXT (*.txt)";
1.10 + caption=vymName+ " -" +QObject::tr("Export as ASCII")+" "+QObject::tr("(still experimental)");
1.11 +}
1.12 +
1.13 +void ExportAO::doExport()
1.14 +{
1.15 + QFile file (outputFile);
1.16 + if ( !file.open( QIODevice::WriteOnly ) )
1.17 + {
1.18 + qWarning ("ExportAO::doExport couldn't open "+outputFile);
1.19 + return;
1.20 + }
1.21 + QTextStream ts( &file ); // use LANG decoding here...
1.22 +
1.23 + // Main loop over all branches
1.24 + QString s;
1.25 + QString curIndent;
1.26 + int i;
1.27 + BranchItem *cur=NULL;
1.28 + BranchItem *prev=NULL;
1.29 +
1.30 + QString colString;
1.31 + QColor col;
1.32 +
1.33 + cur=model->nextBranch (cur,prev);
1.34 + while (cur)
1.35 + {
1.36 + if (cur->getType()==TreeItem::Branch || cur->getType()==TreeItem::MapCenter)
1.37 + {
1.38 + // Make indentstring
1.39 + curIndent="";
1.40 + for (i=0;i<cur->depth()-1;i++) curIndent+= indentPerDepth;
1.41 +
1.42 + if (!cur->hasHiddenExportParent() )
1.43 + {
1.44 + col=cur->getHeadingColor();
1.45 + if (col==QColor (255,0,0))
1.46 + colString="[R]";
1.47 + else if (col==QColor (217,81,0))
1.48 + colString="[O]";
1.49 + else if (col==QColor (0,85,0))
1.50 + colString="[G]";
1.51 + else
1.52 + colString="[?]";
1.53 + switch (cur->depth())
1.54 + {
1.55 + case 0:
1.56 + //ts << underline (cur->getHeading(),QString("="));
1.57 + //ts << "\n";
1.58 + break;
1.59 + case 1:
1.60 + //ts << "\n";
1.61 + //ts << (underline ( cur->getHeading(), QString("-") ) );
1.62 + //ts << "\n";
1.63 + break;
1.64 + case 2: // Main heading
1.65 + ts << "\n";
1.66 + ts << underline ( cur->getHeading(), QString("=") );
1.67 + ts << "\n\n";
1.68 + break;
1.69 + case 3: // Achievement, Bonus, Objective ...
1.70 + ts << underline ( cur->getHeading(), "-");
1.71 + ts << "\n\n";
1.72 + break;
1.73 + case 4: // That's the item we need to know
1.74 + ts << (curIndent + "* " + colString+" "+ cur->getHeading());
1.75 + if (cur->isActiveStandardFlag ("hook-green"))
1.76 + ts << " [DONE] ";
1.77 + else if (cur->isActiveStandardFlag ("clock"))
1.78 + ts << " [WIP] ";
1.79 + else if (cur->isActiveStandardFlag ("cross-red"))
1.80 + ts << " [NOT STARTED] ";
1.81 + ts << "\n";
1.82 + default:
1.83 + break;
1.84 + ts << (curIndent + "- " + cur->getHeading());
1.85 + ts << "\n";
1.86 + break;
1.87 + }
1.88 +
1.89 + // If necessary, write note
1.90 + if (!cur->getNoteObj().isEmpty())
1.91 + {
1.92 + curIndent +=" | ";
1.93 + s=cur->getNoteASCII( curIndent, 80);
1.94 + ts << s;
1.95 + }
1.96 + }
1.97 + }
1.98 + cur=model->nextBranch(cur,prev);
1.99 + }
1.100 + file.close();
1.101 +}
1.102 +
1.103 +QString ExportAO::underline (const QString &text, const QString &line)
1.104 +{
1.105 + QString r=text + "\n";
1.106 + for (int j=0;j<text.length();j++) r+=line;
1.107 + return r;
1.108 +}
1.109 +
1.110 +
1.111 +////////////////////////////////////////////////////////////////////////
1.112 ExportASCII::ExportASCII()
1.113 {
1.114 filter="TXT (*.txt)";
1.115 @@ -136,7 +241,7 @@
1.116 QFile file (outputFile);
1.117 if ( !file.open( QIODevice::WriteOnly ) )
1.118 {
1.119 - qWarning ("ExportBase::exportXML couldn't open "+outputFile);
1.120 + qWarning ("ExportASCII::doExport couldn't open "+outputFile);
1.121 return;
1.122 }
1.123 QTextStream ts( &file ); // use LANG decoding here...