insilmaril@749: #include "mapcenteritem.h" insilmaril@749: #include "mapcenterobj.h" insilmaril@749: insilmaril@749: #include insilmaril@749: using namespace std; insilmaril@749: insilmaril@749: MapCenterItem::MapCenterItem(const QList &data, TreeItem *parent):BranchItem (data,parent) insilmaril@749: { insilmaril@770: //cout << "Constr. MapCenterItem\n"; insilmaril@760: type=MapCenter; insilmaril@749: } insilmaril@749: insilmaril@749: MapCenterItem::~MapCenterItem() insilmaril@749: { insilmaril@749: cout << "Destr. MapCenterItem\n"; insilmaril@749: qDeleteAll(childItems); insilmaril@749: } insilmaril@749: insilmaril@760: QString MapCenterItem::saveToDir (const QString &tmpdir,const QString &prefix, const QPointF& offset) //FIXME-1 insilmaril@749: { insilmaril@749: // Cloudy stuff can be hidden during exports insilmaril@749: if (hidden) return QString(); insilmaril@749: insilmaril@749: QString s,a; insilmaril@749: BranchObj *bo=(BranchObj*)lmo; insilmaril@749: insilmaril@749: QString scrolledAttr; insilmaril@749: if (scrolled) insilmaril@749: scrolledAttr=attribut ("scrolled","yes"); insilmaril@749: else insilmaril@749: scrolledAttr=""; insilmaril@749: insilmaril@769: /* insilmaril@749: // save area, if not scrolled insilmaril@749: QString areaAttr; insilmaril@749: if (!((BranchObj*)(parObj))->isScrolled() ) insilmaril@749: { insilmaril@749: areaAttr= insilmaril@749: attribut("x1",QString().setNum(absPos.x()-offset.x())) + insilmaril@749: attribut("y1",QString().setNum(absPos.y()-offset.y())) + insilmaril@749: attribut("x2",QString().setNum(absPos.x()+width()-offset.x())) + insilmaril@749: attribut("y2",QString().setNum(absPos.y()+height()-offset.y())); insilmaril@749: insilmaril@749: } else insilmaril@749: areaAttr=""; insilmaril@749: insilmaril@749: // Providing an ID for a branch makes export to XHTML easier insilmaril@749: QString idAttr; insilmaril@749: if (countXLinks()>0) insilmaril@749: idAttr=attribut ("id",model->getSelectString(this)); //TODO directly access model insilmaril@749: else insilmaril@749: idAttr=""; insilmaril@749: insilmaril@749: */ insilmaril@760: s=beginElement ("mapcenter" insilmaril@762: +getAttr() insilmaril@749: // +getOrnXMLAttr() insilmaril@769: +scrolledAttr insilmaril@749: // +areaAttr insilmaril@749: // +idAttr insilmaril@749: // +getIncludeImageAttr() insilmaril@749: ); insilmaril@749: incIndent(); insilmaril@749: insilmaril@749: // save heading insilmaril@749: s+=valueElement("heading", getHeading(), insilmaril@749: attribut ("textColor",QColor( bo->getColor()).name())); insilmaril@749: insilmaril@749: /* insilmaril@749: // Save frame insilmaril@749: if (frame->getFrameType()!=FrameObj::NoFrame) insilmaril@749: s+=frame->saveToDir (); insilmaril@749: insilmaril@749: // save names of flags set insilmaril@749: s+=standardFlags->saveToDir(tmpdir,prefix,0); insilmaril@749: insilmaril@749: // Save FloatImages insilmaril@749: for (int i=0; isaveToDir (tmpdir,prefix); insilmaril@749: */ insilmaril@749: insilmaril@749: // save note insilmaril@749: if (!note.isEmpty() ) insilmaril@749: s+=note.saveToDir(); insilmaril@749: insilmaril@749: // Save branches insilmaril@760: int i=0; insilmaril@760: TreeItem *ti=getBranchNum(i); insilmaril@760: while (ti) insilmaril@760: { insilmaril@760: s+=getBranchNum(i)->saveToDir(tmpdir,prefix,offset); insilmaril@760: i++; insilmaril@760: ti=getBranchNum(i); insilmaril@760: } insilmaril@760: insilmaril@749: insilmaril@749: /* insilmaril@749: // Save XLinks insilmaril@749: QString ol; // old link insilmaril@749: QString cl; // current link insilmaril@749: for (int i=0; isaveToDir(); insilmaril@749: if (cl!=ol) insilmaril@749: { insilmaril@749: s+=cl; insilmaril@749: ol=cl; insilmaril@749: } else insilmaril@749: { insilmaril@749: qWarning (QString("Ignoring of duplicate xLink in %1").arg(getHeading())); insilmaril@749: } insilmaril@749: } insilmaril@749: */ insilmaril@749: insilmaril@749: decIndent(); insilmaril@760: s+=endElement ("mapcenter"); insilmaril@749: return s; insilmaril@749: } insilmaril@749: insilmaril@760: BranchObj* MapCenterItem::createMapObj(QGraphicsScene *scene) insilmaril@760: { insilmaril@760: // Initialize MapCenterObj, order of things is important... insilmaril@760: MapCenterObj* mco=new MapCenterObj(scene); insilmaril@760: lmo=mco; insilmaril@760: mco->setParObj(NULL); insilmaril@760: mco->setModel (model); insilmaril@760: mco->setTreeItem (this); insilmaril@760: mco->setDefAttr(BranchObj::NewBranch); insilmaril@749: insilmaril@760: initLMO(); insilmaril@749: insilmaril@760: if (!getHeading().isEmpty() ) insilmaril@760: { insilmaril@767: mco->updateData(); //FIXME-3 better call model->emitDataHasChanged(treeItem); insilmaril@760: mco->setColor (headingColor); insilmaril@760: } insilmaril@760: insilmaril@760: //mco->updateLink(); //FIXME-3 insilmaril@760: insilmaril@760: return mco; insilmaril@760: } insilmaril@760: insilmaril@760: