Notes work again (to some degree)
authorinsilmaril
Thu, 26 Mar 2009 07:49:17 +0000
changeset 746ee6b0f3a4c2f
parent 745 2d4cc445a86a
child 747 008e72977ab8
Notes work again (to some degree)
attributedialog.cpp
branchobj.cpp
branchobj.h
branchpropwindow.cpp
exports.cpp
flagrowobj.cpp
floatimageobj.cpp
linkablemapobj.cpp
mainwindow.cpp
mainwindow.h
mapcenterobj.cpp
mapeditor.cpp
noteobj.cpp
noteobj.h
ornamentedobj.cpp
ornamentedobj.h
scripts/update-bookmarks
selection.cpp
texteditor.cpp
texteditor.h
treeitem.cpp
treeitem.h
treemodel.cpp
version.h
vym.pro
vymmodel.cpp
vymmodel.h
vymview.cpp
xml-freemind.cpp
xml-vym.cpp
     1.1 --- a/attributedialog.cpp	Mon Mar 23 09:06:51 2009 +0000
     1.2 +++ b/attributedialog.cpp	Thu Mar 26 07:49:17 2009 +0000
     1.3 @@ -88,7 +88,7 @@
     1.4  		{
     1.5  			aw=new AttributeWidget (this);
     1.6  			aw->setKey (keyList.at(i) );
     1.7 -			// FIXME aw->setValues (table->getValues (keyList.at(i) ));
     1.8 +			// FIXME-3 aw->setValues (table->getValues (keyList.at(i) ));
     1.9  			aw->show();
    1.10  			tableLayout->addWidget (aw);
    1.11  		}
     2.1 --- a/branchobj.cpp	Mon Mar 23 09:06:51 2009 +0000
     2.2 +++ b/branchobj.cpp	Thu Mar 26 07:49:17 2009 +0000
     2.3 @@ -17,11 +17,7 @@
     2.4  // BranchObj
     2.5  /////////////////////////////////////////////////////////////////
     2.6  
     2.7 -BranchObj* BranchObj::itLast=NULL;
     2.8 -BranchObj* BranchObj::itFirst=NULL;
     2.9 -
    2.10 -
    2.11 -BranchObj::BranchObj () :OrnamentedObj()	// FIXME needed at all?
    2.12 +BranchObj::BranchObj () :OrnamentedObj()	// FIXME-3 needed at all?
    2.13  {
    2.14  //    cout << "Const BranchObj ()\n";
    2.15      setParObj (this);	
    2.16 @@ -392,155 +388,6 @@
    2.17  		branch.at(i)->setColorSubtree(col);
    2.18  }
    2.19  
    2.20 -BranchObj* BranchObj::first()
    2.21 -{
    2.22 -	itLast=NULL;	
    2.23 -	itFirst=this;
    2.24 -	return this; 
    2.25 -}
    2.26 -	
    2.27 -BranchObj* BranchObj::next()
    2.28 -{
    2.29 -	BranchObj *bo;
    2.30 -	BranchObj *lmo;
    2.31 -	BranchObj *po=(BranchObj*)parObj;
    2.32 -
    2.33 -	if (branch.isEmpty())
    2.34 -		bo=NULL;
    2.35 -	else
    2.36 -		bo=branch.first();
    2.37 -
    2.38 -	if (!itLast)
    2.39 -	{
    2.40 -		// no itLast, we are just beginning
    2.41 -		if (bo) 
    2.42 -		{
    2.43 -			// we have children, return first one
    2.44 -			itLast=this;
    2.45 -			return bo;
    2.46 -		}	
    2.47 -		else
    2.48 -		{
    2.49 -			// No children, so there is no next
    2.50 -			itLast=this;
    2.51 -			return NULL;
    2.52 -		}	
    2.53 -	}
    2.54 -
    2.55 -	// We have an itLast
    2.56 -	if (itLast==po)
    2.57 -	{	// We come from parent
    2.58 -		if (bo)
    2.59 -		{
    2.60 -			// there are children, go there
    2.61 -			itLast=this;
    2.62 -			return bo;
    2.63 -		}	
    2.64 -		else
    2.65 -		{	// no children, try to go up again
    2.66 -			if (po)
    2.67 -			{
    2.68 -				// go back to parent and try to find next there
    2.69 -				itLast=this;
    2.70 -				lmo=po->next();
    2.71 -				itLast=this;
    2.72 -				return lmo;
    2.73 -
    2.74 -			}	
    2.75 -			else
    2.76 -			{
    2.77 -				// can't go up, I am mapCenter, no next
    2.78 -				itLast=NULL;
    2.79 -				return NULL;
    2.80 -			}	
    2.81 -		}
    2.82 -	}
    2.83 -
    2.84 -	// We don't come from parent, but from brother or children
    2.85 -
    2.86 -	// Try to find last child, where we came from, in my own children
    2.87 -	bool searching=true;
    2.88 -	int i=0;
    2.89 -	while (i<branch.size())
    2.90 -	{
    2.91 -		// Try to find itLast in my own children
    2.92 -		if (itLast==branch.at(i))
    2.93 -		{
    2.94 -			// ok, we come from my own children
    2.95 -			if (i<branch.size()-1)
    2.96 -				bo=branch.at(i+1);
    2.97 -			 else
    2.98 -				bo=NULL;
    2.99 -			searching=false;
   2.100 -			i=branch.size();
   2.101 -		} 	
   2.102 -		++i;	
   2.103 -	}
   2.104 -	if (!searching)
   2.105 -	{	// found itLast in my children
   2.106 -		if (bo)
   2.107 -		{
   2.108 -			// found a brother of lastLMO 
   2.109 -			itLast=this;
   2.110 -			return bo;
   2.111 -		}	
   2.112 -		else
   2.113 -		{
   2.114 -			if (po)
   2.115 -			{
   2.116 -				if (this==itFirst) return NULL;	// Stop at starting point
   2.117 -				// go up
   2.118 -				itLast=this;
   2.119 -				lmo=po->next();
   2.120 -				itLast=this;
   2.121 -				return lmo;
   2.122 -			}
   2.123 -			else
   2.124 -			{
   2.125 -				// can't go up, I am mapCenter
   2.126 -				itLast=NULL;
   2.127 -				return NULL;
   2.128 -			}	
   2.129 -		}
   2.130 -	}
   2.131 -
   2.132 -	// couldn't find last child, it must be a nephew of mine
   2.133 -	if (branch.size()>0)
   2.134 -	{
   2.135 -		// proceed with my first child
   2.136 -		itLast=this;	
   2.137 -		return branch.first();
   2.138 -	}	
   2.139 -	else
   2.140 -	{
   2.141 -		// or go back to my parents
   2.142 -		if (po)
   2.143 -		{
   2.144 -			// go up
   2.145 -			itLast=this;
   2.146 -			lmo=po->next();
   2.147 -			itLast=this;
   2.148 -			return lmo;
   2.149 -		}	
   2.150 -		else
   2.151 -		{
   2.152 -			// can't go up, I am mapCenter
   2.153 -			itLast=NULL;
   2.154 -			return NULL;
   2.155 -		}	
   2.156 -	}	
   2.157 -}
   2.158 -
   2.159 -BranchObj* BranchObj::getLastIterator()
   2.160 -{
   2.161 -	return itLast;
   2.162 -}
   2.163 -
   2.164 -void BranchObj::setLastIterator(BranchObj* it)
   2.165 -{
   2.166 -	itLast=it;
   2.167 -}
   2.168 -
   2.169  void BranchObj::positionContents()
   2.170  {
   2.171      for (int i=0; i<floatimage.size(); ++i )
   2.172 @@ -787,7 +634,7 @@
   2.173  	if (hidden) return "";
   2.174  
   2.175  	// Update of note is usually done while unselecting a branch
   2.176 -	if (isNoteInEditor) getNoteFromTextEditor();
   2.177 +	// if (isNoteInEditor) getNoteFromTextEditor();		//FIXME-2 moved to TreeItem
   2.178  	
   2.179      QString s,a;
   2.180  	QString scrolledAttr;
   2.181 @@ -840,8 +687,8 @@
   2.182  		s+=floatimage.at(i)->saveToDir (tmpdir,prefix);
   2.183  
   2.184  	// save note
   2.185 -	if (!note.isEmpty() )
   2.186 -		s+=note.saveToDir();
   2.187 +	if (!treeItem->getNoteObj().isEmpty() )
   2.188 +		s+=treeItem->getNoteObj().saveToDir();
   2.189  	
   2.190  	// Save branches
   2.191  	for (int i=0; i<branch.size(); ++i)
   2.192 @@ -1078,7 +925,7 @@
   2.193  	bo->depth=depth+1;
   2.194  	bo->setDefAttr(MovedBranch);
   2.195  	if (scrolled) tmpUnscroll();
   2.196 -	//setLastSelectedBranch (bo);	//FIXME needed?
   2.197 +	//setLastSelectedBranch (bo);	//FIXME-3 needed?
   2.198  	return bo;
   2.199  }
   2.200  
   2.201 @@ -1112,7 +959,7 @@
   2.202  	bo->depth=depth+1;
   2.203  	bo->setDefAttr (MovedBranch);
   2.204  	if (scrolled) tmpUnscroll();
   2.205 -	//setLastSelectedBranch (bo); //FIXME needed?
   2.206 +	//setLastSelectedBranch (bo); //FIXME-3 needed?
   2.207  	qSort (branch.begin(),branch.end(), isAbove);
   2.208  	return bo;
   2.209  }
   2.210 @@ -1535,28 +1382,27 @@
   2.211  	bboxTotal.setHeight(max (r.height(),  bbox.height()));
   2.212  }
   2.213  
   2.214 -void BranchObj::select()	// FIXME try to get rid of this in BO completely
   2.215 +void BranchObj::select()	// FIXME-2 try to get rid of this in BO completely
   2.216  {
   2.217  	cout << "BO::select()\n";
   2.218 -	// update NoteEditor   FIXME do this via VymView::changeSelection
   2.219 -	textEditor->setText(note.getNote() );
   2.220 -	QString fnh=note.getFilenameHint();
   2.221 +	textEditor->setText(treeItem->getNoteObj().getNote() );
   2.222 +	QString fnh=treeItem->getNoteObj().getFilenameHint();
   2.223  	if (fnh!="")
   2.224 -		textEditor->setFilenameHint(note.getFilenameHint() );
   2.225 +		textEditor->setFilenameHint(treeItem->getNoteObj().getFilenameHint() );
   2.226  	else	
   2.227  		textEditor->setFilenameHint(getHeading() );
   2.228 -	textEditor->setFontHint (note.getFontHint() );
   2.229 -	isNoteInEditor=true;
   2.230 +	textEditor->setFontHint (treeItem->getNoteObj().getFontHint() );
   2.231 +	//isNoteInEditor=true;
   2.232  
   2.233  	// set selected and visible
   2.234      LinkableMapObj::select();
   2.235  
   2.236 -    //if (po)	po->setLastSelectedBranch(this);  FIXME needed?
   2.237 +    //if (po)	po->setLastSelectedBranch(this);  needed?
   2.238  		
   2.239  	// temporary unscroll, if we have scrolled parents somewhere
   2.240  	if (parObj) ((BranchObj*)(parObj))->tmpUnscroll();
   2.241  
   2.242 -	/* FIXME moved to vymmodel or vymview...
   2.243 +	/* moved to vymmodel or vymview...
   2.244  	// Show URL and link in statusbar
   2.245  	QString status;
   2.246  	if (!url.isEmpty()) status+="URL: "+url+"  ";
   2.247 @@ -1571,15 +1417,17 @@
   2.248  	*/
   2.249  }
   2.250  
   2.251 -void BranchObj::unselect()
   2.252 +void BranchObj::unselect()	//FIXME-3 should not be needed
   2.253  {
   2.254  	LinkableMapObj::unselect();
   2.255  	// Delete any messages like vymLink in StatusBar
   2.256 -	mainWindow->statusMessage ("");		//FIXME this causes segfault, when MainWindow is already gone in global destructor on quitting vym
   2.257 +	mainWindow->statusMessage ("");		//this causes segfault, when MainWindow is already gone in global destructor on quitting vym
   2.258  
   2.259 +/*
   2.260  	// Save current note
   2.261  	if (isNoteInEditor) getNoteFromTextEditor();
   2.262  	isNoteInEditor=false;
   2.263 +*/	
   2.264  
   2.265  	// reset temporary unscroll, if we have scrolled parents somewhere
   2.266  	if (parObj) ((BranchObj*)(parObj))->resetTmpUnscroll();
     3.1 --- a/branchobj.h	Mon Mar 23 09:06:51 2009 +0000
     3.2 +++ b/branchobj.h	Thu Mar 26 07:49:17 2009 +0000
     3.3 @@ -52,11 +52,6 @@
     3.4  	virtual void setLinkColor();			// set the color of link
     3.5  	virtual void setColorSubtree(QColor);	// set the color of heading
     3.6  
     3.7 -	BranchObj* first ();				// set Iterator to first LMO
     3.8 -	BranchObj* next ();					// find next LMO after given one
     3.9 -	BranchObj* getLastIterator();		// to interrupt and resume next iteration
    3.10 -	void setLastIterator (BranchObj*);	// needed by next() 
    3.11 -
    3.12  	virtual void positionContents();
    3.13      virtual void move (double x,double y);
    3.14      virtual void move (QPointF);
     4.1 --- a/branchpropwindow.cpp	Mon Mar 23 09:06:51 2009 +0000
     4.2 +++ b/branchpropwindow.cpp	Thu Mar 26 07:49:17 2009 +0000
     4.3 @@ -44,7 +44,7 @@
     4.4  	else	
     4.5  		hide();
     4.6  
     4.7 -	// FIXME for now remove attribute tab
     4.8 +	// FIXME-2 for now remove attribute tab
     4.9  	ui.tabWidget->removeTab (3);
    4.10  
    4.11  }
    4.12 @@ -126,7 +126,7 @@
    4.13  		attributeModel->removeRows(0, attributeModel->rowCount(), QModelIndex());
    4.14  
    4.15  /*
    4.16 -		// FIXME some samples for attribute testing
    4.17 +		// FIXME-3 some samples for attribute testing
    4.18  		QStringList attrTypes=mapEditor->attributeTable()->getTypes();
    4.19  		for (int i=0; i<attrTypes.count()-1;i++)
    4.20  		{
    4.21 @@ -263,7 +263,7 @@
    4.22  
    4.23  void BranchPropertyWindow::deleteAttributeClicked()
    4.24  {
    4.25 -	//FIXME cout << "BPW::delete\n";
    4.26 +	//FIXME-3 cout << "BPW::delete\n";
    4.27  }
    4.28  
    4.29  void BranchPropertyWindow::connectSignals()
     5.1 --- a/exports.cpp	Mon Mar 23 09:06:51 2009 +0000
     5.2 +++ b/exports.cpp	Thu Mar 26 07:49:17 2009 +0000
     5.3 @@ -129,7 +129,7 @@
     5.4  	caption=vymName+ " -" +QObject::tr("Export as ASCII")+" "+QObject::tr("(still experimental)");
     5.5  }
     5.6  
     5.7 -void ExportASCII::doExport()
     5.8 +void ExportASCII::doExport()	//FIXME-1 segfaults...
     5.9  {
    5.10  	QFile file (outputFile);
    5.11  	if ( !file.open( QIODevice::WriteOnly ) )
    5.12 @@ -189,10 +189,10 @@
    5.13  				}
    5.14  
    5.15  				// If necessary, write note
    5.16 -				if (!bo->getNote().isEmpty())
    5.17 +				if (!cur->getNoteObj().isEmpty())
    5.18  				{
    5.19  					curIndent +="  | ";
    5.20 -					s=bo->getNoteASCII( curIndent, 80);
    5.21 +					s=cur->getNoteASCII( curIndent, 80);
    5.22  					ts << s;
    5.23  				}
    5.24  			}
    5.25 @@ -240,9 +240,9 @@
    5.26  		if (!bo->hasHiddenExportParent() )
    5.27  		{
    5.28  			// If necessary, write note
    5.29 -			if (!bo->getNote().isEmpty())
    5.30 +			if (!cur->getNoteObj().isEmpty())
    5.31  			{
    5.32 -				s =bo->getNoteASCII();
    5.33 +				s =cur->getNoteASCII();
    5.34  				s=s.replace ("\n","\n"+curIndent);
    5.35  				ts << ("\""+s+"\",");
    5.36  			} else
    5.37 @@ -419,8 +419,8 @@
    5.38  			
    5.39  		}
    5.40  		// If necessary, write note
    5.41 -		if (!bo->getNote().isEmpty()) {
    5.42 -		  ts << (bo->getNoteASCII());
    5.43 +		if (!cur->getNoteObj().isEmpty()) {
    5.44 +		  ts << (cur->getNoteASCII());
    5.45  		  ts << ("\n");
    5.46  		}
    5.47  	}
    5.48 @@ -446,6 +446,7 @@
    5.49  
    5.50      uint i=0;
    5.51      bo=current->getFirstBranch();
    5.52 +	TreeItem *ti=bo->getTreeItem();
    5.53      if (bo)
    5.54      {
    5.55  		if (!bo->hasHiddenExportParent() )
    5.56 @@ -457,8 +458,8 @@
    5.57  				r+="<text:list-item><text:p >";
    5.58  				r+=quotemeta(bo->getHeading());
    5.59  				// If necessary, write note
    5.60 -				if (!bo->getNote().isEmpty())
    5.61 -					r+=bo->getNoteOpenDoc();
    5.62 +				if (!ti->getNoteObj().isEmpty())
    5.63 +					r+=ti->getNoteOpenDoc();
    5.64  				r+="</text:p>";
    5.65  				r+=buildList (bo);	// recursivly add deeper branches
    5.66  				r+="</text:list-item>\n";
    5.67 @@ -476,7 +477,7 @@
    5.68  {
    5.69  	QString allPages;
    5.70  
    5.71 -/* FIXME not adapted to multiple mapCenters yet
    5.72 +/* FIXME-2 not adapted to multiple mapCenters yet, see patch already done in 1.12.2...
    5.73  	// Insert new content
    5.74  	content.replace ("<!-- INSERT TITLE -->",quotemeta(mapCenter->getHeading()));
    5.75  	content.replace ("<!-- INSERT AUTHOR -->",quotemeta(mapCenter->getAuthor()));
     6.1 --- a/flagrowobj.cpp	Mon Mar 23 09:06:51 2009 +0000
     6.2 +++ b/flagrowobj.cpp	Thu Mar 26 07:49:17 2009 +0000
     6.3 @@ -295,7 +295,7 @@
     6.4  	name=n;
     6.5  }
     6.6  
     6.7 -void  FlagRowObj::updateToolbar()	//FIXME this needs to be changed with VM
     6.8 +void  FlagRowObj::updateToolbar()	//FIXME-2 this needs to be changed with VM
     6.9  {
    6.10  	if (parentRow)
    6.11  	{
     7.1 --- a/floatimageobj.cpp	Mon Mar 23 09:06:51 2009 +0000
     7.2 +++ b/floatimageobj.cpp	Thu Mar 26 07:49:17 2009 +0000
     7.3 @@ -225,21 +225,3 @@
     7.4  	//TODO abstract in linkablemapobj.h
     7.5  }
     7.6  
     7.7 -/*
     7.8 -QString FloatImageObj::getSelectString()  //FIXME move to selection
     7.9 -{
    7.10 -	QString s;
    7.11 -	if (parObj)
    7.12 -	{
    7.13 -		if (parObj->getDepth()==0)
    7.14 -			s= "fi:" + QString("%1").arg( ((BranchObj*)(parObj))->getFloatImageNum(this));
    7.15 -		else	
    7.16 -			s= ((BranchObj*)(parObj))->getSelectString() + ",fi:" + QString("%1").arg( ((BranchObj*)(parObj))->getFloatImageNum(this));
    7.17 -	} else
    7.18 -		s="mc:";
    7.19 -	
    7.20 -	return s;
    7.21 -
    7.22 -}
    7.23 -*/
    7.24 -
     8.1 --- a/linkablemapobj.cpp	Mon Mar 23 09:06:51 2009 +0000
     8.2 +++ b/linkablemapobj.cpp	Thu Mar 26 07:49:17 2009 +0000
     8.3 @@ -150,11 +150,11 @@
     8.4  	model=parObj->getModel();	
     8.5  }
     8.6  
     8.7 -void LinkableMapObj::setParObjTmp(LinkableMapObj*,QPointF,int)	// FIXME make pure virtual
     8.8 +void LinkableMapObj::setParObjTmp(LinkableMapObj*,QPointF,int)	// FIXME-3 make pure virtual
     8.9  {
    8.10  }
    8.11  
    8.12 -void LinkableMapObj::unsetParObjTmp()	// FIXME make pure virtual
    8.13 +void LinkableMapObj::unsetParObjTmp()	// FIXME-3 make pure virtual
    8.14  {
    8.15  }
    8.16  
    8.17 @@ -247,7 +247,7 @@
    8.18  
    8.19  void LinkableMapObj::setLinkStyle(Style newstyle)
    8.20  {
    8.21 -	//if (newstyle=style) return; FIXME
    8.22 +	//if (newstyle=style) return; FIXME-3
    8.23  	delLink();
    8.24  		
    8.25  	style=newstyle;
    8.26 @@ -406,11 +406,11 @@
    8.27  					segment.at(i)->show();
    8.28  				break;	
    8.29  			case PolyLine:
    8.30 -				if (!p) cout << "LMO::setVis p==0 (PolyLine)\n"; //FIXME
    8.31 +				if (!p) cout << "LMO::setVis p==0 (PolyLine)\n"; //FIXME-3
    8.32  				if (p) p->show();
    8.33  				break;
    8.34  			case PolyParabel:	
    8.35 -				if (!p) cout << "LMO::setVis p==0 (PolyParabel) "<<((BranchObj*)this)->getHeading().toStdString()<<endl; //FIXME
    8.36 +				if (!p) cout << "LMO::setVis p==0 (PolyParabel) "<<((BranchObj*)this)->getHeading().toStdString()<<endl; //FIXME-3
    8.37  				if (p) p->show();
    8.38  				break;
    8.39  			default:
     9.1 --- a/mainwindow.cpp	Mon Mar 23 09:06:51 2009 +0000
     9.2 +++ b/mainwindow.cpp	Thu Mar 26 07:49:17 2009 +0000
     9.3 @@ -122,7 +122,6 @@
     9.4  	procBrowser=NULL;
     9.5  
     9.6  	// Satellite windows //////////////////////////////////////////
     9.7 -
     9.8  	// history window
     9.9  	historyWindow=new HistoryWindow();
    9.10  	connect (historyWindow, SIGNAL (windowClosed() ), this, SLOT (updateActions()));
    9.11 @@ -1669,7 +1668,7 @@
    9.12  	actionFormatLinkColor->addTo( canvasContextMenu );
    9.13  	actionFormatSelectionColor->addTo( canvasContextMenu );
    9.14  	actionFormatBackColor->addTo( canvasContextMenu );
    9.15 -	// actionFormatBackImage->addTo( canvasContextMenu );  //FIXME makes vym too slow: postponed for later version 
    9.16 +	// actionFormatBackImage->addTo( canvasContextMenu );  //FIXME-4 makes vym too slow: postponed for later version 
    9.17  
    9.18  	// Menu for last opened files
    9.19  	// Create actions
    9.20 @@ -1902,7 +1901,7 @@
    9.21  
    9.22  		//tabWidget->currentPage() won't be NULL here, because of above...
    9.23  		tabWidget->setCurrentIndex (tabIndex);
    9.24 -		//FIXME no me anymore... me->viewport()->setFocus();
    9.25 +		//FIXME-3 no me anymore... me->viewport()->setFocus();
    9.26  
    9.27  		if (err!=aborted)
    9.28  		{
    9.29 @@ -2018,7 +2017,7 @@
    9.30  		// call fileSaveAs() now, this will call fileSave() 
    9.31  		// again.
    9.32  		// First switch to editor
    9.33 -		//FIXME needed???  tabWidget->setCurrentWidget (m->getMapEditor());
    9.34 +		//FIXME-3 needed???  tabWidget->setCurrentWidget (m->getMapEditor());
    9.35  		fileSaveAs(savemode);
    9.36  	}
    9.37  
    9.38 @@ -2247,7 +2246,7 @@
    9.39  	if (m) m->exportASCII();
    9.40  }
    9.41  
    9.42 -void Main::fileExportCSV()	//FIXME not scriptable yet
    9.43 +void Main::fileExportCSV()	//FIXME-2 not scriptable yet
    9.44  {
    9.45  	VymModel *m=currentModel();
    9.46  	if (m)
    9.47 @@ -2266,7 +2265,7 @@
    9.48  	}
    9.49  }
    9.50  
    9.51 -void Main::fileExportLaTeX()	//FIXME not scriptable yet
    9.52 +void Main::fileExportLaTeX()	//FIXME-2 not scriptable yet
    9.53  {
    9.54  	VymModel *m=currentModel();
    9.55  	if (m)
    9.56 @@ -2285,7 +2284,7 @@
    9.57  	}
    9.58  }
    9.59  
    9.60 -void Main::fileExportKDE3Bookmarks()	//FIXME not scriptable yet
    9.61 +void Main::fileExportKDE3Bookmarks()	//FIXME-2 not scriptable yet
    9.62  {
    9.63  	ExportKDE3Bookmarks ex;
    9.64  	VymModel *m=currentModel();
    9.65 @@ -2296,7 +2295,7 @@
    9.66  	}	
    9.67  }
    9.68  
    9.69 -void Main::fileExportKDE4Bookmarks()	//FIXME not scriptable yet
    9.70 +void Main::fileExportKDE4Bookmarks()	//FIXME-2 not scriptable yet
    9.71  {
    9.72  	ExportKDE4Bookmarks ex;
    9.73  	VymModel *m=currentModel();
    9.74 @@ -2307,7 +2306,7 @@
    9.75  	}	
    9.76  }
    9.77  
    9.78 -void Main::fileExportTaskjuggler()	//FIXME not scriptable yet
    9.79 +void Main::fileExportTaskjuggler()	//FIXME-2 not scriptable yet
    9.80  {
    9.81  	ExportTaskjuggler ex;
    9.82  	VymModel *m=currentModel();
    9.83 @@ -2326,7 +2325,7 @@
    9.84  	}	
    9.85  }
    9.86  
    9.87 -void Main::fileExportOOPresentation()	//FIXME not scriptable yet
    9.88 +void Main::fileExportOOPresentation()	//FIXME-2 not scriptable yet
    9.89  {
    9.90  	ExportOOFileDialog *fd=new ExportOOFileDialog( this,vymName+" - "+tr("Export to")+" Open Office");
    9.91  	// TODO add preview in dialog
    9.92 @@ -2395,7 +2394,7 @@
    9.93  		// Better would be delete (me), but then we could have a Qt error:
    9.94  		// "QObject: Do not delete object, 'MapEditor', during its event handler!"
    9.95  		// So we only remove data now and call deconstructor when vym closes later
    9.96 -		// FIXME  this needs to be moved to vymview...   me->clear();
    9.97 +		// FIXME-3  this needs to be moved to vymview...   me->clear();
    9.98  		// some model->clear is needed to free up memory ...
    9.99  
   9.100  		updateActions();
   9.101 @@ -2867,7 +2866,7 @@
   9.102  
   9.103  	// Calc some stats
   9.104  	QString stats;
   9.105 -/* FIXME no stats at the moment (view dependent...)
   9.106 +/* FIXME-2 no stats at the moment (view dependent...)
   9.107      stats+=tr("%1 items on map\n","Info about map").arg (mapScene->items().size(),6);
   9.108  
   9.109  	uint b=0;
   9.110 @@ -3243,7 +3242,7 @@
   9.111  }
   9.112  
   9.113  
   9.114 -void Main::formatHideLinkUnselected()	//FIXME get rid of this with imagepropertydialog
   9.115 +void Main::formatHideLinkUnselected()	//FIXME-3 get rid of this with imagepropertydialog
   9.116  {
   9.117  	VymModel *m=currentModel();
   9.118  	if (m)
   9.119 @@ -3455,7 +3454,7 @@
   9.120  	historyWindow->update (undoSet);
   9.121  }
   9.122  
   9.123 -void Main::updateNoteFlag()
   9.124 +void Main::updateNoteFlag()	
   9.125  {
   9.126  	// this slot is connected to TextEditor::textHasChanged()
   9.127  
   9.128 @@ -3463,9 +3462,66 @@
   9.129  	if (m) m->updateNoteFlag();
   9.130  }
   9.131  
   9.132 -void Main::updateSatellites(VymModel* model)
   9.133 +/*
   9.134 +void Main::updateNoteInEditor (VymModel *model, const NoteObj &note)
   9.135  {
   9.136 -	branchPropertyWindow->setModel (model );
   9.137 +	if (model&& model==currentModel() )
   9.138 +	{
   9.139 +		textEditor->setNote (note);
   9.140 +	}
   9.141 +}
   9.142 +*/
   9.143 +
   9.144 +void Main::updateContent (QModelIndex index )
   9.145 +{
   9.146 +	cout << "Main::updateContent model="<<sender();
   9.147 +	TreeItem *ti=((VymModel*)sender())->getItem(index);
   9.148 +	cout << "  item="<<ti->getHeading().toStdString()<<" ("<<ti<<")"<<endl;
   9.149 +	textEditor->setNote (ti->getNoteObj() );
   9.150 +}
   9.151 +
   9.152 +void Main::changeSelection (VymModel *model, const QItemSelection &newsel, const QItemSelection &oldsel)
   9.153 +{
   9.154 +	//branchPropertyWindow->setModel (model ); //FIXME-1 this used to be called from BranchObj::select()
   9.155 +	if (model && model==currentModel() )
   9.156 +	{
   9.157 +		// NoteEditor
   9.158 +		TreeItem *ti;
   9.159 +		if (!oldsel.indexes().isEmpty() )
   9.160 +		{
   9.161 +			ti=model->getItem(oldsel.indexes().first());
   9.162 +			//cout << "Main::changeSel getting note from "<<ti->getHeading().toStdString()<<":  \""<<ti->getNote().toStdString()<<"\""<<endl; 
   9.163 +			ti->setNoteObj (textEditor->getNoteObj(),false );
   9.164 +		} 
   9.165 +		if (!newsel.indexes().isEmpty() )
   9.166 +		{
   9.167 +			ti=model->getItem(newsel.indexes().first());
   9.168 +			if (!ti->getNoteObj().isEmpty()  )
   9.169 +			{
   9.170 +				//cout << "Main::changeSel setting note of "<<ti->getHeading().toStdString()<<" m=("<<ti->getModel()<<")  to \""<<ti->getNote().toStdString()<<"\""<<endl; 
   9.171 +				textEditor->setNote(ti->getNoteObj() );
   9.172 +			} else
   9.173 +				textEditor->setNote(NoteObj() );
   9.174 +		} else
   9.175 +		{
   9.176 +			textEditor->setInactive();
   9.177 +		}
   9.178 +
   9.179 +		// Show URL and link in statusbar
   9.180 +		QString status;
   9.181 +		QString s=model->getURL();
   9.182 +		if (!s.isEmpty() ) status+="URL: "+s+"  ";
   9.183 +		s=model->getVymLink();
   9.184 +		if (!s.isEmpty() ) status+="Link: "+s;
   9.185 +		if (!status.isEmpty() ) statusMessage (status);
   9.186 +
   9.187 +
   9.188 +		// Update Toolbar // FIXME-1, was so far in BranchObj
   9.189 +		//updateFlagsToolbar();
   9.190 +
   9.191 +		// Update actions
   9.192 +		updateActions();
   9.193 +	}
   9.194  }
   9.195  
   9.196  void Main::updateActions()
    10.1 --- a/mainwindow.h	Mon Mar 23 09:06:51 2009 +0000
    10.2 +++ b/mainwindow.h	Thu Mar 26 07:49:17 2009 +0000
    10.3 @@ -215,7 +215,10 @@
    10.4  public slots:
    10.5  	void windowToggleSmoothPixmap();
    10.6  	void updateNoteFlag();
    10.7 -	void updateSatellites(VymModel*);
    10.8 +//	void updateNoteInEditor (VymModel *model, const NoteObj &note);
    10.9 +	void updateContent (QModelIndex index);
   10.10 +	void changeSelection (VymModel *model,const QItemSelection &newSel, const QItemSelection &delSel);
   10.11 +
   10.12  	void updateActions();
   10.13  	ModMode getModMode();
   10.14  	bool autoEditNewBranch();
    11.1 --- a/mapcenterobj.cpp	Mon Mar 23 09:06:51 2009 +0000
    11.2 +++ b/mapcenterobj.cpp	Thu Mar 26 07:49:17 2009 +0000
    11.3 @@ -175,11 +175,11 @@
    11.4  	s+=frame->saveToDir ();
    11.5  
    11.6  	// Update of note is usually done while unselecting a branch
    11.7 -	if (isNoteInEditor) getNoteFromTextEditor();
    11.8 +	//if (isNoteInEditor) getNoteFromTextEditor();  FIXME-3
    11.9  
   11.10  	// save note
   11.11 -	if (!note.isEmpty() )
   11.12 -		s+=note.saveToDir();
   11.13 +	if (!treeItem->getNoteObj().isEmpty() )
   11.14 +		s+=treeItem->getNoteObj().saveToDir();
   11.15  	
   11.16  	// Save branches
   11.17  	for (int i=0; i<branch.size(); ++i)
    12.1 --- a/mapeditor.cpp	Mon Mar 23 09:06:51 2009 +0000
    12.2 +++ b/mapeditor.cpp	Thu Mar 26 07:49:17 2009 +0000
    12.3 @@ -43,7 +43,7 @@
    12.4  	model=vm;
    12.5  	model->setScene (mapScene);
    12.6  	model->registerEditor(this);
    12.7 -//	model->addMapCenter();	//  FIXME create this in MapEditor until BO and MCO are independent of scene
    12.8 +//	model->addMapCenter();	//  FIXME-3 create this in MapEditor until BO and MCO are independent of scene
    12.9  	model->makeDefault();	// No changes in model so far
   12.10  
   12.11      setScene (mapScene);
   12.12 @@ -70,7 +70,7 @@
   12.13  
   12.14  	setAcceptDrops (true);	
   12.15  
   12.16 -	//model->reposition();	//FIXME really still needed?
   12.17 +	//model->reposition();	//FIXME-3 really still needed?
   12.18  
   12.19  
   12.20  	// Action to embed LineEdit for heading in Scene
   12.21 @@ -93,7 +93,7 @@
   12.22  	selectionColor =QColor (255,255,0);
   12.23  	
   12.24  
   12.25 -	// Attributes	//FIXME testing only...
   12.26 +	// Attributes	//FIXME-2 testing only...
   12.27  	QString k;
   12.28  	AttributeDef *ad;
   12.29  	attrTable= new AttributeTable();
   12.30 @@ -128,7 +128,7 @@
   12.31  
   12.32  MapEditor::~MapEditor()
   12.33  {
   12.34 -	cout <<"Destructor MapEditor for "<<model->getMapName().toStdString()<<endl;
   12.35 +	//cout <<"Destructor MapEditor for "<<model->getMapName().toStdString()<<endl;
   12.36  	// No need to remove tmp files:
   12.37  	// tmpMapDir is in tmpVymDir, 
   12.38  	// so it gets removed automagically when vym closes
   12.39 @@ -217,7 +217,7 @@
   12.40  			font.setPointSize(10);
   12.41  			pp.setFont (font);
   12.42  			QRectF footerBox(0,viewBottom,printer->width(),15);
   12.43 -			// FIXME fileName not any longer available here: pp.drawText ( footerBox,Qt::AlignLeft,"VYM - " +fileName);
   12.44 +			// FIXME-3 fileName not any longer available here: pp.drawText ( footerBox,Qt::AlignLeft,"VYM - " +fileName);
   12.45  			pp.drawText ( footerBox, Qt::AlignRight, QDate::currentDate().toString(Qt::TextDate));
   12.46  		}
   12.47  		mapScene->render (
   12.48 @@ -414,21 +414,21 @@
   12.49  		if (model->getSelectedBranch() ) 
   12.50  		{
   12.51  			// Context Menu on branch or mapcenter
   12.52 -			//FIXME model->updateActions(); needed?
   12.53 +			//FIXME-3 model->updateActions(); needed?
   12.54  			branchContextMenu->popup(e->globalPos() );
   12.55  		} else
   12.56  		{
   12.57  			if (model->getSelectedFloatImage() )
   12.58  			{
   12.59  				// Context Menu on floatimage
   12.60 -				// model->updateActions(); FIXME needed?
   12.61 +				// model->updateActions(); FIXME-3 needed?
   12.62  				floatimageContextMenu->popup(e->globalPos() );
   12.63  			}	
   12.64  		}	
   12.65  	} else 
   12.66  	{ // No MapObj found, we are on the Canvas itself
   12.67  		// Context Menu on scene
   12.68 -		// model->updateActions(); FIXME needed?
   12.69 +		// model->updateActions(); FIXME-3 needed?
   12.70  		
   12.71  		// Open context menu synchronously to position new mapcenter
   12.72  		model->setContextPos (p);
   12.73 @@ -513,7 +513,7 @@
   12.74  				mainWindow->windowToggleNoteEditor();
   12.75  			else if (foname=="hideInExport")		
   12.76  				model->toggleHideExport();
   12.77 -			// FIXME needed? xelection.update();	
   12.78 +			// FIXME-3 needed? xelection.update();	
   12.79  			return;	
   12.80  		} 
   12.81  	}	
   12.82 @@ -558,7 +558,7 @@
   12.83  	*/
   12.84  		// Select the clicked object
   12.85  
   12.86 -		// FIXME VM better let "find" return an index instead of lmo...
   12.87 +		// FIXME-2 VM better let "find" return an index instead of lmo...
   12.88  		// Get index of clicked LMO
   12.89  		TreeItem *ti=lmo->getTreeItem();
   12.90  		/*
   12.91 @@ -603,8 +603,8 @@
   12.92  			// a button in the toolbar)
   12.93  			if (e->button() == Qt::MidButton )
   12.94  				model->toggleScroll();
   12.95 -		// model->updateActions(); FIXME needed?
   12.96 -		// FIXME needed? xelection.update();
   12.97 +		// model->updateActions(); FIXME-3 needed?
   12.98 +		// FIXME-3 needed? xelection.update();
   12.99  	} else 
  12.100  	{ // No MapObj found, we are on the scene itself
  12.101  		// Left Button	    move Pos of sceneView
  12.102 @@ -799,7 +799,7 @@
  12.103  		{	
  12.104  			tmpXLink->setEnd ( ((BranchObj*)(dst)) );
  12.105  			tmpXLink->updateXLink();
  12.106 -			tmpXLink->activate(); //FIXME savestate missing
  12.107 +			tmpXLink->activate(); //FIXME-2 savestate missing
  12.108  			//model->saveStateComplete(QString("Activate xLink from %1 to %2").arg(model->getObjectName(tmpXLink->getBegin())).arg(model->getObjectName(tmpXLink->getEnd())) );	
  12.109  		} else
  12.110  		{
  12.111 @@ -947,13 +947,13 @@
  12.112  					model->reposition();
  12.113  			}
  12.114  		}
  12.115 -		model->updateSelection();  //FIXME needed? at least not after pos of selection has changed...
  12.116 +		model->updateSelection();  //FIXME-3 needed? at least not after pos of selection has changed...
  12.117  		// Finally resize scene, if needed
  12.118  		scene()->update();
  12.119  		movingObj=NULL;		
  12.120  
  12.121  		// Just make sure, that actions are still ok,e.g. the move branch up/down buttons...
  12.122 -		// model->updateActions(); FIXME neeeded? 
  12.123 +		// model->updateActions(); FIXME-3 neeeded? 
  12.124  	} else 
  12.125  		// maybe we moved View: set old cursor
  12.126  		setCursor (Qt::ArrowCursor);
  12.127 @@ -1108,10 +1108,10 @@
  12.128  	}
  12.129  }
  12.130  
  12.131 -void MapEditor::updateCurrent (const QModelIndex &,const QModelIndex &)	//FIXME not used?
  12.132 +void MapEditor::updateCurrent (const QModelIndex &,const QModelIndex &)	//FIXME-3 not used?
  12.133  {
  12.134  
  12.135 -/* FIXME testing
  12.136 +/* testing
  12.137  
  12.138  	cout << "ME::updateCurrent\n";
  12.139  
    13.1 --- a/noteobj.cpp	Mon Mar 23 09:06:51 2009 +0000
    13.2 +++ b/noteobj.cpp	Thu Mar 26 07:49:17 2009 +0000
    13.3 @@ -20,11 +20,16 @@
    13.4  	note=s;
    13.5  }
    13.6  
    13.7 +void NoteObj::operator= (const NoteObj &other)
    13.8 +{
    13.9 +	copy (other);
   13.10 +}
   13.11 +
   13.12  void NoteObj::copy (NoteObj other)
   13.13  {
   13.14  	note=other.note;
   13.15  	fonthint=other.fonthint;
   13.16 -	filenamehint="";
   13.17 +	filenamehint=other.filenamehint;
   13.18  }
   13.19  
   13.20  void NoteObj::clear()
   13.21 @@ -39,7 +44,7 @@
   13.22  	note=s;
   13.23  }
   13.24  
   13.25 -QString NoteObj::getNote()
   13.26 +QString NoteObj::getNote() const
   13.27  {
   13.28  	return note;
   13.29  }
   13.30 @@ -51,7 +56,7 @@
   13.31  
   13.32  QString NoteObj::getNoteASCII(const QString &indent, const int &width)
   13.33  {
   13.34 -	// FIXME make use of width
   13.35 +	// FIXME-3 make use of width
   13.36  	QString r=note;
   13.37  
   13.38  	// Remove all <style...> ...</style>
   13.39 @@ -90,7 +95,7 @@
   13.40  	r.replace (rx,indent);
   13.41  	r=indent + r;	// Don't forget first line
   13.42  
   13.43 -/* FIXME	wrap text at width
   13.44 +/* FIXME-2	wrap text at width
   13.45  	if (fonthint !="fixed")
   13.46  	{
   13.47  	}
   13.48 @@ -143,7 +148,7 @@
   13.49  	fonthint=s;
   13.50  }
   13.51  
   13.52 -QString NoteObj::getFontHint()
   13.53 +QString NoteObj::getFontHint() const
   13.54  {
   13.55  	// only for backward compatibility (pre 1.5 )
   13.56  	return fonthint;
   13.57 @@ -154,7 +159,7 @@
   13.58  	filenamehint=s;
   13.59  }
   13.60  
   13.61 -QString NoteObj::getFilenameHint()
   13.62 +QString NoteObj::getFilenameHint() const
   13.63  {
   13.64  	return filenamehint;
   13.65  }
    14.1 --- a/noteobj.h	Mon Mar 23 09:06:51 2009 +0000
    14.2 +++ b/noteobj.h	Thu Mar 26 07:49:17 2009 +0000
    14.3 @@ -15,17 +15,18 @@
    14.4  public:
    14.5  	NoteObj();
    14.6  	NoteObj(const QString&);
    14.7 +	void operator= (const NoteObj &);
    14.8  	void copy (NoteObj);
    14.9  	void clear();
   14.10  	void setNote (const QString&);
   14.11 -	QString getNote();
   14.12 +	QString getNote() const;
   14.13  	QString getNoteASCII();
   14.14 -	QString getNoteASCII(const QString &indent, const int &width);
   14.15 +	QString getNoteASCII(const QString &indent, const int &width=0);
   14.16  	QString getNoteOpenDoc();
   14.17  	void setFontHint (const QString&);
   14.18 -	QString getFontHint ();
   14.19 +	QString getFontHint () const;
   14.20  	void setFilenameHint (const QString&);
   14.21 -	QString getFilenameHint ();
   14.22 +	QString getFilenameHint () const;
   14.23  	bool isEmpty();
   14.24  	QString	saveToDir();
   14.25  
    15.1 --- a/ornamentedobj.cpp	Mon Mar 23 09:06:51 2009 +0000
    15.2 +++ b/ornamentedobj.cpp	Thu Mar 26 07:49:17 2009 +0000
    15.3 @@ -45,10 +45,6 @@
    15.4  	heading = new HeadingObj(scene);
    15.5  	heading->move (absPos.x(), absPos.y());
    15.6  
    15.7 -	note.setNote("");
    15.8 -	note.setFontHint (textEditor->getFontHintDefault() );
    15.9 -	isNoteInEditor=false;
   15.10 -
   15.11  	systemFlags=new FlagRowObj(scene);
   15.12  	systemFlags->clone(systemFlagsDefault);
   15.13  	systemFlags->setName ("systemFlags");
   15.14 @@ -75,7 +71,6 @@
   15.15  	heading->copy(other->heading);
   15.16      setColor   (other->heading->getColor());	
   15.17  
   15.18 -	note.copy (other->note);
   15.19  	systemFlags->copy (other->systemFlags);
   15.20  	standardFlags->copy (other->standardFlags);
   15.21  
   15.22 @@ -260,38 +255,6 @@
   15.23  	move2RelPos (p.x(),p.y());
   15.24  }
   15.25  
   15.26 -void OrnamentedObj::setNote(QString s)
   15.27 -{
   15.28 -	note.setNote(s);
   15.29 -	updateNoteFlag();
   15.30 -}
   15.31 -
   15.32 -void OrnamentedObj::setNote(NoteObj n)
   15.33 -{
   15.34 -	note=n;
   15.35 -	updateNoteFlag();
   15.36 -}
   15.37 -
   15.38 -QString OrnamentedObj::getNote()
   15.39 -{
   15.40 -    return note.getNote();
   15.41 -}
   15.42 -
   15.43 -QString OrnamentedObj::getNoteASCII(const QString &indent, const int &width)
   15.44 -{
   15.45 -    return note.getNoteASCII(indent,width);
   15.46 -}
   15.47 -
   15.48 -QString OrnamentedObj::getNoteASCII()
   15.49 -{
   15.50 -    return note.getNoteASCII();
   15.51 -}
   15.52 -
   15.53 -QString OrnamentedObj::getNoteOpenDoc()
   15.54 -{
   15.55 -    return note.getNoteOpenDoc();
   15.56 -}
   15.57 -
   15.58  void OrnamentedObj::setURL(QString s)
   15.59  {
   15.60  	url=s;
   15.61 @@ -407,20 +370,25 @@
   15.62  	return false;
   15.63  }
   15.64  
   15.65 -void OrnamentedObj::getNoteFromTextEditor ()
   15.66 +/* FIXME-3 should move to VymView ?!  void OrnamentedObj::getNoteFromTextEditor ()
   15.67  {
   15.68  	note.setFilenameHint (textEditor->getFilename());
   15.69  	note.setFontHint (textEditor->getFontHint() );
   15.70  	setNote( textEditor->getText() );
   15.71  }
   15.72 +*/
   15.73  
   15.74 -void OrnamentedObj::updateNoteFlag()
   15.75 +void OrnamentedObj::updateSystemFlags()
   15.76  {
   15.77 -	bool noteEmpty;
   15.78 +	// FIXME-3 check if note here and text in editor are still in sync!!	
   15.79 +	// Best would be to always have current text here...
   15.80 +	bool noteEmpty=treeItem->getNoteObj().isEmpty();
   15.81 +	/*
   15.82  	if (isNoteInEditor)
   15.83  		noteEmpty=textEditor->isEmpty();
   15.84  	else	
   15.85  		noteEmpty=note.isEmpty();
   15.86 +	*/	
   15.87  
   15.88  	if (!noteEmpty)
   15.89  	{	
   15.90 @@ -432,12 +400,11 @@
   15.91  		if (!systemFlags->isActive ("note")) return;
   15.92  		systemFlags->deactivate("note");
   15.93  	}	
   15.94 -	model->setChanged();
   15.95 +	//model->setChanged();
   15.96  	calcBBoxSize();
   15.97  	positionBBox();	
   15.98  	move (absPos.x(), absPos.y() );
   15.99  	forceReposition();
  15.100 -	
  15.101  }	
  15.102  
  15.103  void OrnamentedObj::updateFlagsToolbar()
    16.1 --- a/ornamentedobj.h	Mon Mar 23 09:06:51 2009 +0000
    16.2 +++ b/ornamentedobj.h	Thu Mar 26 07:49:17 2009 +0000
    16.3 @@ -53,12 +53,6 @@
    16.4      virtual void moveBy (QPointF);
    16.5      virtual void move2RelPos (QPointF);		// move relativly to parent^
    16.6      virtual void move2RelPos (double,double);
    16.7 -    virtual void setNote(QString);			// set note
    16.8 -    virtual void setNote(NoteObj);			// set note
    16.9 -    virtual QString getNote();				// returns note	(HTML)
   16.10 -    virtual QString getNoteASCII(const QString &indent, const int &width); // returns note	(ASCII)
   16.11 -    virtual QString getNoteASCII();			// returns note	(ASCII)
   16.12 -    virtual QString getNoteOpenDoc();		// returns note	(OpenDoc)
   16.13  
   16.14      virtual void setURL (QString);
   16.15      virtual QString getURL ();
   16.16 @@ -76,18 +70,16 @@
   16.17  	virtual bool isSetStandardFlag(QString);
   16.18  	virtual QString getSystemFlagName (const QPointF &p);
   16.19  	virtual bool isActiveFlag(const QString&);	// check if flag is set
   16.20 -	virtual void updateNoteFlag();
   16.21 -	virtual void getNoteFromTextEditor ();
   16.22 +	virtual void updateSystemFlags();
   16.23 +	//virtual void getNoteFromTextEditor ();// FIXME should move to vymview?!
   16.24  	virtual void updateFlagsToolbar();
   16.25  	virtual void setHideInExport(bool);		// set export of object (and children)
   16.26 -	virtual bool hideInExport();
   16.27 -	virtual bool isHidden ();
   16.28 +	virtual bool hideInExport();		// FIXME moved to treeitem
   16.29 +	virtual bool isHidden ();		// FIXME moved to treeitem
   16.30  	virtual QString getOrnXMLAttr();		// get attributes for saveToDir
   16.31  
   16.32  protected:
   16.33      HeadingObj *heading;			// Heading
   16.34 -	NoteObj note;					// Notes
   16.35 -	bool isNoteInEditor;			// true if TextEditor has this note
   16.36  	FlagRowObj *systemFlags;		// System Flags
   16.37  	FlagRowObj *standardFlags;		// Standard Flags
   16.38  	FrameObj *frame;				// frame around object
   16.39 @@ -97,7 +89,7 @@
   16.40  	QList <Attribute> attributes;	// List with attributes
   16.41  
   16.42  	bool hideExport;				// hide in exports if set
   16.43 -	bool hidden;					// true if temporary hidden
   16.44 +	bool hidden;					// true if temporary hidden		// FIXME moved to treeitem needs to move
   16.45  };
   16.46  
   16.47  #endif
    17.1 --- a/scripts/update-bookmarks	Mon Mar 23 09:06:51 2009 +0000
    17.2 +++ b/scripts/update-bookmarks	Thu Mar 26 07:49:17 2009 +0000
    17.3 @@ -7,3 +7,4 @@
    17.4  # And now the same using QDBUS in KDE 4:
    17.5  
    17.6  qdbus| grep konqueror- |  xargs -iOBJECT qdbus OBJECT /KBookmarkManager/konqueror org.kde.KIO.KBookmarkManager.notifyCompleteChange
    17.7 +#qdbus| grep konqueror- |  xargs -iOBJECT qdbus OBJECT /KBookmarkManager/kfilePlaces org.kde.KIO.KBookmarkManager.notifyCompleteChange
    18.1 --- a/selection.cpp	Mon Mar 23 09:06:51 2009 +0000
    18.2 +++ b/selection.cpp	Thu Mar 26 07:49:17 2009 +0000
    18.3 @@ -26,7 +26,7 @@
    18.4  	model=m;
    18.5  }
    18.6  
    18.7 -void Selection::update() // FIXME VM emit signal in VM instead and get rid of this
    18.8 +void Selection::update() // FIXME-2 VM emit signal in VM instead and get rid of this
    18.9  {
   18.10  /*
   18.11  	QRectF bbox;
   18.12 @@ -88,19 +88,6 @@
   18.13  void Selection::unselect()
   18.14  {
   18.15  	model->unselect();
   18.16 -	/*
   18.17 -	cout << "Sel::unselect\n";
   18.18 -	if (!selectList.isEmpty() )
   18.19 -	{
   18.20 -		for (int i=0; i< selectList.count(); ++i) 
   18.21 -			selectList.at(i)->unselect();
   18.22 -		lastSelectList=selectList;
   18.23 -		selectList.clear();
   18.24 -		// FIXME VM move to ME
   18.25 -		//while (!selboxList.isEmpty() )	
   18.26 -		//	delete selboxList.takeFirst();
   18.27 -	}	
   18.28 -		*/	
   18.29  }
   18.30  
   18.31  bool Selection::isBlocked()
   18.32 @@ -164,7 +151,7 @@
   18.33  TreeItem* Selection::getBranchItem()
   18.34  {
   18.35  	BranchObj* bo=getBranch();
   18.36 -	if (bo) return bo->getTreeItem(); // FIXME VM get directly from treemodl
   18.37 +	if (bo) return bo->getTreeItem(); //  VM get directly from treemodl
   18.38  	return NULL;
   18.39  }
   18.40  
   18.41 @@ -186,7 +173,7 @@
   18.42  		return NULL;
   18.43  }
   18.44  
   18.45 -QString Selection::getSelectString() // FIXME VM this is also in VM ?! clean up here...
   18.46 +QString Selection::getSelectString() // FIXME-2 VM this is also in VM ?! clean up here...
   18.47  // TODO no multiselections yet
   18.48  {
   18.49  	if (selectList.count()==1)
    19.1 --- a/texteditor.cpp	Mon Mar 23 09:06:51 2009 +0000
    19.2 +++ b/texteditor.cpp	Thu Mar 26 07:49:17 2009 +0000
    19.3 @@ -186,6 +186,29 @@
    19.4  	return filenameHint;
    19.5  }
    19.6  
    19.7 +QString TextEditor::getText()
    19.8 +{
    19.9 +	if (e->toPlainText().isEmpty())
   19.10 +		return QString();
   19.11 +	else	
   19.12 +		return e->text();
   19.13 +}
   19.14 +
   19.15 +NoteObj TextEditor::getNoteObj()
   19.16 +{
   19.17 +	NoteObj note (getText() );
   19.18 +	note.setFontHint (getFontHint() );
   19.19 +	note.setFilenameHint (getFilenameHint () );
   19.20 +	return note;
   19.21 +}
   19.22 +
   19.23 +void TextEditor::setNote (const NoteObj &note)
   19.24 +{
   19.25 +	setText (note.getNote() );
   19.26 +	setFilenameHint (note.getFilenameHint() );
   19.27 +	setFontHint (note.getFontHint() );
   19.28 +}
   19.29 +
   19.30  bool TextEditor::findText(const QString &t, const QTextDocument::FindFlags &flags)
   19.31  {
   19.32  	if (e->find (t,flags))
   19.33 @@ -504,14 +527,6 @@
   19.34      return;
   19.35  }
   19.36  
   19.37 -QString TextEditor::getText()
   19.38 -{
   19.39 -	if (e->toPlainText().isEmpty())
   19.40 -		return "";
   19.41 -	else	
   19.42 -		return e->text();
   19.43 -}
   19.44 -
   19.45  void TextEditor::editorChanged()
   19.46  {
   19.47  	if (isEmpty())
   19.48 @@ -528,7 +543,7 @@
   19.49  }
   19.50  
   19.51  
   19.52 -void TextEditor::setText(QString t)
   19.53 +void TextEditor::setText(const QString &t)
   19.54  {
   19.55  	blockChangedSignal=true;
   19.56  	e->setReadOnly(false);
    20.1 --- a/texteditor.h	Mon Mar 23 09:06:51 2009 +0000
    20.2 +++ b/texteditor.h	Thu Mar 26 07:49:17 2009 +0000
    20.3 @@ -6,6 +6,7 @@
    20.4  enum EditorState {inactiveEditor,emptyEditor,filledEditor};
    20.5  
    20.6  class MyTextEdit;
    20.7 +class NoteObj;
    20.8  
    20.9  class TextEditor : public QMainWindow {
   20.10      Q_OBJECT
   20.11 @@ -23,6 +24,10 @@
   20.12  	QString getFilename ();
   20.13  	void setFilenameHint (const QString&);
   20.14  	QString getFilenameHint ();
   20.15 +	QString getText();
   20.16 +	NoteObj getNoteObj();
   20.17 +	void setNote(const NoteObj &note);
   20.18 +
   20.19  	bool findText(const QString &, const QTextDocument::FindFlags &); // find Text 
   20.20  
   20.21  protected:
   20.22 @@ -33,13 +38,10 @@
   20.23      void closeEvent( QCloseEvent* );
   20.24  	
   20.25  
   20.26 -public:
   20.27 -	QString getText();
   20.28 -
   20.29  public slots:
   20.30 -	void editorChanged();	// received when text() changed
   20.31 -	void setText(QString);	// set Text (by MapEditor)
   20.32 -	void setInactive();		// Nothing can be entered
   20.33 +	void editorChanged();			// received when text() changed
   20.34 +	void setText(const QString &);	// set Text (by MapEditor)
   20.35 +	void setInactive();				// Nothing can be entered
   20.36  	void editCopyAll();
   20.37  
   20.38  signals:
    21.1 --- a/treeitem.cpp	Mon Mar 23 09:06:51 2009 +0000
    21.2 +++ b/treeitem.cpp	Thu Mar 26 07:49:17 2009 +0000
    21.3 @@ -1,10 +1,16 @@
    21.4 +#include <iostream>
    21.5 +using namespace std;
    21.6 +
    21.7  #include <QStringList>
    21.8  
    21.9  #include "branchobj.h"
   21.10  #include "treeitem.h"
   21.11 +#include "vymmodel.h"
   21.12  
   21.13  TreeItem::TreeItem(const QList<QVariant> &data, TreeItem *parent)
   21.14  {
   21.15 +	model=NULL;
   21.16 +
   21.17      parentItem = parent;
   21.18      itemData = data;
   21.19  	lmo=NULL;
   21.20 @@ -12,6 +18,12 @@
   21.21  	branchOffset=0;
   21.22  	branchCounter=0;
   21.23  	lastSelectedBranchNum=-1;
   21.24 +
   21.25 +	note.setNote(""); 
   21.26 +	// note.setFontHint (textEditor->getFontHintDefault() );	//FIXME-2
   21.27 +	// isNoteInEditor=false;
   21.28 +
   21.29 +
   21.30  }
   21.31  
   21.32  TreeItem::~TreeItem()
   21.33 @@ -19,10 +31,36 @@
   21.34      qDeleteAll(childItems);
   21.35  }
   21.36  
   21.37 +QString TreeItem::saveToDir (const QString &tmpdir,const QString &prefix, const QPointF& offset)
   21.38 +{
   21.39 +	qWarning ("TreeItem::saveToDir called directly");
   21.40 +	return QString();
   21.41 +}
   21.42 +
   21.43 +
   21.44 +/*
   21.45 +void TreeItem::copy (OrnamentedObj* other)	//FIXME-2
   21.46 +
   21.47 +{
   21.48 +	note.copy (other->note);
   21.49 +	model=other->model;
   21.50 +}
   21.51 +*/
   21.52 +
   21.53 +void TreeItem::setModel (VymModel *m)
   21.54 +{
   21.55 +	model=m;
   21.56 +}
   21.57 +
   21.58 +VymModel* TreeItem::getModel ()
   21.59 +{
   21.60 +	return model;
   21.61 +}
   21.62  
   21.63  void TreeItem::appendChild(TreeItem *item)
   21.64  {
   21.65      childItems.append(item);
   21.66 +	item->setModel (model);
   21.67  
   21.68  	if (item->type == Branch || item->type ==MapCenter)
   21.69  	{
   21.70 @@ -32,8 +70,6 @@
   21.71  	}
   21.72  }
   21.73  
   21.74 -#include <iostream>
   21.75 -using namespace std;
   21.76  void TreeItem::removeChild(int row)
   21.77  {
   21.78      if (row<0 || row > childItems.size()-1)
   21.79 @@ -109,7 +145,7 @@
   21.80  		case Undefined: return -1;
   21.81  		case MapCenter: return parentItem->childItems.indexOf (this) - branchOffset;
   21.82  		case Branch: return parentItem->childItems.indexOf (this) - branchOffset;
   21.83 -		case Image: return -1; // FIXME
   21.84 +		case Image: return -1; // FIXME-2
   21.85  		default: return -1;
   21.86  	}
   21.87  	
   21.88 @@ -132,26 +168,43 @@
   21.89  
   21.90  void TreeItem::setNote(const QString s)
   21.91  {
   21.92 -	switch (type)
   21.93 -	{
   21.94 -		case MapCenter: 
   21.95 -			((BranchObj*)lmo)->setNote(s);
   21.96 -			break;
   21.97 -		case Branch: 
   21.98 -			((BranchObj*)lmo)->setNote(s);
   21.99 -			break;
  21.100 -		default: ;
  21.101 -	}
  21.102 +	note.setNote(s);
  21.103 +	// updateNoteFlag();  FIXME-2 needed?
  21.104 +	if (model) 
  21.105 +		model->emitContentHasChanged (this);
  21.106 +}
  21.107 +
  21.108 +void TreeItem::setNoteObj(const NoteObj &n, bool updateNoteEditor)
  21.109 +{
  21.110 +	note=n;
  21.111 +	// updateNoteFlag();  FIXME-2 needed?
  21.112 +	if (model && updateNoteEditor)	
  21.113 +		model->emitContentHasChanged (this);
  21.114  }
  21.115  
  21.116  QString TreeItem::getNote()
  21.117  {
  21.118 -	switch (type)
  21.119 -	{
  21.120 -		case MapCenter: return ((BranchObj*)lmo)->getNote();
  21.121 -		case Branch: return ((BranchObj*)lmo)->getNote();
  21.122 -		default: return QString ();
  21.123 -	}
  21.124 +	return note.getNote();
  21.125 +}
  21.126 +
  21.127 +NoteObj TreeItem::getNoteObj()
  21.128 +{
  21.129 +	return note;
  21.130 +}
  21.131 +
  21.132 +QString TreeItem::getNoteASCII(const QString &indent, const int &width)
  21.133 +{
  21.134 +    return note.getNoteASCII(indent,width);
  21.135 +}
  21.136 +
  21.137 +QString TreeItem::getNoteASCII()
  21.138 +{
  21.139 +    return note.getNoteASCII();
  21.140 +}
  21.141 +
  21.142 +QString TreeItem::getNoteOpenDoc()
  21.143 +{
  21.144 +    return note.getNoteOpenDoc();
  21.145  }
  21.146  
  21.147  void TreeItem::setType(const Type t)
  21.148 @@ -221,7 +274,7 @@
  21.149  	return getBranchNum (lastSelectedBranchNum);
  21.150  }
  21.151  
  21.152 -LinkableMapObj* TreeItem::getLMO()	// FIXME VM should be unnecessary in the end
  21.153 +LinkableMapObj* TreeItem::getLMO()	// FIXME-3  VM should be unnecessary in the end
  21.154  {
  21.155  	return lmo;
  21.156  }
    22.1 --- a/treeitem.h	Mon Mar 23 09:06:51 2009 +0000
    22.2 +++ b/treeitem.h	Thu Mar 26 07:49:17 2009 +0000
    22.3 @@ -4,16 +4,25 @@
    22.4  #include <QList>
    22.5  #include <QVariant>
    22.6  
    22.7 +#include "noteobj.h"
    22.8 +#include "xmlobj.h"
    22.9 +
   22.10  class LinkableMapObj;
   22.11 +class VymModel;
   22.12  
   22.13 -class TreeItem
   22.14 +class TreeItem:public XMLObj
   22.15  {
   22.16  public:
   22.17  	enum Type {Undefined,MapCenter,Branch,Image};
   22.18      TreeItem(const QList<QVariant> &data, TreeItem *parent = 0);
   22.19      ~TreeItem();
   22.20 +	QString saveToDir (const QString &tmpdir,const QString &prefix, const QPointF& offset);
   22.21 +
   22.22  
   22.23  	// General housekeeping
   22.24 +	void setModel (VymModel *m);
   22.25 +	VymModel* getModel();
   22.26 +
   22.27      void appendChild (TreeItem *child);
   22.28  	void removeChild (int row);
   22.29  
   22.30 @@ -33,8 +42,22 @@
   22.31      QVariant data(int column) const;
   22.32  	void setHeading (const QString s);
   22.33  	QString getHeading();
   22.34 +
   22.35 +protected:
   22.36 +	NoteObj note;
   22.37 +public:	
   22.38  	void setNote(const QString s);
   22.39  	QString getNote();
   22.40 +	virtual void setNoteObj(const NoteObj &, bool updateNoteEditor=true);
   22.41 +	virtual NoteObj getNoteObj();			
   22.42 +	virtual QString getNoteASCII(const QString &indent, const int &width); // returns note	(ASCII)
   22.43 +    virtual QString getNoteASCII();			// returns note	(ASCII)
   22.44 +    virtual QString getNoteOpenDoc();		// returns note	(OpenDoc)
   22.45 +
   22.46 +
   22.47 +protected:
   22.48 +	Type type;
   22.49 +public:	
   22.50  	void setType (const Type t);
   22.51  	Type getType ();
   22.52  	QString getTypeName ();
   22.53 @@ -53,16 +76,19 @@
   22.54  	void setLMO (LinkableMapObj*);
   22.55  
   22.56  protected:
   22.57 +	VymModel *model;
   22.58 +
   22.59      QList<TreeItem*> childItems;
   22.60      QList<QVariant> itemData;
   22.61      TreeItem *parentItem;
   22.62   
   22.63 -	Type type;
   22.64  	LinkableMapObj *lmo;
   22.65  
   22.66  	int branchOffset;
   22.67  	int branchCounter;
   22.68  	int lastSelectedBranchNum;
   22.69 +
   22.70 +	bool hidden;	//! Hidden in export if true
   22.71  };
   22.72  
   22.73  #endif
    23.1 --- a/treemodel.cpp	Mon Mar 23 09:06:51 2009 +0000
    23.2 +++ b/treemodel.cpp	Thu Mar 26 07:49:17 2009 +0000
    23.3 @@ -81,7 +81,8 @@
    23.4  	if (!parentItem)
    23.5  	{
    23.6  		cout <<"TreeModel::parent      ti=="<<ti<<"  "<<ti->getHeading().toStdString()<<endl;
    23.7 -        return QModelIndex();	// FIXME do this to avoid segfault, but why?
    23.8 +        return QModelIndex();	// FIXME-3 do this to avoid segfault, but why?
    23.9 +		                        // see also my question on qt-interest in march
   23.10  	}	
   23.11  
   23.12      return createIndex(parentItem->childNumber(), 0, parentItem);
   23.13 @@ -185,9 +186,7 @@
   23.14  	cout << "TreeModel::removeRows row="<<row<<"  count="<<count<<"  last="<<last<<endl;
   23.15      TreeItem *pi= getItem (parent);
   23.16  	cout << "  pi="<<pi<<"  "<<pi->getHeading().toStdString()<<endl;
   23.17 -	cout << "  ok0\n";
   23.18  	beginRemoveRows (parent,row,last);
   23.19 -	cout << "  ok1\n";
   23.20  
   23.21  	for (int i=row; i<=last; i++)
   23.22  	{
    24.1 --- a/version.h	Mon Mar 23 09:06:51 2009 +0000
    24.2 +++ b/version.h	Thu Mar 26 07:49:17 2009 +0000
    24.3 @@ -7,7 +7,7 @@
    24.4  #define __VYM_VERSION "1.13.0"
    24.5  //#define __VYM_CODENAME "Codename: RC-1"
    24.6  #define __VYM_CODENAME "Codename: development version"
    24.7 -#define __VYM_BUILD_DATE "2009-03-19"
    24.8 +#define __VYM_BUILD_DATE "2009-03-24"
    24.9  
   24.10  
   24.11  bool checkVersion(const QString &);
    25.1 --- a/vym.pro	Mon Mar 23 09:06:51 2009 +0000
    25.2 +++ b/vym.pro	Thu Mar 26 07:49:17 2009 +0000
    25.3 @@ -31,6 +31,7 @@
    25.4  	attributedelegate.h\
    25.5  	attributedialog.h \
    25.6  	attributewidget.h \
    25.7 +	branchitem.h \
    25.8  	branchobj.h \
    25.9  	branchpropwindow.h\
   25.10  	editxlinkdialog.h \
   25.11 @@ -87,6 +88,7 @@
   25.12  	attributedelegate.cpp \
   25.13  	attributedialog.cpp \
   25.14  	attributewidget.cpp \
   25.15 +	branchitem.cpp \
   25.16  	branchobj.cpp \
   25.17  	branchpropwindow.cpp \
   25.18  	editxlinkdialog.cpp \
    26.1 --- a/vymmodel.cpp	Mon Mar 23 09:06:51 2009 +0000
    26.2 +++ b/vymmodel.cpp	Thu Mar 26 07:49:17 2009 +0000
    26.3 @@ -53,6 +53,7 @@
    26.4  {
    26.5  //    cout << "Const VymModel\n";
    26.6  	init();
    26.7 +	rootItem->setModel (this);
    26.8  }
    26.9  
   26.10  
   26.11 @@ -69,22 +70,22 @@
   26.12  	selModel->clearSelection();
   26.13  
   26.14  	// Remove stuff    
   26.15 -	while (!mapCenters.isEmpty())			// FIXME VM needs to be in treemodel only...
   26.16 +	while (!mapCenters.isEmpty())			// FIXME-2 VM needs to be in treemodel only...
   26.17  		delete mapCenters.takeFirst();
   26.18  
   26.19  	QModelIndex ri=index(rootItem);
   26.20 -	//removeRows (0, rowCount(ri),ri);		// FIXME here should be at least a beginRemoveRows...
   26.21 +	//removeRows (0, rowCount(ri),ri);		// FIXME-2 here should be at least a beginRemoveRows...
   26.22  }
   26.23  
   26.24  void VymModel::init () 
   26.25  {
   26.26  	// We should have at least one map center to start with
   26.27 -	// addMapCenter();  FIXME VM create this in MapEditor as long as model is part of that
   26.28 +	// addMapCenter();  FIXME-2 VM create this in MapEditor as long as model is part of that
   26.29  
   26.30  	// No MapEditor yet
   26.31  	mapEditor=NULL;
   26.32  
   26.33 -	// Also no scene yet (should not be needed anyway)  FIXME VM
   26.34 +	// Also no scene yet (should not be needed anyway)  FIXME-3 VM
   26.35  	mapScene=NULL;
   26.36  
   26.37  	// History 
   26.38 @@ -150,7 +151,7 @@
   26.39  	netstate=Offline;
   26.40  
   26.41  	// Create MapCenter
   26.42 -	//  addMapCenter();  FIXME VM create this in MapEditor until BO and MCO are independent of scene
   26.43 +	//  addMapCenter();  FIXME-2 VM create this in MapEditor until BO and MCO are independent of scene
   26.44  
   26.45  }
   26.46  
   26.47 @@ -164,7 +165,7 @@
   26.48  }
   26.49  
   26.50  
   26.51 -MapEditor* VymModel::getMapEditor()	// FIXME VM better return favourite editor here
   26.52 +MapEditor* VymModel::getMapEditor()	// FIXME-2 VM better return favourite editor here
   26.53  {
   26.54  	return mapEditor;
   26.55  }
   26.56 @@ -174,7 +175,7 @@
   26.57  	return blockReposition;
   26.58  }
   26.59  
   26.60 -void VymModel::updateActions()	// FIXME  maybe don't update if blockReposition is set
   26.61 +void VymModel::updateActions()	// FIXME-2  maybe don't update if blockReposition is set
   26.62  {
   26.63  	cout << "VymModel::updateActions \n";
   26.64  	// Tell mainwindow to update states of actions
   26.65 @@ -233,12 +234,12 @@
   26.66  	s+=xml.beginElement("vymmap",mapAttr);
   26.67  	xml.incIndent();
   26.68  
   26.69 -	// Find the used flags while traversing the tree	// FIXME this can be done local to vymmodel maybe...
   26.70 +	// Find the used flags while traversing the tree	// FIXME-2 this can be done local to vymmodel maybe...
   26.71  	standardFlagsDefault->resetUsedCounter();
   26.72  	
   26.73  	// Reset the counters before saving
   26.74  	// TODO constr. of FIO creates lots of objects, better do this in some other way...
   26.75 -	FloatImageObj (mapScene).resetSaveCounter();// FIXME this can be done local to vymmodel maybe...
   26.76 +	FloatImageObj (mapScene).resetSaveCounter();// FIXME-2 this can be done local to vymmodel maybe...
   26.77  
   26.78  	// Build xml recursivly
   26.79  	if (!saveSel || typeid (*saveSel) == typeid (MapCenterObj))
   26.80 @@ -350,7 +351,7 @@
   26.81  	if (lmode==NewMap)
   26.82  	{
   26.83  		selModel->clearSelection();
   26.84 -		// FIXME VM not needed??? model->setMapEditor(this);
   26.85 +		// FIXME-2 VM not needed??? model->setMapEditor(this);
   26.86  		// (map state is set later at end of load...)
   26.87  	} else
   26.88  	{
   26.89 @@ -464,7 +465,7 @@
   26.90  		file.close();
   26.91  		if ( ok ) 
   26.92  		{
   26.93 -			reposition();	// FIXME VM reposition the view instead...
   26.94 +			reposition();	// FIXME-2 VM reposition the view instead...
   26.95  			selection.update();
   26.96  			if (lmode==NewMap)
   26.97  			{
   26.98 @@ -889,7 +890,7 @@
   26.99  		{
  26.100  			importDirInt (fd->selectedFile() );
  26.101  			reposition();
  26.102 -			//FIXME VM needed? scene()->update();
  26.103 +			//FIXME-3 VM needed? scene()->update();
  26.104  		}
  26.105  	}	
  26.106  }
  26.107 @@ -932,7 +933,7 @@
  26.108  		QDateTime tmod=QFileInfo (filePath).lastModified();
  26.109  		if (tmod>fileChangedTime)
  26.110  		{
  26.111 -			// FIXME VM switch to current mapeditor and finish lineedits...
  26.112 +			// FIXME-2 VM switch to current mapeditor and finish lineedits...
  26.113  			QMessageBox mb( vymName,
  26.114  				tr("The file of the map  on disk has changed:\n\n"  
  26.115  				   "   %1\n\nDo you want to reload that map with the new file?").arg(filePath),
  26.116 @@ -1200,7 +1201,7 @@
  26.117  
  26.118  void VymModel::saveState(const SaveMode &savemode, const QString &undoSelection, const QString &undoCom, const QString &redoSelection, const QString &redoCom, const QString &comment, LinkableMapObj *saveSel)
  26.119  {
  26.120 -	sendData(redoCom);	//FIXME testing
  26.121 +	sendData(redoCom);	//FIXME-3 testing
  26.122  
  26.123  	// Main saveState
  26.124  
  26.125 @@ -1463,7 +1464,7 @@
  26.126  	return QDate::currentDate().toString ("yyyy-MM-dd");
  26.127  }
  26.128  
  26.129 -int VymModel::countBranches()	// FIXME Optimize this: use internal counter instead of going through whole map each time...
  26.130 +int VymModel::countBranches()	// FIXME-2 Optimize this: use internal counter instead of going through whole map each time...
  26.131  {
  26.132  	int c=0;
  26.133  	TreeItem *cur=NULL;
  26.134 @@ -1491,15 +1492,15 @@
  26.135  			"setHeading (\""+s+"\")", 
  26.136  			QString("Set heading of %1 to \"%2\"").arg(getObjectName(sel)).arg(s) );
  26.137  		sel->setHeading(s );
  26.138 -		/* FIXME testing only
  26.139 +		/* FIXME-3 testing only
  26.140  		*/
  26.141  		TreeItem *ti=getSelectedItem();
  26.142  		if (ti)
  26.143  		{
  26.144  			ti->setHeading (s);
  26.145 -			//FIXME VM ix is wrong ModelIndex below, ix2 is (hopefully) correct:
  26.146 +			//FIXME-3 VM ix is wrong ModelIndex below, ix2 is (hopefully) correct:
  26.147  			//QModelIndex ix=index( ti->row(), ti->column(), index (0,0,QModelIndex()) );
  26.148 -			//FIXME VM testing only cout <<"VM::setHeading  s="<<s.toStdString()<<"  ti="<<ti<<"  r,c=("<<ti->row()<<","<<ti->column()<<")"<<endl;
  26.149 +			//FIXME-3 VM testing only cout <<"VM::setHeading  s="<<s.toStdString()<<"  ti="<<ti<<"  r,c=("<<ti->row()<<","<<ti->column()<<")"<<endl;
  26.150  			QModelIndex ix2=index (ti);
  26.151  			emit (dataChanged ( ix2,ix2));
  26.152  		}
  26.153 @@ -1585,8 +1586,7 @@
  26.154  
  26.155  void VymModel::setScene (QGraphicsScene *s)
  26.156  {
  26.157 -	cout << "VM::setscene scene="<<s<<endl;
  26.158 -	mapScene=s;	// FIXME VM should not be necessary anymore, move all occurences to MapEditor
  26.159 +	mapScene=s;	// FIXME-2 VM should not be necessary anymore, move all occurences to MapEditor
  26.160      //init();	// Here we have a mapScene set, 
  26.161  			// which is (still) needed to create MapCenters
  26.162  }
  26.163 @@ -1621,8 +1621,10 @@
  26.164  		return "";
  26.165  }
  26.166  
  26.167 -QStringList VymModel::getURLs()
  26.168 -{
  26.169 +QStringList VymModel::getURLs()	// FIXME-1	first, next moved to vymmodel
  26.170 +{
  26.171 +	return QStringList();
  26.172 +	/*
  26.173  	QStringList urls;
  26.174  	BranchObj *bo=getSelectedBranch();
  26.175  	if (bo)
  26.176 @@ -1635,6 +1637,7 @@
  26.177  		}	
  26.178  	}	
  26.179  	return urls;
  26.180 +	*/
  26.181  }
  26.182  
  26.183  void VymModel::linkFloatImageTo(const QString &dstString)	
  26.184 @@ -1824,7 +1827,7 @@
  26.185  		updateActions();
  26.186  		reposition();
  26.187  		selection.update();
  26.188 -		// FIXME VM needed? scene()->update();
  26.189 +		// FIXME-3 VM needed? scene()->update();
  26.190  	}
  26.191  }
  26.192  
  26.193 @@ -1929,7 +1932,7 @@
  26.194  		BranchObj *obo=par->moveBranchUp (bo);	// bo will be the one below selection
  26.195  		saveState (getSelectString(bo),"moveBranchDown ()",getSelectString(obo),"moveBranchUp ()",QString("Move up %1").arg(getObjectName(bo)));
  26.196  		reposition();
  26.197 -		//FIXME VM needed? scene()->update();
  26.198 +		//FIXME-3 VM needed? scene()->update();
  26.199  		selection.update();
  26.200  		ensureSelectionVisible();
  26.201  	}
  26.202 @@ -1946,7 +1949,7 @@
  26.203  		BranchObj *obo=par->moveBranchDown(bo);	// bo will be the one above selection
  26.204  		saveState(getSelectString(bo),"moveBranchUp ()",getSelectString(obo),"moveBranchDown ()",QString("Move down %1").arg(getObjectName(bo)));
  26.205  		reposition();
  26.206 -		//FIXME VM needed? scene()->update();
  26.207 +		//FIXME-3 VM needed? scene()->update();
  26.208  		selection.update();
  26.209  		ensureSelectionVisible();
  26.210  	}	
  26.211 @@ -1984,7 +1987,7 @@
  26.212  	BranchObj *bo=getSelectedBranch();
  26.213  	if (bo)
  26.214  	{
  26.215 -		FloatImageObj *newfio=bo->addFloatImage(); // FIXME VM Old model, merge with below
  26.216 +		FloatImageObj *newfio=bo->addFloatImage(); // FIXME-1 VM Old model, merge with below
  26.217  
  26.218  		// Create TreeItem
  26.219  		QList<QVariant> cData;
  26.220 @@ -1998,7 +2001,7 @@
  26.221  		if (newfio)
  26.222  		{
  26.223  			newfio->setTreeItem (ti);
  26.224 -			select (newfio); // FIXME VM really needed here?
  26.225 +			select (newfio); // FIXME-2 VM really needed here?
  26.226  			return ti;
  26.227  		}
  26.228  	}
  26.229 @@ -2008,8 +2011,7 @@
  26.230  MapCenterObj* VymModel::addMapCenter ()
  26.231  {
  26.232  	MapCenterObj *mco=addMapCenter (contextPos);
  26.233 -	cout <<"VM::addMCO ()  mapScene="<<mapScene<<endl;
  26.234 -	//FIXME selection.select (mco);
  26.235 +	//FIXME-3 selection.select (mco);
  26.236  	updateActions();
  26.237  	ensureSelectionVisible();
  26.238  	saveState (
  26.239 @@ -2025,7 +2027,7 @@
  26.240  MapCenterObj* VymModel::addMapCenter(QPointF absPos)
  26.241  {
  26.242  	MapCenterObj *mapCenter = new MapCenterObj(mapScene,this);
  26.243 -	mapCenter->setMapEditor(mapEditor);		//FIXME VM needed to get defLinkStyle, mapLinkColorHint ... for later added objects
  26.244 +	mapCenter->setMapEditor(mapEditor);		//FIXME-3 VM needed to get defLinkStyle, mapLinkColorHint ... for later added objects
  26.245  	mapCenter->move (absPos);
  26.246      mapCenter->setVisibility (true);
  26.247  	mapCenter->setHeading (QApplication::translate("Heading of mapcenter in new map", "New map"));
  26.248 @@ -2035,7 +2037,6 @@
  26.249  	QModelIndex parix=index(rootItem);
  26.250  
  26.251  	int n=rootItem->branchCount();
  26.252 -	cout << "VM::addMapCenter n="<<n<<endl;
  26.253  
  26.254  	emit (layoutAboutToBeChanged() );
  26.255  	beginInsertRows (parix,n,n+1);
  26.256 @@ -2126,19 +2127,19 @@
  26.257  			if (newbo)
  26.258  			{
  26.259  				newbo->setTreeItem (ti);
  26.260 -				select (newbo); // FIXME VM really needed here?
  26.261 +				select (newbo); // FIXME-2 VM really needed here?
  26.262  			}
  26.263  			
  26.264  		}else if (num==-1)
  26.265  		{
  26.266  			num=bo->getNum()+1;
  26.267  			bo=(BranchObj*)bo->getParObj();
  26.268 -			if (bo) newbo=bo->insertBranch(num);	//FIXME VM still missing 
  26.269 +			if (bo) newbo=bo->insertBranch(num);	//FIXME-1 VM still missing 
  26.270  		}else if (num==-3)
  26.271  		{
  26.272  			num=bo->getNum();
  26.273  			bo=(BranchObj*)bo->getParObj();
  26.274 -			if (bo) newbo=bo->insertBranch(num);	//FIXME VM still missing
  26.275 +			if (bo) newbo=bo->insertBranch(num);	//FIXME-1 VM still missing
  26.276  		}
  26.277  	}	
  26.278  	return newbo;
  26.279 @@ -2155,7 +2156,7 @@
  26.280  
  26.281  	if (bo)
  26.282  	{
  26.283 -		// FIXME VM  do we still need this in model? setCursor (Qt::ArrowCursor);
  26.284 +		// FIXME-1 VM  do we still need this in model? setCursor (Qt::ArrowCursor);
  26.285  
  26.286  		newbo=addNewBranchInt (pos-2);
  26.287  
  26.288 @@ -2169,7 +2170,7 @@
  26.289  				QString ("Add new branch to %1").arg(getObjectName(bo)));	
  26.290  
  26.291  			reposition();
  26.292 -			// selection.update(); FIXME
  26.293 +			// selection.update(); FIXME-3
  26.294  			latestSelectionString=getSelectString(newbo);
  26.295  			// In Network mode, the client needs to know where the new branch is,
  26.296  			// so we have to pass on this information via saveState.
  26.297 @@ -2197,7 +2198,7 @@
  26.298  		BranchObj *parbo=(BranchObj*)(bo->getParObj());
  26.299  
  26.300  		// add below selection
  26.301 -		newbo=parbo->insertBranch(bo->getNum()+1);		//FIXME VM still missing
  26.302 +		newbo=parbo->insertBranch(bo->getNum()+1);		//FIXME-1 VM still missing
  26.303  
  26.304  		if (newbo)
  26.305  		{
  26.306 @@ -2210,7 +2211,7 @@
  26.307  				QString ("Add branch before %1").arg(getObjectName(bo)));
  26.308  
  26.309  			reposition();
  26.310 -			// selection.update(); FIXME 
  26.311 +			// selection.update(); FIXME-3 
  26.312  		}
  26.313  	}	
  26.314  	latestSelectionString=selection.getSelectString();
  26.315 @@ -2219,7 +2220,7 @@
  26.316  
  26.317  void VymModel::deleteSelection()
  26.318  {
  26.319 -	BranchObj *bo = getSelectedBranch();	// FIXME VM should not be necessary
  26.320 +	BranchObj *bo = getSelectedBranch();	// FIXME-2 VM should not be necessary
  26.321  	if (!bo) return;
  26.322  
  26.323  	QModelIndex ix=getSelectedIndex();
  26.324 @@ -2229,11 +2230,11 @@
  26.325  	if (!parentIndex.isValid()) return;
  26.326  	TreeItem *ti=bo->getTreeItem();
  26.327  	
  26.328 -	if (selectionType()==TreeItem::MapCenter)		//FIXME VM still missing
  26.329 +	if (selectionType()==TreeItem::MapCenter)		//FIXME-1 VM still missing
  26.330  	{
  26.331  	//	BranchObj* par=(BranchObj*)(bo->getParObj());
  26.332  		//selection.unselect();
  26.333 -		/* FIXME VM Note:  does saveStateRemovingPart work for MCO? (No parent!)
  26.334 +		/* FIXME-1 VM Note:  does saveStateRemovingPart work for MCO? (No parent!)
  26.335  		saveStateRemovingPart (bo, QString ("Delete %1").arg(getObjectName(bo)));
  26.336  		*/
  26.337  		/*
  26.338 @@ -2272,7 +2273,7 @@
  26.339  		emit (layoutChanged() );
  26.340  		return;
  26.341  	}
  26.342 -	FloatImageObj *fio=selection.getFloatImage(); 	//FIXME VM still missing
  26.343 +	FloatImageObj *fio=selection.getFloatImage(); 	//FIXME-1 VM still missing
  26.344  
  26.345  	if (fio)
  26.346  	{
  26.347 @@ -2292,7 +2293,7 @@
  26.348  	}
  26.349  }
  26.350  
  26.351 -void VymModel::deleteKeepChildren()		//FIXME VM still missing
  26.352 +void VymModel::deleteKeepChildren()		//FIXME-1 VM still missing
  26.353  
  26.354  {
  26.355  	BranchObj *bo=getSelectedBranch();
  26.356 @@ -2329,7 +2330,7 @@
  26.357  	}	
  26.358  }
  26.359  
  26.360 -void VymModel::deleteChildren()		//FIXME VM still missing
  26.361 +void VymModel::deleteChildren()		//FIXME-1 VM still missing
  26.362  
  26.363  {
  26.364  	BranchObj *bo=getSelectedBranch();
  26.365 @@ -2366,7 +2367,7 @@
  26.366  		);
  26.367  		bo->toggleScroll();
  26.368  		selection.update();
  26.369 -		// FIXME VM needed? scene()->update();
  26.370 +		// FIXME-3 VM needed? scene()->update();
  26.371  		return true;
  26.372  	}	
  26.373  	return false;
  26.374 @@ -2391,7 +2392,7 @@
  26.375  		);
  26.376  		bo->toggleScroll();
  26.377  		selection.update();
  26.378 -		// FIXME VM needed? scene()->update();
  26.379 +		// FIXME-3 VM needed? scene()->update();
  26.380  		return true;
  26.381  	}	
  26.382  	return false;
  26.383 @@ -2409,8 +2410,10 @@
  26.384  	}
  26.385  }
  26.386  
  26.387 -void VymModel::unscrollChildren() 
  26.388 -{
  26.389 +void VymModel::unscrollChildren() 	// FIXME-1	first, next moved to vymmodel
  26.390 +
  26.391 +{
  26.392 +/*
  26.393  	BranchObj *bo=getSelectedBranch();
  26.394  	if (bo)
  26.395  	{
  26.396 @@ -2421,7 +2424,9 @@
  26.397  			bo=bo->next();
  26.398  		}
  26.399  	}	
  26.400 +*/	
  26.401  }
  26.402 +
  26.403  void VymModel::addFloatImage (const QPixmap &img) 
  26.404  {
  26.405  	BranchObj *bo=getSelectedBranch();
  26.406 @@ -2434,7 +2439,7 @@
  26.407  	saveState (PartOfMap, s, "nop ()", s, "copy ()","Copy dropped image to clipboard",fio  );
  26.408  	saveState (fio,"delete ()", bo,QString("paste(%1)").arg(curStep),"Pasting dropped image");
  26.409      reposition();
  26.410 -    // FIXME VM needed? scene()->update();
  26.411 +    // FIXME-3 VM needed? scene()->update();
  26.412    }
  26.413  }
  26.414  
  26.415 @@ -2585,7 +2590,7 @@
  26.416  				"setVymLink (\""+fd->selectedFile()+"\")",
  26.417  				QString("Set vymlink of %1 to %2").arg(getObjectName(bo)).arg(fd->selectedFile())
  26.418  			);	
  26.419 -			setVymLink (fd->selectedFile() );	// FIXME ok?
  26.420 +			setVymLink (fd->selectedFile() );	// FIXME-2 ok?
  26.421  		}
  26.422  	}
  26.423  }
  26.424 @@ -2619,7 +2624,7 @@
  26.425  		bo->setVymLink ("" );
  26.426  		updateActions();
  26.427  		reposition();
  26.428 -		// FIXME VM needed? scene()->update();
  26.429 +		// FIXME-3 VM needed? scene()->update();
  26.430  	}
  26.431  }
  26.432  
  26.433 @@ -2633,8 +2638,10 @@
  26.434  	
  26.435  }
  26.436  
  26.437 -QStringList VymModel::getVymLinks()
  26.438 -{
  26.439 +QStringList VymModel::getVymLinks()	// FIXME-1	first, next moved to vymmodel
  26.440 +{
  26.441 +	return QStringList();
  26.442 +/*
  26.443  	QStringList links;
  26.444  	BranchObj *bo=getSelectedBranch();
  26.445  	if (bo)
  26.446 @@ -2647,6 +2654,7 @@
  26.447  		}	
  26.448  	}	
  26.449  	return links;
  26.450 +*/	
  26.451  }
  26.452  
  26.453  
  26.454 @@ -2664,7 +2672,7 @@
  26.455  	}
  26.456  }
  26.457  
  26.458 -void VymModel::editXLink(int i)	// FIXME VM missing saveState
  26.459 +void VymModel::editXLink(int i)	// FIXME-1 VM missing saveState
  26.460  {
  26.461  	BranchObj *bo=getSelectedBranch();
  26.462  	if (bo)
  26.463 @@ -2850,7 +2858,7 @@
  26.464  			parser.setError (Aborted,"Type of selection is not a branch");
  26.465  		} else if (parser.checkParCount(0))
  26.466  		{	
  26.467 -			//FIXME missing action for copy
  26.468 +			//FIXME-1 missing action for copy
  26.469  		}	
  26.470  	/////////////////////////////////////////////////////////////////////
  26.471  	} else if (com=="cut")
  26.472 @@ -3629,7 +3637,7 @@
  26.473  	// Any errors?
  26.474  	if (parser.errorLevel()==NoError)
  26.475  	{
  26.476 -		// setChanged();  FIXME should not be called e.g. for export?!
  26.477 +		// setChanged();  FIXME-2 should not be called e.g. for export?!
  26.478  		reposition();
  26.479  	}	
  26.480  	else	
  26.481 @@ -3839,12 +3847,15 @@
  26.482  void VymModel::updateNoteFlag()
  26.483  {
  26.484  	setChanged();
  26.485 +	cout << "VM::updateNoteFlag()\n";
  26.486 +	/* FIXME-1 modify note flag
  26.487  	BranchObj *bo=getSelectedBranch();
  26.488  	if (bo) 
  26.489  	{
  26.490  		bo->updateNoteFlag();
  26.491  		mainWindow->updateActions();
  26.492  	}	
  26.493 +	*/
  26.494  }
  26.495  
  26.496  void VymModel::updateRelPositions()
  26.497 @@ -4066,7 +4077,7 @@
  26.498  	}
  26.499  }
  26.500  
  26.501 -void VymModel::selectMapBackgroundImage ()	// FIXME move to ME
  26.502 +void VymModel::selectMapBackgroundImage ()	// FIXME-2 move to ME
  26.503  {
  26.504  	Q3FileDialog *fd=new Q3FileDialog( NULL);
  26.505  	fd->setMode (Q3FileDialog::ExistingFile);
  26.506 @@ -4087,7 +4098,7 @@
  26.507  	}
  26.508  }	
  26.509  
  26.510 -void VymModel::setMapBackgroundImage (const QString &fn)	//FIXME missing savestate
  26.511 +void VymModel::setMapBackgroundImage (const QString &fn)	//FIXME-2 missing savestate
  26.512  {
  26.513  	QColor oldcol=mapScene->backgroundBrush().color();
  26.514  	/*
  26.515 @@ -4103,7 +4114,7 @@
  26.516  	mapScene->setBackgroundBrush(brush);
  26.517  }
  26.518  
  26.519 -void VymModel::selectMapBackgroundColor()	// FIXME move to ME
  26.520 +void VymModel::selectMapBackgroundColor()	// FIXME-1 move to ME
  26.521  {
  26.522  	QColor col = QColorDialog::getColor( mapScene->backgroundBrush().color(), NULL);
  26.523  	if ( !col.isValid() ) return;
  26.524 @@ -4111,7 +4122,7 @@
  26.525  }
  26.526  
  26.527  
  26.528 -void VymModel::setMapBackgroundColor(QColor col)	// FIXME move to ME
  26.529 +void VymModel::setMapBackgroundColor(QColor col)	// FIXME-1 move to ME
  26.530  {
  26.531  	QColor oldcol=mapScene->backgroundBrush().color();
  26.532  	saveState(
  26.533 @@ -4121,38 +4132,38 @@
  26.534  	mapScene->setBackgroundBrush(col);
  26.535  }
  26.536  
  26.537 -QColor VymModel::getMapBackgroundColor()	// FIXME move to ME
  26.538 +QColor VymModel::getMapBackgroundColor()	// FIXME-1 move to ME
  26.539  {
  26.540      return mapScene->backgroundBrush().color();
  26.541  }
  26.542  
  26.543  
  26.544 -LinkableMapObj::ColorHint VymModel::getMapLinkColorHint()	// FIXME move to ME
  26.545 +LinkableMapObj::ColorHint VymModel::getMapLinkColorHint()	// FIXME-1 move to ME
  26.546  {
  26.547  	return linkcolorhint;
  26.548  }
  26.549  
  26.550 -QColor VymModel::getMapDefLinkColor()	// FIXME move to ME
  26.551 +QColor VymModel::getMapDefLinkColor()	// FIXME-1 move to ME
  26.552  {
  26.553  	return defLinkColor;
  26.554  }
  26.555  
  26.556 -void VymModel::setMapDefXLinkColor(QColor col)	// FIXME move to ME
  26.557 +void VymModel::setMapDefXLinkColor(QColor col)	// FIXME-1 move to ME
  26.558  {
  26.559  	defXLinkColor=col;
  26.560  }
  26.561  
  26.562 -QColor VymModel::getMapDefXLinkColor()	// FIXME move to ME
  26.563 +QColor VymModel::getMapDefXLinkColor()	// FIXME-1 move to ME
  26.564  {
  26.565  	return defXLinkColor;
  26.566  }
  26.567  
  26.568 -void VymModel::setMapDefXLinkWidth (int w)	// FIXME move to ME
  26.569 +void VymModel::setMapDefXLinkWidth (int w)	// FIXME-1 move to ME
  26.570  {
  26.571  	defXLinkWidth=w;
  26.572  }
  26.573  
  26.574 -int VymModel::getMapDefXLinkWidth()	// FIXME move to ME
  26.575 +int VymModel::getMapDefXLinkWidth()	// FIXME-1 move to ME
  26.576  {
  26.577  	return defXLinkWidth;
  26.578  }
  26.579 @@ -4276,7 +4287,7 @@
  26.580      if (!tcpServer->listen(QHostAddress::Any,port)) {
  26.581          QMessageBox::critical(NULL, "vym server",
  26.582                                QString("Unable to start the server: %1.").arg(tcpServer->errorString()));
  26.583 -        //FIXME needed? we are no widget any longer... close();
  26.584 +        //FIXME-3 needed? we are no widget any longer... close();
  26.585          return;
  26.586      }
  26.587  	connect(tcpServer, SIGNAL(newConnection()), this, SLOT(newClient()));
  26.588 @@ -4415,11 +4426,18 @@
  26.589  	mapEditor->setSelectionColor (col);
  26.590  }
  26.591  
  26.592 -void VymModel::updateSelection()
  26.593 -{
  26.594 -	QItemSelection newsel=selModel->selection();
  26.595 -	updateSelection (newsel);
  26.596 +/*
  26.597 +void VymModel::changeSelection (const QItemSelection &newsel,const QItemSelection &oldsel)
  26.598 +{
  26.599 +	cout << "VymModel::changeSelection (";
  26.600 +	if (!newsel.indexes().isEmpty() )
  26.601 +		cout << getItem(newsel.indexes().first() )->getHeading().toStdString();
  26.602 +	cout << ",";
  26.603 +	if (!oldsel.indexes().isEmpty() )
  26.604 +		cout << getItem(oldsel.indexes().first() )->getHeading().toStdString();
  26.605 +	cout << ")\n";
  26.606  }
  26.607 +*/
  26.608  
  26.609  void VymModel::updateSelection(const QItemSelection &newsel)
  26.610  {
  26.611 @@ -4428,6 +4446,12 @@
  26.612  	sendSelection();
  26.613  }
  26.614  
  26.615 +void VymModel::updateSelection()
  26.616 +{
  26.617 +	QItemSelection newsel=selModel->selection();
  26.618 +	updateSelection (newsel);
  26.619 +}
  26.620 +
  26.621  void VymModel::setSelectionColor(QColor col)
  26.622  {
  26.623  	if ( !col.isValid() ) return;
  26.624 @@ -4450,7 +4474,7 @@
  26.625  	for (int i=0;i<mapCenters.count(); i++)
  26.626  		mapCenters.at(i)->setHideTmp (mode);	
  26.627  	reposition();
  26.628 -	// FIXME needed? scene()->update();
  26.629 +	// FIXME-3 needed? scene()->update();
  26.630  }
  26.631  
  26.632  
  26.633 @@ -4469,7 +4493,6 @@
  26.634  void VymModel::setSelectionModel (QItemSelectionModel *sm)
  26.635  {
  26.636  	selModel=sm;
  26.637 -	cout << "VM::setSelModel  selModel="<<selModel<<endl;
  26.638  }
  26.639  
  26.640  QItemSelectionModel* VymModel::getSelectionModel()
  26.641 @@ -4529,7 +4552,7 @@
  26.642  		QModelIndex ix=index(ti);
  26.643  		selModel->select (ix,QItemSelectionModel::ClearAndSelect  );
  26.644  		ti->setLastSelectedBranch();
  26.645 -		//updateSelection(oldsel);	//FIXME needed?
  26.646 +		//updateSelection(oldsel);	//FIXME-3 needed?
  26.647  		return true;
  26.648  	}
  26.649  	return false;
  26.650 @@ -4545,11 +4568,16 @@
  26.651  	selection.reselect();
  26.652  }	
  26.653  
  26.654 -void VymModel::ensureSelectionVisible()
  26.655 +void VymModel::ensureSelectionVisible()		//FIXME-3 needed? in vymmodel.h commented...
  26.656  {
  26.657  	LinkableMapObj *lmo=getSelectedLMO();
  26.658  	if (lmo &&mapEditor) mapEditor->ensureVisible (lmo->getBBox() );
  26.659 -	
  26.660 +}
  26.661 +
  26.662 +void VymModel::emitContentHasChanged (TreeItem *ti)
  26.663 +{
  26.664 +	QModelIndex ix=index(ti);
  26.665 +	emit (contentHasChanged (ix) );
  26.666  }
  26.667  
  26.668  void VymModel::selectInt (LinkableMapObj *lmo)
  26.669 @@ -4557,7 +4585,7 @@
  26.670  	if (selection.select(lmo))
  26.671  	{
  26.672  		//selection.update();
  26.673 -		sendSelection ();	// FIXME VM use signal
  26.674 +		sendSelection ();	// FIXME-4 VM use signal
  26.675  	}
  26.676  }
  26.677  
  26.678 @@ -4947,10 +4975,11 @@
  26.679  
  26.680  TreeItem* VymModel::getSelectedItem()
  26.681  {
  26.682 -	// FIXME this may not only be branch, but also float etc...
  26.683 -	BranchObj* bo=getSelectedBranch();
  26.684 -	if (bo) return bo->getTreeItem(); // FIXME VM get directly from treemodl
  26.685 -	return NULL;
  26.686 +	QModelIndexList list=selModel->selectedIndexes();
  26.687 +	if (!list.isEmpty() )
  26.688 +		return getItem (list.first() );
  26.689 +	else	
  26.690 +		return NULL;
  26.691  }
  26.692  
  26.693  QModelIndex VymModel::getSelectedIndex()
  26.694 @@ -4976,7 +5005,7 @@
  26.695  		return QString();
  26.696  }
  26.697  
  26.698 -QString VymModel::getSelectString (LinkableMapObj *lmo)	// FIXME VM needs to use TreeModel
  26.699 +QString VymModel::getSelectString (LinkableMapObj *lmo)	// FIXME-2 VM needs to use TreeModel
  26.700  {
  26.701  	QString s;
  26.702  	if (!lmo) return s;
    27.1 --- a/vymmodel.h	Mon Mar 23 09:06:51 2009 +0000
    27.2 +++ b/vymmodel.h	Thu Mar 26 07:49:17 2009 +0000
    27.3 @@ -417,7 +417,10 @@
    27.4  
    27.5  	//void ensureSelectionVisible();		//!< Show selection in all views
    27.6  
    27.7 +	void emitContentHasChanged (TreeItem *ti);
    27.8 +
    27.9  signals:
   27.10 +	void contentHasChanged (QModelIndex ix);
   27.11  	void newChildObject(QModelIndex ix);
   27.12  
   27.13  private:
   27.14 @@ -572,6 +575,13 @@
   27.15  	QString getSelectString ();
   27.16  	QString getSelectString (LinkableMapObj *lmo);
   27.17  	
   27.18 +	
   27.19 +	/*
   27.20 +public slots:
   27.21 +	void changeSelection (const QItemSelection &newSel, const QItemSelection &delSel);
   27.22 +	*/
   27.23 +
   27.24 +public:
   27.25  	void updateSelection(const QItemSelection &oldsel);
   27.26  	void updateSelection();
   27.27  	void selectMapLinkColor();
   27.28 @@ -583,7 +593,6 @@
   27.29  public:	
   27.30      void setSelectionColor(QColor);
   27.31      QColor getSelectionColor();
   27.32 -
   27.33  };
   27.34  
   27.35  #endif
    28.1 --- a/vymview.cpp	Mon Mar 23 09:06:51 2009 +0000
    28.2 +++ b/vymview.cpp	Thu Mar 26 07:49:17 2009 +0000
    28.3 @@ -35,15 +35,19 @@
    28.4  		selModel, SIGNAL (currentChanged(const QModelIndex &, const QModelIndex &)), 
    28.5  		me,SLOT (updateCurrent(const QModelIndex &,const QModelIndex &)));
    28.6  
    28.7 -	// VymModel may want to update selection, e.g. during animation
    28.8 +	// VymModel may want to update selection or other data, e.g. during animation
    28.9  	connect (
   28.10  		model, SIGNAL (selectionChanged(const QItemSelection &, const QItemSelection &)), 
   28.11  		me,SLOT (updateSelection(const QItemSelection &,const QItemSelection &)));
   28.12  	connect (
   28.13  		model, SIGNAL (newChildObject(QModelIndex) ),
   28.14  		this,SLOT (updateChilds (QModelIndex) ) );
   28.15 +	connect (
   28.16 +		model, SIGNAL (contentHasChanged(QModelIndex) ),
   28.17 +		mainWindow, SLOT (updateContent(QModelIndex) ) );
   28.18 +		
   28.19  
   28.20 -	//me->viewport()->setFocus();	//FIXME needed?
   28.21 +	//me->viewport()->setFocus();	//FIXME-3 needed?
   28.22  	me->setAntiAlias (mainWindow->isAliased());
   28.23  	me->setSmoothPixmap(mainWindow->hasSmoothPixmapTransform());
   28.24  
   28.25 @@ -72,23 +76,19 @@
   28.26  	treeview->setExpanded (ix,true);
   28.27  }
   28.28  
   28.29 -void VymView::changeSelection (const QItemSelection &, const QItemSelection &)
   28.30 +void VymView::changeSelection (const QItemSelection &newsel, const QItemSelection &oldsel)
   28.31  {
   28.32 -	cout << "VymView::changeSelection (newsel,delsel)\n";
   28.33 -	//treeview->expandAll();	//FIXME only for testing
   28.34 +	/*
   28.35 +	cout <<"VymView::changeSelection (";
   28.36 +	if (!newsel.indexes().isEmpty() )
   28.37 +		cout << model->getItem(newsel.indexes().first() )->getHeading().toStdString();
   28.38 +	cout << " <- ";
   28.39 +	if (!oldsel.indexes().isEmpty() )
   28.40 +		cout << model->getItem(oldsel.indexes().first() )->getHeading().toStdString();
   28.41 +	cout << ")\n";
   28.42 +	*/
   28.43  
   28.44 -	// Show URL and link in statusbar
   28.45 -	QString status;
   28.46 -	QString s=model->getURL();
   28.47 -	if (!s.isEmpty() ) status+="URL: "+s+"  ";
   28.48 -	s=model->getVymLink();
   28.49 -	if (!s.isEmpty() ) status+="Link: "+s;
   28.50 -	if (!status.isEmpty() ) mainWindow->statusMessage (status);
   28.51 -
   28.52 -	// Update Toolbar // FIXME, was so far in BranchObj
   28.53 -	//updateFlagsToolbar();
   28.54 -
   28.55 -	// Update actions
   28.56 -	mainWindow->updateActions();
   28.57 +	// Notify mainwindow to update satellites like NoteEditor, if needed (model==currenModel...)
   28.58 +	mainWindow->changeSelection (model,newsel,oldsel);	// FIXME-3 maybe connect VymModel <-> MainWindow directly?
   28.59  }
   28.60  
    29.1 --- a/xml-freemind.cpp	Mon Mar 23 09:06:51 2009 +0000
    29.2 +++ b/xml-freemind.cpp	Thu Mar 26 07:49:17 2009 +0000
    29.3 @@ -67,8 +67,8 @@
    29.4  				   "saved using freemind " +atts.value("version")+". "
    29.5  				   "The version of this vym can parse freemind " + v +"."); 
    29.6  		}
    29.7 -		//FIXME TreeItem *ti=model->first();	// FIXME this will be NULL !!!
    29.8 -		TreeItem *ti=NULL; // FIXME
    29.9 +		//FIXME-3 TreeItem *ti=model->first();	//  this will be NULL !!!
   29.10 +		TreeItem *ti=NULL;
   29.11  
   29.12  		BranchObj *bo;
   29.13  		if (ti->getType()==TreeItem::MapCenter)
   29.14 @@ -76,7 +76,7 @@
   29.15  		else
   29.16  			qWarning ("parseFreeMindHandler::startElement  no mapCenter!!");
   29.17  
   29.18 -		//FIXME cout <<"model="<<model<<"   first="<<model->first()<<endl;
   29.19 +		//cout <<"model="<<model<<"   first="<<model->first()<<endl;
   29.20  
   29.21  		lastBranch=bo->addBranch();
   29.22  
   29.23 @@ -250,7 +250,7 @@
   29.24          case StateFont: break; 
   29.25          case StateHook: break; 
   29.26          case StateText: 
   29.27 -			lastBranch->setNote (ch_simplified);
   29.28 +			lastBranch->getTreeItem()->setNote (ch_simplified);
   29.29  			break; 
   29.30          default: 
   29.31  			return false;
    30.1 --- a/xml-vym.cpp	Mon Mar 23 09:06:51 2009 +0000
    30.2 +++ b/xml-vym.cpp	Thu Mar 26 07:49:17 2009 +0000
    30.3 @@ -202,7 +202,7 @@
    30.4  			// selection==lmo==NULL
    30.5  			// Treat it like ImportAdd then...
    30.6  			loadMode=ImportAdd;
    30.7 -			// FIXME lmo=model->first()->getLMO();		
    30.8 +			// FIXME-3 lmo=model->first()->getLMO();		
    30.9  			// Do we really have no MCO when loading?????
   30.10  			cout << "xml-vym aborted\n";
   30.11  		}	
   30.12 @@ -298,7 +298,7 @@
   30.13  				state=StateHtmlNote;  
   30.14  				htmldata.replace ("<br></br>","<br />");
   30.15  				no.setNote (htmldata);
   30.16 -				lastBranch->setNote (no);
   30.17 +				lastBranch->getTreeItem()->setNoteObj (no);
   30.18  			}	
   30.19  			break;
   30.20  		default: 
   30.21 @@ -326,7 +326,7 @@
   30.22  		case StateMapSetting:break;
   30.23          case StateMapCenter: break;
   30.24          case StateNote:
   30.25 -			lastBranch->setNote(ch_simplified);
   30.26 +			lastBranch->getTreeItem()->setNote(ch_simplified);
   30.27  			break;
   30.28          case StateBranch: break;
   30.29          case StateStandardFlag: 
   30.30 @@ -488,7 +488,7 @@
   30.31  	}		
   30.32  	if (!a.value( "fonthint").isEmpty() ) 
   30.33  		no.setFontHint(a.value ("fonthint") );
   30.34 -	lastBranch->setNote(no);
   30.35 +	lastBranch->getTreeItem()->setNoteObj(no);
   30.36  	return true;
   30.37  }
   30.38