# HG changeset patch
# User insilmaril
# Date 1268911862 0
# Node ID 5ecd0462f76b53429bda83d16e3361d039380eda
# Parent  62d621e3e55063d7bcb352313fe79ab9b8f22764
Switch to Qt 4.6.0: Removing QtAnimation framework

diff -r 62d621e3e550 -r 5ecd0462f76b findresultmodel.cpp
--- a/findresultmodel.cpp	Mon Mar 15 15:32:37 2010 +0000
+++ b/findresultmodel.cpp	Thu Mar 18 11:31:02 2010 +0000
@@ -223,4 +223,7 @@
 	}
 }
 
+void FindResultModel::addSubItem (TreeItem *parent,const QString &s, TreeItem *ti, int index)
+{
+}
 
diff -r 62d621e3e550 -r 5ecd0462f76b findresultmodel.h
--- a/findresultmodel.h	Mon Mar 15 15:32:37 2010 +0000
+++ b/findresultmodel.h	Thu Mar 18 11:31:02 2010 +0000
@@ -48,6 +48,7 @@
 
 	void addItem (TreeItem *ti);
 	void addItem (const QString &s);
+	void addSubItem (TreeItem *parent,const QString &s, TreeItem *ti, int index);
 
 private:
 
diff -r 62d621e3e550 -r 5ecd0462f76b flag.cpp
--- a/flag.cpp	Mon Mar 15 15:32:37 2010 +0000
+++ b/flag.cpp	Thu Mar 18 11:31:02 2010 +0000
@@ -11,6 +11,12 @@
     init ();
 }
 
+Flag::Flag(const QString &fname)
+{
+    init ();
+	load (fname);
+}
+
 Flag::Flag (Flag* io)
 {
 	//cout << "Const Flag (Flag)\n";
@@ -49,7 +55,7 @@
 void Flag::load (const QString &fn)
 {
 	if (!pixmap.load(fn))
-		qDebug()<<"Flag::load failed to load "<<fn;
+		qDebug()<<"Flag::load ("<<fn<<") failed.";
 }
 
 void Flag::load (const QPixmap &pm)
diff -r 62d621e3e550 -r 5ecd0462f76b flag.h
--- a/flag.h	Mon Mar 15 15:32:37 2010 +0000
+++ b/flag.h	Thu Mar 18 11:31:02 2010 +0000
@@ -18,6 +18,7 @@
 class Flag:public XMLObj {
 public:
     Flag ();
+    Flag (const QString &fname);
     Flag (Flag*);
     ~Flag ();
     virtual void init ();
diff -r 62d621e3e550 -r 5ecd0462f76b mainwindow.cpp
--- a/mainwindow.cpp	Mon Mar 15 15:32:37 2010 +0000
+++ b/mainwindow.cpp	Thu Mar 18 11:31:02 2010 +0000
@@ -272,6 +272,7 @@
 	settings.setValue( "/version/builddate", vymBuildDate );
 
 	settings.setValue( "/mainwindow/autosave/use",actionSettingsAutosaveToggle->isOn() );
+	settings.setValue ("/mainwindow/autoLayout/use",actionSettingsAutoLayoutToggle->isOn() );
 	settings.setValue( "/mapeditor/editmode/autoSelectNewBranch",actionSettingsAutoSelectNewBranch->isOn() );
 	settings.setValue( "/mainwindow/writeBackupFile",actionSettingsWriteBackupFile->isOn() );
 	settings.setValue( "/mapeditor/editmode/autoSelectText",actionSettingsAutoSelectText->isOn() );
@@ -666,16 +667,6 @@
 
 
 	// Add branch by inserting it at selection
-	a = new QAction(tr( "Add branch (insert)","Edit menu" ), this);
-	a->setStatusTip ( tr( "Add a branch by inserting and making selection its child" ));
-	a->setShortcut (Qt::ALT + Qt::Key_Insert );		//Insert branch
-	a->setShortcutContext (Qt::WindowShortcut);
-	switchboard.addConnection(a,tr("Edit","Shortcut group"));
-	addAction (a);
-	connect( a, SIGNAL( triggered() ), this, SLOT( editNewBranchBefore() ) );
-	a->setEnabled (false);
-	actionListBranches.append(a);
-	actionAddBranchBefore=a;
 	a = new QAction(tr( "Add branch (insert)","Edit menu" ),this);
 	a->setStatusTip ( tr( "Add a branch by inserting and making selection its child" ));
 	a->setShortcut ( Qt::ALT + Qt::Key_A );			//Insert branch
@@ -684,6 +675,7 @@
 	addAction (a);
 	connect( a, SIGNAL( triggered() ), this, SLOT( editNewBranchBefore() ) );
 	actionListBranches.append(a);
+	actionAddBranchBefore=a;
 
 	// Add branch above
 	a = new QAction(tr( "Add branch above","Edit menu" ), this);
@@ -1214,7 +1206,7 @@
 
 	a = new QAction( QPixmap(iconPath+"viewshowsel.png"), tr( "Show selection","View action" ), this);
 	a->setStatusTip (tr( "Show selection" ));
-	a->setShortcut(Qt::CTRL + Qt::Key_Period);
+	a->setShortcut(Qt::Key_Period);
 	switchboard.addConnection(a,tr("View shortcuts","Shortcut group"));
 	a->addTo( tb );
 	viewMenu->addAction (a);
@@ -1332,28 +1324,25 @@
 	// Create System Flags
 	QToolBar *tb=NULL;
 
-	Flag *flag=new Flag;;
-	flag->setVisible(true);
-
-	flag->load(flagsPath+"flag-note.png");
+	Flag *flag=new Flag(flagsPath+"flag-note.png");
 	setupFlag (flag,tb,"system-note",tr("Note","SystemFlag"));
 
-	flag->load(flagsPath+"flag-url.png");
+	flag=new Flag(flagsPath+"flag-url.png");
 	setupFlag (flag,tb,"system-url",tr("URL to Document ","SystemFlag"));
 
-	flag->load(flagsPath+"flag-url-bugzilla-novell.png");
+	flag=new Flag(flagsPath+"flag-url-bugzilla-novell.png");
 	setupFlag (flag,tb,"system-url-bugzilla-novell",tr("URL to Bugzilla ","SystemFlag"));
 
-	flag->load(flagsPath+"flag-vymlink.png");
+	flag=new Flag(flagsPath+"flag-vymlink.png");
 	setupFlag (flag,tb,"system-vymLink",tr("Link to another vym map","SystemFlag"));
 
-	flag->load(flagsPath+"flag-scrolled-right.png");
+	flag=new Flag(flagsPath+"flag-scrolled-right.png");
 	setupFlag (flag,tb,"system-scrolledright",tr("subtree is scrolled","SystemFlag"));
 
-	flag->load(flagsPath+"flag-tmpUnscrolled-right.png");
+	flag=new Flag(flagsPath+"flag-tmpUnscrolled-right.png");
 	setupFlag (flag,tb,"system-tmpUnscrolledRight",tr("subtree is temporary scrolled","SystemFlag"));
 
-	flag->load(flagsPath+"flag-hideexport.png");
+	flag=new Flag(flagsPath+"flag-hideexport.png");
 	setupFlag (flag,tb,"system-hideInExport",tr("Hide object in exported maps","SystemFlag"));
 
 	// Create Standard Flags
@@ -1361,170 +1350,189 @@
 	tb->setObjectName ("standardFlagTB");
 	standardFlagsMaster->setToolBar (tb);
 
-	flag->load(flagsPath+"flag-exclamationmark.png");
+	flag=new Flag(flagsPath+"flag-exclamationmark.png");
 	flag->setGroup("standard-mark");
 	setupFlag (flag,tb,"exclamationmark",tr("Take care!","Standardflag"));
 
-	flag->load(flagsPath+"flag-questionmark.png");
+	flag=new Flag(flagsPath+"flag-questionmark.png");
 	flag->setGroup("standard-mark");
 	setupFlag (flag,tb,"questionmark",tr("Really?","Standardflag"));
 
-	flag->load(flagsPath+"flag-hook-green.png");
+	flag=new Flag(flagsPath+"flag-hook-green.png");
 	flag->setGroup("standard-status");
 	setupFlag (flag,tb,"hook-green",tr("Status - ok,done","Standardflag"));
 
-	flag->load(flagsPath+"flag-wip.png");
+	flag=new Flag(flagsPath+"flag-wip.png");
 	flag->setGroup("standard-status");
 	setupFlag (flag,tb,"wip",tr("Status - work in progress","Standardflag"));
 
-	flag->load(flagsPath+"flag-cross-red.png");
+	flag=new Flag(flagsPath+"flag-cross-red.png");
 	flag->setGroup("standard-status");
 	setupFlag (flag,tb,"cross-red",tr("Status - missing, not started","Standardflag"));
 	flag->unsetGroup();
 
-	flag->load(flagsPath+"flag-stopsign.png");
+	flag=new Flag(flagsPath+"flag-stopsign.png");
 	setupFlag (flag,tb,"stopsign",tr("This won't work!","Standardflag"));
 
-	flag->load(flagsPath+"flag-smiley-good.png");
+	flag=new Flag(flagsPath+"flag-smiley-good.png");
 	flag->setGroup("standard-smiley");
 	setupFlag (flag,tb,"smiley-good",tr("Good","Standardflag"));
 
-	flag->load(flagsPath+"flag-smiley-sad.png");
+	flag=new Flag(flagsPath+"flag-smiley-sad.png");
 	flag->setGroup("standard-smiley");
 	setupFlag (flag,tb,"smiley-sad",tr("Bad","Standardflag"));
 
-	flag->load(flagsPath+"flag-smiley-omg.png");
+	flag=new Flag(flagsPath+"flag-smiley-omg.png");
 	flag->setGroup("standard-smiley");
 	setupFlag (flag,tb,"smiley-omb",tr("Oh no!","Standardflag"));
 	// Original omg.png (in KDE emoticons)
 	flag->unsetGroup();
 
-	flag->load(flagsPath+"flag-kalarm.png");
+	flag=new Flag(flagsPath+"flag-kalarm.png");
 	setupFlag (flag,tb,"clock",tr("Time critical","Standardflag"));
 
-	flag->load(flagsPath+"flag-phone.png");
+	flag=new Flag(flagsPath+"flag-phone.png");
 	setupFlag (flag,tb,"phone",tr("Call...","Standardflag"));
 
-	flag->load(flagsPath+"flag-lamp.png");
+	flag=new Flag(flagsPath+"flag-lamp.png");
 	setupFlag (flag,tb,"lamp",tr("Idea!","Standardflag"));
 
-	flag->load(flagsPath+"flag-arrow-up.png");
+	flag=new Flag(flagsPath+"flag-arrow-up.png");
 	flag->setGroup("standard-arrow");
 	setupFlag (flag,tb,"arrow-up",tr("Important","Standardflag"));
 
-	flag->load(flagsPath+"flag-arrow-down.png");
+	flag=new Flag(flagsPath+"flag-arrow-down.png");
 	flag->setGroup("standard-arrow");
 	setupFlag (flag,tb,"arrow-down",tr("Unimportant","Standardflag"));
 
-	flag->load(flagsPath+"flag-arrow-2up.png");
+	flag=new Flag(flagsPath+"flag-arrow-2up.png");
 	flag->setGroup("standard-arrow");
 	setupFlag (flag,tb,"2arrow-up",tr("Very important!","Standardflag"));
 
-	flag->load(flagsPath+"flag-arrow-2down.png");
+	flag=new Flag(flagsPath+"flag-arrow-2down.png");
 	flag->setGroup("standard-arrow");
 	setupFlag (flag,tb,"2arrow-down",tr("Very unimportant!","Standardflag"));
 	flag->unsetGroup();
 
-	flag->load(flagsPath+"flag-thumb-up.png");
+	flag=new Flag(flagsPath+"flag-thumb-up.png");
 	flag->setGroup("standard-thumb");
 	setupFlag (flag,tb,"thumb-up",tr("I like this","Standardflag"));
 
-	flag->load(flagsPath+"flag-thumb-down.png");
+	flag=new Flag(flagsPath+"flag-thumb-down.png");
 	flag->setGroup("standard-thumb");
 	setupFlag (flag,tb,"thumb-down",tr("I do not like this","Standardflag"));
 	flag->unsetGroup();
 
-	flag->load(flagsPath+"flag-rose.png");
+	flag=new Flag(flagsPath+"flag-rose.png");
 	setupFlag (flag,tb,"rose",tr("Rose","Standardflag"));
 
-	flag->load(flagsPath+"flag-heart.png");
+	flag=new Flag(flagsPath+"flag-heart.png");
 	setupFlag (flag,tb,"heart",tr("I just love...","Standardflag"));
 
-	flag->load(flagsPath+"flag-present.png");
+	flag=new Flag(flagsPath+"flag-present.png");
 	setupFlag (flag,tb,"present",tr("Surprise!","Standardflag"));
 
-	flag->load(flagsPath+"flag-flash.png");
+	flag=new Flag(flagsPath+"flag-flash.png");
 	setupFlag (flag,tb,"flash",tr("Dangerous","Standardflag"));
 
 	// Original: xsldbg_output.png
-	flag->load(flagsPath+"flag-info.png");
+	flag=new Flag(flagsPath+"flag-info.png");
 	setupFlag (flag,tb,"info",tr("Info","Standardflag"));
 
 	// Original khelpcenter.png
-	flag->load(flagsPath+"flag-lifebelt.png");
+	flag=new Flag(flagsPath+"flag-lifebelt.png");
 	setupFlag (flag,tb,"lifebelt",tr("This will help","Standardflag"));
 
 	// Freemind flags
+	flag=new Flag(flagsPath+"freemind/warning.png");
 	flag->setVisible(false);
-	flag->load(flagsPath+"freemind/warning.png");
 	setupFlag (flag,tb,  "freemind-warning",tr("Important","Freemind-Flag"));
 
 	for (int i=1; i<8; i++)
 	{
-		flag->load(flagsPath+QString("freemind/priority-%1.png").arg(i));
+		flag=new Flag(flagsPath+QString("freemind/priority-%1.png").arg(i));
 		setupFlag (flag,tb, QString("freemind-priority-%1").arg(i),tr("Priority","Freemind-Flag"));
 	}
 
-	flag->load(flagsPath+"freemind/back.png");
+	flag=new Flag(flagsPath+"freemind/back.png");
+	flag->setVisible(false);
 	setupFlag (flag,tb,"freemind-back",tr("Back","Freemind-Flag"));
 
-	flag->load(flagsPath+"freemind/forward.png");
+	flag=new Flag(flagsPath+"freemind/forward.png");
+	flag->setVisible(false);
 	setupFlag (flag,tb,"freemind-forward",tr("forward","Freemind-Flag"));
 
-	flag->load(flagsPath+"freemind/attach.png");
+	flag=new Flag(flagsPath+"freemind/attach.png");
+	flag->setVisible(false);
 	setupFlag (flag,tb,"freemind-attach",tr("Look here","Freemind-Flag"));
 
-	flag->load(flagsPath+"freemind/clanbomber.png");
+	flag=new Flag(flagsPath+"freemind/clanbomber.png");
+	flag->setVisible(false);
 	setupFlag (flag,tb,"freemind-clanbomber",tr("Dangerous","Freemind-Flag"));
 
-	flag->load(flagsPath+"freemind/desktopnew.png");
+	flag=new Flag(flagsPath+"freemind/desktopnew.png");
+	flag->setVisible(false);
 	setupFlag (flag,tb,"freemind-desktopnew",tr("Don't flagrget","Freemind-Flag"));
 
-	flag->load(flagsPath+"freemind/flag.png");
+	flag=new Flag(flagsPath+"freemind/flag.png");
+	flag->setVisible(false);
 	setupFlag (flag,tb,"freemind-flag",tr("Flag","Freemind-Flag"));
 
 
-	flag->load(flagsPath+"freemind/gohome.png");
+	flag=new Flag(flagsPath+"freemind/gohome.png");
+	flag->setVisible(false);
 	setupFlag (flag,tb,"freemind-gohome",tr("Home","Freemind-Flag"));
 
-
-	flag->load(flagsPath+"freemind/kaddressbook.png");
+	flag=new Flag(flagsPath+"freemind/kaddressbook.png");
+	flag->setVisible(false);
 	setupFlag (flag,tb,"freemind-kaddressbook",tr("Telephone","Freemind-Flag"));
 
-	flag->load(flagsPath+"freemind/knotify.png");
+	flag=new Flag(flagsPath+"freemind/knotify.png");
+	flag->setVisible(false);
 	setupFlag (flag,tb,"freemind-knotify",tr("Music","Freemind-Flag"));
 
-	flag->load(flagsPath+"freemind/korn.png");
+	flag=new Flag(flagsPath+"freemind/korn.png");
+	flag->setVisible(false);
 	setupFlag (flag,tb,"freemind-korn",tr("Mailbox","Freemind-Flag"));
 
-	flag->load(flagsPath+"freemind/mail.png");
+	flag=new Flag(flagsPath+"freemind/mail.png");
+	flag->setVisible(false);
 	setupFlag (flag,tb,"freemind-mail",tr("Maix","Freemind-Flag"));
 
-	flag->load(flagsPath+"freemind/password.png");
+	flag=new Flag(flagsPath+"freemind/password.png");
+	flag->setVisible(false);
 	setupFlag (flag,tb,"freemind-password",tr("Password","Freemind-Flag"));
 
-	flag->load(flagsPath+"freemind/pencil.png");
+	flag=new Flag(flagsPath+"freemind/pencil.png");
+	flag->setVisible(false);
 	setupFlag (flag,tb,"freemind-pencil",tr("To be improved","Freemind-Flag"));
 
-	flag->load(flagsPath+"freemind/stop.png");
+	flag=new Flag(flagsPath+"freemind/stop.png");
+	flag->setVisible(false);
 	setupFlag (flag,tb,"freemind-stop",tr("Stop","Freemind-Flag"));
 
-	flag->load(flagsPath+"freemind/wizard.png");
+	flag=new Flag(flagsPath+"freemind/wizard.png");
+	flag->setVisible(false);
 	setupFlag (flag,tb,"freemind-wizard",tr("Magic","Freemind-Flag"));
 
-	flag->load(flagsPath+"freemind/xmag.png");
+	flag=new Flag(flagsPath+"freemind/xmag.png");
+	flag->setVisible(false);
 	setupFlag (flag,tb,"freemind-xmag",tr("To be discussed","Freemind-Flag"));
 
-	flag->load(flagsPath+"freemind/bell.png");
+	flag=new Flag(flagsPath+"freemind/bell.png");
+	flag->setVisible(false);
 	setupFlag (flag,tb,"freemind-bell",tr("Reminder","Freemind-Flag"));
 
-	flag->load(flagsPath+"freemind/bookmark.png");
+	flag=new Flag(flagsPath+"freemind/bookmark.png");
+	flag->setVisible(false);
 	setupFlag (flag,tb,"freemind-bookmark",tr("Excellent","Freemind-Flag"));
 
-	flag->load(flagsPath+"freemind/penguin.png");
+	flag= new Flag(flagsPath+"freemind/penguin.png");
+	flag->setVisible(false);
 	setupFlag (flag,tb,"freemind-penguin",tr("Linux","Freemind-Flag"));
 
-	flag->load(flagsPath+"freemind/licq.png");
+	flag=new Flag (flagsPath+"freemind/licq.png");
+	flag->setVisible(false);
 	setupFlag (flag,tb,"freemind-licq",tr("Sweet","Freemind-Flag"));
 }
 
@@ -1672,6 +1680,8 @@
 	settingsMenu->addAction (a);
 	actionSettingsUseHideExport=a;
 
+	settingsMenu->addSeparator();
+
 	a = new QAction( tr( "Animation","Settings action"), this);
 	a->setStatusTip( tr( "Animation"));
 	a->setToggleAction(true);
@@ -1679,6 +1689,15 @@
 	connect( a, SIGNAL( triggered() ), this, SLOT( settingsToggleAnimation() ) );
 	settingsMenu->addAction (a);
 	actionSettingsUseAnimation=a;
+
+	a = new QAction( tr( "Automatic layout","Settings action"), this);
+	a->setStatusTip( tr( "Automatic layout"));
+	a->setToggleAction(true);
+	a->setChecked ( settings.value ("/mainwindow/autoLayout/use",true).toBool());
+	connect( a, SIGNAL( triggered() ), this, SLOT( settingsAutoLayoutToggle() ) );
+	settingsMenu->addAction (a);
+	actionSettingsAutoLayoutToggle=a;
+
 }
 
 // Test Actions
@@ -1740,8 +1759,6 @@
 // Context Menus
 void Main::setupContextMenus()
 {
-	QAction*a;
-
 	// Context Menu for branch or mapcenter
 	branchContextMenu =new QMenu (this);
 	branchContextMenu->addAction (actionViewTogglePropertyWindow);
@@ -1810,7 +1827,7 @@
 
 	// Context menu for floatimage
 	floatimageContextMenu =new QMenu (this);
-	a= new QAction (tr ("Save image","Context action"),this);
+	QAction *a= new QAction (tr ("Save image","Context action"),this);
 	connect (a, SIGNAL (triggered()), this, SLOT (editSaveImage()));
 	floatimageContextMenu->addAction (a);
 
@@ -3405,13 +3422,13 @@
 void Main::viewZoomIn()
 {
 	MapEditor *me=currentMapEditor();
-	if (me) me->setZoomFactorTarget (me->getZoomFactorTarget()*1.25);
+	if (me) me->setZoomFactorTarget (me->getZoomFactorTarget()*1.15);
 }
 
 void Main::viewZoomOut()
 {
 	MapEditor *me=currentMapEditor();
-	if (me) me->setZoomFactorTarget (me->getZoomFactorTarget()*0.75);
+	if (me) me->setZoomFactorTarget (me->getZoomFactorTarget()*0.85);
 }
 
 void Main::viewCenter()
@@ -3503,6 +3520,11 @@
 		settings.setValue ("/mainwindow/autosave/ms",i * 1000);
 }
 
+void Main::settingsAutoLayoutToggle()
+{
+	settings.setValue ("/mainwindow/autoLayout/use",actionSettingsAutosaveToggle->isOn() );
+}
+
 void Main::settingsWriteBackupFileToggle()
 {
 	settings.setValue ("/mainwindow/writeBackupFile",actionSettingsWriteBackupFile->isOn() );
diff -r 62d621e3e550 -r 5ecd0462f76b mainwindow.h
--- a/mainwindow.h	Mon Mar 15 15:32:37 2010 +0000
+++ b/mainwindow.h	Thu Mar 18 11:31:02 2010 +0000
@@ -210,6 +210,7 @@
 	void settingsUndoLevels();
 	void settingsAutosaveToggle();
 	void settingsAutosaveTime();
+	void settingsAutoLayoutToggle();
 	void settingsWriteBackupFileToggle();
 	void settingsToggleAnimation();
 
@@ -378,6 +379,7 @@
 	QAction* actionSettingsUseHideExport;
 	QAction* actionSettingsAutosaveToggle;
 	QAction* actionSettingsAutosaveTime;
+	QAction* actionSettingsAutoLayoutToggle;
 	QAction* actionSettingsWriteBackupFile;
 	QAction* actionSettingsUseAnimation;
 };
diff -r 62d621e3e550 -r 5ecd0462f76b mapeditor.cpp
--- a/mapeditor.cpp	Mon Mar 15 15:32:37 2010 +0000
+++ b/mapeditor.cpp	Thu Mar 18 11:31:02 2010 +0000
@@ -230,7 +230,7 @@
 
 	if (scrollBarPosTarget==getScrollBarPos()) return;
 
-	if (scrollBarPosAnimation.state()==QtAbstractAnimation::Running)
+	if (scrollBarPosAnimation.state()==QAbstractAnimation::Running)
 		scrollBarPosAnimation.stop();
 	
 	if (settings.value ("/animation/use/",true).toBool() )
@@ -238,7 +238,7 @@
 		scrollBarPosAnimation.setTargetObject (this);
 		scrollBarPosAnimation.setPropertyName ("scrollBarPos");
 		scrollBarPosAnimation.setDuration(1000);
-		scrollBarPosAnimation.setEasingCurve ( QtEasingCurve::OutQuint);
+		scrollBarPosAnimation.setEasingCurve ( QEasingCurve::OutQuint);
 		scrollBarPosAnimation.setStartValue(
 			QPointF (horizontalScrollBar()->value() ,
 					 verticalScrollBar()->value() ) );
@@ -270,7 +270,7 @@
 void MapEditor::setZoomFactorTarget (const qreal &zft)
 {
 	zoomFactorTarget=zft;
-	if (zoomAnimation.state()==QtAbstractAnimation::Running)
+	if (zoomAnimation.state()==QAbstractAnimation::Running)
 		zoomAnimation.stop();
 	if (settings.value ("/animation/use/",true).toBool() )
 	{
@@ -278,7 +278,7 @@
 		zoomAnimation.setTargetObject (this);
 		zoomAnimation.setPropertyName ("zoomFactor");
 		zoomAnimation.setDuration(1000);
-		zoomAnimation.setEasingCurve ( QtEasingCurve::OutQuint);
+		zoomAnimation.setEasingCurve ( QEasingCurve::OutQuint);
 		zoomAnimation.setStartValue(zoomFactor);
 		zoomAnimation.setEndValue(zft);
 		zoomAnimation.start();
@@ -565,18 +565,20 @@
 						// Move also away if centroids are identical
 						if (v.isNull()) 
 						{
-							//qDebug() << "v==0="<<polys[i].centroid()<<polys[j].centroid()<<" "<<v;
 							v.setX (rand()%200 -100);
 							v.setY (rand()%200 -100);
-							//qDebug() << v;
 						}
+						// Add random direction
+						Vector w (cos (rand()%1000),sin(rand()%1000));
+						
+						// Scale translation vector by area of polygons
 						v.normalize();
-						//qDebug() <<  "  v="<<v;
 						vectors[j]=v*10000/polys.at(j).weight();		
 						vectors[i]=v*10000/polys.at(i).weight();		
 						vectors[i].invert();
 						//FIXME-3 outer loop, "i" get's changed several times...
-						// Better not move away from centroid of 2 colliding polys, but from centroid of _all_
+						// Better not move away from centroid of 2 colliding polys, 
+						// but from centroid of _all_
 					}  
 				}
 			}
diff -r 62d621e3e550 -r 5ecd0462f76b mapeditor.h
--- a/mapeditor.h	Mon Mar 15 15:32:37 2010 +0000
+++ b/mapeditor.h	Thu Mar 18 11:31:02 2010 +0000
@@ -4,7 +4,7 @@
 #include <QGraphicsView>
 #include <QItemSelectionModel>
 
-#include <QtPropertyAnimation>	
+#include <QPropertyAnimation>	
 
 #include "attribute.h"
 #include "ornamentedobj.h"
@@ -31,7 +31,7 @@
 protected:
 	QPointF scrollBarPos;
 	QPointF scrollBarPosTarget;
-	QtPropertyAnimation scrollBarPosAnimation;
+	QPropertyAnimation scrollBarPosAnimation;
 public:
 	void scrollTo (const QModelIndex &index);
 	void setScrollBarPosTarget (const QRectF &rect);	//!  ensureVisible of rect
@@ -42,7 +42,7 @@
 protected:
 	qreal zoomFactor;
 	qreal zoomFactorTarget;
-	QtPropertyAnimation zoomAnimation;
+	QPropertyAnimation zoomAnimation;
 public:
 	void setZoomFactorTarget (const qreal &zf);
 	qreal getZoomFactorTarget();
@@ -56,6 +56,7 @@
 	void setAntiAlias (bool);	//!< Set or unset antialiasing
 	void setSmoothPixmap(bool); //!< Set or unset smoothing of pixmaps
 	void setHideTmp (bool);		//!< Hide parts temporary
+public slots:	
 	void autoLayout();			//!< Auto layout of map by using collision detection
 public:
 	TreeItem *findMapItem (QPointF p,TreeItem *exclude);	//! find item in map at position p. Ignore item exclude 
diff -r 62d621e3e550 -r 5ecd0462f76b tex/vym.changelog
--- a/tex/vym.changelog	Mon Mar 15 15:32:37 2010 +0000
+++ b/tex/vym.changelog	Thu Mar 18 11:31:02 2010 +0000
@@ -1,3 +1,13 @@
+-------------------------------------------------------------------
+Wed Mar 17 22:24:51 CET 2010 - vym@insilmaril.de
+
+- Bugfix: Enabled Qt 4.6: Removed QtAnimation Framework and fixed flags
+
+-------------------------------------------------------------------
+Tue Mar 16 16:45:23 CET 2010 - vym@insilmaril.de
+
+- Feature: zoomFactor is saved and restored on load
+
 -------------------------------------------------------------------
 Mon Mar 15 12:48:45 CET 2010 - vym@insilmaril.de
 
diff -r 62d621e3e550 -r 5ecd0462f76b version.h
--- a/version.h	Mon Mar 15 15:32:37 2010 +0000
+++ b/version.h	Thu Mar 18 11:31:02 2010 +0000
@@ -7,7 +7,7 @@
 #define __VYM_VERSION "1.13.0"
 //#define __VYM_CODENAME "Codename: RC-1"
 #define __VYM_CODENAME "Codename: development version, not for production!"
-#define __VYM_BUILD_DATE "2010-03-15"
+#define __VYM_BUILD_DATE "2010-03-17"
 
 
 bool checkVersion(const QString &);
diff -r 62d621e3e550 -r 5ecd0462f76b vym.pro
--- a/vym.pro	Mon Mar 15 15:32:37 2010 +0000
+++ b/vym.pro	Thu Mar 18 11:31:02 2010 +0000
@@ -6,7 +6,7 @@
 CONFIG += qdbus
 
 # Only needed with Qt < 4.6
-include (/data/qtanimationframework-2.3-opensource/src/qtanimationframework.pri)
+# include (/data/qtanimationframework-2.3-opensource/src/qtanimationframework.pri)
 
 TRANSLATIONS += lang/vym_de.ts
 TRANSLATIONS += lang/vym_en.ts
diff -r 62d621e3e550 -r 5ecd0462f76b vymmodel.cpp
--- a/vymmodel.cpp	Mon Mar 15 15:32:37 2010 +0000
+++ b/vymmodel.cpp	Thu Mar 18 11:31:02 2010 +0000
@@ -139,6 +139,7 @@
 	linkstyle=LinkableMapObj::PolyParabel;
 	defXLinkWidth=1;
 	defXLinkColor=QColor (230,230,230);
+	zoomFactor=1;
 
 	hidemode=TreeItem::HideNone;
 
@@ -226,6 +227,7 @@
 		          xml.attribut("linkColor", defLinkColor.name() ) +
 		          xml.attribut("defXLinkColor", defXLinkColor.name() ) +
 		          xml.attribut("defXLinkWidth", QString().setNum(defXLinkWidth,10) ) +
+		          xml.attribut("mapZoomFactor", QString().setNum(mapEditor->getZoomFactorTarget()) ) +
 		          colhint; 
 	s+=xml.beginElement("vymmap",mapAttr);
 	xml.incIndent();
@@ -499,6 +501,8 @@
 	zipped=zipped_org;
 
 	updateActions();
+
+	if (mapEditor) mapEditor->setZoomFactorTarget (zoomFactor);
 	return err;
 }
 
@@ -1646,7 +1650,6 @@
 void  VymModel::findAll (FindResultModel *rmodel, QString s, Qt::CaseSensitivity cs)   
 {
 	rmodel->clear();
-	int i=0;
 	BranchItem *cur=NULL;
 	BranchItem *prev=NULL;
 	nextBranch(cur,prev);
@@ -1656,12 +1659,15 @@
 		{
 			rmodel->addItem (cur);
 		}	
-		//if (cur->getNote().contains (s,cs))	//FIXME-2 does not detect multiple occurences yet
+		int i=0;
 		while (i>=0)
 		{
-			i=cur->getNote().indexOf (s,i,cs);
-			if (i>=0) i++;
-			//qDebug()<<"i="<<i;
+			i=cur->getNote().indexOf (s,i,cs); //FIXME-2 add subitems to rmodel
+			if (i>=0) 
+			{
+				rmodel->addSubItem (cur,"Note",cur,i);
+				i++;
+			}
 		} 
 		nextBranch(cur,prev);
 	}
@@ -2284,7 +2290,7 @@
 		QString ("addMapCenter (%1,%2)").arg (contextPos.x()).arg(contextPos.y()),
 		QString ("Adding MapCenter to (%1,%2)").arg (contextPos.x()).arg(contextPos.y())
 	);	
-	mapEditor->autoLayout();	//FIXME-3 testing
+	emitUpdateLayout();	
 	return bi;	
 }
 
@@ -4413,6 +4419,11 @@
 	mapEditor=NULL;
 }
 
+void VymModel::setMapZoomFactor (const double &d)
+{
+	zoomFactor=d;
+}
+
 void VymModel::setContextPos(QPointF p)
 {
 	contextPos=p;
@@ -5097,6 +5108,11 @@
 	emit (dataChanged (ix,ix) );
 }
 
+void VymModel::emitUpdateLayout()
+{
+	if (settings.value("/mainwindow/autoLayout/use","true")=="true")
+		emit (updateLayout());
+}
 
 bool VymModel::selectFirstBranch()
 {
diff -r 62d621e3e550 -r 5ecd0462f76b vymmodel.h
--- a/vymmodel.h	Mon Mar 15 15:32:37 2010 +0000
+++ b/vymmodel.h	Thu Mar 18 11:31:02 2010 +0000
@@ -464,7 +464,9 @@
 	void registerEditor (QWidget *);
 	void unregisterEditor (QWidget *);
 
+	void setMapZoomFactor (const double &); 
 private: 
+	double zoomFactor;
 	QPointF contextPos;					//!< local position during context menu
 public:
 	void setContextPos (QPointF);		//!< local position during context menu
@@ -476,8 +478,10 @@
 
 	void emitNoteHasChanged (TreeItem *ti);
 	void emitDataHasChanged (TreeItem *ti);
+	void emitUpdateLayout ();
 
 signals:
+	void updateLayout();
 	void noteHasChanged (QModelIndex ix);
 	void newChildObject(QModelIndex ix);
 
diff -r 62d621e3e550 -r 5ecd0462f76b vymview.cpp
--- a/vymview.cpp	Mon Mar 15 15:32:37 2010 +0000
+++ b/vymview.cpp	Thu Mar 18 11:31:02 2010 +0000
@@ -85,6 +85,10 @@
 		model, SIGNAL (showSelection() ),
 		this, SLOT (showSelection() ) );
 		
+	connect (
+		model, SIGNAL (updateLayout() ),
+		mapEditor, SLOT (autoLayout() ) );
+		
 	mapEditor->setAntiAlias (mainWindow->isAliased());
 	mapEditor->setSmoothPixmap(mainWindow->hasSmoothPixmapTransform());
 
diff -r 62d621e3e550 -r 5ecd0462f76b xml-vym.cpp
--- a/xml-vym.cpp	Mon Mar 15 15:32:37 2010 +0000
+++ b/xml-vym.cpp	Thu Mar 18 11:31:02 2010 +0000
@@ -102,6 +102,8 @@
 			}	
 			if (!atts.value( "defXLinkWidth").isEmpty() ) 
 				model->setMapDefXLinkWidth(atts.value("defXLinkWidth").toInt ());
+			if (!atts.value( "mapZoomFactor").isEmpty() ) 
+				model->setMapZoomFactor(atts.value("mapZoomFactor").toDouble());
 		}	
 		// Check version
 		if (!atts.value( "version").isEmpty() )