1.1 --- a/branchitem.cpp Wed May 20 15:40:14 2009 +0000
1.2 +++ b/branchitem.cpp Tue May 26 11:23:44 2009 +0000
1.3 @@ -84,7 +84,13 @@
1.4 idAttr="";
1.5
1.6 */
1.7 - s=beginElement ("branch"
1.8 + QString elementName;
1.9 + if (parentItem==rootItem)
1.10 + elementName="mapcenter";
1.11 + else
1.12 + elementName="branch";
1.13 +
1.14 + s=beginElement (elementName
1.15 +getAttr()
1.16 // +getOrnXMLAttr()
1.17 +scrolledAttr
1.18 @@ -146,7 +152,7 @@
1.19 */
1.20
1.21 decIndent();
1.22 - s+=endElement ("branch");
1.23 + s+=endElement (elementName);
1.24 return s;
1.25 }
1.26
1.27 @@ -337,6 +343,15 @@
1.28 return NULL;
1.29 }
1.30
1.31 +void BranchItem::updateStyles()
1.32 +{
1.33 + // FIXME-5 compare also MapItem::initLMO...
1.34 +
1.35 + if (lmo)
1.36 + {
1.37 + lmo->setParObj (parentItem->getLMO() );
1.38 + }
1.39 +}
1.40
1.41 BranchObj* BranchItem::getBranchObj() // FIXME-3 only for transition BO->BI
1.42 {
1.43 @@ -345,22 +360,50 @@
1.44
1.45 BranchObj* BranchItem::createMapObj(QGraphicsScene *scene)
1.46 {
1.47 + BranchObj *newbo;
1.48 + cout << "BI::createMO "<<getHeadingStd()<<" pI="<<parentItem<<" rI="<<rootItem<<endl;
1.49 + if (parentItem==rootItem)
1.50 + {
1.51 + // Initialize MapCenterObj, order of things is important...
1.52 + cout << "BI::createMO (MCO) "<<getHeadingStd()<<endl;
1.53 + MapCenterObj* mco=new MapCenterObj(scene);
1.54 + newbo=mco;
1.55 + lmo=mco;
1.56 + newbo->setParObj(NULL);
1.57 + newbo->setTreeItem (this);
1.58 + newbo->setDefAttr(BranchObj::NewBranch);
1.59 + } else
1.60 + {
1.61 // Initialize BranchObj, order of things is important...
1.62 - BranchObj* newbo=new BranchObj(scene);
1.63 - lmo=newbo;
1.64 - BranchObj* parbo=(BranchObj*)(parentItem->getLMO());
1.65 - newbo->setParObj(parbo);
1.66 - newbo->setTreeItem (this);
1.67 - newbo->setDefAttr(BranchObj::NewBranch);
1.68 - if (((BranchItem*)parentItem)->scrolled || !parbo->isVisibleObj() )
1.69 - newbo->setVisibility (false);
1.70 -
1.71 + cout << "BI::createMO (BO) "<<getHeadingStd()<<endl;
1.72 + newbo=new BranchObj(scene);
1.73 + lmo=newbo;
1.74 + BranchObj* parbo=(BranchObj*)(parentItem->getLMO());
1.75 + newbo->setParObj(parbo);
1.76 + newbo->setTreeItem (this);
1.77 + newbo->setDefAttr(BranchObj::NewBranch);
1.78 +
1.79 + if (parentItem->isBranchLikeType())
1.80 + {
1.81 + // Set visibility depending on parents
1.82 + if (((BranchItem*)parentItem)->scrolled || !parbo->isVisibleObj() )
1.83 + {
1.84 + if (parentItem && parentItem->isBranchLikeType())
1.85 + cout <<" scrolled="<<((BranchItem*)parentItem)->scrolled<<endl;
1.86 + if (parbo)
1.87 + cout <<" par->vis="<<parbo->isVisibleObj()<<endl;
1.88 + newbo->setVisibility (false);
1.89 + }
1.90 + } else
1.91 + cout <<" pI=no branch!\n";
1.92 +
1.93 + }
1.94 initLMO();
1.95
1.96 if (!getHeading().isEmpty() )
1.97 {
1.98 - newbo->updateData(); //FIXME-3 maybe better model->emitDataHasChanged()?
1.99 - newbo->setColor (headingColor);
1.100 + ((BranchObj*)lmo)->updateData(); //FIXME-3 maybe better model->emitDataHasChanged()?
1.101 + ((BranchObj*)lmo)->setColor (headingColor);
1.102 }
1.103
1.104
2.1 --- a/branchitem.h Wed May 20 15:40:14 2009 +0000
2.2 +++ b/branchitem.h Tue May 26 11:23:44 2009 +0000
2.3 @@ -41,8 +41,9 @@
2.4 virtual void resetTmpUnscroll(); // scroll all tmp scrolled parents again e.g. when unselecting
2.5
2.6 TreeItem* findMapItem (QPointF p,TreeItem* excludeTI); //! search map for branches or images. Ignore excludeTI, where search is started
2.7 - virtual TreeItem* findID (QString sid); //! search map for object with ID string
2.8 + virtual TreeItem* findID (QString sid); //! search map for object with ID string
2.9
2.10 + virtual void updateStyles (); //! update related fonts, parObjects, links, ...
2.11 virtual BranchObj* getBranchObj();
2.12 virtual BranchObj* createMapObj(QGraphicsScene *scene); //! Create classic object in GraphicsView
2.13 };
3.1 --- a/branchobj.cpp Wed May 20 15:40:14 2009 +0000
3.2 +++ b/branchobj.cpp Tue May 26 11:23:44 2009 +0000
3.3 @@ -33,7 +33,7 @@
3.4 // cout << "Const BranchObj (s,p)\n";
3.5 scene=s;
3.6 setParObj (p);
3.7 - if (treeItem->depth()==1)
3.8 + if (treeItem->depth()==1) // FIXME-3 needed to recursively calc depth?
3.9 // Calc angle to mapCenter if I am a mainbranch
3.10 // needed for reordering the mainbranches clockwise
3.11 // around mapcenter
3.12 @@ -50,6 +50,7 @@
3.13 if (anim.isAnimated() )
3.14 {
3.15 anim.setAnimated (false);
3.16 + VymModel *model=treeItem->getModel();
3.17 model->stopAnimation (this);
3.18 }
3.19
3.20 @@ -86,8 +87,6 @@
3.21 absPos+=parObj->getChildPos();
3.22 }
3.23
3.24 - setChildObj(this);
3.25 -
3.26 includeImagesVer=false;
3.27 includeImagesHor=false;
3.28 }
3.29 @@ -153,7 +152,7 @@
3.30 // Usually the positioning would be done by reposition(),
3.31 // but then also the destination branch would "Jump" around...
3.32 // Better just do it approximately
3.33 - if (treeItem->depth()==1)
3.34 + if (treeItem->depth()==1) // FIXME-3 needed to recursively calc depth?
3.35 { // new parent is the mapcenter itself
3.36
3.37 QPointF p= normalise ( QPointF (m.x() - o->getChildPos().x(),
3.38 @@ -245,6 +244,7 @@
3.39 // Overloaded from LinkableMapObj
3.40 // BranchObj can use color of heading
3.41
3.42 + VymModel *model=treeItem->getModel();
3.43 if (model)
3.44 {
3.45 if (model->getMapLinkColorHint()==HeadingColor)
3.46 @@ -254,13 +254,6 @@
3.47 }
3.48 }
3.49
3.50 -void BranchObj::setColorSubtree(QColor col)
3.51 -{
3.52 - setColor (col);
3.53 - for (int i=0; i<treeItem->branchCount(); ++i)
3.54 - treeItem->getBranchObjNum(i)->setColorSubtree(col);
3.55 -}
3.56 -
3.57 void BranchObj::updateContentSize()
3.58 {
3.59 calcBBoxSize();
3.60 @@ -663,7 +656,7 @@
3.61 void BranchObj::alignRelativeTo (QPointF ref,bool alignSelf)
3.62 {
3.63 qreal th = bboxTotal.height();
3.64 - int depth=treeItem->depth();
3.65 + int depth=treeItem->depth(); // FIXME-3 needed to recursively calc depth?
3.66 // TODO testing
3.67 /*
3.68
3.69 @@ -918,7 +911,11 @@
3.70
3.71 QString BranchObj::getSelectString()
3.72 {
3.73 - return model->getSelectString (this);
3.74 + VymModel *model=treeItem->getModel();
3.75 + if (model)
3.76 + return model->getSelectString (this);
3.77 + else
3.78 + return QString();
3.79 }
3.80
3.81 void BranchObj::setAnimation(const AnimPoint &ap)
4.1 --- a/branchobj.h Wed May 20 15:40:14 2009 +0000
4.2 +++ b/branchobj.h Tue May 26 11:23:44 2009 +0000
4.3 @@ -34,7 +34,6 @@
4.4 virtual void setVisibility(bool,int); // set visibility
4.5 virtual void setVisibility(bool); // set vis. for w
4.6 virtual void setLinkColor(); // set the color of link
4.7 - virtual void setColorSubtree(QColor); // set the color of heading
4.8
4.9 virtual void updateContentSize();
4.10 virtual void positionContents();
5.1 --- a/editxlinkdialog.cpp Wed May 20 15:40:14 2009 +0000
5.2 +++ b/editxlinkdialog.cpp Tue May 26 11:23:44 2009 +0000
5.3 @@ -57,19 +57,21 @@
5.4 }
5.5 }
5.6
5.7 -void EditXLinkDialog::setColorHeadingButtonPressed()
5.8 +void EditXLinkDialog::setColorHeadingButtonPressed() //FIXME-2
5.9 {
5.10 +/*
5.11 if (xlo)
5.12 {
5.13 if (selection &&
5.14 - (typeid(*selection) == typeid(BranchObj) ||
5.15 - typeid(*selection) == typeid(MapCenterObj)) )
5.16 + (typid(*selection) == typid(BranchObj) ||
5.17 + typid(*selection) == typid(MapCenterObj)) )
5.18 {
5.19 QColor col=((BranchObj*)(selection))->getColor();
5.20 xlo->setColor(col);
5.21 ui.colorButton->setPaletteBackgroundColor (col);
5.22 }
5.23 }
5.24 + */
5.25 }
5.26
5.27 bool EditXLinkDialog::useSettingsGlobal ()
6.1 --- a/exports.cpp Wed May 20 15:40:14 2009 +0000
6.2 +++ b/exports.cpp Tue May 26 11:23:44 2009 +0000
6.3 @@ -147,10 +147,9 @@
6.4 int i;
6.5 BranchItem *cur=NULL;
6.6 BranchItem *prev=NULL;
6.7 - int d;
6.8
6.9 BranchObj *bo; //FIXME-3 still needed?
6.10 - cur=model->next (cur,prev,d);
6.11 + cur=model->next (cur,prev);
6.12 while (cur)
6.13 {
6.14 if (cur->getType()==TreeItem::Branch || cur->getType()==TreeItem::MapCenter)
6.15 @@ -199,7 +198,7 @@
6.16 }
6.17 }
6.18 }
6.19 - cur=model->next(cur,prev,d);
6.20 + cur=model->next(cur,prev);
6.21 }
6.22 file.close();
6.23 }
6.24 @@ -233,8 +232,7 @@
6.25 BranchObj *bo; //FIXME-3 still needed?
6.26 BranchItem *cur=NULL;
6.27 BranchItem *prev=NULL;
6.28 - int d;
6.29 - cur=model->next (cur,prev,d);
6.30 + cur=model->next (cur,prev);
6.31 while (cur)
6.32 {
6.33 bo=(BranchObj*)(cur->getLMO());
6.34 @@ -257,7 +255,7 @@
6.35 ts << curIndent << "\"" << cur->getHeading()<<"\""<<endl;
6.36 }
6.37
6.38 - cur=model->next(cur,prev,d);
6.39 + cur=model->next(cur,prev);
6.40 curIndent="";
6.41 }
6.42 file.close();
6.43 @@ -393,8 +391,7 @@
6.44 BranchObj *bo;
6.45 BranchItem *cur=NULL;
6.46 BranchItem *prev=NULL;
6.47 - int d; //FIXME-3 still needed?
6.48 - model->next(cur,prev,d);
6.49 + model->next(cur,prev);
6.50 while (cur)
6.51 {
6.52 bo=(BranchObj*)(cur->getLMO());
6.53 @@ -426,7 +423,7 @@
6.54 ts << ("\n");
6.55 }
6.56 }
6.57 - cur=model->next(cur,prev,d);
6.58 + cur=model->next(cur,prev);
6.59 }
6.60 file.close();
6.61 }
7.1 --- a/floatobj.cpp Wed May 20 15:40:14 2009 +0000
7.2 +++ b/floatobj.cpp Tue May 26 11:23:44 2009 +0000
7.3 @@ -34,7 +34,6 @@
7.4
7.5 void FloatObj::init ()
7.6 {
7.7 - setChildObj(this);
7.8 floatExport=true;
7.9 zPlane=Z_ICON;
7.10 setLinkStyle (LinkableMapObj::Parabel);
8.1 --- a/linkablemapobj.cpp Wed May 20 15:40:14 2009 +0000
8.2 +++ b/linkablemapobj.cpp Tue May 26 11:23:44 2009 +0000
8.3 @@ -57,9 +57,6 @@
8.4
8.5 void LinkableMapObj::init ()
8.6 {
8.7 - model=NULL;
8.8 -
8.9 - childObj=NULL;
8.10 parObj=NULL;
8.11 parObjTmpBuf=NULL;
8.12 parPos=QPointF(0,0);
8.13 @@ -103,7 +100,6 @@
8.14 void LinkableMapObj::copy (LinkableMapObj* other)
8.15 {
8.16 MapObj::copy(other);
8.17 - model=other->model;
8.18 bboxTotal=other->bboxTotal;
8.19 setLinkStyle(other->style);
8.20 setLinkColor (other->linkcolor);
8.21 @@ -122,25 +118,9 @@
8.22 return treeItem;
8.23 }
8.24
8.25 -void LinkableMapObj::setModel (VymModel *vm)
8.26 -{
8.27 - model=vm;
8.28 -}
8.29 -
8.30 -VymModel* LinkableMapObj::getModel()
8.31 -{
8.32 - return model;
8.33 -}
8.34 -
8.35 -void LinkableMapObj::setChildObj(LinkableMapObj* o)
8.36 -{
8.37 - childObj=o;
8.38 -}
8.39 -
8.40 void LinkableMapObj::setParObj(LinkableMapObj* o)
8.41 {
8.42 parObj=o;
8.43 - if (parObj) model=parObj->getModel();
8.44 }
8.45
8.46 void LinkableMapObj::setParObjTmp(LinkableMapObj*,QPointF,int) // FIXME-3 make pure virtual
8.47 @@ -205,6 +185,7 @@
8.48
8.49 LinkableMapObj::Style LinkableMapObj::getDefLinkStyle ()
8.50 {
8.51 + VymModel *model=treeItem->getModel();
8.52 if (!model)
8.53 {
8.54 qWarning ("LMO::getDefLinkStyle model=NULL");
8.55 @@ -246,7 +227,7 @@
8.56
8.57 style=newstyle;
8.58
8.59 - if (childObj!=NULL && parObj != NULL)
8.60 + if (parObj != NULL)
8.61 {
8.62 QGraphicsLineItem *cl;
8.63 switch (style)
8.64 @@ -332,6 +313,7 @@
8.65 {
8.66 // Overloaded in BranchObj and children
8.67 // here only set default color
8.68 + VymModel *model=treeItem->getModel();
8.69 if (model)
8.70 setLinkColor (model->getMapDefLinkColor());
8.71 }
8.72 @@ -554,11 +536,6 @@
8.73 } // switch (style)
8.74 }
8.75
8.76 -LinkableMapObj* LinkableMapObj::getChildObj()
8.77 -{
8.78 - return childObj;
8.79 -}
8.80 -
8.81 LinkableMapObj* LinkableMapObj::getParObj()
8.82 {
8.83 return parObj;
8.84 @@ -621,6 +598,7 @@
8.85 // we want to block expensive repositioning, but just do it once at
8.86 // the end, thus check first:
8.87
8.88 + VymModel *model=treeItem->getModel();
8.89 if (model->isRepositionBlocked()) return;
8.90
8.91 // Pass on the request to parent objects, if this hasn't been done yet
9.1 --- a/linkablemapobj.h Wed May 20 15:40:14 2009 +0000
9.2 +++ b/linkablemapobj.h Tue May 26 11:23:44 2009 +0000
9.3 @@ -59,8 +59,6 @@
9.4
9.5 virtual void setTreeItem(TreeItem *);
9.6 virtual TreeItem* getTreeItem() const;
9.7 - virtual void setModel (VymModel *vm);
9.8 - virtual VymModel* getModel ();
9.9
9.10 void setChildObj (LinkableMapObj*);
9.11 virtual void setParObj (LinkableMapObj*);
9.12 @@ -110,7 +108,7 @@
9.13
9.14 virtual void calcBBoxSizeWithChildren()=0;// calc size of BBox including children recursivly
9.15
9.16 - virtual void select();
9.17 + virtual void select(); // FIXME-3 show/hide links...
9.18 virtual void unselect();
9.19
9.20 protected:
9.21 @@ -121,13 +119,11 @@
9.22 QPointF parPos;
9.23 bool link2ParPos; // While moving around, sometimes link to parent
9.24
9.25 - VymModel* model;
9.26 Orientation orientation;
9.27 qreal linkwidth; // width of a link
9.28 QRectF bboxTotal; // bounding box including children
9.29
9.30 - LinkableMapObj* childObj;
9.31 - LinkableMapObj* parObj; // FIXME-2 really still needed? Better get from TreeItem
9.32 + LinkableMapObj* parObj;
9.33 LinkableMapObj* parObjTmpBuf; // temporary buffer the original parent
9.34 qreal bottomlineY; // vertical offset of dockpos to pos
9.35
9.36 @@ -152,7 +148,6 @@
9.37 leftPad, rightPad; // padding within bbox
9.38
9.39 QPointF relPos; // position relative to childPos of parent
9.40 - //AnimPoint relPos; // position relative to childPos of parent
9.41 bool useRelPos;
9.42 bool useOrientation;
9.43
10.1 --- a/mainwindow.cpp Wed May 20 15:40:14 2009 +0000
10.2 +++ b/mainwindow.cpp Tue May 26 11:23:44 2009 +0000
10.3 @@ -1451,10 +1451,7 @@
10.4 a->setToggleAction(true);
10.5 a->setOn (settings.value("/animation/use",false).toBool() );
10.6 connect( a, SIGNAL( triggered() ), this, SLOT( settingsToggleAnimation() ) );
10.7 - if (settings.value( "/mainwindow/showTestMenu",false).toBool() )
10.8 - {
10.9 - settingsMenu->addAction (a);
10.10 - }
10.11 + settingsMenu->addAction (a);
10.12 actionSettingsUseAnimation=a;
10.13 }
10.14
11.1 --- a/mapcenteritem.cpp Wed May 20 15:40:14 2009 +0000
11.2 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000
11.3 @@ -1,143 +0,0 @@
11.4 -#include "mapcenteritem.h"
11.5 -#include "mapcenterobj.h"
11.6 -
11.7 -#include <iostream>
11.8 -using namespace std;
11.9 -
11.10 -MapCenterItem::MapCenterItem(const QList<QVariant> &data, TreeItem *parent):BranchItem (data,parent)
11.11 -{
11.12 - //cout << "Constr. MapCenterItem\n";
11.13 - type=MapCenter;
11.14 -}
11.15 -
11.16 -MapCenterItem::~MapCenterItem()
11.17 -{
11.18 -// cout << "Destr. MapCenterItem\n";
11.19 - qDeleteAll(childItems);
11.20 -}
11.21 -
11.22 -QString MapCenterItem::saveToDir (const QString &tmpdir,const QString &prefix, const QPointF& offset) //FIXME-3 Check if everything is saved...
11.23 -{
11.24 - // Cloudy stuff can be hidden during exports
11.25 - if (hidden) return QString();
11.26 -
11.27 - QString s,a;
11.28 - BranchObj *bo=(BranchObj*)lmo;
11.29 -
11.30 - QString scrolledAttr;
11.31 - if (scrolled)
11.32 - scrolledAttr=attribut ("scrolled","yes");
11.33 - else
11.34 - scrolledAttr="";
11.35 -
11.36 - /*
11.37 - // save area, if not scrolled
11.38 - QString areaAttr;
11.39 - if (!((BranchObj*)(parObj))->isScrolled() )
11.40 - {
11.41 - areaAttr=
11.42 - attribut("x1",QString().setNum(absPos.x()-offset.x())) +
11.43 - attribut("y1",QString().setNum(absPos.y()-offset.y())) +
11.44 - attribut("x2",QString().setNum(absPos.x()+width()-offset.x())) +
11.45 - attribut("y2",QString().setNum(absPos.y()+height()-offset.y()));
11.46 -
11.47 - } else
11.48 - areaAttr="";
11.49 -
11.50 - // Providing an ID for a branch makes export to XHTML easier
11.51 - QString idAttr;
11.52 - if (countXLinks()>0)
11.53 - idAttr=attribut ("id",model->getSelectString(this)); //TODO directly access model
11.54 - else
11.55 - idAttr="";
11.56 -
11.57 - */
11.58 - s=beginElement ("mapcenter"
11.59 - +getAttr()
11.60 - // +getOrnXMLAttr()
11.61 - +scrolledAttr
11.62 - // +areaAttr
11.63 - // +idAttr
11.64 - // +getIncludeImageAttr()
11.65 - );
11.66 - incIndent();
11.67 -
11.68 - // save heading
11.69 - s+=valueElement("heading", getHeading(),
11.70 - attribut ("textColor",QColor( bo->getColor()).name()));
11.71 -
11.72 -/*
11.73 - // Save frame
11.74 - if (frame->getFrameType()!=FrameObj::NoFrame)
11.75 - s+=frame->saveToDir ();
11.76 -
11.77 - // save names of flags set
11.78 - s+=standardFlags->saveToDir(tmpdir,prefix,0);
11.79 -
11.80 - // Save FloatImages
11.81 - for (int i=0; i<floatimage.size(); ++i)
11.82 - s+=floatimage.at(i)->saveToDir (tmpdir,prefix);
11.83 -*/
11.84 -
11.85 - // save note
11.86 - if (!note.isEmpty() )
11.87 - s+=note.saveToDir();
11.88 -
11.89 - // Save branches
11.90 - int i=0;
11.91 - TreeItem *ti=getBranchNum(i);
11.92 - while (ti)
11.93 - {
11.94 - s+=getBranchNum(i)->saveToDir(tmpdir,prefix,offset);
11.95 - i++;
11.96 - ti=getBranchNum(i);
11.97 - }
11.98 -
11.99 -
11.100 - /*
11.101 - // Save XLinks
11.102 - QString ol; // old link
11.103 - QString cl; // current link
11.104 - for (int i=0; i<xlink.size(); ++i)
11.105 - {
11.106 - cl=xlink.at(i)->saveToDir();
11.107 - if (cl!=ol)
11.108 - {
11.109 - s+=cl;
11.110 - ol=cl;
11.111 - } else
11.112 - {
11.113 - qWarning (QString("Ignoring of duplicate xLink in %1").arg(getHeading()));
11.114 - }
11.115 - }
11.116 - */
11.117 -
11.118 - decIndent();
11.119 - s+=endElement ("mapcenter");
11.120 - return s;
11.121 -}
11.122 -
11.123 -BranchObj* MapCenterItem::createMapObj(QGraphicsScene *scene)
11.124 -{
11.125 - // Initialize MapCenterObj, order of things is important...
11.126 - MapCenterObj* mco=new MapCenterObj(scene);
11.127 - lmo=mco;
11.128 - mco->setParObj(NULL);
11.129 - mco->setModel (model);
11.130 - mco->setTreeItem (this);
11.131 - mco->setDefAttr(BranchObj::NewBranch);
11.132 -
11.133 - initLMO();
11.134 -
11.135 - if (!getHeading().isEmpty() )
11.136 - {
11.137 - mco->updateData(); //FIXME-3 better call model->emitDataHasChanged(treeItem);
11.138 - mco->setColor (headingColor);
11.139 - }
11.140 -
11.141 - //mco->updateLink(); //FIXME-3
11.142 -
11.143 - return mco;
11.144 -}
11.145 -
11.146 -
12.1 --- a/mapcenteritem.h Wed May 20 15:40:14 2009 +0000
12.2 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000
12.3 @@ -1,17 +0,0 @@
12.4 -#ifndef MAPCENTERITEM_H
12.5 -#define MAPCENTERITEM_H
12.6 -
12.7 -#include "branchitem.h"
12.8 -
12.9 -
12.10 -class MapCenterItem:public BranchItem
12.11 -{
12.12 -public:
12.13 - MapCenterItem(const QList<QVariant> &data, TreeItem *parent = 0);
12.14 - virtual ~MapCenterItem();
12.15 -
12.16 - QString saveToDir (const QString &tmpdir,const QString &prefix, const QPointF& offset);
12.17 - virtual BranchObj* createMapObj (QGraphicsScene *scene);
12.18 -};
12.19 -
12.20 -#endif
13.1 --- a/mapcenterobj.cpp Wed May 20 15:40:14 2009 +0000
13.2 +++ b/mapcenterobj.cpp Tue May 26 11:23:44 2009 +0000
13.3 @@ -19,13 +19,6 @@
13.4 init();
13.5 }
13.6
13.7 -MapCenterObj::MapCenterObj(QGraphicsScene* s,VymModel *m) : BranchObj (s)
13.8 -{
13.9 -// cout << "Const MapCenterObj canvas="<<s<<"\n";
13.10 - model=m;
13.11 - init();
13.12 -}
13.13 -
13.14 MapCenterObj::~MapCenterObj()
13.15 {
13.16 // cout << "Destr MapCenterObj\n";
13.17 @@ -45,41 +38,11 @@
13.18 // TODO this should be done in TextObj later...
13.19 //QFont font ("Sans Serif,16,-1,5,50,0,0,0,0,0");
13.20 //heading->setFont(font);
13.21 - //FIXME-2 no treeitem yet: setDefAttr(MovedBranch);
13.22 + //FIXME-2 no treeitem yet: setDefAttr(MovedBranch); and already in BI::createMapObj ?!?
13.23
13.24 frame->setFrameType (FrameObj::Rectangle);
13.25 }
13.26
13.27 -void MapCenterObj::move (double x, double y)
13.28 -{
13.29 - BranchObj::move(x,y);
13.30 -}
13.31 -
13.32 -void MapCenterObj::move (QPointF absPos)
13.33 -{
13.34 - BranchObj::move(absPos);
13.35 -}
13.36 -
13.37 -void MapCenterObj::moveBy (double x, double y)
13.38 -{
13.39 - BranchObj::moveBy(x,y);
13.40 -}
13.41 -
13.42 -void MapCenterObj::moveAll (double x, double y)
13.43 -{
13.44 - // Get rel. position
13.45 - double dx=x-absPos.x();
13.46 - double dy=y-absPos.y();
13.47 -
13.48 - // Move myself and branches
13.49 - moveAllBy (dx,dy);
13.50 -}
13.51 -
13.52 -void MapCenterObj::moveAllBy (double dx, double dy)
13.53 -{
13.54 - // Move myself and children
13.55 - BranchObj::moveBy(dx,dy);
13.56 -}
13.57
13.58 void MapCenterObj::updateLink()
13.59 {
14.1 --- a/mapcenterobj.h Wed May 20 15:40:14 2009 +0000
14.2 +++ b/mapcenterobj.h Tue May 26 11:23:44 2009 +0000
14.3 @@ -16,15 +16,9 @@
14.4 public:
14.5 MapCenterObj ();
14.6 MapCenterObj (QGraphicsScene *);
14.7 - MapCenterObj (QGraphicsScene *, VymModel *);
14.8 ~MapCenterObj ();
14.9 void clear();
14.10 void init();
14.11 - virtual void move (double,double);
14.12 - virtual void move (QPointF absPos);
14.13 - virtual void moveBy (double,double);
14.14 - virtual void moveAll (double,double);
14.15 - virtual void moveAllBy (double,double);
14.16 virtual void updateLink();
14.17 virtual void updateRelPositions();
14.18 };
15.1 --- a/mapeditor.cpp Wed May 20 15:40:14 2009 +0000
15.2 +++ b/mapeditor.cpp Tue May 26 11:23:44 2009 +0000
15.3 @@ -560,7 +560,7 @@
15.4 }
15.5 BranchObj *bo=model->getSelectedBranchObj();
15.6 BranchItem *bi=model->getSelectedBranchItem();
15.7 - if (bo) //FIXME-3
15.8 + if (bo)
15.9 {
15.10 model->setSelectionBlocked(true);
15.11
15.12 @@ -680,14 +680,13 @@
15.13 QPointF p = mapToScene(e->pos());
15.14 TreeItem *ti=findMapItem (p, NULL);
15.15 LinkableMapObj* lmo=NULL;
15.16 - if (ti) lmo=ti->getLMO(); //FIXME-2 get rid of lmo...
15.17 + if (ti) lmo=ti->getLMO(); //FIXME-3 get rid of lmo...
15.18
15.19 e->accept();
15.20
15.21 //Take care of system flags _or_ modifier modes
15.22 //
15.23 - if (lmo && (typeid(*lmo)==typeid(BranchObj) ||
15.24 - typeid(*lmo)==typeid(MapCenterObj) ))
15.25 + if (lmo && ti->isBranchLikeType() )
15.26 {
15.27 QString foname=((BranchObj*)lmo)->getSystemFlagName(p);
15.28 if (!foname.isEmpty())
15.29 @@ -866,27 +865,23 @@
15.30 if ( (e->modifiers()==Qt::ShiftModifier) && dst && ( dst != fio->getParObj())
15.31 )
15.32 {
15.33 - if (typeid(*fio) == typeid(FloatImageObj) )
15.34 - {
15.35 + // Also save the move which was done so far
15.36 + QString pold=qpointfToString(movingObj_orgRelPos);
15.37 + QString pnow=qpointfToString(fio->getRelPos());
15.38 + model->saveState(
15.39 + fio->getTreeItem(), // FIXME-3
15.40 + "moveRel "+pold,
15.41 + fio->getTreeItem(),
15.42 + "moveRel "+pnow,
15.43 + QString("Move %1 to relative position %2").arg(model->getObjectName(fio)).arg(pnow));
15.44 + fio->getParObj()->requestReposition();
15.45 + model->reposition();
15.46
15.47 - // Also save the move which was done so far
15.48 - QString pold=qpointfToString(movingObj_orgRelPos);
15.49 - QString pnow=qpointfToString(fio->getRelPos());
15.50 - model->saveState(
15.51 - fio->getTreeItem(), // FIXME-3
15.52 - "moveRel "+pold,
15.53 - fio->getTreeItem(),
15.54 - "moveRel "+pnow,
15.55 - QString("Move %1 to relative position %2").arg(model->getObjectName(fio)).arg(pnow));
15.56 - fio->getParObj()->requestReposition();
15.57 - model->reposition();
15.58 + model->linkFloatImageTo (model->getSelectString(dst));
15.59 + //movingObj=lmosel;
15.60 + //movingObj_orgRelPos=lmosel->getRelPos();
15.61
15.62 - model->linkFloatImageTo (model->getSelectString(dst));
15.63 - //movingObj=lmosel;
15.64 - //movingObj_orgRelPos=lmosel->getRelPos();
15.65 -
15.66 - model->reposition();
15.67 - }
15.68 + model->reposition();
15.69 }
15.70 } else
15.71 { // selection != a FloatObj
15.72 @@ -894,7 +889,9 @@
15.73 {
15.74 // Move MapCenter
15.75 if (e->buttons()== Qt::LeftButton && e->modifiers()==Qt::ShiftModifier)
15.76 - ((MapCenterObj*)lmosel)->moveAll(p.x() -movingObj_start.x(), p.y()-movingObj_start.y() );
15.77 + ((BranchObj*)lmosel)->moveBy(
15.78 + QPointF(p.x() -movingObj_start.x(),
15.79 + p.y()-movingObj_start.y()) );
15.80 else
15.81 lmosel->move (p.x() -movingObj_start.x(), p.y()-movingObj_start.y() );
15.82 model->updateRelPositions();
15.83 @@ -1051,7 +1048,7 @@
15.84 }
15.85 }
15.86
15.87 - if (seli->getType() == TreeItem::Branch )
15.88 + if (seli->isBranchLikeType() ) //(seli->getType() == TreeItem::Branch )
15.89 { // A branch was moved
15.90 LinkableMapObj* lmosel=NULL; //FIXME-2 get rid of lmosel
15.91 lmosel=seli->getLMO();
15.92 @@ -1063,7 +1060,7 @@
15.93 lmosel->unsetParObjTmp();
15.94
15.95 // For Redo we may need to save original selection
15.96 - QString preSelStr=model->getSelectString(lmosel);
15.97 + QString preSelStr=model->getSelectString(seli);
15.98
15.99 copyingObj=false;
15.100 if (dsti)
16.1 --- a/ornamentedobj.cpp Wed May 20 15:40:14 2009 +0000
16.2 +++ b/ornamentedobj.cpp Tue May 26 11:23:44 2009 +0000
16.3 @@ -62,6 +62,8 @@
16.4
16.5 void OrnamentedObj::setLinkColor()
16.6 {
16.7 + VymModel *model=treeItem->getModel();
16.8 + if (!model) return;
16.9 if (model->getMapLinkColorHint()==HeadingColor)
16.10 LinkableMapObj::setLinkColor (heading->getColor());
16.11 else
16.12 @@ -261,7 +263,7 @@
16.13 }
16.14 */
16.15
16.16 -QString OrnamentedObj::getOrnXMLAttr() //FIXME-2
16.17 +QString OrnamentedObj::getOrnXMLAttr() //FIXME-2 still needed?
16.18 {
16.19 QString posAttr;
16.20
16.21 @@ -271,7 +273,8 @@
16.22 attribut("absPosY",QString().setNum(absPos.y()));
16.23 else
16.24 {
16.25 - if (treeItem->depth()==1 || typeid (*this)==typeid (FloatImageObj))
16.26 + /* FIXME-2
16.27 + if (treeItem->depth()==1 || typid (*this)==typid (FloatImageObj))
16.28 {
16.29 if (relPos.x()==0 && relPos.y()==0)
16.30 setRelPos();
16.31 @@ -280,6 +283,7 @@
16.32 attribut("relPosY",QString().setNum(relPos.y()));
16.33 } else
16.34 posAttr="";
16.35 + */
16.36 }
16.37
16.38 /* FIXME-2 QString hideExpAttr;
17.1 --- a/selection.cpp Wed May 20 15:40:14 2009 +0000
17.2 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000
17.3 @@ -1,189 +0,0 @@
17.4 -#include <typeinfo>
17.5 -#include <iostream>
17.6 -using namespace std;
17.7 -
17.8 -#include "selection.h"
17.9 -
17.10 -#include "mainwindow.h"
17.11 -#include "vymmodel.h"
17.12 -
17.13 -
17.14 -
17.15 -extern Main *mainWindow;
17.16 -
17.17 -Selection::Selection()
17.18 -{
17.19 - blocked=false;
17.20 - model=NULL;
17.21 -}
17.22 -
17.23 -Selection::~Selection()
17.24 -{
17.25 -}
17.26 -
17.27 -void Selection::setModel (VymModel *m)
17.28 -{
17.29 - model=m;
17.30 -}
17.31 -
17.32 -void Selection::update() // FIXME-2 VM emit signal in VM instead and get rid of this
17.33 -{
17.34 -/*
17.35 - QRectF bbox;
17.36 - //int w=0;
17.37 - for (int i=0; i< selectList.count(); ++i)
17.38 - {
17.39 - bbox=selectList.at(i)->getBBox();
17.40 - selboxList.at(i)->setRect (
17.41 - bbox.x()-w,bbox.y()-w,
17.42 - bbox.width()+2*w, bbox.height()+2*w);
17.43 - selboxList.at(i)->setPen (color);
17.44 - selboxList.at(i)->setBrush (color);
17.45 - }
17.46 -*/
17.47 -}
17.48 -bool Selection::select(LinkableMapObj *lmo)// FIXME-2 VM emit signal in VM instead and get rid of this
17.49 -
17.50 -{
17.51 - return model->select (lmo);
17.52 - /*
17.53 - if (!selectList.isEmpty()) unselect();
17.54 - selectList.append (lmo);
17.55 - lmo->select();
17.56 - update();
17.57 - mainWindow->updateSatellites (model);
17.58 - cout << "Sel::select lmo e\n";
17.59 - return true;
17.60 - */
17.61 -}
17.62 -
17.63 -bool Selection::select (const QString &s)// FIXME-2 VM emit signal in VM instead and get rid of this
17.64 -
17.65 -{
17.66 - return model->select (s);
17.67 - /*
17.68 - cout << "Sel::select s=\n";
17.69 - LinkableMapObj *lmo=model->findObjBySelect(s);
17.70 -
17.71 - // Finally select the found object
17.72 - if (lmo)
17.73 - {
17.74 - unselect();
17.75 - select (lmo);
17.76 - return true;
17.77 - }
17.78 - return false;
17.79 - */
17.80 -}
17.81 -
17.82 -bool Selection::reselect () // TODO no multiselections yet
17.83 -{
17.84 - if (!lastSelectList.isEmpty())
17.85 - {
17.86 - select (lastSelectList.first());
17.87 - return true;
17.88 - }
17.89 - return false;
17.90 -
17.91 -}
17.92 -
17.93 -void Selection::unselect()
17.94 -{
17.95 - model->unselect();
17.96 -}
17.97 -
17.98 -bool Selection::isBlocked()
17.99 -{
17.100 - return blocked;
17.101 -}
17.102 -
17.103 -void Selection::block()
17.104 -{
17.105 - blocked=true;
17.106 -}
17.107 -
17.108 -void Selection::unblock()
17.109 -{
17.110 - blocked=false;
17.111 -}
17.112 -
17.113 -bool Selection::isEmpty()
17.114 -{
17.115 - return selectList.isEmpty();
17.116 -}
17.117 -
17.118 -/*
17.119 -uint Selection::count()
17.120 -{
17.121 - return selectList.count();
17.122 -}
17.123 -*/
17.124 -
17.125 -/*
17.126 -Selection::Type Selection::type() // TODO no multiselections yet
17.127 -{
17.128 - if (!selectList.isEmpty())
17.129 - {
17.130 - LinkableMapObj *sel=selectList.first();
17.131 - if (typeid (*sel)==typeid (BranchObj)) return Branch;
17.132 - if (typeid (*sel)==typeid (MapCenterObj)) return MapCenter;
17.133 - if (typeid (*sel)==typeid (FloatImageObj)) return FloatImage;
17.134 - }
17.135 - return Undefined;
17.136 -}
17.137 -*/
17.138 -
17.139 -/*
17.140 -LinkableMapObj* Selection::first()
17.141 -{
17.142 - if (!selectList.isEmpty())
17.143 - return selectList.first();
17.144 - else
17.145 - return NULL;
17.146 -}
17.147 -
17.148 -LinkableMapObj* Selection::single()
17.149 -{
17.150 - if (selectList.count() == 1)
17.151 - return selectList.first();
17.152 - else
17.153 - return NULL;
17.154 -}
17.155 -
17.156 -TreeItem* Selection::getBranchItem()
17.157 -{
17.158 - BranchObj* bo=getBranch();
17.159 - if (bo) return bo->getTreeItem(); // VM get directly from treemodl
17.160 - return NULL;
17.161 -}
17.162 -
17.163 -QModelIndex Selection::getBranchIndex()
17.164 -{
17.165 - return model->getSelectionModel()->selectedIndexes().first(); // TODO no multiselections yet
17.166 -
17.167 -}
17.168 -*/
17.169 -
17.170 -FloatImageObj* Selection::getFloatImage()
17.171 -{
17.172 - if (!selectList.isEmpty())
17.173 - {
17.174 - LinkableMapObj *sel=selectList.first();
17.175 - if (typeid (*sel)==typeid (FloatImageObj))
17.176 - return (FloatImageObj*)sel;
17.177 - }
17.178 - return NULL;
17.179 -}
17.180 -
17.181 -QString Selection::getSelectString() // FIXME-2 VM this is also in VM ?! clean up here...
17.182 -// TODO no multiselections yet
17.183 -{
17.184 - if (selectList.count()==1)
17.185 - {
17.186 - return model->getSelectString (selectList.first() );
17.187 - }
17.188 - else
17.189 - return"";
17.190 -}
17.191 -
17.192 -
18.1 --- a/selection.h Wed May 20 15:40:14 2009 +0000
18.2 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000
18.3 @@ -1,56 +0,0 @@
18.4 -#ifndef SELECTION_H
18.5 -#define SELECTION_H
18.6 -
18.7 -#include <QString>
18.8 -#include <QList>
18.9 -#include <QGraphicsScene>
18.10 -#include <QItemSelectionModel>
18.11 -
18.12 -#include "treeitem.h"
18.13 -
18.14 -class BranchObj;
18.15 -class FloatImageObj;
18.16 -class MapCenterObj;
18.17 -class LinkableMapObj;
18.18 -class VymModel;
18.19 -
18.20 -
18.21 -class Selection
18.22 -{
18.23 -public:
18.24 - enum Type {Undefined,Branch,MapCenter,FloatImage};
18.25 - Selection ();
18.26 - ~Selection();
18.27 - void setModel (VymModel *);
18.28 - void update();
18.29 - bool select (LinkableMapObj*);
18.30 - bool select (const QString &);
18.31 - bool reselect ();
18.32 - void unselect ();
18.33 - bool isBlocked ();
18.34 - void block();
18.35 - void unblock();
18.36 - bool isEmpty();
18.37 -// uint count();
18.38 -// Type type();
18.39 -// LinkableMapObj * first(); // first in selection list
18.40 -// LinkableMapObj * single(); // NULL, if multiple selected
18.41 -// BranchObj* getBranch();
18.42 -// TreeItem* getBranchItem();
18.43 -// QModelIndex getBranchIndex(); //!< Returns index of first selected branch or mapcenter
18.44 - FloatImageObj* getFloatImage();
18.45 -
18.46 - QString getSelectString();
18.47 -
18.48 -private:
18.49 - QList <LinkableMapObj*> selectList;
18.50 - QList <LinkableMapObj*> lastSelectList;
18.51 -
18.52 - VymModel *model;
18.53 -
18.54 - QColor color;
18.55 - bool blocked; //!< if true, no new selection possible
18.56 -};
18.57 -
18.58 -#endif
18.59 -
19.1 --- a/treeitem.cpp Wed May 20 15:40:14 2009 +0000
19.2 +++ b/treeitem.cpp Tue May 26 11:23:44 2009 +0000
19.3 @@ -5,7 +5,6 @@
19.4
19.5 #include "branchobj.h"
19.6 #include "branchitem.h"
19.7 -#include "mapcenteritem.h"
19.8 #include "vymmodel.h"
19.9
19.10 using namespace std;
19.11 @@ -14,10 +13,14 @@
19.12
19.13 TreeItem::TreeItem(const QList<QVariant> &data, TreeItem *parent):MapItem()
19.14 {
19.15 - //cout << "Constructor TreeItem "<<endl;
19.16 + //cout << "Constructor TreeItem this="<<this<<" parent="<<parent<<endl;
19.17 init();
19.18 parentItem = parent;
19.19 itemData = data;
19.20 +
19.21 + rootItem=this;
19.22 + if (parentItem )
19.23 + rootItem=parentItem->rootItem;
19.24 }
19.25
19.26 TreeItem::~TreeItem()
19.27 @@ -30,7 +33,7 @@
19.28 switch (ti->getType() )
19.29 {
19.30 case TreeItem::MapCenter:
19.31 - delete (MapCenterItem*)ti;
19.32 + delete (BranchItem*)ti;
19.33 break;
19.34 case TreeItem::Branch:
19.35 delete (BranchItem*)ti;
19.36 @@ -69,12 +72,6 @@
19.37 standardFlags.setMasterRow (standardFlagsMaster);
19.38 }
19.39
19.40 -QString TreeItem::saveToDir (const QString &tmpdir,const QString &prefix, const QPointF& offset)
19.41 -{
19.42 - cout<< "TreeItem::saveToDir called directly for ("<<getHeadingStd()<<"), instead of inherited type...\n";
19.43 - return QString();
19.44 -}
19.45 -
19.46
19.47 /*
19.48 void TreeItem::copy (OrnamentedObj* other) //FIXME-2 probably need deep copy of branches and data!
19.49 @@ -101,6 +98,7 @@
19.50 {
19.51 childItems.append(item);
19.52 item->parentItem=this;
19.53 + item->rootItem=rootItem;
19.54 item->setModel (model);
19.55
19.56 if (item->type == Branch || item->type ==MapCenter)
20.1 --- a/treeitem.h Wed May 20 15:40:14 2009 +0000
20.2 +++ b/treeitem.h Tue May 26 11:23:44 2009 +0000
20.3 @@ -25,10 +25,6 @@
20.4 ~TreeItem();
20.5 void init();
20.6
20.7 - virtual QString saveToDir (const QString &tmpdir=QString(),const
20.8 - QString &prefix=QString(), const QPointF& offset=QPointF());
20.9 -
20.10 -
20.11 // General housekeeping
20.12 virtual void setModel (VymModel *m);
20.13 virtual VymModel* getModel();
20.14 @@ -166,6 +162,10 @@
20.15 QList<TreeItem*> childItems;
20.16 QList<QVariant> itemData;
20.17 TreeItem *parentItem;
20.18 +
20.19 + /*! Set rootItem (does not change, needed for quick check
20.20 + if some branch is mapCenter */
20.21 + TreeItem *rootItem;
20.22
20.23 int branchOffset;
20.24 int branchCounter;
21.1 --- a/treemodel.cpp Wed May 20 15:40:14 2009 +0000
21.2 +++ b/treemodel.cpp Tue May 26 11:23:44 2009 +0000
21.3 @@ -106,7 +106,7 @@
21.4 return rootItem->columnCount();
21.5 }
21.6
21.7 -BranchItem* TreeModel::next(BranchItem* ¤t, BranchItem* &previous, int &d0)
21.8 +BranchItem* TreeModel::next(BranchItem* ¤t, BranchItem* &previous, BranchItem* start)
21.9 {
21.10 // Walk through map beginning at current with previous==0
21.11 // Start at root, if current==NULL
21.12 @@ -115,8 +115,8 @@
21.13 // Are we just beginning to walk the map?
21.14 if (!previous)
21.15 {
21.16 + if (!start) start=current;
21.17 previous=current;
21.18 - d0=current->depth();
21.19 current=current->getFirstBranch();
21.20 return current;
21.21 }
21.22 @@ -138,7 +138,8 @@
21.23 // turn around and go up again
21.24 }
21.25
21.26 - // Coming from below,
21.27 + // Coming from below
21.28 +
21.29 // Trying to go down again to siblings
21.30
21.31 BranchItem *sibling=current->getBranchNum (previous->num()+1);
21.32 @@ -151,6 +152,9 @@
21.33 return current;
21.34 }
21.35
21.36 + // If we only needed to go through subtree, we are done now
21.37 + if (start==current) return NULL;
21.38 +
21.39 // Go up and try to find siblings of current
21.40 previous=current;
21.41 current=(BranchItem*)current->parent();
21.42 @@ -159,27 +163,11 @@
21.43 if (!current) return current;
21.44
21.45 while (current && current->depth() < previous->depth() )
21.46 - next (current,previous,d0);
21.47 + current=next (current,previous,start);
21.48
21.49 return current;
21.50 }
21.51
21.52 -/*
21.53 -bool TreeModel::insertRows ( int row, int count, const QModelIndex & parent)
21.54 -{
21.55 - std::cout << "TreeModel insertRows()\n";
21.56 - int last=row+count-1;
21.57 - beginInsertRows (parent,row,last);
21.58 -
21.59 - for (int i=row; i<=last; i++)
21.60 - {
21.61 - std::cout << "TreeModel::insertRows inserting i="<<i<<std::endl;
21.62 - }
21.63 - endInsertRows ();
21.64 - return true;
21.65 -}
21.66 -*/
21.67 -
21.68 bool TreeModel::removeRows ( int row, int count, const QModelIndex & parent)
21.69 {
21.70 int last=row+count-1;
22.1 --- a/treemodel.h Wed May 20 15:40:14 2009 +0000
22.2 +++ b/treemodel.h Tue May 26 11:23:44 2009 +0000
22.3 @@ -28,12 +28,8 @@
22.4 int rowCount(const QModelIndex &parent = QModelIndex()) const;
22.5 int columnCount(const QModelIndex &parent = QModelIndex()) const;
22.6
22.7 - BranchItem* next(BranchItem* ¤t, BranchItem* &previous, int &d0);
22.8 + BranchItem* next(BranchItem* ¤t, BranchItem* &previous, BranchItem* start=NULL);
22.9
22.10 -/*
22.11 - bool insertRows ( int row, int count,
22.12 - const QModelIndex & parent = QModelIndex() );
22.13 -*/
22.14 bool removeRows ( int row, int count,
22.15 const QModelIndex & parent = QModelIndex() );
22.16
23.1 --- a/version.h Wed May 20 15:40:14 2009 +0000
23.2 +++ b/version.h Tue May 26 11:23:44 2009 +0000
23.3 @@ -7,7 +7,7 @@
23.4 #define __VYM_VERSION "1.13.0"
23.5 //#define __VYM_CODENAME "Codename: RC-1"
23.6 #define __VYM_CODENAME "Codename: development version, not for production!"
23.7 -#define __VYM_BUILD_DATE "2009-05-18"
23.8 +#define __VYM_BUILD_DATE "2009-05-26"
23.9
23.10
23.11 bool checkVersion(const QString &);
24.1 --- a/vym.pro Wed May 20 15:40:14 2009 +0000
24.2 +++ b/vym.pro Tue May 26 11:23:44 2009 +0000
24.3 @@ -64,7 +64,6 @@
24.4 linkablemapobj.h \
24.5 mainwindow.h \
24.6 mapcenterobj.h \
24.7 - mapcenteritem.h \
24.8 mapeditor.h \
24.9 mapitem.h \
24.10 mapobj.h \
24.11 @@ -74,7 +73,6 @@
24.12 ornamentedobj.h \
24.13 parser.h \
24.14 process.h \
24.15 - selection.h \
24.16 showtextdialog.h\
24.17 simplescripteditor.h\
24.18 texteditor.h \
24.19 @@ -126,7 +124,6 @@
24.20 linkablemapobj.cpp \
24.21 main.cpp \
24.22 mainwindow.cpp \
24.23 - mapcenteritem.cpp \
24.24 mapcenterobj.cpp \
24.25 mapeditor.cpp \
24.26 mapitem.cpp \
24.27 @@ -137,7 +134,6 @@
24.28 ornamentedobj.cpp \
24.29 parser.cpp \
24.30 process.cpp \
24.31 - selection.cpp \
24.32 showtextdialog.cpp \
24.33 simplescripteditor.cpp \
24.34 texteditor.cpp \
25.1 --- a/vymmodel.cpp Wed May 20 15:40:14 2009 +0000
25.2 +++ b/vymmodel.cpp Tue May 26 11:23:44 2009 +0000
25.3 @@ -5,7 +5,6 @@
25.4
25.5 #include "treeitem.h"
25.6 #include "branchitem.h"
25.7 -#include "mapcenteritem.h"
25.8 #include "editxlinkdialog.h"
25.9 #include "exports.h"
25.10 #include "exportxhtmldialog.h"
25.11 @@ -15,8 +14,6 @@
25.12 #include "mapcenterobj.h"
25.13 #include "misc.h"
25.14 #include "parser.h"
25.15 -#include "selection.h"
25.16 -
25.17
25.18 #include "warningdialog.h"
25.19 #include "xml-freemind.h"
25.20 @@ -121,6 +118,7 @@
25.21
25.22 // selections
25.23 selModel=NULL;
25.24 + selectionBlocked=false;
25.25
25.26 // find routine
25.27 findCurrent=NULL;
25.28 @@ -245,9 +243,9 @@
25.29 s+=saveTreeToDir(tmpdir,prefix,writeflags,offset);
25.30 else
25.31 {
25.32 - if (saveSel->getType()==TreeItem::Branch)
25.33 + if (saveSel->isBranchLikeType())
25.34 // Save Subtree
25.35 - s+=saveSel->saveToDir(tmpdir,prefix,offset);
25.36 + s+=((BranchItem*)saveSel)->saveToDir(tmpdir,prefix,offset);
25.37 //FIXME-2 else if (saveSel->getType()==TreeItem::Image)
25.38 // Save image
25.39 //s+=((FloatImageObj*)(saveSel))->saveToDir(tmpdir,prefix);
25.40 @@ -272,7 +270,7 @@
25.41 QString s;
25.42
25.43 for (int i=0; i<rootItem->branchCount(); i++)
25.44 - s+=((MapCenterItem*)rootItem->getBranchNum(i))->saveToDir (tmpdir,prefix,offset);
25.45 + s+=rootItem->getBranchNum(i)->saveToDir (tmpdir,prefix,offset);
25.46 return s;
25.47 }
25.48
25.49 @@ -465,7 +463,7 @@
25.50 if ( ok )
25.51 {
25.52 reposition(); // FIXME-2 VM reposition the view instead...
25.53 - selection.update();
25.54 + updateSelection();
25.55 if (lmode==NewMap)
25.56 {
25.57 mapDefault=false;
25.58 @@ -585,7 +583,7 @@
25.59 makeSubDirs (fileDir);
25.60
25.61 QString saveFile;
25.62 - if (savemode==CompleteMap || selection.isEmpty())
25.63 + if (savemode==CompleteMap || selModel->selection().isEmpty())
25.64 {
25.65 // Save complete map
25.66 saveFile=saveToDir (fileDir,mapName+"-",true,QPointF(),NULL);
25.67 @@ -770,7 +768,8 @@
25.68
25.69 void VymModel::saveFloatImage ()
25.70 {
25.71 - FloatImageObj *fio=selection.getFloatImage();
25.72 + //FIXME-1 FloatImageObj *fio=selection.getFloatImage();
25.73 + FloatImageObj *fio=NULL;
25.74 if (fio)
25.75 {
25.76 QFileDialog *fd=new QFileDialog( NULL);
25.77 @@ -998,15 +997,15 @@
25.78 QString s;
25.79 if (!lmo) return QString("Error: NULL has no name!");
25.80
25.81 - if ((typeid(*lmo) == typeid(BranchObj) ||
25.82 - typeid(*lmo) == typeid(MapCenterObj)))
25.83 + TreeItem *ti=lmo->getTreeItem();
25.84 + if (ti->isBranchLikeType() )
25.85 {
25.86
25.87 s=lmo->getTreeItem()->getHeading();
25.88 if (s=="") s="unnamed";
25.89 return QString("branch (%1)").arg(s);
25.90 }
25.91 - if ((typeid(*lmo) == typeid(FloatImageObj) ))
25.92 + if (ti->getType()==TreeItem::Image)
25.93 return QString ("floatimage [%1]").arg(((FloatImageObj*)lmo)->getOriginalFilename());
25.94 return QString("Unknown type has no name!");
25.95 }
25.96 @@ -1180,8 +1179,7 @@
25.97
25.98 mainWindow->updateHistory (undoSet);
25.99 updateActions();
25.100 - selection.update();
25.101 - emitShowSelection();
25.102 + updateSelection();
25.103 }
25.104
25.105 bool VymModel::isUndoAvailable()
25.106 @@ -1487,12 +1485,11 @@
25.107 int c=0;
25.108 BranchItem *cur=NULL;
25.109 BranchItem *prev=NULL;
25.110 - int d;
25.111 - next(cur,prev,d);
25.112 + next(cur,prev);
25.113 while (cur)
25.114 {
25.115 c++;
25.116 - next(cur,prev,d);
25.117 + next(cur,prev);
25.118 }
25.119 return c;
25.120 }
25.121 @@ -1512,14 +1509,12 @@
25.122 emitDataHasChanged ( selbi); //FIXME-3 maybe emit signal from TreeItem?
25.123
25.124 reposition();
25.125 -// selection.update(); //FIXME-4
25.126 updateSelection();
25.127 }
25.128 }
25.129
25.130 BranchItem* VymModel::findText (QString s, bool cs)
25.131 {
25.132 - int d=0;
25.133 QTextDocument::FindFlags flags=0;
25.134 if (cs) flags=QTextDocument::FindCaseSensitively;
25.135
25.136 @@ -1530,7 +1525,7 @@
25.137 EOFind=false;
25.138 findCurrent=NULL;
25.139 findPrevious=NULL;
25.140 - next (findCurrent,findPrevious,d);
25.141 + next (findCurrent,findPrevious);
25.142 }
25.143 bool searching=true;
25.144 bool foundNote=false;
25.145 @@ -1564,7 +1559,7 @@
25.146 }
25.147 if (!foundNote)
25.148 {
25.149 - if (!next(findCurrent,findPrevious,d) )
25.150 + if (!next(findCurrent,findPrevious) )
25.151 EOFind=true;
25.152 }
25.153 //cout <<"still searching... "<<qPrintable( itFind->getHeading())<<endl;
25.154 @@ -1621,21 +1616,21 @@
25.155 QStringList VymModel::getURLs()
25.156 {
25.157 QStringList urls;
25.158 - BranchItem *cur=getSelectedBranchItem();
25.159 + BranchItem *selbi=getSelectedBranchItem();
25.160 + BranchItem *cur=selbi;
25.161 BranchItem *prev=NULL;
25.162 - int d=0;
25.163 - next (cur,prev,d);
25.164 while (cur)
25.165 {
25.166 if (!cur->getURL().isEmpty()) urls.append( cur->getURL());
25.167 - cur=next (cur,prev,d);
25.168 + cur=next (cur,prev,selbi);
25.169 }
25.170 return urls;
25.171 }
25.172
25.173 -void VymModel::linkFloatImageTo(const QString &dstString) // FIXME-2
25.174 -{
25.175 - FloatImageObj *fio=selection.getFloatImage();
25.176 +void VymModel::linkFloatImageTo(const QString &dstString) // FIXME-1
25.177 +{
25.178 + //FIXME-1 FloatImageObj *fio=selection.getFloatImage();
25.179 + FloatImageObj *fio=NULL;
25.180 if (fio)
25.181 {
25.182 TreeItem *dst=findBySelectString (dstString);
25.183 @@ -1645,7 +1640,7 @@
25.184 QString parString=getSelectString(dstPar);
25.185 QString fioPreSelectString=getSelectString(fio);
25.186 QString fioPreParentSelectString=getSelectString (fio->getParObj());
25.187 - // FIXME-2 ((BranchObj*)dst)->addFloatImage (fio);
25.188 + // FIXME-1 ((BranchObj*)dst)->addFloatImage (fio);
25.189 unselect();
25.190 // ((BranchObj*)(fio->getParObj()))->removeFloatImage (fio);
25.191 fio=((BranchObj*)dst)->getLastFloatImage();
25.192 @@ -1834,7 +1829,7 @@
25.193 );
25.194 updateActions();
25.195 reposition();
25.196 - // selection.update();
25.197 + // updateSelection();
25.198 // FIXME-3 VM needed? scene()->update();
25.199 }
25.200 }
25.201 @@ -1962,11 +1957,11 @@
25.202 */
25.203 }
25.204
25.205 -MapCenterItem* VymModel::createMapCenter()
25.206 -{
25.207 - MapCenterItem *mci=addMapCenter (QPointF (0,0) );
25.208 - select (mci);
25.209 - return mci;
25.210 +BranchItem* VymModel::createMapCenter()
25.211 +{
25.212 + BranchItem *newbi=addMapCenter (QPointF (0,0) );
25.213 + select (newbi);
25.214 + return newbi;
25.215 }
25.216
25.217 BranchItem* VymModel::createBranch()
25.218 @@ -1978,8 +1973,9 @@
25.219 return NULL;
25.220 }
25.221
25.222 -TreeItem* VymModel::createImage() //FIXME-2
25.223 -{
25.224 +TreeItem* VymModel::createImage() //FIXME-1
25.225 +{
25.226 + return NULL;
25.227 /*
25.228 BranchObj *bo=getSelectedBranch();
25.229 if (bo)
25.230 @@ -2002,26 +1998,25 @@
25.231 return ti;
25.232 }
25.233 }
25.234 - return NULL;
25.235 */
25.236 }
25.237
25.238 -MapCenterItem* VymModel::addMapCenter ()
25.239 -{
25.240 - MapCenterItem *mci=addMapCenter (contextPos);
25.241 +BranchItem* VymModel::addMapCenter ()
25.242 +{
25.243 + BranchItem *bi=addMapCenter (contextPos);
25.244 updateActions();
25.245 emitShowSelection();
25.246 saveState (
25.247 - mci,
25.248 + bi,
25.249 "delete()",
25.250 NULL,
25.251 QString ("addMapCenter (%1,%2)").arg (contextPos.x()).arg(contextPos.y()),
25.252 QString ("Adding MapCenter to (%1,%2)").arg (contextPos.x()).arg(contextPos.y())
25.253 );
25.254 - return mci;
25.255 + return bi;
25.256 }
25.257
25.258 -MapCenterItem* VymModel::addMapCenter(QPointF absPos)
25.259 +BranchItem* VymModel::addMapCenter(QPointF absPos) //FIXME-2 absPos not used in context menu?!
25.260 {
25.261
25.262 // Create TreeItem
25.263 @@ -2034,17 +2029,17 @@
25.264
25.265 QList<QVariant> cData;
25.266 cData << "VM:addMapCenter" << "undef"<<"undef";
25.267 - MapCenterItem *mci=new MapCenterItem (cData);
25.268 - mci->setHeading (QApplication::translate("Heading of mapcenter in new map", "New map"));
25.269 - rootItem->appendChild (mci);
25.270 + BranchItem *newbi=new BranchItem (cData);
25.271 + newbi->setHeading (QApplication::translate("Heading of mapcenter in new map", "New map"));
25.272 + rootItem->appendChild (newbi);
25.273
25.274 endInsertRows();
25.275 emit (layoutChanged() );
25.276
25.277 // Create MapObj
25.278 - BranchObj *newbo=mci->createMapObj(mapScene);
25.279 + newbi->createMapObj(mapScene);
25.280
25.281 - return mci;
25.282 + return newbi;
25.283 }
25.284
25.285 BranchItem* VymModel::addNewBranchInt(BranchItem *dst,int num) //FIXME-4 simplify...
25.286 @@ -2121,7 +2116,7 @@
25.287 QString ("Add new branch to %1").arg(getObjectName(selbi)));
25.288
25.289 reposition();
25.290 - // selection.update(); FIXME-3
25.291 + // updateSelection(); FIXME-3
25.292 latestAddedItem=newbi;
25.293 // In Network mode, the client needs to know where the new branch is,
25.294 // so we have to pass on this information via saveState.
25.295 @@ -2161,7 +2156,7 @@
25.296 QString ("Add branch before %1").arg(getObjectName(selbi)));
25.297
25.298 // FIXME-3 needed? reposition();
25.299 - // selection.update(); FIXME-3
25.300 + // updateSelection(); FIXME-3
25.301 }
25.302 }
25.303 //FIXME-3 needed? latestSelectionString=selection.getSelectString();
25.304 @@ -2172,6 +2167,10 @@
25.305 {
25.306 if (branch && dst)
25.307 {
25.308 + if (branch->depth()==0)
25.309 + {
25.310 + cout <<"VM::relinkBranch d=0 for "<<branch->getHeadingStd()<<endl;
25.311 + }
25.312 emit (layoutAboutToBeChanged() );
25.313 BranchItem *branchpi=(BranchItem*)branch->parent();
25.314 // Remove at current position
25.315 @@ -2191,7 +2190,9 @@
25.316 dst->insertBranch (pos,branch);
25.317 endInsertRows();
25.318
25.319 - branch->getLMO()->setParObj(dst->getLMO()); //FIXME-5 update parObj in View
25.320 + // reset parObj, fonts, frame, etc in related LMO or other view-objects
25.321 + branch->updateStyles();
25.322 +
25.323 emit (layoutChanged() );
25.324 reposition(); // both for moveUp/Down and relinking
25.325 select (branch);
25.326 @@ -2449,49 +2450,50 @@
25.327 }
25.328
25.329
25.330 -void VymModel::colorBranch (QColor c) //FIXME-2
25.331 -{
25.332 -/*
25.333 - BranchObj *bo=getSelectedBranch();
25.334 - if (bo)
25.335 +void VymModel::colorBranch (QColor c)
25.336 +{
25.337 + BranchItem *selbi=getSelectedBranchItem();
25.338 + if (selbi)
25.339 {
25.340 saveState(
25.341 - bo,
25.342 - QString ("colorBranch (\"%1\")").arg(bo->getColor().name()),
25.343 - bo,
25.344 + selbi,
25.345 + QString ("colorBranch (\"%1\")").arg(selbi->getHeadingColor().name()),
25.346 + selbi,
25.347 QString ("colorBranch (\"%1\")").arg(c.name()),
25.348 - QString("Set color of %1 to %2").arg(getObjectName(bo)).arg(c.name())
25.349 + QString("Set color of %1 to %2").arg(getObjectName(selbi)).arg(c.name())
25.350 );
25.351 - bo->setColor(c); // color branch
25.352 + selbi->setHeadingColor(c); // color branch
25.353 }
25.354 -*/
25.355 }
25.356
25.357 -void VymModel::colorSubtree (QColor c) //FIXME-2
25.358 -{
25.359 -/*
25.360 - BranchObj *bo=getSelectedBranch();
25.361 - if (bo)
25.362 +void VymModel::colorSubtree (QColor c)
25.363 +{
25.364 + BranchItem *selbi=getSelectedBranchItem();
25.365 + if (selbi)
25.366 {
25.367 saveStateChangingPart(
25.368 - bo,
25.369 - bo,
25.370 + selbi,
25.371 + selbi,
25.372 QString ("colorSubtree (\"%1\")").arg(c.name()),
25.373 - QString ("Set color of %1 and children to %2").arg(getObjectName(bo)).arg(c.name())
25.374 + QString ("Set color of %1 and children to %2").arg(getObjectName(selbi)).arg(c.name())
25.375 );
25.376 - bo->setColorSubtree (c); // color links, color children
25.377 + BranchItem *prev=NULL;
25.378 + BranchItem *cur=selbi;
25.379 + while (cur)
25.380 + {
25.381 + cur->setHeadingColor(c); // color links, color children
25.382 + cur=next (cur,prev,selbi);
25.383 + }
25.384 +
25.385 }
25.386 -*/
25.387 }
25.388
25.389 -QColor VymModel::getCurrentHeadingColor() //FIXME-2
25.390 -{
25.391 -/*
25.392 - BranchObj *bo=getSelectedBranch();
25.393 - if (bo) return bo->getColor();
25.394 -
25.395 +QColor VymModel::getCurrentHeadingColor()
25.396 +{
25.397 + BranchItem *selbi=getSelectedBranchItem();
25.398 + if (selbi) return selbi->getHeadingColor();
25.399 +
25.400 QMessageBox::warning(0,"Warning","Can't get color of heading,\nthere's no branch selected");
25.401 - */
25.402 return Qt::black;
25.403 }
25.404
25.405 @@ -2615,8 +2617,7 @@
25.406 bi->setVymLink(s);
25.407 reposition();
25.408 updateActions();
25.409 - //selection.update();
25.410 - emitShowSelection();
25.411 + //updateSelection();
25.412 }
25.413 }
25.414
25.415 @@ -2651,14 +2652,13 @@
25.416 QStringList VymModel::getVymLinks()
25.417 {
25.418 QStringList links;
25.419 - BranchItem *cur=getSelectedBranchItem();
25.420 + BranchItem *selbi=getSelectedBranchItem();
25.421 + BranchItem *cur=selbi;
25.422 BranchItem *prev=NULL;
25.423 - int d=0;
25.424 - next (cur,prev,d);
25.425 while (cur)
25.426 {
25.427 if (!cur->getVymLink().isEmpty()) links.append( cur->getVymLink());
25.428 - cur=next (cur,prev,d);
25.429 + cur=next (cur,prev,selbi);
25.430 }
25.431 return links;
25.432 }
25.433 @@ -3027,16 +3027,16 @@
25.434 LinkableMapObj *dst=findObjBySelect (s);
25.435 if (dst)
25.436 {
25.437 - if (typeid(*dst) == typeid(BranchObj) )
25.438 + if (typid(*dst) == typid(BranchObj) )
25.439 {
25.440 // Get number in parent
25.441 n=parser.parInt (ok,1);
25.442 if (ok)
25.443 {
25.444 selb->linkTo ((BranchObj*)(dst),n);
25.445 - selection.update();
25.446 + updateSelection();
25.447 }
25.448 - } else if (typeid(*dst) == typeid(MapCenterObj) )
25.449 + } else if (typid(*dst) == typid(MapCenterObj) )
25.450 {
25.451 selb->linkTo ((BranchObj*)(dst),-1);
25.452 // Get coordinates of mainbranch
25.453 @@ -3047,7 +3047,7 @@
25.454 if (ok)
25.455 {
25.456 selbi->move (x,y);
25.457 - selection.update();
25.458 + updateSelection();
25.459 }
25.460 }
25.461 }
25.462 @@ -3062,8 +3062,8 @@
25.463 LinkableMapObj *dst=findObjBySelect (s);
25.464 if (dst)
25.465 {
25.466 - if (typeid(*dst) == typeid(BranchObj) ||
25.467 - typeid(*dst) == typeid(MapCenterObj))
25.468 + if (typid(*dst) == typid(BranchObj) ||
25.469 + typid(*dst) == typid(MapCenterObj))
25.470 linkFloatImageTo (getSelectString(dst));
25.471 } else
25.472 parser.setError (Aborted,"Destination is not a branch");
25.473 @@ -3236,7 +3236,8 @@
25.474 /////////////////////////////////////////////////////////////////////
25.475 } else if (com=="saveImage")
25.476 {
25.477 - FloatImageObj *fio=selection.getFloatImage();
25.478 + //FIXME-2 FloatImageObj *fio=selection.getFloatImage();
25.479 + FloatImageObj* fio=NULL;
25.480 if (!fio)
25.481 {
25.482 parser.setError (Aborted,"Type of selection is not an image");
25.483 @@ -3879,9 +3880,10 @@
25.484 rootItem->getBranchObjNum(i)->reposition(); // for positioning heading
25.485 }
25.486
25.487 +/*
25.488 QPolygonF VymModel::shape(BranchObj *bo) //FIXME-4
25.489 {
25.490 -/*
25.491 + return QPolygonF ();
25.492 // Creating (arbitrary) shapes
25.493
25.494 QPolygonF p;
25.495 @@ -3911,9 +3913,10 @@
25.496 <<rb.bottomLeft()
25.497 <<QPointF (rb.bottomRight().x(), ra.bottomRight().y() ) ;
25.498 return p;
25.499 - */
25.500 }
25.501 -
25.502 +*/
25.503 +
25.504 +/*
25.505 void VymModel::moveAway(LinkableMapObj *lmo) //FIXME-5
25.506 {
25.507 // Autolayout:
25.508 @@ -3921,7 +3924,6 @@
25.509 // Move all branches and MapCenters away from lmo
25.510 // to avoid collisions
25.511
25.512 - /*
25.513 QPolygonF pA;
25.514 QPolygonF pB;
25.515
25.516 @@ -3941,8 +3943,8 @@
25.517 <<r.willIntersect
25.518 <<" minT="<<r.minTranslation<<endl<<endl;
25.519 }
25.520 - */
25.521 }
25.522 +*/
25.523
25.524 QPixmap VymModel::getPixmap()
25.525 {
25.526 @@ -3953,14 +3955,14 @@
25.527 pp.setRenderHints(mapEditor->renderHints());
25.528
25.529 // Don't print the visualisation of selection
25.530 - selection.unselect();
25.531 + unselect();
25.532
25.533 mapScene->render ( &pp,
25.534 QRectF(0,0,mapRect.width()+2,mapRect.height()+2),
25.535 QRectF(mapRect.x(),mapRect.y(),mapRect.width(),mapRect.height() ));
25.536
25.537 // Restore selection
25.538 - selection.reselect();
25.539 + reselect();
25.540
25.541 return pix;
25.542 }
25.543 @@ -4007,14 +4009,13 @@
25.544
25.545 BranchItem *cur=NULL;
25.546 BranchItem *prev=NULL;
25.547 - int d=0;
25.548 BranchObj *bo;
25.549 - next (cur,prev,d);
25.550 + next (cur,prev);
25.551 while (cur)
25.552 {
25.553 bo=(BranchObj*)(cur->getLMO() );
25.554 bo->setLinkStyle(bo->getDefLinkStyle());
25.555 - cur=next(cur,prev,d);
25.556 + cur=next(cur,prev);
25.557 }
25.558 reposition();
25.559 }
25.560 @@ -4036,14 +4037,13 @@
25.561 defLinkColor=col;
25.562 BranchItem *cur=NULL;
25.563 BranchItem *prev=NULL;
25.564 - int d=0;
25.565 BranchObj *bo;
25.566 - cur=next(cur,prev,d);
25.567 + cur=next(cur,prev);
25.568 while (cur)
25.569 {
25.570 bo=(BranchObj*)(cur->getLMO() );
25.571 bo->setLinkColor();
25.572 - next(cur,prev,d);
25.573 + next(cur,prev);
25.574 }
25.575 updateActions();
25.576 }
25.577 @@ -4053,14 +4053,13 @@
25.578 // called from setMapLinkColorHint(lch) or at end of parse
25.579 BranchItem *cur=NULL;
25.580 BranchItem *prev=NULL;
25.581 - int d=0;
25.582 BranchObj *bo;
25.583 - cur=next(cur,prev,d);
25.584 + cur=next(cur,prev);
25.585 while (cur)
25.586 {
25.587 bo=(BranchObj*)(cur->getLMO() );
25.588 bo->setLinkColor();
25.589 - cur=next(cur,prev,d);
25.590 + cur=next(cur,prev);
25.591 }
25.592 }
25.593
25.594 @@ -4078,14 +4077,13 @@
25.595 linkcolorhint=LinkableMapObj::HeadingColor;
25.596 BranchItem *cur=NULL;
25.597 BranchItem *prev=NULL;
25.598 - int d=0;
25.599 BranchObj *bo;
25.600 - cur=next(cur,prev,d);
25.601 + cur=next(cur,prev);
25.602 while (cur)
25.603 {
25.604 bo=(BranchObj*)(cur->getLMO() );
25.605 bo->setLinkColor();
25.606 - next(cur,prev,d);
25.607 + next(cur,prev);
25.608 }
25.609 }
25.610
25.611 @@ -4203,7 +4201,7 @@
25.612 QString("Move %1 to %2").arg(getObjectName(bo)).arg(ps));
25.613 bo->move(x,y);
25.614 reposition();
25.615 - selection.update();
25.616 + updateSelection();
25.617 }
25.618 }
25.619 */
25.620 @@ -4234,7 +4232,7 @@
25.621 ((OrnamentedObj*)bo)->move2RelPos (x,y);
25.622 reposition();
25.623 bo->updateLink();
25.624 - selection.update();
25.625 + updateSelection();
25.626 }
25.627 }
25.628 */
25.629 @@ -4294,7 +4292,7 @@
25.630 void VymModel::sendSelection()
25.631 {
25.632 if (netstate!=Server) return;
25.633 - sendData (QString("select (\"%1\")").arg(selection.getSelectString()) );
25.634 + sendData (QString("select (\"%1\")").arg(getSelectString()) );
25.635 }
25.636
25.637 void VymModel::newServer()
25.638 @@ -4522,15 +4520,12 @@
25.639
25.640 void VymModel::setSelectionBlocked (bool b)
25.641 {
25.642 - if (b)
25.643 - selection.block();
25.644 - else
25.645 - selection.unblock();
25.646 + selectionBlocked=b;
25.647 }
25.648
25.649 bool VymModel::isSelectionBlocked()
25.650 {
25.651 - return selection.isBlocked();
25.652 + return selectionBlocked;
25.653 }
25.654
25.655 bool VymModel::select ()
25.656 @@ -4582,12 +4577,13 @@
25.657
25.658 void VymModel::unselect()
25.659 {
25.660 + lastSelectString=getSelectString();
25.661 selModel->clearSelection();
25.662 }
25.663
25.664 void VymModel::reselect()
25.665 {
25.666 - selection.reselect();
25.667 + select (lastSelectString);
25.668 }
25.669
25.670 void VymModel::emitShowSelection()
25.671 @@ -4614,8 +4610,7 @@
25.672 {
25.673 if (selection.select(lmo))
25.674 {
25.675 - //selection.update();
25.676 - sendSelection (); // FIXME-4 VM use signal
25.677 + //updateSelection();
25.678 }
25.679 }
25.680
25.681 @@ -4623,8 +4618,7 @@
25.682 {
25.683 if (selection.select(lmo))
25.684 {
25.685 - //selection.update();
25.686 - sendSelection (); // FIXME-4 VM use signal
25.687 + //updateSelection();
25.688 }
25.689 }
25.690 */
25.691 @@ -4747,8 +4741,6 @@
25.692
25.693 void VymModel::selectUpperBranch()
25.694 {
25.695 - if (selection.isBlocked() ) return;
25.696 -
25.697 BranchItem *bi=getSelectedBranchItem();
25.698 if (bi && bi->isBranchLikeType())
25.699 selectAboveBranchInt();
25.700 @@ -4756,8 +4748,6 @@
25.701
25.702 void VymModel::selectLowerBranch()
25.703 {
25.704 - if (selection.isBlocked() ) return;
25.705 -
25.706 BranchItem *bi=getSelectedBranchItem();
25.707 if (bi && bi->isBranchLikeType())
25.708 selectBelowBranchInt();
25.709 @@ -4766,8 +4756,6 @@
25.710
25.711 void VymModel::selectLeftBranch()
25.712 {
25.713 - if (selection.isBlocked() ) return;
25.714 -
25.715 QItemSelection oldsel=selModel->selection();
25.716
25.717 BranchItem* par;
25.718 @@ -4806,8 +4794,6 @@
25.719
25.720 void VymModel::selectRightBranch()
25.721 {
25.722 - if (selection.isBlocked() ) return;
25.723 -
25.724 QItemSelection oldsel=selModel->selection();
25.725
25.726 BranchItem* par;
25.727 @@ -4854,9 +4840,7 @@
25.728 TreeItem *ti2=par->getFirstBranch();
25.729 if (ti2) {
25.730 select(ti2);
25.731 - selection.update();
25.732 - emitShowSelection();
25.733 - sendSelection();
25.734 + updateSelection();
25.735 }
25.736 }
25.737 }
25.738 @@ -4871,9 +4855,7 @@
25.739 TreeItem *ti2=par->getLastBranch();
25.740 if (ti2) {
25.741 select(ti2);
25.742 - selection.update();
25.743 - emitShowSelection();
25.744 - sendSelection();
25.745 + updateSelection();
25.746 }
25.747 }
25.748 }
25.749 @@ -4897,9 +4879,7 @@
25.750 par=ti->parent();
25.751 if (!par) return;
25.752 select(par);
25.753 - selection.update();
25.754 - emitShowSelection();
25.755 - sendSelection();
25.756 + updateSelection();
25.757 }
25.758 }
25.759
25.760 @@ -4969,7 +4949,8 @@
25.761
25.762 FloatImageObj* VymModel::getSelectedFloatImage()
25.763 {
25.764 - return selection.getFloatImage();
25.765 + //FIXME-2 return selection.getFloatImage();
25.766 + return NULL;
25.767 }
25.768
25.769 QString VymModel::getSelectString ()
26.1 --- a/vymmodel.h Wed May 20 15:40:14 2009 +0000
26.2 +++ b/vymmodel.h Tue May 26 11:23:44 2009 +0000
26.3 @@ -8,12 +8,10 @@
26.4 #include "mapcenterobj.h"
26.5 #include "mapeditor.h"
26.6 #include "parser.h"
26.7 -#include "selection.h"
26.8 #include "treeitem.h"
26.9 #include "treemodel.h"
26.10
26.11 class BranchItem;
26.12 -class MapCenterItem;
26.13 class MapEditor;
26.14
26.15 class VymModel : public TreeModel {
26.16 @@ -282,7 +280,7 @@
26.17 void sortChildren(); //!< Sort children lexically
26.18
26.19 // The create methods are used to quickly parse a XML file
26.20 - MapCenterItem* createMapCenter(); //!< Create and select MapCenter
26.21 + BranchItem* createMapCenter(); //!< Create and select MapCenter // FIXME-3 maybe join this also with createBranch
26.22 BranchItem* createBranch(); //!< Create and select Branch
26.23 TreeItem* createImage(); //!< Create and select image
26.24
26.25 @@ -290,9 +288,9 @@
26.26
26.27 Disclaimer: Still experimental, not fully supported yet.
26.28 */
26.29 - MapCenterItem* addMapCenter();
26.30 + BranchItem* addMapCenter();
26.31 private:
26.32 - MapCenterItem* addMapCenter(QPointF absPos);
26.33 + BranchItem* addMapCenter(QPointF absPos);
26.34
26.35 /*! \brief Add new branch
26.36
26.37 @@ -425,8 +423,8 @@
26.38 void reposition(); //!< Call reposition for all MCOs
26.39 void setHideTmpMode (TreeItem::HideTmpMode mode);
26.40
26.41 - QPolygonF shape(BranchObj *bo); //!< Returns arbitrary shape of subtree
26.42 - void moveAway (LinkableMapObj *lmo);//!< Autolayout: Move all out of the way
26.43 + //FIXME-5 QPolygonF shape(BranchObj *bo); //!< Returns arbitrary shape of subtree
26.44 + //FIXME-5 void moveAway (LinkableMapObj *lmo);//!< Autolayout: Move all out of the way
26.45
26.46 void emitNoteHasChanged (TreeItem *ti);
26.47 void emitDataHasChanged (TreeItem *ti);
26.48 @@ -539,7 +537,6 @@
26.49 // Selection related
26.50 ////////////////////////////////////////////
26.51 private:
26.52 - Selection selection;
26.53 TreeItem *latestAddedItem; // latest added object, reset on setChanged()
26.54
26.55 signals:
26.56 @@ -607,6 +604,8 @@
26.57 private:
26.58 void setSelectionColorInt(QColor);
26.59 QItemSelectionModel *selModel;
26.60 + QString lastSelectString;
26.61 + bool selectionBlocked; //! Used to block changes of selection while editing a heading
26.62
26.63 public:
26.64 void setSelectionColor(QColor);
27.1 --- a/xml-vym.cpp Wed May 20 15:40:14 2009 +0000
27.2 +++ b/xml-vym.cpp Tue May 26 11:23:44 2009 +0000
27.3 @@ -186,8 +186,8 @@
27.4 (state == StateMapCenter ||state==StateBranch))
27.5 {
27.6 state=StateFloatImage;
27.7 - //FIXME-2lastBranch->addFloatImage();
27.8 - //FIXME-2lastFloat=lastBranch->getLastFloatImage();
27.9 + //FIXME-2 lastBranch->addFloatImage();
27.10 + //FIXME-2 lastFloat=lastBranch->getLastFloatImage();
27.11 if (!readFloatImageAttr(atts)) return false;
27.12 } else if ( (eName == "branch"||eName=="floatimage") && state == StateMap)
27.13 {
27.14 @@ -591,7 +591,7 @@
27.15 /* FIXME-2 xLinks
27.16 xlo->setBegin ((BranchObj*)lmo);
27.17 lmo=model->findBySelectString (a.value( "endBranch"));
27.18 - if (lmo && typeid (*lmo)==typeid (BranchObj))
27.19 + if (lmo && typid (*lmo)==typid (BranchObj))
27.20 {
27.21 xlo->setEnd ((BranchObj*)(lmo));
27.22 xlo->activate();
27.23 @@ -609,11 +609,11 @@
27.24 if (!a.value( "endID").isEmpty() )
27.25 {
27.26 LinkableMapObj *lmo=model->findID (a.value( "beginID"));
27.27 - if (lmo && typeid (*lmo)==typeid (BranchObj))
27.28 + if (lmo && typid (*lmo)==typid (BranchObj))
27.29 {
27.30 xlo->setBegin ((BranchObj*)lmo);
27.31 lmo=model->findID (a.value( "endID"));
27.32 - if (lmo && typeid (*lmo)==typeid (BranchObj))
27.33 + if (lmo && typid (*lmo)==typid (BranchObj))
27.34 {
27.35 xlo->setEnd ((BranchObj*)(lmo));
27.36 xlo->activate();