insilmaril@0: #include "exports.h" insilmaril@0: insilmaril@0: #include "linkablemapobj.h" insilmaril@0: insilmaril@0: insilmaril@0: Export::Export() insilmaril@0: { insilmaril@0: indentPerDepth=" "; insilmaril@0: } insilmaril@0: insilmaril@0: bool Export::setOutputDir(QString dirname) insilmaril@0: { insilmaril@0: outdir.setPath (dirname); insilmaril@0: if ( outdir.exists() ) insilmaril@0: { insilmaril@0: // FIXME insilmaril@0: // ask for confirmation insilmaril@0: // then delete outdir insilmaril@0: return true; insilmaril@0: } else insilmaril@0: { insilmaril@0: // try to create directory insilmaril@0: //return outdir.mkdir (outdir.absPath()); insilmaril@0: // FIXME insilmaril@0: return true; insilmaril@0: } insilmaril@0: } insilmaril@0: insilmaril@0: void Export::setPath (const QString &p) insilmaril@0: { insilmaril@0: filepath=p; insilmaril@0: } insilmaril@0: insilmaril@0: void Export::setMapCenter(MapCenterObj *mc) insilmaril@0: { insilmaril@0: mapCenter=mc; insilmaril@0: } insilmaril@0: insilmaril@0: void Export::exportMap() insilmaril@0: { insilmaril@0: QFile file (filepath); insilmaril@0: if ( !file.open( IO_WriteOnly ) ) insilmaril@0: { insilmaril@0: // FIXME insilmaril@0: cout << "Export::exportMap couldn't open "<first(); insilmaril@0: while (bo) insilmaril@0: { insilmaril@0: // Make indentstring insilmaril@0: for (i=0;igetDepth();i++) actIndent+= indentPerDepth; insilmaril@0: insilmaril@0: // Write heading insilmaril@0: // write (actIndent + getSectionString(bo) + bo->getHeading()+ "\n"); insilmaril@0: if (bo->getDepth()==1) insilmaril@0: ts << (getSectionString(bo) + bo->getHeading()+ "\n"); insilmaril@0: else insilmaril@0: ts << (actIndent + " - " + bo->getHeading()+ "\n"); insilmaril@0: insilmaril@0: // If necessary, write note insilmaril@0: if (!bo->getNote().isEmpty()) insilmaril@0: { insilmaril@0: ts << ("-------------------Begin of Note-----------------\n"); insilmaril@0: ts << (bo->getNote()); insilmaril@0: ts << ("\n"); insilmaril@0: ts << ("-------------------End of Note-------------------\n"); insilmaril@0: } insilmaril@0: insilmaril@0: bo=bo->next(); insilmaril@0: actIndent=""; insilmaril@0: } insilmaril@0: file.close(); insilmaril@0: } insilmaril@0: insilmaril@0: QString Export::getSectionString(BranchObj *bostart) insilmaril@0: { insilmaril@0: QString r; insilmaril@0: BranchObj *bo=bostart; insilmaril@0: int depth=bo->getDepth(); insilmaril@0: while (depth>0) insilmaril@0: { insilmaril@0: r=QString("%1").arg(1+bo->getNum(),0,10)+"." + r; insilmaril@0: bo=(BranchObj*)(bo->getParObj()); insilmaril@0: depth=bo->getDepth(); insilmaril@0: } insilmaril@0: if (r.isEmpty()) insilmaril@0: return r; insilmaril@0: else insilmaril@0: return r + " "; insilmaril@0: } insilmaril@0: insilmaril@0: void Export::exportAsHTML() insilmaril@0: { insilmaril@0: // FIXME just testing... insilmaril@0: // Main loop over all branches insilmaril@0: QString s; insilmaril@0: QString actIndent(""); insilmaril@0: int i; insilmaril@0: BranchObj *bo; insilmaril@0: bo=mapCenter->first(); insilmaril@0: while (bo) insilmaril@0: { insilmaril@0: // Make indentstring insilmaril@0: for (i=0;igetDepth();i++) actIndent+= indentPerDepth; insilmaril@0: insilmaril@0: // Write heading insilmaril@0: write (actIndent + getSectionString(bo) + bo->getHeading()+ "\n"); insilmaril@0: insilmaril@0: // If necessary, write note insilmaril@0: if (!bo->getNote().isEmpty()) insilmaril@0: { insilmaril@0: write (bo->getNote()); insilmaril@0: } insilmaril@0: insilmaril@0: bo=bo->next(); insilmaril@0: actIndent=""; insilmaril@0: } insilmaril@0: } insilmaril@0: insilmaril@0: void Export::write(QString s) insilmaril@0: { insilmaril@0: cout << s; insilmaril@0: } insilmaril@0: