1.1 --- a/main.cpp Fri Nov 09 12:07:21 2007 +0000
1.2 +++ b/main.cpp Fri Nov 09 12:07:22 2007 +0000
1.3 @@ -6,6 +6,11 @@
1.4 #include "settings.h"
1.5 #include "version.h"
1.6
1.7 +#if defined(Q_OS_WIN32)
1.8 +#define WIN32_LEAN_AND_MEAN
1.9 +#include <windows.h>
1.10 +#endif
1.11 +
1.12 // Global variables
1.13 TextEditor *textEditor; // used in Constr. of LinkableMapObj
1.14 // initialized in mainwindow
1.15 @@ -21,6 +26,9 @@
1.16 QDir vymBaseDir; // Containing all styles, scripts, images, ...
1.17 QDir lastImageDir;
1.18 QDir lastFileDir;
1.19 +#if defined(Q_OS_WIN32)
1.20 +QDir vymInstallDir;
1.21 +#endif
1.22 QString iconPath; // Pointing to icons used for toolbars
1.23 QString flagsPath; // Pointing to flags
1.24 bool clipboardEmpty;
1.25 @@ -97,6 +105,27 @@
1.26 #if defined (Q_OS_MACX)
1.27 vymBaseDir.setPath(vymBaseDir.currentDirPath() +"/vym.app/Contents/Resources");
1.28
1.29 + #elif defined (Q_OS_WIN32)
1.30 + QString basePath;
1.31 +
1.32 + wchar_t wbuf[512];
1.33 + if (GetModuleFileName(NULL, wbuf, 512))
1.34 + {
1.35 + QString mfn(QString::fromWCharArray(wbuf));
1.36 + mfn.replace('\\', '/');
1.37 + if (mfn.endsWith("/bin/vym.exe", Qt::CaseInsensitive))
1.38 + {
1.39 + mfn.chop(12);
1.40 + basePath = mfn;
1.41 + }
1.42 + }
1.43 +
1.44 + if (basePath.isEmpty())
1.45 + basePath = vymBaseDir.currentDirPath();
1.46 +
1.47 + vymInstallDir.setPath(basePath);
1.48 + vymBaseDir.setPath(basePath + "/share/vym");
1.49 +
1.50 #else
1.51 vymBaseDir.setPath ("/usr/share/vym");
1.52 if (!vymBaseDir.exists())
1.53 @@ -137,7 +166,12 @@
1.54 textEditor->setIcon (QPixmap (iconPath+"vym-editor.png"));
1.55
1.56 // Initialize mainwindow
1.57 +#if defined(Q_OS_WIN32)
1.58 + Main m(0, 0, (Qt::Window | Qt::MSWindowsOwnDC));
1.59 +#else
1.60 Main m;
1.61 +#endif
1.62 +
1.63 //m.resize(m.sizeHint());
1.64 m.setIcon (QPixmap (iconPath+"vym-48x48.png"));
1.65 m.show();
1.66 @@ -178,4 +212,3 @@
1.67
1.68 return app.exec();
1.69 }
1.70 -
2.1 --- a/mainwindow.cpp Fri Nov 09 12:07:21 2007 +0000
2.2 +++ b/mainwindow.cpp Fri Nov 09 12:07:22 2007 +0000
2.3 @@ -68,6 +68,9 @@
2.4 extern QDir vymBaseDir;
2.5 extern QDir lastImageDir;
2.6 extern QDir lastFileDir;
2.7 +#if defined(Q_OS_WIN32)
2.8 +extern QDir vymInstallDir;
2.9 +#endif
2.10 extern QString iconPath;
2.11 extern QString flagsPath;
2.12
2.13 @@ -79,9 +82,17 @@
2.14 setCaption ("VYM - View Your Mind");
2.15
2.16 // Load window settings
2.17 - resize (settings.value( "/mainwindow/geometry/size",QSize (800,600)).toSize());
2.18 - move (settings.value( "/mainwindow/geometry/pos", QPoint(300,100)).toPoint());
2.19 -
2.20 +#if defined(Q_OS_WIN32)
2.21 + if (settings.value("/mainwindow/geometry/maximized", false).toBool())
2.22 + {
2.23 + showMaximized();
2.24 + }
2.25 + else
2.26 +#endif
2.27 + {
2.28 + resize (settings.value("/mainwindow/geometry/size", QSize (800,600)).toSize());
2.29 + move (settings.value("/mainwindow/geometry/pos", QPoint(300,100)).toPoint());
2.30 + }
2.31
2.32 // Sometimes we may need to remember old selections
2.33 prevSelection="";
2.34 @@ -174,6 +185,8 @@
2.35 #else
2.36 #if defined(Q_OS_MACX)
2.37 s=settings.value (p,"/usr/bin/open").toString();
2.38 + #elif defined(Q_OS_WIN32)
2.39 + s=settings.value (p,"acrord32").toString();
2.40 #else
2.41 s=settings.value (p,"acroread").toString();
2.42 #endif
2.43 @@ -216,8 +229,11 @@
2.44 Main::~Main()
2.45 {
2.46 // Save Settings
2.47 - settings.setValue ( "/mainwindow/geometry/size", size() );
2.48 - settings.setValue ( "/mainwindow/geometry/pos", pos() );
2.49 +#if defined(Q_OS_WIN32)
2.50 + settings.setValue ("/mainwindow/geometry/maximized", isMaximized());
2.51 +#endif
2.52 + settings.setValue ("/mainwindow/geometry/size", size());
2.53 + settings.setValue ("/mainwindow/geometry/pos", pos());
2.54 settings.setValue ("/mainwindow/state",saveState(0));
2.55
2.56 settings.setValue ("/mainwindow/view/AntiAlias",actionViewToggleAntiAlias->isOn());
2.57 @@ -227,6 +243,7 @@
2.58
2.59 settings.setValue( "/mapeditor/autosave/use",actionSettingsAutosaveToggle->isOn() );
2.60 settings.setValue( "/mapeditor/editmode/autoSelectNewBranch",actionSettingsAutoSelectNewBranch->isOn() );
2.61 + settings.setValue( "/mainwindow/writeBackupFile",actionSettingsWriteBackupFile->isOn() );
2.62 settings.setValue( "/mapeditor/editmode/autoSelectText",actionSettingsAutoSelectText->isOn() );
2.63 settings.setValue( "/mapeditor/editmode/autoEditNewBranch",actionSettingsAutoEditNewBranch->isOn() );
2.64 settings.setValue( "/mapeditor/editmode/useDelKey",actionSettingsUseDelKey->isOn() );
2.65 @@ -1389,6 +1406,14 @@
2.66 settingsMenu->addAction (a);
2.67 actionSettingsAutosaveTime=a;
2.68
2.69 + a = new QAction( tr( "Backup file","Settings action"), this);
2.70 + a->setStatusTip( tr( "Write backup file"));
2.71 + a->setToggleAction(true);
2.72 + a->setOn ( settings.value ("/mainwindow/writeBackupFile",false).toBool());
2.73 + connect( a, SIGNAL( triggered() ), this, SLOT( settingsWriteBackupFileToggle() ) );
2.74 + settingsMenu->addAction (a);
2.75 + actionSettingsWriteBackupFile=a;
2.76 +
2.77 settingsMenu->addSeparator();
2.78
2.79 a = new QAction( tr( "Edit branch after adding it","Settings action" ), this );
2.80 @@ -1812,7 +1837,7 @@
2.81
2.82 // Create temporary directory for packing
2.83 bool ok;
2.84 - QString tmpMapDir=makeTmpDir (ok,"vym-pack");
2.85 + QString tmpZipDir=makeTmpDir (ok,"vym-pack");
2.86 if (!ok)
2.87 {
2.88 QMessageBox::critical( 0, tr( "Critical Load Error" ),
2.89 @@ -1821,7 +1846,7 @@
2.90 }
2.91
2.92 // Try to unzip file
2.93 - err=unzipDir (tmpMapDir,fn);
2.94 + err=unzipDir (tmpZipDir,fn);
2.95 if (err==nozip)
2.96 {
2.97 mapfile=fn;
2.98 @@ -1833,22 +1858,22 @@
2.99 // Look for mapname.xml
2.100 mapfile= fn.left(fn.findRev(".",-1,true));
2.101 mapfile=mapfile.section( '/', -1 );
2.102 - QFile file( tmpMapDir + "/" + mapfile + ".xml");
2.103 + QFile file( tmpZipDir + "/" + mapfile + ".xml");
2.104 if (!file.exists() )
2.105 {
2.106 // mapname.xml does not exist, well,
2.107 // maybe someone renamed the mapname.vym file...
2.108 // Try to find any .xml in the toplevel
2.109 // directory of the .vym file
2.110 - QStringList flist=QDir (tmpMapDir).entryList("*.xml");
2.111 + QStringList flist=QDir (tmpZipDir).entryList("*.xml");
2.112 if (flist.count()==1)
2.113 {
2.114 // Only one entry, take this one
2.115 - mapfile=tmpMapDir + "/"+flist.first();
2.116 + mapfile=tmpZipDir + "/"+flist.first();
2.117 } else
2.118 {
2.119 for ( QStringList::Iterator it = flist.begin(); it != flist.end(); ++it )
2.120 - *it=tmpMapDir + "/" + *it;
2.121 + *it=tmpZipDir + "/" + *it;
2.122 // TODO Multiple entries, load all (but only the first one into this ME)
2.123 //mainWindow->fileLoadFromTmp (flist);
2.124 //returnCode=1; // Silently forget this attempt to load
2.125 @@ -1903,7 +1928,7 @@
2.126 }
2.127
2.128 // Delete tmpDir
2.129 - removeDir (QDir(tmpMapDir));
2.130 + removeDir (QDir(tmpZipDir));
2.131 }
2.132 return err;
2.133 }
2.134 @@ -1976,7 +2001,7 @@
2.135 void Main::fileSave(MapEditor *me, const SaveMode &savemode)
2.136 {
2.137 // tmp dir for zipping
2.138 - QString tmpMapDir;
2.139 + QString tmpZipDir;
2.140
2.141 // Error codes
2.142 ErrorCode err=success;
2.143 @@ -1992,13 +2017,6 @@
2.144 if ( !fn.isEmpty() )
2.145 {
2.146 // We have a filepath, go on saving
2.147 - // First remove existing file, we
2.148 - // don't want to add to old zip archives
2.149 - QFile f(fn);
2.150 - if (f.exists() )
2.151 - if (!f.remove())
2.152 - QMessageBox::warning( 0, tr( "Save Error" ),
2.153 - fn+ tr("\ncould not be removed before saving"));
2.154
2.155 // Look, if we should zip the data:
2.156 if (!saveZipped)
2.157 @@ -2033,11 +2051,33 @@
2.158 me->setZipped (saveZipped);
2.159 }
2.160
2.161 + // First backup existing file, we
2.162 + // don't want to add to old zip archives
2.163 + QFile f(fn);
2.164 + if (f.exists())
2.165 + {
2.166 + if (actionSettingsWriteBackupFile->isOn())
2.167 + {
2.168 + QString bfn(fn + "~");
2.169 + QFile bf(bfn);
2.170 + if (bf.exists() && !bf.remove())
2.171 + {
2.172 + QMessageBox::warning(0, tr("Save Error"),
2.173 + bfn + tr("\ncould not be removed before saving"));
2.174 + }
2.175 + else if (!f.rename(bfn))
2.176 + {
2.177 + QMessageBox::warning(0, tr("Save Error"),
2.178 + fn + tr("\ncould not be renamed before saving"));
2.179 + }
2.180 + }
2.181 + }
2.182 +
2.183 if (saveZipped)
2.184 {
2.185 // Create temporary directory for packing
2.186 bool ok;
2.187 - QString tmpMapDir=makeTmpDir (ok,"vym-zip");
2.188 + tmpZipDir=makeTmpDir (ok,"vym-zip");
2.189 if (!ok)
2.190 {
2.191 QMessageBox::critical( 0, tr( "Critical Load Error" ),
2.192 @@ -2046,13 +2086,13 @@
2.193 }
2.194
2.195 safeFilePath=me->getFilePath();
2.196 - me->setFilePath (tmpMapDir+"/"+
2.197 + me->setFilePath (tmpZipDir+"/"+
2.198 me->getMapName()+ ".xml",
2.199 safeFilePath);
2.200 me->save (savemode);
2.201 me->setFilePath (safeFilePath);
2.202
2.203 - zipDir (tmpMapDir,fn);
2.204 + zipDir (tmpZipDir,fn);
2.205 } // save zipped
2.206 else
2.207 {
2.208 @@ -2074,9 +2114,9 @@
2.209 }
2.210 }
2.211
2.212 - if (saveZipped && !tmpMapDir.isEmpty())
2.213 + if (saveZipped && !tmpZipDir.isEmpty())
2.214 // Delete tmpDir
2.215 - removeDir (QDir(tmpMapDir));
2.216 + removeDir (QDir(tmpZipDir));
2.217
2.218 if (err==success)
2.219 {
2.220 @@ -2399,12 +2439,13 @@
2.221
2.222 void Main::fileCloseMap()
2.223 {
2.224 - if (currentMapEditor())
2.225 + MapEditor *me = currentMapEditor();
2.226 + if (me)
2.227 {
2.228 - if (currentMapEditor()->hasChanged())
2.229 + if (me->hasChanged())
2.230 {
2.231 QMessageBox mb( vymName,
2.232 - tr("The map %1 has been modified but not saved yet. Do you want to").arg(currentMapEditor()->getFileName()),
2.233 + tr("The map %1 has been modified but not saved yet. Do you want to").arg(me->getFileName()),
2.234 QMessageBox::Warning,
2.235 QMessageBox::Yes | QMessageBox::Default,
2.236 QMessageBox::No,
2.237 @@ -2415,7 +2456,7 @@
2.238 {
2.239 case QMessageBox::Yes:
2.240 // save and close
2.241 - fileSave(currentMapEditor(), CompleteMap);
2.242 + fileSave(me, CompleteMap);
2.243 break;
2.244 case QMessageBox::No:
2.245 // close without saving
2.246 @@ -2425,11 +2466,12 @@
2.247 return;
2.248 }
2.249 }
2.250 - currentMapEditor()->closeMap();
2.251 - tabWidget->removePage(currentMapEditor());
2.252 + me->closeMap();
2.253 + tabWidget->removePage(me);
2.254 if (tabWidget->count()==0)
2.255 actionFilePrint->setEnabled (false);
2.256 - }
2.257 + delete me;
2.258 + }
2.259 }
2.260
2.261 void Main::filePrint()
2.262 @@ -2708,7 +2750,7 @@
2.263 bool ok;
2.264 QString s=me->getHeading(ok,p);
2.265
2.266 -#if defined(Q_OS_MACX)
2.267 +#if defined(Q_OS_MACX) || defined(Q_OS_WIN32)
2.268 #else
2.269 if (ok && s!=lineedit->text())
2.270 me->setHeading(lineedit->text());
2.271 @@ -2742,7 +2784,7 @@
2.272 if (ok)
2.273 {
2.274 me->setStateEditHeading (true);
2.275 -#if defined(Q_OS_MACX)
2.276 +#if defined(Q_OS_MACX) || defined(Q_OS_WIN32)
2.277 p=me->mapToGlobal (p);
2.278 QDialog *d =new QDialog(NULL);
2.279 QLineEdit *le=new QLineEdit (d);
2.280 @@ -2803,8 +2845,11 @@
2.281 */
2.282 }
2.283
2.284 +#include "attributedialog.h"
2.285 void Main::editAttribute()
2.286 {
2.287 + AttributeDialog dia;
2.288 + dia.exec();
2.289 /*
2.290 if (currentMapEditor())
2.291 {
2.292 @@ -3192,25 +3237,37 @@
2.293 void Main::formatLinkStyleLine()
2.294 {
2.295 if (currentMapEditor())
2.296 + {
2.297 currentMapEditor()->setMapLinkStyle("StyleLine");
2.298 + actionFormatLinkStyleLine->setOn(true);
2.299 + }
2.300 }
2.301
2.302 void Main::formatLinkStyleParabel()
2.303 {
2.304 if (currentMapEditor())
2.305 + {
2.306 currentMapEditor()->setMapLinkStyle("StyleParabel");
2.307 + actionFormatLinkStyleParabel->setOn(true);
2.308 + }
2.309 }
2.310
2.311 void Main::formatLinkStylePolyLine()
2.312 {
2.313 if (currentMapEditor())
2.314 + {
2.315 currentMapEditor()->setMapLinkStyle("StylePolyLine");
2.316 + actionFormatLinkStylePolyLine->setOn(true);
2.317 + }
2.318 }
2.319
2.320 void Main::formatLinkStylePolyParabel()
2.321 {
2.322 if (currentMapEditor())
2.323 + {
2.324 currentMapEditor()->setMapLinkStyle("StylePolyParabel");
2.325 + actionFormatLinkStylePolyParabel->setOn(true);
2.326 + }
2.327 }
2.328
2.329 void Main::formatSelectBackColor()
2.330 @@ -3328,8 +3385,7 @@
2.331
2.332 void Main::settingsMacroDir()
2.333 {
2.334 - QDir defdir=vymBaseDir;
2.335 - defdir.cd("macros");
2.336 + QDir defdir(vymBaseDir.path() + "/macros");
2.337 if (!defdir.exists())
2.338 defdir=vymBaseDir;
2.339 QDir dir=QFileDialog::getExistingDirectory (
2.340 @@ -3338,7 +3394,7 @@
2.341 settings.value ("/macros/macroDir",defdir.path()).toString()
2.342 );
2.343 if (dir.exists())
2.344 - settings.setValue ("/macros/macroDir",dir.path());
2.345 + settings.setValue ("/macros/macroDir",dir.absolutePath());
2.346 }
2.347
2.348 void Main::settingsUndoLevels()
2.349 @@ -3374,6 +3430,11 @@
2.350 }
2.351 }
2.352
2.353 +void Main::settingsWriteBackupFileToggle()
2.354 +{
2.355 + settings.setValue ("/mapeditor/writeBackupFile",actionSettingsWriteBackupFile->isOn() );
2.356 +}
2.357 +
2.358 void Main::settingsToggleDelKey()
2.359 {
2.360 if (actionSettingsUseDelKey->isOn())
2.361 @@ -3763,12 +3824,14 @@
2.362 QDir docdir;
2.363 #if defined(Q_OS_MACX)
2.364 searchList << "./vym.app/Contents/Resources/doc";
2.365 + #elif defined(Q_OS_WIN32)
2.366 + searchList << vymInstallDir.path() + "/share/doc/packages/vym";
2.367 #else
2.368 #if defined(VYM_DOCDIR)
2.369 searchList << VYM_DOCDIR;
2.370 #endif
2.371 // default path in SUSE LINUX
2.372 - searchList <<"/usr/share/doc/packages/vym";
2.373 + searchList << "/usr/share/doc/packages/vym";
2.374 #endif
2.375
2.376 searchList << "doc"; // relative path for easy testing in tarball
2.377 @@ -3780,14 +3843,14 @@
2.378 QFile docfile;
2.379 for (int i=0; i<searchList.count(); ++i)
2.380 {
2.381 - docfile.setFileName(QDir::convertSeparators(searchList.at(i)+"/"+docname));
2.382 - if (docfile.exists() )
2.383 + docfile.setFileName(searchList.at(i)+"/"+docname);
2.384 + if (docfile.exists())
2.385 {
2.386 found=true;
2.387 break;
2.388 }
2.389 -
2.390 }
2.391 +
2.392 if (!found)
2.393 {
2.394 QMessageBox::critical(0,
2.395 @@ -3798,7 +3861,7 @@
2.396
2.397 QStringList args;
2.398 Process *pdfProc = new Process();
2.399 - args <<docfile.fileName();
2.400 + args << QDir::toNativeSeparators(docfile.fileName());
2.401
2.402 pdfProc->start( settings.value("/mainwindow/readerPDF").toString(),args);
2.403 if ( !pdfProc->waitForStarted() )
3.1 --- a/mainwindow.h Fri Nov 09 12:07:21 2007 +0000
3.2 +++ b/mainwindow.h Fri Nov 09 12:07:22 2007 +0000
3.3 @@ -183,6 +183,7 @@
3.4 void settingsUndoLevels();
3.5 void settingsAutosaveToggle();
3.6 void settingsAutosaveTime();
3.7 + void settingsWriteBackupFileToggle();
3.8
3.9 void windowToggleNoteEditor();
3.10 void windowToggleHistory();
3.11 @@ -328,6 +329,7 @@
3.12 QAction* actionSettingsUseHideExport;
3.13 QAction* actionSettingsAutosaveToggle;
3.14 QAction* actionSettingsAutosaveTime;
3.15 + QAction* actionSettingsWriteBackupFile;
3.16 };
3.17
3.18
4.1 --- a/mapeditor.cpp Fri Nov 09 12:07:21 2007 +0000
4.2 +++ b/mapeditor.cpp Fri Nov 09 12:07:22 2007 +0000
4.3 @@ -159,6 +159,10 @@
4.4 {
4.5 //cout <<"Destructor MapEditor\n";
4.6 autosaveTimer->stop();
4.7 +
4.8 + // tmpMapDir is in tmpVymDir, so it gets removed automagically when vym closes
4.9 +
4.10 + //removeDir(QDir(tmpMapDir));
4.11 }
4.12
4.13 MapCenterObj* MapEditor::getMapCenter()
4.14 @@ -227,8 +231,8 @@
4.15 void MapEditor::makeTmpDirs()
4.16 {
4.17 // Create unique temporary directories
4.18 - tmpMapDir=QDir::convertSeparators (tmpVymDir+QString("/mapeditor-%1").arg(mapNum));
4.19 - histPath=QDir::convertSeparators (tmpMapDir+"/history");
4.20 + tmpMapDir = tmpVymDir+QString("/mapeditor-%1").arg(mapNum);
4.21 + histPath = tmpMapDir+"/history";
4.22 QDir d;
4.23 d.mkdir (tmpMapDir);
4.24 }
4.25 @@ -317,8 +321,8 @@
4.26
4.27 QString MapEditor::getHistoryDir()
4.28 {
4.29 - QString histName=QDir::convertSeparators (QString("history-%1").arg(curStep));
4.30 - return QDir::convertSeparators (tmpMapDir +"/"+histName);
4.31 + QString histName(QString("history-%1").arg(curStep));
4.32 + return (tmpMapDir+"/"+histName);
4.33 }
4.34
4.35 void MapEditor::saveState(const SaveMode &savemode, const QString &undoSelection, const QString &undoCom, const QString &redoSelection, const QString &redoCom, const QString &comment, LinkableMapObj *saveSel)
4.36 @@ -339,7 +343,7 @@
4.37
4.38 QString backupXML="";
4.39 QString histDir=getHistoryDir();
4.40 - QString bakMapPath=QDir::convertSeparators(histDir+"/map.xml");
4.41 + QString bakMapPath=histDir+"/map.xml";
4.42
4.43 // Create histDir if not available
4.44 QDir d(histDir);
4.45 @@ -363,7 +367,7 @@
4.46
4.47 if (!backupXML.isEmpty())
4.48 // Write XML Data to disk
4.49 - saveStringToDisk (QString(bakMapPath),backupXML);
4.50 + saveStringToDisk (bakMapPath,backupXML);
4.51
4.52 // We would have to save all actions in a tree, to keep track of
4.53 // possible redos after a action. Possible, but we are too lazy: forget about redos.
4.54 @@ -545,7 +549,7 @@
4.55 {
4.56 //s=parser.parString (ok,0); // selection
4.57 t=parser.parString (ok,0); // path to map
4.58 - if (QDir::isRelativePath(t)) t=QDir::convertSeparators (tmpMapDir + "/"+t);
4.59 + if (QDir::isRelativePath(t)) t=(tmpMapDir + "/"+t);
4.60 addMapReplaceInt(selb->getSelectString(),t);
4.61 }
4.62 /////////////////////////////////////////////////////////////////////
4.63 @@ -563,7 +567,7 @@
4.64 {
4.65 t=parser.parString (ok,0); // path to map
4.66 n=parser.parInt(ok,1); // position
4.67 - if (QDir::isRelativePath(t)) t=QDir::convertSeparators (tmpMapDir + "/"+t);
4.68 + if (QDir::isRelativePath(t)) t=(tmpMapDir + "/"+t);
4.69 addMapInsertInt(t,n);
4.70 }
4.71 }
4.72 @@ -1952,8 +1956,8 @@
4.73 }
4.74
4.75 // Copy also to global clipboard, because we are at last step in history
4.76 - QString bakMapName=QDir::convertSeparators (QString("history-%1").arg(curStep));
4.77 - QString bakMapDir=QDir::convertSeparators (tmpMapDir +"/"+bakMapName);
4.78 + QString bakMapName(QString("history-%1").arg(curStep));
4.79 + QString bakMapDir(tmpMapDir +"/"+bakMapName);
4.80 copyDir (bakMapDir,clipboardDir );
4.81
4.82 clipboardEmpty=false;
4.83 @@ -1987,7 +1991,7 @@
4.84
4.85
4.86 // Find out current undo directory
4.87 - QString bakMapDir=QDir::convertSeparators (QString(tmpMapDir+"/undo-%1").arg(curStep));
4.88 + QString bakMapDir(QString(tmpMapDir+"/undo-%1").arg(curStep));
4.89
4.90 if (debug)
4.91 {
4.92 @@ -2063,7 +2067,7 @@
4.93 tr("Version %1 of saved undo/redo data\ndoes not match current vym version %2.").arg(version).arg(vymVersion));
4.94
4.95 // Find out current undo directory
4.96 - QString bakMapDir=QDir::convertSeparators (QString(tmpMapDir+"/undo-%1").arg(curStep));
4.97 + QString bakMapDir(QString(tmpMapDir+"/undo-%1").arg(curStep));
4.98
4.99 // select object before undo
4.100 if (!undoSelection.isEmpty())
4.101 @@ -2227,8 +2231,8 @@
4.102 if (redosAvail > 0 || n!=0)
4.103 {
4.104 // Use the "historical" buffer
4.105 - QString bakMapName=QDir::convertSeparators (QString("history-%1").arg(n));
4.106 - QString bakMapDir=QDir::convertSeparators (tmpMapDir +"/"+bakMapName);
4.107 + QString bakMapName(QString("history-%1").arg(n));
4.108 + QString bakMapDir(tmpMapDir +"/"+bakMapName);
4.109 load (bakMapDir+"/"+clipboardFile,ImportAdd, VymMap);
4.110 } else
4.111 // Use the global buffer
4.112 @@ -2278,17 +2282,21 @@
4.113 LinkableMapObj *sel=xelection.single();
4.114 if (sel)
4.115 {
4.116 - QString ps=qpointfToString (sel->getAbsPos());
4.117 - QString s=xelection.single()->getSelectString();
4.118 - saveState(
4.119 - s, "move "+ps,
4.120 - s, "move "+qpointfToString (QPointF (x,y)),
4.121 - QString("Move %1 to %2").arg(getName(sel)).arg(ps));
4.122 - sel->move(x,y);
4.123 - mapCenter->reposition();
4.124 - xelection.update();
4.125 + QPointF ap(sel->getAbsPos());
4.126 + QPointF to(x, y);
4.127 + if (ap != to)
4.128 + {
4.129 + QString ps=qpointfToString(ap);
4.130 + QString s=xelection.single()->getSelectString();
4.131 + saveState(
4.132 + s, "move "+ps,
4.133 + s, "move "+qpointfToString(to),
4.134 + QString("Move %1 to %2").arg(getName(sel)).arg(ps));
4.135 + sel->move(x,y);
4.136 + mapCenter->reposition();
4.137 + xelection.update();
4.138 + }
4.139 }
4.140 -
4.141 }
4.142
4.143 void MapEditor::moveRel (const double &x, const double &y)
4.144 @@ -2296,16 +2304,21 @@
4.145 LinkableMapObj *sel=xelection.single();
4.146 if (sel)
4.147 {
4.148 - QString ps=qpointfToString (sel->getRelPos());
4.149 - QString s=sel->getSelectString();
4.150 - saveState(
4.151 - s, "moveRel "+ps,
4.152 - s, "moveRel "+qpointfToString (QPointF (x,y)),
4.153 - QString("Move %1 to relativ position %2").arg(getName(sel)).arg(ps));
4.154 - ((OrnamentedObj*)sel)->move2RelPos (x,y);
4.155 - mapCenter->reposition();
4.156 - sel->updateLink();
4.157 - xelection.update();
4.158 + QPointF rp(sel->getRelPos());
4.159 + QPointF to(x, y);
4.160 + if (rp != to)
4.161 + {
4.162 + QString ps=qpointfToString (sel->getRelPos());
4.163 + QString s=sel->getSelectString();
4.164 + saveState(
4.165 + s, "moveRel "+ps,
4.166 + s, "moveRel "+qpointfToString(to),
4.167 + QString("Move %1 to relative position %2").arg(getName(sel)).arg(ps));
4.168 + ((OrnamentedObj*)sel)->move2RelPos (x,y);
4.169 + mapCenter->reposition();
4.170 + sel->updateLink();
4.171 + xelection.update();
4.172 + }
4.173 }
4.174 }
4.175
4.176 @@ -4452,7 +4465,7 @@
4.177 "moveRel "+pold,
4.178 fio,
4.179 "moveRel "+pnow,
4.180 - QString("Move %1 to relativ position %2").arg(getName(fio)).arg(pnow));
4.181 + QString("Move %1 to relative position %2").arg(getName(fio)).arg(pnow));
4.182 fio->getParObj()->requestReposition();
4.183 mapCenter->reposition();
4.184
4.185 @@ -4596,7 +4609,7 @@
4.186 "moveRel "+pold,
4.187 fo,
4.188 "moveRel "+pnow,
4.189 - QString("Move %1 to relativ position %2").arg(getName(fo)).arg(pnow));
4.190 + QString("Move %1 to relative position %2").arg(getName(fo)).arg(pnow));
4.191
4.192 fo->getParObj()->requestReposition();
4.193 mapCenter->reposition();
4.194 @@ -4613,16 +4626,19 @@
4.195 {
4.196 // TODO: Check for problems if graphicsview is resized for
4.197 // undo/redo...
4.198 - QString pold=qpointfToString(movingObj_orgPos);
4.199 - QString pnow=qpointfToString(mapCenter->getAbsPos());
4.200 - saveState(
4.201 - fo,
4.202 - "move "+pold,
4.203 - fo,
4.204 - "move "+pnow,
4.205 - QString("Move mapcenter %1 to position %2").arg(getName(mapCenter)).arg(pnow));
4.206 + if (movingObj_orgPos != mapCenter->getAbsPos())
4.207 + {
4.208 + QString pold=qpointfToString(movingObj_orgPos);
4.209 + QString pnow=qpointfToString(mapCenter->getAbsPos());
4.210 + saveState(
4.211 + fo,
4.212 + "move "+pold,
4.213 + fo,
4.214 + "move "+pnow,
4.215 + QString("Move mapcenter %1 to position %2").arg(getName(mapCenter)).arg(pnow));
4.216 + }
4.217 }
4.218 -
4.219 +
4.220 if (xelection.type() == Selection::Branch )
4.221 { // A branch was moved
4.222
4.223 @@ -4683,12 +4699,15 @@
4.224 // Therefor reposition and then use string of old selection, too
4.225 mapCenter->reposition();
4.226
4.227 - QString ps=qpointfToString ( lmosel->getRelPos() );
4.228 - saveState(
4.229 - lmosel->getSelectString(), "moveRel "+qpointfToString(movingObj_orgRelPos),
4.230 - preSelStr, "moveRel "+ps,
4.231 - QString("Move %1 to relative position %2").arg(getName(lmosel)).arg(ps));
4.232 -
4.233 + QPointF rp(lmosel->getRelPos());
4.234 + if (rp != movingObj_orgRelPos)
4.235 + {
4.236 + QString ps=qpointfToString(rp);
4.237 + saveState(
4.238 + lmosel->getSelectString(), "moveRel "+qpointfToString(movingObj_orgRelPos),
4.239 + preSelStr, "moveRel "+ps,
4.240 + QString("Move %1 to relative position %2").arg(getName(lmosel)).arg(ps));
4.241 + }
4.242 }
4.243 // Draw the original link, before selection was moved around
4.244 mapCenter->reposition();
4.245 @@ -4788,7 +4807,7 @@
4.246 s=uris.at(i).toLocalFile();
4.247 if (!s.isEmpty())
4.248 {
4.249 - QString file = QDir::convertSeparators(s);
4.250 + QString file = QDir::fromNativeSeparators(s);
4.251 heading = QFileInfo(file).baseName();
4.252 files.append(file);
4.253 if (file.endsWith(".vym", false))
5.1 --- a/noteobj.cpp Fri Nov 09 12:07:21 2007 +0000
5.2 +++ b/noteobj.cpp Fri Nov 09 12:07:22 2007 +0000
5.3 @@ -168,7 +168,7 @@
5.4 // There are 2 <style> tags in one <li>, so we merge them here
5.5 int pos=0;
5.6 bool inbracket=false;
5.7 - int begin_bracket;
5.8 + int begin_bracket=0;
5.9 bool inquot=false;
5.10 QString n=note;
5.11 while (pos<n.length())
6.1 --- a/tex/vym.changelog Fri Nov 09 12:07:21 2007 +0000
6.2 +++ b/tex/vym.changelog Fri Nov 09 12:07:22 2007 +0000
6.3 @@ -1,3 +1,9 @@
6.4 +-------------------------------------------------------------------
6.5 +Fri Nov 9 10:44:59 CET 2007 - uwedr@suse.de
6.6 +
6.7 +- Version: 1.11.3
6.8 +- Feature: Added patches for better windows support by Andrew Ng
6.9 +
6.10 -------------------------------------------------------------------
6.11 Tue Nov 6 22:36:38 CET 2007 - uwedr@suse.de
6.12
7.1 --- a/version.h Fri Nov 09 12:07:21 2007 +0000
7.2 +++ b/version.h Fri Nov 09 12:07:22 2007 +0000
7.3 @@ -4,10 +4,10 @@
7.4 #include <QString>
7.5
7.6 #define __VYM_NAME "VYM"
7.7 -#define __VYM_VERSION "1.11.2"
7.8 +#define __VYM_VERSION "1.11.3"
7.9 //#define __VYM_CODENAME "Codename: 1.10.0-RC-3"
7.10 #define __VYM_CODENAME "Codename: development version"
7.11 -#define __VYM_BUILD_DATE "2007-11-06"
7.12 +#define __VYM_BUILD_DATE "2007-11-09"
7.13
7.14
7.15 bool checkVersion(const QString &);
8.1 --- a/vym.pro Fri Nov 09 12:07:21 2007 +0000
8.2 +++ b/vym.pro Fri Nov 09 12:07:22 2007 +0000
8.3 @@ -7,7 +7,7 @@
8.4 # Manifest embedding was suggested by Qt docs somewhere...
8.5 win32: CONFIG += embed_manifest_exe
8.6
8.7 -# Without this, M_PI, and M_PI_2 won't be defined.
8.8 +# Without this, M_PI, and M_PI_2 won`t be defined.
8.9 win32:DEFINES *= _USE_MATH_DEFINES
8.10
8.11 ICON =icons/vym.icns
8.12 @@ -15,10 +15,12 @@
8.13 QT += qt3support
8.14 QT += network
8.15
8.16 -HEADERS += \
8.17 +HEADERS += \
8.18 aboutdialog.h \
8.19 animpoint.h \
8.20 attribute.h \
8.21 + attributewidget.h \
8.22 + attributedialog.h \
8.23 branchobj.h \
8.24 branchpropwindow.h\
8.25 editxlinkdialog.h \
8.26 @@ -67,6 +69,8 @@
8.27 aboutdialog.cpp \
8.28 animpoint.cpp \
8.29 attribute.cpp \
8.30 + attributewidget.cpp \
8.31 + attributedialog.cpp \
8.32 branchobj.cpp \
8.33 branchpropwindow.cpp \
8.34 editxlinkdialog.cpp \
8.35 @@ -110,9 +114,11 @@
8.36 xmlobj.cpp \
8.37 xsltproc.cpp \
8.38 settings.cpp \
8.39 - warningdialog.cpp
8.40 + warningdialog.cpp
8.41
8.42 FORMS = \
8.43 + attributewidget.ui \
8.44 + attributedialog.ui \
8.45 branchpropwindow.ui \
8.46 exportxhtmldialog.ui \
8.47 extrainfodialog.ui \
8.48 @@ -122,8 +128,14 @@
8.49 showtextdialog.ui \
8.50 warningdialog.ui
8.51
8.52 +win32 {
8.53 + HEADERS += mkdtemp.h
8.54 + SOURCES += mkdtemp.cpp
8.55 + RC_FILE = vym.rc
8.56 +}
8.57 +
8.58 #The following lines were inserted by qt3to4
8.59 -QT += xml
8.60 +QT += xml
8.61
8.62 TARGET = vym
8.63
8.64 @@ -163,7 +175,7 @@
8.65 support.path = $${DATADIR}/vym
8.66 INSTALLS += support
8.67
8.68 -doc.files = tex/vym.pdf
8.69 +doc.files = doc/vym.pdf
8.70 doc.path = $${DOCDIR}
8.71 INSTALLS += doc
8.72 DEFINES += VYM_DOCDIR=\\\"$${DOCDIR}\\\"
8.73 @@ -171,4 +183,3 @@
8.74 demo.files = demos/
8.75 demo.path = $${DEMODIR}
8.76 INSTALLS += demo
8.77 -