insilmaril@747: #include "branchitem.h" insilmaril@747: #include "branchobj.h" insilmaril@747: insilmaril@747: #include insilmaril@747: using namespace std; insilmaril@747: insilmaril@747: BranchItem::BranchItem(const QList &data, TreeItem *parent):TreeItem (data,parent) insilmaril@747: { insilmaril@747: cout << "Constr. BranchItem\n"; insilmaril@747: } insilmaril@747: insilmaril@747: BranchItem::~BranchItem() insilmaril@747: { insilmaril@747: cout << "Destr. BranchItem\n"; insilmaril@747: qDeleteAll(childItems); insilmaril@747: } insilmaril@747: insilmaril@747: QString BranchItem::saveToDir (const QString &tmpdir,const QString &prefix, const QPointF& offset) insilmaril@747: { insilmaril@747: // Cloudy stuff can be hidden during exports insilmaril@747: if (hidden) return ""; insilmaril@747: insilmaril@747: QString s,a; insilmaril@747: BranchObj *bo=(BranchObj*)lmo; insilmaril@747: insilmaril@747: /* FIXME-1 insilmaril@747: // Update of note is usually done while unselecting a branch insilmaril@747: if (isNoteInEditor) getNoteFromTextEditor(); insilmaril@747: insilmaril@747: QString scrolledAttr; insilmaril@747: if (scrolled) insilmaril@747: scrolledAttr=attribut ("scrolled","yes"); insilmaril@747: else insilmaril@747: scrolledAttr=""; insilmaril@747: insilmaril@747: // save area, if not scrolled insilmaril@747: QString areaAttr; insilmaril@747: if (!((BranchObj*)(parObj))->isScrolled() ) insilmaril@747: { insilmaril@747: areaAttr= insilmaril@747: attribut("x1",QString().setNum(absPos.x()-offset.x())) + insilmaril@747: attribut("y1",QString().setNum(absPos.y()-offset.y())) + insilmaril@747: attribut("x2",QString().setNum(absPos.x()+width()-offset.x())) + insilmaril@747: attribut("y2",QString().setNum(absPos.y()+height()-offset.y())); insilmaril@747: insilmaril@747: } else insilmaril@747: areaAttr=""; insilmaril@747: insilmaril@747: // Providing an ID for a branch makes export to XHTML easier insilmaril@747: QString idAttr; insilmaril@747: if (countXLinks()>0) insilmaril@747: idAttr=attribut ("id",model->getSelectString(this)); //TODO directly access model insilmaril@747: else insilmaril@747: idAttr=""; insilmaril@747: insilmaril@747: */ insilmaril@747: s=beginElement ("branch" insilmaril@747: // +getOrnXMLAttr() insilmaril@747: // +scrolledAttr insilmaril@747: // +areaAttr insilmaril@747: // +idAttr insilmaril@747: // +getIncludeImageAttr() insilmaril@747: ); insilmaril@747: incIndent(); insilmaril@747: insilmaril@747: // save heading insilmaril@747: s+=valueElement("heading", getHeading(), insilmaril@747: attribut ("textColor",QColor( bo->getColor()).name())); insilmaril@747: insilmaril@747: /* insilmaril@747: // Save frame insilmaril@747: if (frame->getFrameType()!=FrameObj::NoFrame) insilmaril@747: s+=frame->saveToDir (); insilmaril@747: insilmaril@747: // save names of flags set insilmaril@747: s+=standardFlags->saveToDir(tmpdir,prefix,0); insilmaril@747: insilmaril@747: // Save FloatImages insilmaril@747: for (int i=0; isaveToDir (tmpdir,prefix); insilmaril@747: */ insilmaril@747: insilmaril@747: // save note insilmaril@747: if (!note.isEmpty() ) insilmaril@747: s+=note.saveToDir(); insilmaril@747: insilmaril@747: // Save branches insilmaril@747: TreeItem *ti=getFirstBranch(); insilmaril@747: TreeItem *last=getLastBranch(); insilmaril@747: while (ti && ti!=last) insilmaril@747: s+=ti->saveToDir(tmpdir,prefix,offset); insilmaril@747: insilmaril@747: /* insilmaril@747: // Save XLinks insilmaril@747: QString ol; // old link insilmaril@747: QString cl; // current link insilmaril@747: for (int i=0; isaveToDir(); insilmaril@747: if (cl!=ol) insilmaril@747: { insilmaril@747: s+=cl; insilmaril@747: ol=cl; insilmaril@747: } else insilmaril@747: { insilmaril@747: qWarning (QString("Ignoring of duplicate xLink in %1").arg(getHeading())); insilmaril@747: } insilmaril@747: } insilmaril@747: */ insilmaril@747: insilmaril@747: decIndent(); insilmaril@747: s+=endElement ("branch"); insilmaril@747: return s; insilmaril@747: } insilmaril@747: insilmaril@747: