mapeditor.cpp
changeset 505 244e309b4047
parent 502 f3465a5f0dc4
child 514 497fab7d1404
     1.1 --- a/mapeditor.cpp	Thu Jun 14 10:21:46 2007 +0000
     1.2 +++ b/mapeditor.cpp	Mon Jun 18 15:10:18 2007 +0000
     1.3 @@ -310,6 +310,12 @@
     1.4  	return s;
     1.5  }
     1.6  
     1.7 +QString MapEditor::getHistoryDir()
     1.8 +{
     1.9 +	QString histName=QDir::convertSeparators (QString("history-%1").arg(curStep));
    1.10 +	return QDir::convertSeparators (tmpMapDir +"/"+histName);
    1.11 +}
    1.12 +
    1.13  void MapEditor::saveState(const SaveMode &savemode, const QString &undoSelection, const QString &undoCom, const QString &redoSelection, const QString &redoCom, const QString &comment, LinkableMapObj *saveSel)
    1.14  {
    1.15  	// Main saveState
    1.16 @@ -324,18 +330,17 @@
    1.17  	if (curStep>stepsTotal) curStep=1;
    1.18  	
    1.19  	QString backupXML="";
    1.20 -	QString bakMapName=QDir::convertSeparators (QString("history-%1").arg(curStep));
    1.21 -	QString bakMapDir=QDir::convertSeparators (tmpMapDir +"/"+bakMapName);
    1.22 -	QString bakMapPath=QDir::convertSeparators(bakMapDir+"/map.xml");
    1.23 -
    1.24 -	// Create bakMapDir if not available
    1.25 -	QDir d(bakMapDir);
    1.26 +	QString histDir=getHistoryDir();
    1.27 +	QString bakMapPath=QDir::convertSeparators(histDir+"/map.xml");
    1.28 +
    1.29 +	// Create histDir if not available
    1.30 +	QDir d(histDir);
    1.31  	if (!d.exists()) 
    1.32 -		makeSubDirs (bakMapDir);
    1.33 +		makeSubDirs (histDir);
    1.34  
    1.35  	// Save depending on how much needs to be saved	
    1.36  	if (saveSel)
    1.37 -		backupXML=saveToDir (bakMapDir,mapName+"-",false, QPointF (),saveSel);
    1.38 +		backupXML=saveToDir (histDir,mapName+"-",false, QPointF (),saveSel);
    1.39  		
    1.40  	QString undoCommand="";
    1.41  	if (savemode==UndoCommand)
    1.42 @@ -1699,7 +1704,7 @@
    1.43  		{
    1.44  			// Copy to history
    1.45  			QString s=sel->getSelectString();
    1.46 -			saveState (PartOfMap, s, "nop ()", s, "copy ()","Copy to clipboard",sel  );
    1.47 +			saveState (PartOfMap, s, "nop ()", s, "copy ()","Copy selection to clipboard",sel  );
    1.48  			curClipboard=curStep;
    1.49  		}
    1.50  
    1.51 @@ -4451,10 +4456,9 @@
    1.52  	BranchObj *sel=xelection.getBranch();
    1.53  	if (sel)
    1.54  	{
    1.55 -		foreach (QString format,event->mimeData()->formats()) 
    1.56 -		{
    1.57 -			cout << "Dropped format: "<<format.ascii()<<endl;
    1.58 -		}
    1.59 +		if (debug)
    1.60 +			foreach (QString format,event->mimeData()->formats()) 
    1.61 +				cout << "MapEditor: Dropped format: "<<format.ascii()<<endl;
    1.62  
    1.63  
    1.64  		QList <QUrl> uris;
    1.65 @@ -4604,7 +4608,10 @@
    1.66    {
    1.67  	FloatImageObj *fio=bo->addFloatImage();
    1.68      fio->load(img);
    1.69 -    fio->setOriginalFilename("Image added by Drag and Drop");	// FIXME savestate missing
    1.70 +    fio->setOriginalFilename("No original filename (image added by dropevent)");	
    1.71 +	QString s=bo->getSelectString();
    1.72 +	saveState (PartOfMap, s, "nop ()", s, "copy ()","Copy dropped image to clipboard",fio  );
    1.73 +	saveState (fio,"delete ()", bo,QString("paste(%1)").arg(curStep),"Pasting dropped image");
    1.74      mapCenter->reposition();
    1.75      scene()->update();
    1.76    }