exports.cpp
changeset 807 f9f7922989d8
parent 804 14f2b1b15242
child 815 2881c4424190
     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...