1.1 Binary file demos/todo.vym has changed
2.1 --- a/historywindow.cpp Fri Jan 05 11:17:33 2007 +0000
2.2 +++ b/historywindow.cpp Wed Jan 10 13:26:12 2007 +0000
2.3 @@ -37,6 +37,8 @@
2.4 resize (settings.value ( "/historywindow/geometry/size", QSize(450,600)).toSize());
2.5 move (settings.value ( "/historywindow/geometry/pos", QPoint (250,50)).toPoint());
2.6
2.7 + for (int i=0; i<3; ++i)
2.8 + ui.historyTable->setColumnWidth (i,settings.value( QString("/historywindow/geometry/columnWidth/%1").arg(i),150).toInt());
2.9 /*
2.10 if (settings.value ( "/historywindow/showWithMain",false).toBool())
2.11 setShowWithMain(true);
2.12 @@ -50,6 +52,8 @@
2.13 settings.setValue( "/historywindow/geometry/size", size() );
2.14 settings.setValue( "/historywindow/geometry/pos", pos() );
2.15 //settings.setValue( "/historywindow/showWithMain",showWithMain());
2.16 + for (int i=0; i<3; ++i)
2.17 + settings.setValue( QString("/historywindow/geometry/columnWidth/%1").arg(i), ui.historyTable->columnWidth (i) );
2.18 }
2.19
2.20 void HistoryWindow::clearRow(int row)
3.1 --- a/mainwindow.cpp Fri Jan 05 11:17:33 2007 +0000
3.2 +++ b/mainwindow.cpp Wed Jan 10 13:26:12 2007 +0000
3.3 @@ -2767,8 +2767,10 @@
3.4
3.5 void Main::editMoveUp()
3.6 {
3.7 + cout << "Main editMoveUp begin\n";
3.8 if (currentMapEditor())
3.9 currentMapEditor()->moveBranchUp();
3.10 + cout << "Main editMoveUp end\n";
3.11 }
3.12
3.13 void Main::editMoveDown()
3.14 @@ -3476,50 +3478,52 @@
3.15 docname="vym_es.pdf";
3.16 else
3.17 docname="vym.pdf";
3.18 +
3.19 + QStringList searchList;
3.20 QDir docdir;
3.21 #if defined(Q_OS_MACX)
3.22 - docdir.setPath("./vym.app/Contents");
3.23 + searchList << "./vym.app/Contents";
3.24 #else
3.25 // default path in SUSE LINUX
3.26 - docdir.setPath("/usr/share/doc/packages/vym/doc");
3.27 + searchList <<"/usr/share/doc/packages/vym/doc";
3.28 #endif
3.29
3.30 - if (!docdir.exists() )
3.31 + searchList << "doc"; // relative path for easy testing in tarball
3.32 + searchList << "doc/tex"; // Easy testing working on vym.tex
3.33 + searchList << "/usr/share/doc/vym"; // Debian
3.34 + searchList << "/usr/share/doc/packages";// Knoppix
3.35 +
3.36 + bool found=false;
3.37 + QFile docfile;
3.38 + for (int i=0; i<searchList.count(); ++i)
3.39 {
3.40 - // relative path for easy testing in tarball
3.41 - docdir.setPath("doc");
3.42 - if (!docdir.exists() )
3.43 + docfile.setFileName(QDir::convertSeparators(searchList.at(i)+"/"+docname));
3.44 + if (docfile.exists() )
3.45 {
3.46 - // relative path for testing while still writing vym.tex
3.47 - docdir.setPath("doc/tex/vym.pdf");
3.48 - if (!docdir.exists() )
3.49 - {
3.50 - // Try yet another one for Knoppix
3.51 - docdir.setPath("/usr/share/doc/packages/vym");
3.52 - if (!docdir.exists() )
3.53 - {
3.54 - QMessageBox::critical(0,
3.55 - tr("Critcal error"),
3.56 - tr("Couldn't find the documentation\n"
3.57 - "vym.pdf in various directories."));
3.58 - return;
3.59 - }
3.60 - }
3.61 - }
3.62 + found=true;
3.63 + break;
3.64 + }
3.65 +
3.66 }
3.67 -
3.68 - QString docpath=docdir.path()+"/"+docname;
3.69 + if (!found)
3.70 + {
3.71 + QMessageBox::critical(0,
3.72 + tr("Critcal error"),
3.73 + tr("Couldn't find the documentation %1 in:\n%2").arg(searchList.join("\n")));
3.74 + return;
3.75 + }
3.76 +
3.77 QStringList args;
3.78 Process *pdfProc = new Process();
3.79 - args <<docpath;
3.80 -
3.81 - pdfProc->start( settings.value("/mainwindow/readerPDF").toString());
3.82 + args <<docfile.fileName();
3.83 +
3.84 + pdfProc->start( settings.value("/mainwindow/readerPDF").toString(),args);
3.85 if ( !pdfProc->waitForStarted() )
3.86 {
3.87 // error handling
3.88 QMessageBox::warning(0,
3.89 tr("Warning"),
3.90 - tr("Couldn't find a viewer to open %1.\n").arg(docpath)+
3.91 + tr("Couldn't find a viewer to open %1.\n").arg(docfile.fileName())+
3.92 tr("Please use Settings->")+tr("Set application to open PDF files"));
3.93 settingsPDF();
3.94 return;
4.1 --- a/mapeditor.cpp Fri Jan 05 11:17:33 2007 +0000
4.2 +++ b/mapeditor.cpp Wed Jan 10 13:26:12 2007 +0000
4.3 @@ -165,7 +165,7 @@
4.4 return blockReposition;
4.5 }
4.6
4.7 -QString MapEditor::getName (LinkableMapObj *lmo)
4.8 +QString MapEditor::getName (const LinkableMapObj *lmo)
4.9 {
4.10 QString s;
4.11 if (!lmo) return QString("Error: NULL has no name!");
4.12 @@ -638,6 +638,29 @@
4.13 }
4.14 }
4.15 }
4.16 + } else if (com=="linkTo")
4.17 + {
4.18 + if (!selection)
4.19 + {
4.20 + api.setError (Aborted,"Nothing selected");
4.21 + } else if ( (typeid(*selection) != typeid(BranchObj) &&
4.22 + typeid(*selection) != typeid(MapCenterObj) &&
4.23 + typeid(*selection) != typeid(FloatImageObj)))
4.24 + {
4.25 + api.setError (Aborted,"Type of selection is not a floatimage");
4.26 + } else if (api.checkParamCount(1))
4.27 + {
4.28 + // 0 selectstring of parent
4.29 + s=api.parString(ok,0);
4.30 + LinkableMapObj *dst=mapCenter->findObjBySelect (s);
4.31 + if (dst)
4.32 + {
4.33 + if (typeid(*dst) == typeid(BranchObj) ||
4.34 + typeid(*dst) == typeid(MapCenterObj))
4.35 + linkTo (dst->getSelectString());
4.36 + } else
4.37 + api.setError (Aborted,"Destination is not a branch");
4.38 + }
4.39 } else if (com=="moveBranchUp")
4.40 {
4.41 if (!selection)
4.42 @@ -1208,10 +1231,12 @@
4.43
4.44 QPixmap MapEditor::getPixmap()
4.45 {
4.46 -/* FIXME getPixmap not ported yet to QT4
4.47 QRectF mapRect=mapCenter->getTotalBBox();
4.48 - QPixmap pix ();
4.49 + QPixmap pix((int)mapRect.width(),(int)mapRect.height());
4.50 + cout << "w.h="<<(int)mapRect.width()<<","<<(int)mapRect.height()<<endl;
4.51 QPainter pp (&pix);
4.52 +
4.53 + pp.setRenderHints(renderHints());
4.54
4.55 // Don't print the visualisation of selection
4.56 LinkableMapObj *oldselection=NULL;
4.57 @@ -1221,10 +1246,11 @@
4.58 selection->unselect();
4.59 }
4.60
4.61 - pp.setWindow (mapRect);
4.62 -
4.63 - //mapScene->drawArea(mapRect, &pp); // draw scene to painter
4.64 - mapScene->render(&pp); // draw scene to painter
4.65 + mapScene->render ( &pp,
4.66 + QRectF(0,0,mapRect.width(),mapRect.height()),
4.67 + QRectF(mapRect.x(),mapRect.y(),mapRect.width(),mapRect.height() ));
4.68 +
4.69 +// mapScene->render(&pp); // draw scene to painter
4.70
4.71
4.72
4.73 @@ -1236,7 +1262,6 @@
4.74 }
4.75
4.76 return pix;
4.77 -*/
4.78 }
4.79
4.80 void MapEditor::setHideTmpMode (HideTmpMode mode)
4.81 @@ -1513,6 +1538,7 @@
4.82
4.83 mainWindow->updateHistory (undoSet);
4.84 updateActions();
4.85 + ensureSelectionVisible();
4.86 }
4.87
4.88 bool MapEditor::isUndoAvailable()
4.89 @@ -1689,6 +1715,7 @@
4.90 QString("Move %1 to relativ position %2").arg(getName(selection)).arg(ps));
4.91 ((OrnamentedObj*)selection)->move2RelPos (x,y);
4.92 mapCenter->reposition();
4.93 + selection->updateLink();
4.94 }
4.95 }
4.96
4.97 @@ -1706,6 +1733,7 @@
4.98 selection->select();
4.99 saveState (selection,"moveBranchDown ()",bo,"moveBranchUp ()",QString("Move up %1").arg(getName(bo)));
4.100 mapCenter->reposition();
4.101 + scene()->update();
4.102 ensureSelectionVisible();
4.103 }
4.104 }
4.105 @@ -1724,10 +1752,42 @@
4.106 selection->select();
4.107 saveState(selection,"moveBranchUp ()",bo,"moveBranchDown ()",QString("Move down %1").arg(getName(bo)));
4.108 mapCenter->reposition();
4.109 + scene()->update();
4.110 ensureSelectionVisible();
4.111 }
4.112 }
4.113
4.114 +void MapEditor::linkTo(const QString &dstString)
4.115 +{
4.116 + BranchObj *dst=(BranchObj*)(mapCenter->findObjBySelect(dstString));
4.117 + if (dst && (typeid(*dst)==typeid (BranchObj) ||
4.118 + typeid(*dst)==typeid (MapCenterObj)))
4.119 + {
4.120 + LinkableMapObj *dstPar=dst->getParObj();
4.121 + QString parString=dstPar->getSelectString();
4.122 + if (typeid(*selection)==typeid(FloatImageObj))
4.123 + {
4.124 + FloatImageObj *fio=(FloatImageObj*)selection;
4.125 + QString fioPreSelectString=fio->getSelectString();
4.126 + QString fioPreParentSelectString=fio->getParObj()->getSelectString();
4.127 + ((BranchObj*)(dst))->addFloatImage (fio);
4.128 + fio->unselect();
4.129 + ((BranchObj*)(fio->getParObj()))->removeFloatImage (fio);
4.130 + fio=((BranchObj*)(dst))->getLastFloatImage();
4.131 + fio->setRelPos();
4.132 + fio->reposition();
4.133 + selection=(LinkableMapObj*)fio;
4.134 + selection->select();
4.135 + saveState(
4.136 + fio->getSelectString(),
4.137 + QString("linkTo (\"%1\")").arg(fioPreParentSelectString),
4.138 + fioPreSelectString,
4.139 + QString ("linkTo (\"%1\")").arg(dstString),
4.140 + QString ("Link floatimage to %1").arg(getName(dst)));
4.141 + }
4.142 + }
4.143 +}
4.144 +
4.145 QString MapEditor::getHeading(bool &ok, QPoint &p)
4.146 {
4.147 if (selection &&
4.148 @@ -3310,7 +3370,7 @@
4.149 cout << "canceled!\n";
4.150 return;
4.151
4.152 -/* Hide hidden stuff temporary, maybe add this as regular function somewhere
4.153 +/* TODO Hide hidden stuff temporary, maybe add this as regular function somewhere
4.154 if (hidemode==HideNone)
4.155 {
4.156 setHideTmpMode (HideExport);
4.157 @@ -3593,21 +3653,32 @@
4.158 ( lmo != fo->getParObj())
4.159 )
4.160 {
4.161 - if (typeid(*fo) == typeid(FloatImageObj))
4.162 + if (typeid(*fo) == typeid(FloatImageObj) &&
4.163 + ( (typeid(*lmo)==typeid(BranchObj) ||
4.164 + typeid(*lmo)==typeid(MapCenterObj)) ))
4.165 {
4.166 - //FIXME undocom for relinking of floats
4.167 -
4.168 - //saveStateComplete(QString("Relink %1 to %2").arg(getName(fo)).arg(getName(lmo) ) );
4.169 - FloatImageObj *fio=(FloatImageObj*)(fo);
4.170 - ((BranchObj*)(lmo))->addFloatImage (fio);
4.171 - fio->unselect();
4.172 - ((BranchObj*)(fio->getParObj()))->removeFloatImage (fio);
4.173 - fio=((BranchObj*)(lmo))->getLastFloatImage();
4.174 - fio->setRelPos();
4.175 - fio->reposition();
4.176 - selection=(LinkableMapObj*)(fio);
4.177 - selection->select();
4.178 - movingObj=(MapObj*)(fio);
4.179 +
4.180 + // Also save the move which was done so far
4.181 + FloatImageObj *fio=(FloatImageObj*)selection;
4.182 + QString pold=qpointfToString(movingObj_orgRelPos);
4.183 + QString pnow=qpointfToString(fio->getRelPos());
4.184 + saveState(
4.185 + selection,
4.186 + "moveRel "+pold,
4.187 + selection,
4.188 + "moveRel "+pnow,
4.189 + QString("Move %1 to relativ position %2").arg(getName(selection)).arg(pnow));
4.190 + fio->getParObj()->requestReposition();
4.191 + mapCenter->reposition();
4.192 +
4.193 + cout << "current relPos="<<movingObj_orgRelPos<<endl;
4.194 + linkTo (lmo->getSelectString());
4.195 + cout << "setting movingObj\n";
4.196 + movingObj=(MapObj*)selection;
4.197 + movingObj_orgRelPos=selection->getRelPos();
4.198 + cout <<"ok 0\n";
4.199 +
4.200 + mapCenter->reposition();
4.201 }
4.202 }
4.203 } else
4.204 @@ -3929,7 +4000,7 @@
4.205 bo->setHeading(uris.at(i).toString());
4.206 }
4.207 }
4.208 - mapCenter->reposition();
4.209 + mapCenter->reposition();
4.210 }
4.211 }
4.212 event->acceptProposedAction();
5.1 --- a/mapeditor.h Fri Jan 05 11:17:33 2007 +0000
5.2 +++ b/mapeditor.h Wed Jan 10 13:26:12 2007 +0000
5.3 @@ -24,7 +24,7 @@
5.4 bool isRepositionBlocked(); // block while load or undo
5.5
5.6 private:
5.7 - QString getName(LinkableMapObj*); // Get e.g. heading or filename
5.8 + QString getName(const LinkableMapObj*); // Get e.g. heading or filename
5.9 void makeTmpDirs(); // create temporary directories
5.10 QString saveToDir(const QString&,const QString &,bool, const QPointF &,LinkableMapObj*);
5.11 void saveStateChangingPart (LinkableMapObj *, LinkableMapObj *, const QString &, const QString &);
5.12 @@ -93,6 +93,9 @@
5.13 void moveRel (const int &x, const int &y);
5.14 void moveBranchUp();
5.15 void moveBranchDown();
5.16 +private:
5.17 + void linkTo(const QString &);
5.18 +public:
5.19 QString getHeading (bool &ok,QPoint &p); // Get heading, ok if selection is branch
5.20 void setHeading(const QString &);
5.21 private:
6.1 --- a/tex/vym.changelog Fri Jan 05 11:17:33 2007 +0000
6.2 +++ b/tex/vym.changelog Wed Jan 10 13:26:12 2007 +0000
6.3 @@ -1,3 +1,10 @@
6.4 +-------------------------------------------------------------------
6.5 +Wed Jan 10 19:48:32 CET 2007 - uwe
6.6 +
6.7 +- Version: 1.8.64
6.8 +- Bugfix: move branch up/down calls scene()->update() now => much faster
6.9 +- Bugfix: Relinking of floatimages undo/redo
6.10 +
6.11 -------------------------------------------------------------------
6.12 Tue Jan 2 19:30:50 CET 2007 - uwedr
6.13
7.1 --- a/tex/vym.tex Fri Jan 05 11:17:33 2007 +0000
7.2 +++ b/tex/vym.tex Wed Jan 10 13:26:12 2007 +0000
7.3 @@ -147,8 +147,8 @@
7.4
7.5 \section{Concept of \vym}
7.6 %TODO may add a general introduction here...
7.7 -\subsection{Windows: mapeditor and noteeditor}
7.8 -\vym uses two windows: an editor for the map itself and another one for
7.9 +\subsection{Windows: Mapeditor, Noteeditor, and more}
7.10 +\vym uses mainly two windows: an editor for the map itself and another one for
7.11 notes, which are part of the map. Let's call them {\em mapeditor} and
7.12 {\em noteeditor}:
7.13 \begin{center}
7.14 @@ -160,6 +160,10 @@
7.15 information e.g. the content of a email easily in a {\em branch}: Just
7.16 type or copy\&paste it into the {\em noteeditor}. Working with notes is
7.17 explained in \ref{noteeditor}
7.18 +
7.19 +Another window which can be toggled on or off is the {\em history
7.20 +window}. It can be used to see the latest actions performed on a map and
7.21 +also to undo and redo actions. Details are in \ref{historywindow}.
7.22
7.23 \subsection{Menus and Context menus}
7.24 On top of each window you find the menubar. The options you find there
7.25 @@ -577,9 +581,9 @@
7.26 \end{center}
7.27
7.28 \subsection{Import and export notes}
7.29 -The note is always saved automatically within the \vym file itself.
7.30 +The note is always saved automatically within the \vym map itself.
7.31 Nevertheless sometimes it is nice to import a note from an external file
7.32 -or write it. Use "File\ra~Import" and "File\ra~Export" to do so.
7.33 +or write it. Use "Map\ra~Import" and "Map\ra~Export" to do so.
7.34
7.35 \subsection{Edit and print note}
7.36 Editing works like in any simple texteditor, including undo and redo
7.37 @@ -630,17 +634,6 @@
7.38 an email. Normally \vym will generate a new paragraph for each new line.
7.39 This usually is not what you want, so you can choose from the menu
7.40
7.41 -\subsection{Advanced actions}
7.42 -\subsubsection*{Edit \ra Convert subsubsections:}
7.43 -This turns subsubsections in selected text (or all text, if nothing is
7.44 -selected) into linebreaks. This is especially useful for snippets of
7.45 -source code.
7.46 -
7.47 -\subsubsection*{Edit \ra Join Lines:}
7.48 -Tries to format text, so that empty lines are used to delimit
7.49 -paragraphs. This is done for selected text (or all text, if nothing is
7.50 -selected). Especially useful for text like emails, meeting minutes etc.
7.51 -
7.52 \section{Hello world}
7.53 This section is about how \vym can interact with other applications.
7.54 Many applications meanwhile can read and write their data using XML, the
7.55 @@ -658,7 +651,7 @@
7.56 use \vym to maintain the bookmark mess? To create a new map containing
7.57 your current KDE bookmarks just choose
7.58 \begin{itemize}
7.59 - \item File \ra Import\ra KDE Bookmarks
7.60 + \item Map \ra Import\ra KDE Bookmarks
7.61 \end{itemize}
7.62
7.63 \subsubsection*{Mind Manager}
7.64 @@ -669,7 +662,7 @@
7.65 \href{http://mindjet.de}{http://mindjet.de}} into \vym maps. Notes and
7.66 pictures are not converted at the moment. You can import files with
7.67 \begin{itemize}
7.68 - \item File \ra Import\ra Mind Manager
7.69 + \item Map \ra Import\ra Mind Manager
7.70 \end{itemize}
7.71
7.72
7.73 @@ -701,7 +694,7 @@
7.74 currently limited, but it possible to export presentations which can be
7.75 opened in Open Office Impress. By selecting
7.76 \begin{itemize}
7.77 - \item File \ra Export\ra Open Office
7.78 + \item Map \ra Export\ra Open Office
7.79 \end{itemize}
7.80 you get a file dialogue where you can choose the output file and the
7.81 file type:
7.82 @@ -740,7 +733,7 @@
7.83 as experimental, there are no options (yet).
7.84 By selecting
7.85 \begin{itemize}
7.86 - \item File \ra Export\ra \LaTeX
7.87 + \item Map \ra Export\ra \LaTeX
7.88 \end{itemize}
7.89 you will be asked in a file dialog for the name of the output file. This
7.90 file should be included in a \LaTeX document using command
7.91 @@ -753,7 +746,7 @@
7.92 running konquerors via DCOP of the changed file. \vym does not create a
7.93 backup!
7.94 \begin{itemize}
7.95 - \item File \ra Export \ra KDE Bookmarks
7.96 + \item Map \ra Export \ra KDE Bookmarks
7.97 \end{itemize}
7.98
7.99
7.100 @@ -808,6 +801,9 @@
7.101
7.102 \section{Advanced Editing}
7.103
7.104 +\subsection{Changing the history: Undo and Redo}
7.105 +%FIXME
7.106 +
7.107 \subsection{How to deal with Bookmarks} \label{bookmarks}
7.108 \subsubsection*{Open new tabs instead of new windows}
7.109 If you use konqueror as browser, \vym will remember the konqueror which
7.110 @@ -939,6 +935,7 @@
7.111 choose between {\em Import Add} and {\em Import Replace}: The imported
7.112 data will be added after the selection resp. replace the selection.
7.113
7.114 +\label{historywindow}
7.115
7.116 \section{\vym on Mac OS X}
7.117 \subsection{Overview}
7.118 @@ -973,7 +970,22 @@
7.119
7.120 \begin{appendix}
7.121
7.122 -\section{Starting \vym}
7.123 +\section{\vym initialization process and configuration}
7.124 +\subsection{Configuration file}
7.125 +On startup \vym will look for a configuration for user specific settings
7.126 +like window positions, toolbars etc. If this file does not already
7.127 +exist, it will be created. The file is located in the users home
7.128 +directory. The exact position depends on the platform:
7.129 +\begin{center}
7.130 +\begin{tabular}{cl}
7.131 + {\bf Platform} & {\bf Configuration file} \\ \hline
7.132 + Linux & {\tt $\sim$/.config/InSilmaril/vym.conf } \\
7.133 + Mac OS X & {\tt /Users/NAME/Library/Preferences/com.insilmaril.vym.plist } \\
7.134 +\end{tabular}
7.135 +\end{center}
7.136 +The file can be edited manually, or on Mac~OS~X with Property List
7.137 +Editor (installed with xtools).
7.138 +
7.139 \subsection{Path to ressources}
7.140 \vym will try to find its ressources (images, stylesheets, filters,
7.141 etc.) in the following places:
8.1 --- a/version.h Fri Jan 05 11:17:33 2007 +0000
8.2 +++ b/version.h Wed Jan 10 13:26:12 2007 +0000
8.3 @@ -4,8 +4,8 @@
8.4 #include <QString>
8.5
8.6 #define __VYM_NAME "VYM"
8.7 -#define __VYM_VERSION "1.8.64"
8.8 -#define __VYM_BUILD_DATE "January 2, 2007"
8.9 +#define __VYM_VERSION "1.8.65"
8.10 +#define __VYM_BUILD_DATE "January 9, 2007"
8.11
8.12
8.13 bool checkVersion(const QString &);