# HG changeset patch # User insilmaril # Date 1178119880 0 # Node ID 9c86935835a484fe3c7bf544f8104467588c8e3f # Parent aff86e2f2a4abe76a86c3ea81521f58268d1f148 Mainly documentation fixes diff -r aff86e2f2a4a -r 9c86935835a4 linkablemapobj.h --- a/linkablemapobj.h Wed May 02 15:31:18 2007 +0000 +++ b/linkablemapobj.h Wed May 02 15:31:20 2007 +0000 @@ -18,7 +18,7 @@ class LinkableMapObj:public QObject, public MapObj { Q_OBJECT public: - /*! Orientation of an object dependd on the position relative to the parent */ + /*! Orientation of an object depends on the position relative to the parent */ enum Orientation { UndefinedOrientation, //!< Undefined LeftOfCenter, //!< Object is left of center diff -r aff86e2f2a4a -r 9c86935835a4 main.cpp --- a/main.cpp Wed May 02 15:31:18 2007 +0000 +++ b/main.cpp Wed May 02 15:31:20 2007 +0000 @@ -134,7 +134,6 @@ // Initialize window of TextEditor textEditor = new TextEditor(); textEditor->setIcon (QPixmap (iconPath+"vym-editor.png")); - if (textEditor->showWithMain()) textEditor->show(); // Initialize mainwindow Main m; diff -r aff86e2f2a4a -r 9c86935835a4 mainwindow.cpp --- a/mainwindow.cpp Wed May 02 15:31:18 2007 +0000 +++ b/mainwindow.cpp Wed May 02 15:31:20 2007 +0000 @@ -92,14 +92,22 @@ procBrowser=NULL; - // Initialize history window; + // Satellite windows ////////////////////////////////////////// + + // history window historyWindow=new HistoryWindow(); - - // Initialize properties window + connect (historyWindow, SIGNAL (windowClosed() ), this, SLOT (updateActions())); + + // properties window branchPropertyWindow = new BranchPropertyWindow(); - branchPropertyWindow->move (20,20); - branchPropertyWindow->resize (settings.value( "/branchpropertywindow/geometry/size",QSize (150,100)).toSize()); - branchPropertyWindow->move (settings.value( "/branchpropertywindow/geometry/pos", QPoint(20,20)).toPoint()); + connect (branchPropertyWindow, SIGNAL (windowClosed() ), this, SLOT (updateActions())); + + // Connect TextEditor, so that we can update flags if text changes + connect (textEditor, SIGNAL (textHasChanged() ), this, SLOT (updateNoteFlag())); + connect (textEditor, SIGNAL (windowClosed() ), this, SLOT (updateActions())); + + // Connect HistoryWindow, so that we can update flags + connect (historyWindow, SIGNAL (windowClosed() ), this, SLOT (updateActions())); // Initialize script editor @@ -109,6 +117,15 @@ connect( scriptEditor, SIGNAL( runScript ( QString ) ), this, SLOT( runScript( QString ) ) ); + + // Initialize Find window + findWindow=new FindWindow(NULL); + findWindow->move (x(),y()+70); + connect (findWindow, SIGNAL( findButton(QString) ), + this, SLOT(editFind(QString) ) ); + connect (findWindow, SIGNAL( somethingChanged() ), + this, SLOT(editFindChanged() ) ); + // Initialize some settings, which are platform dependant QString p,s; @@ -165,23 +182,6 @@ restoreState (settings.value("/mainwindow/state",0).toByteArray()); - // Satellite windows ////////////////////////////////////////// - - // Initialize Find window - findWindow=new FindWindow(NULL); - findWindow->move (x(),y()+70); - connect (findWindow, SIGNAL( findButton(QString) ), - this, SLOT(editFind(QString) ) ); - connect (findWindow, SIGNAL( somethingChanged() ), - this, SLOT(editFindChanged() ) ); - - // Connect TextEditor, so that we can update flags if text changes - connect (textEditor, SIGNAL (textHasChanged() ), this, SLOT (updateNoteFlag())); - connect (textEditor, SIGNAL (windowClosed() ), this, SLOT (updateActions())); - - // Connect HistoryWindow, so that we can update flags - connect (historyWindow, SIGNAL (windowClosed() ), this, SLOT (updateActions())); - updateGeometry(); } @@ -637,15 +637,15 @@ connect( a, SIGNAL( triggered() ), this, SLOT( editHeading2URL() ) ); actionEditHeading2URL=a; - a = new QAction(tr( "Create URL to Bugzilla","Edit menu" ), this); - a->setStatusTip ( tr( "Create URL to Bugzilla" )); + a = new QAction(tr( "Create URL to Novell Bugzilla","Edit menu" ), this); + a->setStatusTip ( tr( "Create URL to Novell Bugzilla" )); a->setEnabled (false); actionListBranches.append(a); connect( a, SIGNAL( triggered() ), this, SLOT( editBugzilla2URL() ) ); actionEditBugzilla2URL=a; - a = new QAction(tr( "Create URL to FATE","Edit menu" ), this); - a->setStatusTip ( tr( "Create URL to FATE" )); + a = new QAction(tr( "Create URL to Novell FATE","Edit menu" ), this); + a->setStatusTip ( tr( "Create URL to Novell FATE" )); a->setEnabled (false); actionListBranches.append(a); connect( a, SIGNAL( triggered() ), this, SLOT( editFATE2URL() ) ); @@ -792,9 +792,10 @@ a->setStatusTip (tr( "Set properties for selection" )); a->setShortcut ( Qt::CTRL + Qt::Key_I ); //Property window a->setShortcutContext (Qt::WindowShortcut); + a->setToggleAction (true); addAction (a); connect( a, SIGNAL( triggered() ), this, SLOT( windowToggleProperty() ) ); - actionTogglePropertyWindow=a; + actionViewTogglePropertyWindow=a; } // Format Actions @@ -942,15 +943,12 @@ viewMenu->addAction (a); connect( a, SIGNAL( triggered() ), this, SLOT( viewZoomOut() ) ); + viewMenu->addSeparator(); a = new QAction(QPixmap(flagsPath+"flag-note.png"), tr( "Show Note Editor","View action" ),this); a->setStatusTip ( tr( "Show Note Editor" )); a->setShortcut ( Qt::CTRL + Qt::Key_E ); a->setToggleAction(true); - if (textEditor->showWithMain()) - a->setOn(true); - else - a->setOn(false); a->addTo( tb ); viewMenu->addAction (a); connect( a, SIGNAL( triggered() ), this, SLOT(windowToggleNoteEditor() ) ); @@ -965,7 +963,9 @@ connect( a, SIGNAL( triggered() ), this, SLOT(windowToggleHistory() ) ); actionViewToggleHistoryWindow=a; - viewMenu->addAction (actionTogglePropertyWindow); + viewMenu->addAction (actionViewTogglePropertyWindow); + + viewMenu->addSeparator(); a = new QAction(tr( "Antialiasing","View action" ),this ); a->setStatusTip ( tr( "Antialiasing" )); @@ -1485,7 +1485,7 @@ // Context Menu for branch or mapcenter branchContextMenu =new QMenu (this); - branchContextMenu->addAction (actionTogglePropertyWindow); + branchContextMenu->addAction (actionViewTogglePropertyWindow); branchContextMenu->addSeparator(); // Submenu "Add" @@ -1629,7 +1629,7 @@ void Main::showEvent (QShowEvent * ) { - if (textEditor->showWithMain()) textEditor->showNormal(); + //FIXME if (textEditor->showWithMain()) textEditor->showNormal(); } bool Main::reallyWriteDirectory(const QString &dir) @@ -2465,7 +2465,7 @@ me=(MapEditor*)tabWidget->page(i); // If something changed, ask what to do - if (me->isUnsaved()) + if (me->hasChanged()) { tabWidget->setCurrentPage(i); QMessageBox mb( vymName, @@ -3263,10 +3263,10 @@ void Main::windowToggleNoteEditor() { - if (textEditor->showWithMain() ) - windowHideNoteEditor(); + if (textEditor->isVisible() ) + textEditor->hide(); else - windowShowNoteEditor(); + textEditor->show(); } void Main::windowToggleHistory() @@ -3284,6 +3284,7 @@ branchPropertyWindow->hide(); else branchPropertyWindow->show(); + if(currentMapEditor()) { LinkableMapObj *sel=currentMapEditor()->getSelection(); @@ -3348,8 +3349,9 @@ historyWindow->setCaption (tr("History for %1").arg(currentMapEditor()->getFileName())); // updateActions is also called when NoteEditor is closed - actionViewToggleNoteEditor->setOn (textEditor->showWithMain()); - actionViewToggleHistoryWindow->setOn (historyWindow->showWithMain()); + actionViewToggleNoteEditor->setOn (textEditor->isVisible()); + actionViewToggleHistoryWindow->setOn (historyWindow->isVisible()); + actionViewTogglePropertyWindow->setOn (branchPropertyWindow->isVisible()); if (me->getMapLinkColorHint()==LinkableMapObj::HeadingColor) actionFormatLinkColorHint->setOn(true); @@ -3384,7 +3386,7 @@ actionFormatLinkColor->setIconSet( pix ); - actionFileSave->setEnabled( me->isUnsaved() ); + actionFileSave->setEnabled( me->hasChanged() ); if (me->isUndoAvailable()) actionEditUndo->setEnabled( true); else @@ -3548,14 +3550,12 @@ void Main::windowShowNoteEditor() { - textEditor->setShowWithMain(true); textEditor->show(); actionViewToggleNoteEditor->setOn (true); } void Main::windowHideNoteEditor() { - textEditor->setShowWithMain(false); textEditor->hide(); actionViewToggleNoteEditor->setOn (false); } diff -r aff86e2f2a4a -r 9c86935835a4 mainwindow.h --- a/mainwindow.h Wed May 02 15:31:18 2007 +0000 +++ b/mainwindow.h Wed May 02 15:31:20 2007 +0000 @@ -288,7 +288,6 @@ QActionGroup *actionGroupFormatFrameTypes; - QAction *actionTogglePropertyWindow; QActionGroup *actionGroupFormatLinkStyles; QAction *actionFormatLinkStyleLine; @@ -299,6 +298,7 @@ QAction *actionViewToggleNoteEditor; QAction *actionViewToggleHistoryWindow; + QAction *actionViewTogglePropertyWindow; QAction *actionViewToggleAntiAlias; QAction *actionViewToggleSmoothPixmapTransform; diff -r aff86e2f2a4a -r 9c86935835a4 mapeditor.cpp --- a/mapeditor.cpp Wed May 02 15:31:18 2007 +0000 +++ b/mapeditor.cpp Wed May 02 15:31:20 2007 +0000 @@ -281,6 +281,93 @@ return s; } +void MapEditor::saveState(const SaveMode &savemode, const QString &undoSelection, const QString &undoCom, const QString &redoSelection, const QString &redoCom, const QString &comment, LinkableMapObj *saveSel) +{ + // Main saveState + + if (blockSaveState) return; + + /* TODO remove after testing + */ + if (debug) cout << "ME::saveState() for "<stepsTotal) curStep=1; + + QString backupXML=""; + QString bakMapName=QDir::convertSeparators (QString("history-%1").arg(curStep)); + QString bakMapDir=QDir::convertSeparators (tmpMapDir +"/"+bakMapName); + QString bakMapPath=QDir::convertSeparators(bakMapDir+"/map.xml"); + + // Create bakMapDir if not available + QDir d(bakMapDir); + if (!d.exists()) + makeSubDirs (bakMapDir); + + // Save depending on how much needs to be saved + if (saveSel) + backupXML=saveToDir (bakMapDir,mapName+"-",false, QPointF (),saveSel); + + QString undoCommand=""; + if (savemode==UndoCommand) + { + undoCommand=undoCom; + } + else if (savemode==PartOfMap ) + { + undoCommand=undoCom; + undoCommand.replace ("PATH",bakMapPath); + } + + if (!backupXML.isEmpty()) + // Write XML Data to disk + saveStringToDisk (QString(bakMapPath),backupXML); + + // We would have to save all actions in a tree, to keep track of + // possible redos after a action. Possible, but we are too lazy: forget about redos. + redosAvail=0; + + // Write the current state to disk + undoSet.setEntry ("/history/undosAvail",QString::number(undosAvail)); + undoSet.setEntry ("/history/redosAvail",QString::number(redosAvail)); + undoSet.setEntry ("/history/curStep",QString::number(curStep)); + undoSet.setEntry (QString("/history/step-%1/undoCommand").arg(curStep),undoCommand); + undoSet.setEntry (QString("/history/step-%1/undoSelection").arg(curStep),undoSelection); + undoSet.setEntry (QString("/history/step-%1/redoCommand").arg(curStep),redoCom); + undoSet.setEntry (QString("/history/step-%1/redoSelection").arg(curStep),redoSelection); + undoSet.setEntry (QString("/history/step-%1/comment").arg(curStep),comment); + undoSet.setEntry (QString("/history/version"),vymVersion); + undoSet.writeSettings(histPath); + + if (debug) + { + // TODO remove after testing + //cout << " into="<< histPath.toStdString()<updateHistory (undoSet); + setChanged(); + updateActions(); +} + + void MapEditor::saveStateChangingPart(LinkableMapObj *undoSel, LinkableMapObj* redoSel, const QString &rc, const QString &comment) { // save the selected part of the map, Undo will replace part of map @@ -355,92 +442,6 @@ } -void MapEditor::saveState(const SaveMode &savemode, const QString &undoSelection, const QString &undoCom, const QString &redoSelection, const QString &redoCom, const QString &comment, LinkableMapObj *saveSel) -{ - // Main saveState - - if (blockSaveState) return; - - /* TODO remove after testing - */ - if (debug) cout << "ME::saveState() for "<stepsTotal) curStep=1; - - QString backupXML=""; - QString bakMapName=QDir::convertSeparators (QString("history-%1").arg(curStep)); - QString bakMapDir=QDir::convertSeparators (tmpMapDir +"/"+bakMapName); - QString bakMapPath=QDir::convertSeparators(bakMapDir+"/map.xml"); - - // Create bakMapDir if not available - QDir d(bakMapDir); - if (!d.exists()) - makeSubDirs (bakMapDir); - - // Save depending on how much needs to be saved - if (saveSel) - backupXML=saveToDir (bakMapDir,mapName+"-",false, QPointF (),saveSel); - - QString undoCommand=""; - if (savemode==UndoCommand) - { - undoCommand=undoCom; - } - else if (savemode==PartOfMap ) - { - undoCommand=undoCom; - undoCommand.replace ("PATH",bakMapPath); - } - - if (!backupXML.isEmpty()) - // Write XML Data to disk - saveStringToDisk (QString(bakMapPath),backupXML); - - // We would have to save all actions in a tree, to keep track of - // possible redos after a action. Possible, but we are too lazy: forget about redos. - redosAvail=0; - - // Write the current state to disk - undoSet.setEntry ("/history/undosAvail",QString::number(undosAvail)); - undoSet.setEntry ("/history/redosAvail",QString::number(redosAvail)); - undoSet.setEntry ("/history/curStep",QString::number(curStep)); - undoSet.setEntry (QString("/history/step-%1/undoCommand").arg(curStep),undoCommand); - undoSet.setEntry (QString("/history/step-%1/undoSelection").arg(curStep),undoSelection); - undoSet.setEntry (QString("/history/step-%1/redoCommand").arg(curStep),redoCom); - undoSet.setEntry (QString("/history/step-%1/redoSelection").arg(curStep),redoSelection); - undoSet.setEntry (QString("/history/step-%1/comment").arg(curStep),comment); - undoSet.setEntry (QString("/history/version"),vymVersion); - undoSet.writeSettings(histPath); - - if (debug) - { - // TODO remove after testing - //cout << " into="<< histPath.toStdString()<updateHistory (undoSet); - setChanged(); - updateActions(); -} - void MapEditor::parseAtom(const QString &atom) { BranchObj *selb=xelection.getBranch(); @@ -830,6 +831,50 @@ s=parser.parString(ok,0); if (ok) setFrameType (s); } + } else if (com=="setFramePenColor") + { + if ( xelection.type()!=Branch && xelection.type()!= MapCenter && xelection.type()!=FloatImage) + { + parser.setError (Aborted,"Type of selection does not allow setting of pen color"); + } + else if (parser.checkParamCount(1)) + { + QColor c=parser.parColor(ok,0); + if (ok) setFramePenColor (c); + } + } else if (com=="setFrameBrushColor") + { + if ( xelection.type()!=Branch && xelection.type()!= MapCenter && xelection.type()!=FloatImage) + { + parser.setError (Aborted,"Type of selection does not allow setting brush color"); + } + else if (parser.checkParamCount(1)) + { + QColor c=parser.parColor(ok,0); + if (ok) setFrameBrushColor (c); + } + } else if (com=="setFramePadding") + { + if ( xelection.type()!=Branch && xelection.type()!= MapCenter && xelection.type()!=FloatImage) + { + parser.setError (Aborted,"Type of selection does not allow setting frame padding"); + } + else if (parser.checkParamCount(1)) + { + x=parser.parInt(ok,0); + if (ok) setFramePadding(x); + } + } else if (com=="setFrameBorderWidth") + { + if ( xelection.type()!=Branch && xelection.type()!= MapCenter && xelection.type()!=FloatImage) + { + parser.setError (Aborted,"Type of selection does not allow setting frame border width"); + } + else if (parser.checkParamCount(1)) + { + x=parser.parInt(ok,0); + if (ok) setFrameBorderWidth (x); + } } else if (com=="setMapAuthor") { if (parser.checkParamCount(1)) @@ -1084,11 +1129,6 @@ return mapDefault; } -bool MapEditor::isUnsaved() -{ - return mapUnsaved; -} - bool MapEditor::hasChanged() { return mapChanged; @@ -1116,26 +1156,21 @@ close(); } -void MapEditor::setFilePath(QString fname) +void MapEditor::setFilePath(QString fpath, QString destname) { - setFilePath (fname,fname); -} - -void MapEditor::setFilePath(QString fname, QString destname) -{ - if (fname.isEmpty() || fname=="") + if (fpath.isEmpty() || fpath=="") { filePath=""; fileName=""; destPath=""; } else { - filePath=fname; // becomes absolute path - fileName=fname; // gets stripped of path + filePath=fpath; // becomes absolute path + fileName=fpath; // gets stripped of path destPath=destname; // needed for vymlinks - // If fname is not an absolute path, complete it - filePath=QDir(fname).absPath(); + // If fpath is not an absolute path, complete it + filePath=QDir(fpath).absPath(); fileDir=filePath.left (1+filePath.findRev ("/")); // Set short name, too. Search from behind: @@ -1147,6 +1182,11 @@ } } +void MapEditor::setFilePath(QString fpath) +{ + setFilePath (fpath,fpath); +} + QString MapEditor::getFilePath() { return filePath; @@ -3442,30 +3482,30 @@ } } -void MapEditor::setFramePadding (const int &) +void MapEditor::setFramePadding (const int &i) { BranchObj *bo=xelection.getBranch(); - /* if (bo) { - saveState (bo, QString("setFrameBrushColor (\"%1\")").arg(bo->getFrameBrushColor().name() ), - bo, QString ("setFrameBrushColor (\"%1\")").arg(c.name() ),QString ("set brush color of frame to %1").arg(c.name() )); - bo->setFrameBrushColor (c); + saveState (bo, QString("setFramePadding (\"%1\")").arg(bo->getFramePadding() ), + bo, QString ("setFramePadding (\"%1\")").arg(i),QString ("set brush color of frame to %1").arg(i)); + bo->setFramePadding (i); + mapCenter->reposition(); + bo->updateLink(); } - */ } -void MapEditor::setFrameBorderWidth(const int &) +void MapEditor::setFrameBorderWidth(const int &i) { BranchObj *bo=xelection.getBranch(); - /* if (bo) { - saveState (bo, QString("setFrameBrushColor (\"%1\")").arg(bo->getFrameBrushColor().name() ), - bo, QString ("setFrameBrushColor (\"%1\")").arg(c.name() ),QString ("set brush color of frame to %1").arg(c.name() )); - bo->setFrameBrushColor (c); + saveState (bo, QString("setFrameBorderWidth (\"%1\")").arg(bo->getFrameBorderWidth() ), + bo, QString ("setFrameBorderWidth (\"%1\")").arg(i),QString ("set border width of frame to %1").arg(i)); + bo->setFrameBorderWidth (i); + mapCenter->reposition(); + bo->updateLink(); } - */ } void MapEditor::setIncludeImagesVer(bool b) diff -r aff86e2f2a4a -r 9c86935835a4 mapeditor.h --- a/mapeditor.h Wed May 02 15:31:18 2007 +0000 +++ b/mapeditor.h Wed May 02 15:31:20 2007 +0000 @@ -13,7 +13,7 @@ #include "settings.h" -/*! \brief Main widget in vym to display and edit the map */ +/*! \brief Main widget in vym to display and edit a map */ class MapEditor : public QGraphicsView, public xmlObj { Q_OBJECT @@ -27,33 +27,66 @@ bool isSaveStateBlocked(); // block while undo/redo or while running scripts void setSaveStateBlocked(bool); -private: +protected: QString getName(const LinkableMapObj*); // Get e.g. heading or filename void makeTmpDirs(); // create temporary directories - QString saveToDir(const QString&,const QString &,bool, const QPointF &,LinkableMapObj*); - void saveStateChangingPart (LinkableMapObj *, LinkableMapObj *, const QString &, const QString &); - void saveStateRemovingPart (LinkableMapObj *, const QString &); - void saveState(LinkableMapObj *, const QString &, LinkableMapObj *, const QString &, const QString &); - void saveState(const QString &, const QString &, const QString &, const QString &, const QString &); - void saveState(const SaveMode&, const QString &, const QString &, const QString &, const QString &, const QString &, LinkableMapObj *); + + /*! This function saves all information of the map to disc. + saveToDir also calls the functions for all BranchObj and other objects in the map. + The structure of the map itself is returned as QString and passed back to Main, + where saveToDir is called initially + */ + QString saveToDir (const QString &tmpdir, const QString &prefix, bool writeflags, const QPointF &offset, LinkableMapObj *saveSel); + + + /*! \brief Save the current changes in map + + Two commands and selections are saved: + + - undocommand and undoselection to undo the change + - redocommand and redoselection to redo the action after an undo + + Additionally a comment is logged. + + */ + void saveState(const SaveMode& savemode, const QString &undoSelection, const QString &undoCommand, const QString &redoSelection, const QString &redoCommand, const QString &comment, LinkableMapObj *saveSelection); + /*! Overloaded for convenience */ + void saveStateChangingPart(LinkableMapObj *undoSelection, LinkableMapObj* redoSelection, const QString &rendoCommand, const QString &comment); + /*! Overloaded for convenience */ + void saveStateRemovingPart(LinkableMapObj *redoSelection, const QString &comment); + /*! Overloaded for convenience */ + void saveState(LinkableMapObj *undoSelection, const QString &undoCommand, LinkableMapObj *redoSelection, const QString &rendoCommand, const QString &comment); + /*! Overloaded for convenience */ + void saveState(const QString &undoSelection, const QString &undoCommand, const QString &redoSelection, const QString &rendoCommand, const QString &comment) ; + public: - void parseAtom (const QString &); - void runScript (QString); + + /* \brief Process one command and its parameters */ + void parseAtom (const QString &atom); + + /* \brief Runs the script */ + void runScript (QString script); private: void addFloatImageInt(const QPixmap &img); public: - bool isDefault(); // false, if map was changed once - bool isUnsaved(); // save necessary - bool hasChanged(); // undo possible - void setChanged(); // called from NoteEditor via LMO - void closeMap(); - void setFilePath (QString); - void setFilePath (QString,QString); - QString getFilePath (); // Full path e.g. "/home/tux/map.xml" - QString getFileName (); // e.g. "map.xml" - QString getMapName (); // e.g. "map" - QString getDestPath (); // e.g. "/home/tux/map.vym" + bool isDefault(); //!< true, if map is still the empty default map + bool hasChanged(); //!< true, if something has changed and is not saved yet + void setChanged(); //!< called from TextEditor via LinkableMapObj + void closeMap(); //!< Closes the map + + /*! \brief Sets filepath, filename and mapname + + If the filepath is "/home/tux/map.xml", then the filename will be set + to map.xml. The destname is needed for vymLinks, pointing to another map. + The destname holds the real name of the file, after it has been compressed, e.g. "map.vym" + */ + void setFilePath (QString filepath,QString destname); + void setFilePath (QString); //!< Overloaded for convenience + QString getFilePath (); //!< Full path e.g. "/home/tux/map.xml" + QString getFileName (); //!< e.g. "map.xml" + QString getMapName (); //!< e.g. "map" + QString getDestPath (); //!< e.g. "/home/tux/map.vym" ErrorCode load (QString, LoadMode ); // newmap, import/replace selection public: int save(const SaveMode &); // Save map diff -r aff86e2f2a4a -r 9c86935835a4 tex/vym.changelog --- a/tex/vym.changelog Wed May 02 15:31:18 2007 +0000 +++ b/tex/vym.changelog Wed May 02 15:31:20 2007 +0000 @@ -1,6 +1,7 @@ ------------------------------------------------------------------- -Fri Apr 24 18:34:48 CEST 2007 - uwe +Thu Apr 26 10:34:48 CEST 2007 - uwe +- Feature: Editing of frame attributes in branch property window - Feature: autosave - Feature: number of undo/redo levels can be changed in settings - Feature: branch property window settings are saved diff -r aff86e2f2a4a -r 9c86935835a4 tex/vym.tex --- a/tex/vym.tex Wed May 02 15:31:18 2007 +0000 +++ b/tex/vym.tex Wed May 02 15:31:20 2007 +0000 @@ -48,41 +48,39 @@ \section{Introduction} \subsection{What is a \vym map?} -A \vym map (in short words {\em map}) is a tree like structure: +A \vym map (abbreviated below as {\em map}) is a tree like structure: \begin{center} \includegraphics[width=12cm]{images/example1.png} \end{center} -Such maps can be drawn by hand on a paper or flip chart and help to -structure your thoughts. While a tree like structure like above can be +Such maps can be drawn by hand on a sheet of paper or flip chart and help to +structure your thoughts. While a tree like structure like the illustration above can be drawn manually \vym offers much more features to work with such maps. -\vym is not another drawing software, but a tool to store and modify +\vym is not just another drawing software application, but a tool to store and modify information in an intuitive way. For example you can reorder parts of -the map by pressing a key or add various information like a complete +the map by pressing a key or add various pieces of information like a complete email by a simple mouse click. -Once you have finished collecting and organizing your ideas, you can -easily generate for example a presentation in Open~Office based on a -map. +Once you have finished collecting and organising your ideas, you can +easily generate a variety of outputs including for example a presentation in Open~Office based on a {\em map}. -\subsection{Why should I use maps? Time, Space and your Brain.} +\subsection{Why should I use {\em maps}? Time, Space and your Brain.} \subsubsection*{Space} -A map can concentrate a very complex content on little space e.g. a +A {\em map} can concentrate very complex content in a small space such as a piece of paper. It helps to use both sides of your brain: the logical -side and also your creative side (e.g. by using pictures, colors and -keywords in a map, so called {\em anchors}). It is a technique to -organize the way you think: It can help you by developing, sorting and -memorizing your thoughts. +side and also your creative side (e.g. by using pictures, colours and +keywords in a map, often called {\em anchors}). It is a technique to help +organize the way you think and stimulate your creativity: It can help you by developing, sorting and helping to memorise your ideas. \subsubsection*{Time} Because you just use keywords and drawings, it is much faster than good -old fashioned notes. Your brain memorizes things by associating them to -other things -- a map makes use of those connections and stimulates +old fashioned 'notes'. Your brain memorizes things by associating them with +other things -- a {\em map} makes use of those connections and stimulates new asccociations. \subsubsection*{Your Brain} -In 1960 the Prof. {\sc Roger Sperry} discovered that both hemispheres -of the human brain have different tasks (of course both of them +In 1960 Prof. {\sc Roger Sperry} discovered that both hemispheres +of the human brain undertake different tasks (of course both of them basically {\em can} do the same): \begin{center} \begin{tabular}{|p{5.5cm}|p{5.5cm}|} \hline @@ -91,7 +89,7 @@ \item verbal speech and writing \item numbers \item logical thinking - \item analyzing and details + \item analysing and details \item science \item linear thinking \item concept of time @@ -108,33 +106,36 @@ \end{itemize} \\ \hline \end{tabular} \end{center} -In our science oriented society we have learned to mainly rely on our -left side of the brain, the "rational" one. In other cultures, -especially like the native americans and other "old" cultures, the right -side is much more important. Maps are just one way to stimulate the -other side and make use of additional ressources we all have. +In our science oriented western society we have learned to mainly rely on our +left side of the brain, the "rational" one. In other cultures, such as the native americans and other "old" cultures, the right +side is much more important. {\em Map} are just one way to stimulate the +other side and make use of additional resources we all have. -\subsection{Where could I use a map?} -Here are some examples, how you can use those maps +\subsection{Where could I use a {\em map}?} +Here are some examples, how you can use those {\em maps} \begin{itemize} \item to prepare articles, papers, books, talks, \ldots \item to sort complex data - \item to memorize facts, persons, vocabulary, \ldots + \item to memorize facts, peoples names, vocabulary, \ldots \item to sort emails, files and bookmarks on your computer \item to moderate conferences + \item to brainstorm solutions to problems + \item to record the tasks when planning a project \end{itemize} -\subsection{What you shouldn't do with a map...} -A map drawn by somebody shows the way the author thinks. There is -no right or wrong in the way it is drawn, so there is no way to criticize -it. "It is, what it is" ({\sc F.~Lehmann}). +\subsection{What you shouldn't do with a {\em map}...} +A {\em map} drawn by somebody shows the way that the author thinks. There is +no question of right or wrong in the way it is drawn, so there is no way to criticise +it. "It is, what it is" ({\sc F.~Lehmann}).The tool will be of considerable use to the author and only very limited use to anyone else. + +However, when groups share in creating a {\em map} all of the group will benefit from its use. An example of such use is when a Tutor develops a {\em map} with a group of students during instruction. Another group use is when a Project leader gathers a group of specialists to help {\em map} the tasks that will be required to deliver a project. %\section{Tutorials} %TODO \subsection{Internet Ressources} -A good starting point to learn more about maps in general is Wikipedia: +A good starting point to learn more about Mindmaps in general is Wikipedia: \begin{itemize} \item English: \href{http://en.wikipedia.org/wiki/Mind_map}{http://en.wikipedia.org/wiki/Mind\_map} @@ -145,50 +146,48 @@ -\section{Concept of \vym} +\section{The Concept of the \vym application} %TODO may add a general introduction here... \subsection{Windows: Mapeditor, Noteeditor, and more} -\vym uses mainly two windows: an editor for the map itself and another one for -notes, which are part of the map. Let's call them {\em mapeditor} and -{\em noteeditor}: +\vym uses two windows in the main: an editor for the map itself and another one for +notes asociated with the branches, which are part of the map. Let's call them {\em mapeditor} and {\em noteeditor}: + \begin{center} \includegraphics[width=8cm]{images/windows.png} \end{center} -Usually you will work in the {\em mapeditor} by just adding new +Most of the time you will work in the {\em mapeditor} by just adding new branches, moving around and reordering them. The various ways to do this will be explained in \ref{mapeditor}. You can store additional information e.g. the content of a email easily in a {\em branch}: Just type or copy\&paste it into the {\em noteeditor}. Working with notes is explained in \ref{noteeditor} -Another window which can be toggled on or off is the {\em history +A third window which can be toggled on or off is the {\em history window}. It can be used to see the latest actions performed on a map and also to undo and redo actions. Details are in \ref{historywindow}. \subsection{Menus and Context menus} -On top of each window you find the menubar. The options you find there -are similar to those you are used from other applications. Note that +At the top of each window you will find the menubar. The options provided there +are similar to those you are probably used to from other applications. Note that many (and even more) options are availabe via {\em context menus}. Those are available if you right-click onto an object in a map (on Mac~OS~X Command-Click). \subsection{Toolbars} The toolbars in the mainwindows give quick access to many functions and -also visualize the state of an object. For example a part of of the map +also display the state of a branch. For example a part of of the map can be hidden when the map is exported into an Open~Office presentation. -To show this the branch in the map will have a little cloud symbol, +To show this the branch in the map will show a little cloud symbol, which is also "switched on" in the toolbar. -Note that you can reposition all toolbars by simply grabbing them. For -example you can move the flags-toolbar from its original horizontal +Note that you can reposition all toolbars by simply grabbing and draging them to a new position. For example you can move the flags-toolbar from its original horizontal position on top of the mapeditor to a vertical position on the right side. You can even detach it and make it "float" separate from the other windows. Or just insert it again at its original position. \subsection{Maps} -The map itself has always a {\em mapcenter}. The -mapcenter has {\em branches} just like the trunk of a tree. Each branch -in turn may have branches again. +The {\em map} itself has always a {\em mapcenter}. The +mapcenter has {\em branches} radiating out from the centre just like the trunk of a tree. Each branch in turn may have branches again. \begin{center} \includegraphics[width=10cm]{images/branches.png} \end{center} @@ -198,7 +197,7 @@ The mapcenter and the branches all have a {\em heading}. This is the text you see in the mapeditor. Usually it should just be one or a few -words, so that one can easily keep track of the whole map. +key words, so that one can easily keep track of the whole map. In the toolbar above the mapeditor you see various symbols. @@ -206,12 +205,12 @@ \includegraphics[width=8cm]{images/default-flags.png} \end{center} These are called {\em flags} and can be used to mark branches in the -map, e.g. if something is important or questionable. +{\em map}, e.g. if something is important or questionable. There are also more flags set by \vym automatically to show additional -information, e.g. when a exists for a particular branch. +information, e.g. when a note is attached to a particular branch. By default some of these flags are set exclusively e.g. when the -"thumb-up" flag is set, then the "thumb down" is unset and vice +"thumb-up" flag is set, then the "thumb down" is reset and vice versa. You can change this default behaviour in the settings menu. %TODO add info about toolbars e.g. undo/redo, ... @@ -219,24 +218,28 @@ \section{Mapeditor} \label {mapeditor} \subsection{Start a new map} -After \vym is started two windows will open: the mapeditor and the -noteditor. Usually you will work in both windows, but at the moment we +After \vym is started two windows will open: the {\em mapeditor} and the {\em noteditor}. Usually you will work in both windows, but at the moment we will just need the mapeditor. Select the mapcenter "New map" in the middle of the mapeditor by -left-clicking with the mouse. It will turn yellow to show that is +left-clicking with the mouse. It will be highlighted yellow to show that is selected. There are several ways to add a new branch to the center: \begin{itemize} - \item Using the mouse: Open the context meny by clicking with the + \item Using the mouse: Open the context menu by clicking with the right mouse button (CTRL-Click on Mac) onto the - mapcenter and choose Add \ra Add as child + mapcenter and choose Add \ra Add branch as child \item Press \key{Ins} or \key{A} \end{itemize} A new branch will appear and you will be able to type the heading of the branch. Finish adding the new branch by pressing \key{Enter}. %tipp -Sometimes it comes handy to add a new branch above or below the current -one. Use \key{Ins} together with \key{Shift} or \key{Ctrl}. It is also +Sometimes it comes in handy to be able to add a new branch above or below the current +one. +\begin{itemize} + \item Use \key{Shift} \together with \key{Ins} to add a branch above the selected one or... + \item \key{Ctrl} \together with \key{Ins} to add one below. +\end{itemize} +It is also possible to add a branch in such a way, that the current selection becomes the child of the new branch, which is like inserting it {\em before} the selection. This can be done using the context menu. @@ -244,35 +247,34 @@ \subsection{Navigate through a map} \subsubsection*{Select branches} To select branches you can use the left button of your mouse or also the -arrow keys. Depending on the {\em orientation} of a branch type -\key{\la} or \key{\ra} to get nearer to the mapcenter or deeper +arrow keys. Depending on the {\em orientation} of a branch tap +\key{\la} or \key{\ra} to move nearer to the mapcenter or deeper down into the branches. Within a set of branches, let's call them a {\em subtree}, you can use \key{\ua} and \key{\da} to go up and down. You can -also use \key{Pos1} and \key{End} to select the first and last branch. +also use \key{Home} and \key{End} to select the first and last branch. -\subsubsection*{Zoom a map} +\subsubsection*{Panning the view of a map} While adding more and more branches the size of the map may become -bigger than the mapeditor window. You can use the scrollbars on the -right and the bottom of your mapeditor window to scroll, but it is -easier to just scroll using the left mouse button: Click onto the {\em -canvas} itself, the empty space somewhere between the branches. The -mouse pointer will change from an arrow to a hand, now move the visible -part of the map to show the desired part. +larger than the mapeditor window. You can use the scrollbars on the +right and the bottom of your mapeditor window to scroll the view up or down or left or right. It is easier to just scroll using the left mouse button: Click anywhere on the {\em canvas} itself. Choose an empty space somewhere between the branches. The +mouse pointer will change from an arrow to a hand, now move or drag the visible +map to show the desired part. If you select branches using the arrow keys, the map will scroll to ensure that the selected branch is always visible. +\subsubsection*{Zooming the view of a map} Working with huge maps, the {\em zoom}-function comes in handy: You can use \begin{itemize} - \item from the menu View \ra Zoom + \item from the menu: View \ra Zoom in, View \ra Zoom out, View \ra reset Zoom. \item the toolbar buttons \begin{center} \includegraphics[width=3cm]{images/zoom-buttons.png} \end{center} \end{itemize} -The crossed magnifying lens resets the zoomed view to its original size. +Clicking the crossed magnifying lens icon will reset the zoomed view to its original size. \subsubsection*{Find Function} \label{findwindow} @@ -281,31 +283,29 @@ \begin{center} \includegraphics[width=6cm]{images/find-window.png} \end{center} -The text you enter here will be searched in all the headings and also in -notes. Everytime you press the "Find"-button it will look for the next -occurence, which then will be selected automatically. If the search -fails, there will appear a short message "Nothing found" or a few +The find function will search for, the text you enter here, in all the branch headings and also in the associated notes. Everytime you press the "Find"-button it will look for the next occurence, which will then be selected automatically. If the search +fails, a short message "Nothing found" will appear for a few seconds in the {\em statusbar} on the bottom of the mapeditor. \subsubsection*{Keep the overview -- scroll a part of the map} -A very big subtree of a map e.g. a branch with hundreds of childs makes +A very big subtree of a map e.g. a branch with hundreds of child branches would make it very hard to keep an overview over the whole map. You can hide all -the childs of a branch by {\em scrolling} it -- this function is also -often called {\em folding}. Think of the whole subtree as painted onto a -big newspaper. You can scroll the paper to a small roll, leaving just -the headline readable. +the children of a branch by {\em scrolling} it -- this function is often called {\em folding}. Think of the whole subtree as painted onto a +broadsheet newspaper. You can scroll or fold the paper to a small roll, leaving just +the headline visible. -To scroll or unscroll a branch and its childs, press the +To scroll or unscroll a branch and its children, \begin{itemize} - \item \key{Scroll} key or \key{S} + \item press either the \key{Scroll Lock} key or the \key{S} \item press the middle-mouse button or - \item choose the little scroll from the toolbar. + \item choose the scroll icon from the toolbar. \end{itemize} If you select parts of a scrolled branch e.g. using the find function or by using the arrow-keys, it will unscroll temporary. This is shown as a -scroll with a little hour glass. If the temporary unscrolled part is not +scroll with a little hour glass. If the temporary unscrolled part is no longer needed, it will be hidden again automatically. It is also -possible to unscroll a whole subtree using "Edit\ra Unscroll all childs". +possible to unscroll all branches using "Edit\ra Unscroll all scrolled +branches". You can also hide parts of the map while exporting it e.g. to a webpage or a presentation, see \ref{hideexport} for details. @@ -315,6 +315,7 @@ You can edit the heading by selecting the branch and then \begin{itemize} \item pressing \key{Enter} + \item pressing \key{F2} \item double-clicking with left mouse. \end{itemize} Just type the new heading (or edit the old one) and press \key{Enter}. @@ -355,38 +356,37 @@ %tipp There is yet another way to move branches: If you press \key{Shift} or \key{Ctrl} while moving with the mouse, the branch will be added above -or below the one the mouse pointer is over. This helps also to reorder a -map. +or below the one the mouse pointer is over. This can also be used to reorder branches in a map. -\subsection{The right side of your brain - colors and images} -\subsubsection*{Change color of a heading} -You can also use colors to put more information into a map, e.g. use -red, green and more colors to prioritize tasks. Again you can +\subsection{Colours and Images - Using the right side of your brain} +\subsubsection*{Change colour of a heading} +You can also use colours to add more information to a map, e.g. use +red, green and more colours to prioritize tasks. Again you can \begin{itemize} - \item use the menu and choose e.g Format \rq Set Color + \item use the menu and choose e.g Format \ra Set Color \item use the toolbar \begin{center} - \includegraphics[width=3cm]{images/color-buttons.png} + \includegraphics[width=3cm]{images/colour-buttons.png} \end{center} \end{itemize} -The first button (black in the graphic above) shows the actual color. -Clicking on it let's you choose another color. You can also "pick" -another color by selecting a branch with the desired color and using the -"pick color" button. Both of the buttons showing a bucket actually put -the current color to the selected branch. While the first one just -colors the heading of the selection, the last one also colors all the -childs of the selected branch. +The first button (black in the graphic above) shows the current colour. +Clicking on it let's you choose another colour. You can also "pick" +another colour by selecting a branch with the desired colour and using the +"pick colour" button. Both of the icons showing a palette actually apply +the current colour to the selected branch. While the first one just +colours the heading of the selection, the last one also colours all the +children of the selected branch. %tipp -A very useful function is the "copy color" using the mouse: Select the -branch which should get the new color, then press \key{Ctrl} and -simultanously click with left-mouse on another branch to copy its color -to the first one. Here the childs of the selection also will get the new -color, if you just want to color the selection itself, additionally +A very useful function is the "copy colour" using the mouse: Select the +branch which should get the new colour, then press \key{Ctrl} and +simultanously click with left-mouse on another branch to copy its colour +to the first one. Here the children of the selection also will get the new +colour, if you just want to colour the selection itself, additionally press \key{Shift}. \subsubsection*{Use flags} -\vym provides various flags. You see them in the toolbar on top of the +\vym provides various flags. They are usually displayed in the toolbar on top of the mapeditor window. (Note: Like all toolbars you can also move them to the left or the right side of the window or even detach them. Just grab the very left "dotted" part of the toolbar with your left-mouse button.) @@ -395,9 +395,9 @@ \end{center} If you have a branch selected, you can set any number of flags by clicking them in the toolbar. The toolbar buttons change their state and -always reflect the flags set in the selected branch. +always reflect the flags set in the selected branch. So, to remove a flag from a branch, select the branch and then click the highlighted flag on the toolbar. -Presently \vym uses two kinds of flags: {\em System Flags} and {\em +At present \vym uses two kinds of flags: {\em System Flags} and {\em Standard Flags}. The standard flags are those shown in the toolbar. System flags are set by \vym to indicate e.g. that there is additional information in a note (more on this in \ref{noteeditor}). Later versions @@ -407,14 +407,14 @@ The easiest way to add an image to a branch is by dragging it e.g. from a webbrowser to the mapeditor while a branch is selected there. -You can also add a image to a branch by opening the context menu of the -branch choose "Add Image". A -dialog window lets you choose the image to load. +You can also add an image to a branch by opening the context menu of the +branch. Right click the selected branch, choose "Add" then "Add Image". A +dialog window enables you choose the image to load. \footnote{Supported image types are: PNG, BMP, XBM, XPM and PNM. It may also support JPEG, MNG and GIF, if specially configured during compilation (as done when \vym is part of SUSE LINUX).} -While an image is selected in the dialog, you can see a preview of the -image. It is also possible to select multiple images. +While an image is selected in the dialog, a preview of the +image is displayed. It is also possible to select multiple images. You can position the image anywhere you want, just drag it with left mouse. To relink it to another branch, press \key{Shift} while moving @@ -422,7 +422,9 @@ If you right-click onto an image, a context menu will open which let's you first choose one of several image formats. Then a file dialog opens -to save the image. Hint: This is used to "export" the image, it will be +to save the image. + +Hint: This is used to "export" the image, it will be saved anyway in the map itself! You can also cut and copy images, but it is not possible to add objects to an image\footnote{ Images are regarded as "extra feature". It would make working with @@ -442,7 +444,7 @@ \subsubsection*{Frames} A frame can be added to a branch by clicking with the right-mouse button. A context menu will open, where you can choose the -frame. At the moment just a rectangle resp. "No Frame" will be offered, +frame. At the moment just a rectangle is offered. "No Frame" will be offered as the default for branches, nevertheless you can use images as frames. Have a look at the demo map {\tt todo.vym} as an example, where the mapcenter is a cloud. You can use an external drawing program like {\tt gimp} to create an image, @@ -455,21 +457,20 @@ various parts of the map can be changed by \begin{itemize} \item Selecting Format from the menu - \item Right clicking onto the canvas, which will open a context menu + \item Right clicking on the canvas, which will open a context menu \end{itemize} -\subsubsection*{Background color} -The color is set (and also displayed) as "Set background color". +\subsubsection*{Background colour} +The colour is set (and also displayed) as "Set background colour". -\subsubsection*{Link color} -Links connecting branches can be colored in one of the following ways: +\subsubsection*{Link colour} +Links connecting branches can be coloured in one of two ways: \begin{itemize} - \item use the color of the heading of the branch the links is - \item use {\em one} color for all links. The default color is blue. - leading to. + \item use the same colour for the heading and for the branch link line. + \item use {\em one} colour for all links and choose different colours for the branch headings text. The default colour for branch link lines is blue. \end{itemize} -The latter can be set with "Set link color". Check or uncheck the "Use -color of heading for link" option to choose one of the two designs for +The latter can be set with "Set link colour". Check or uncheck the "Use +colour of heading for link" option to toggle between the two designs for your map. \subsubsection*{Link style} @@ -480,8 +481,8 @@ \item Thick Line \item Thick Parabel \end{itemize} -The "thick" styles only draw links starting at mapcenter thick, the rest -of the map is always painted "thin". +The "thick" styles only apply to links starting at the mapcenter, link lines for the rest +of the map are always painted "thin". \subsection{Links to other documents and webpages} @@ -491,15 +492,13 @@ \item \vym map, which will be opened in \vym itself \end{itemize} In addition to the external links there also internal ones, leading from one -branch in a map toanother one. Those are called {\em XLinks} and are explained +branch in a map to another one. Those are called {\em XLinks} and are explained in section~\ref{xlinks}. \subsubsection*{Webbrowser} -Modern Webbrowsers like {\tt konqueror} are able to display various -types of files, both local or in the internet. To enter the URL of -any document, right-click onto a branch or use the Edit Menu -and choose "Edit URL". Enter the path to your document (or copy and -paste it from your browser). Examples for valid paths are: +Modern Webbrowsers like {\tt konqueror and Firefox} are able to display various +types of files, both local or on the internet. To enter the URL of +any document, right-click onto a branch to open the contextmenu then choose "Edit URL". Enter the path to your document (or copy and paste it from your browser). Examples for valid paths are: \begin{verbatim} http://www.insilmaril.de/vym/index.html file:/usr/share/doc/packages/vym/doc/vym.pdf @@ -508,7 +507,7 @@ clicking on the globe in the toolbar or the context menu an external browser\footnote{ The browser can be changed in the Settings Menu.} -will be started. +will be launched. \begin{center} \includegraphics[width=0.5cm]{images/flag-url.png} \end{center} @@ -517,16 +516,13 @@ \subsubsection*{\vym map} -To link to to another map right click on a branch or choose "Edit \ra -Enter \vym link". A file dialog opens where you can choose the map. A +To link to to another map right click on a branch and choose "Edit \vym link". A file dialog opens where you can choose the map. A branch with a link is marked with \begin{center} \includegraphics[width=0.5cm]{images/flag-vymlink.png} \end{center} -Clicking this flag in the toolbar or in the context menu of a branch -will open the map in another tab (see \ref{tabs} for working with -multiple maps). To delete an existing link, just press the "Cancel" -button. +Clicking this flag beside the branch heading, in the toolbar or in the context menu of a branch will open the map in another tab (see \ref{tabs} for working with +multiple maps). To delete an existing link, just right click the branch and select "Delete \vym link". Technical note: Internally \vym uses absolute paths, to avoid opening several tabs containing the same map. When a map is saved, this path is @@ -554,28 +550,26 @@ % Scrolling \section{Noteeditor} \label {noteeditor} -If you want to save more text in a branch e.g. a complete email, a +If you want to attach more text to a branch e.g. a complete email, a cooking recipe, or the whole source code of a software project, you can use the noteeditor. \begin{center} \includegraphics[width=8cm]{images/noteeditor.png} \end{center} -This editor displays text associated to a branch selected in the -mapeditor. To visualize that there maybe is no text yet, the noteeditor -shows different background colors depending on its state: +This editor displays text associated with a branch selected in the mapeditor. The noteeditor +shows different background colours depending on whether text is associated with a selected branch. \subsection{States} Before you can type or paste text into it, you have -to select a branch in the mapeditor. Note that the background color +to select a branch in the mapeditor. Note that the background colour of the noteeditor indicates its state: \begin{itemize} - \item black: no branch selected \item grey: no text entered yet - \item white: text is already available + \item white: some text has been entered \end{itemize} -To show you in the mapeditor itself that there is a note with more -information for a particular branch, a little note flag will appear next -to the heading of the branch. See the lower branch on the right side: +In the mapeditor itself, to signal that there is a note with more +information for a particular branch, a little "note" flag will appear next +to the heading of the branch. This is illustrated in the lower branch on the right hand side: \begin{center} \includegraphics[width=8cm]{images/branches-flags.png} \end{center} @@ -583,7 +577,7 @@ \subsection{Import and export notes} The note is always saved automatically within the \vym map itself. Nevertheless sometimes it is nice to import a note from an external file -or write it. Use "Map\ra~Import" and "Map\ra~Export" to do so. +or write it. In the Note Editor use "File\ra~Import" and "File\ra~Export" to do so. \subsection{Edit and print note} Editing works like in any simple texteditor, including undo and redo @@ -595,17 +589,17 @@ wanted, so there you can convert all paragraphs into linebreaks by using Edit~\ra~Remove~Paragraphs or \key{ALT-X}. -\subsection{RichText: Colors, paragraphs and formatted text} +\subsection{RichText: Colours, paragraphs and formatted text} \vym supports formatted text (QT Rich Text) in the noteeditor since -version 1.4.7. Colors and text attributes (e.g. italic, bold) can be -set with the buttons above the text. The text itself is divided in +version 1.4.7. Colours and text attributes (e.g. italic, bold) can be +set with the buttons above the text. The text itself is divided into paragraphs. For each paragraph the format can be set (e.g. centered, right). A paragraph is ended when a \key{Return} is entered. If you just want to begin a new line, press \key{CTRL-Return}. -\subsection{Fonts and how to quickly switch them} -The noteeditor is ment to be used for simple notes, not really as full -featured text editor. Because of many requests \vym supports now +\subsection{Fonts and how to switch them quickly} +The noteeditor is designed to be used for simple notes, not really as a full +featured word processor. Because of many requests \vym now supports formatted text in the noteeditor\footnote{ \vym uses the QRichtText format, which is basically a subset of the formatting provided in HTML.} @@ -618,12 +612,11 @@ \begin{center} \includegraphics[width=0.5cm]{images/formatfixedfont.png} \end{center} -In the Settings menu both fonts can be set and also which font should be -used for default. +In the Settings menu both fonts can be set. The default font can also be toggled between the fixed and variable font by selecting or deselecting the "fixed font is default" menu item. Additionally to the default fonts any font installed on your system can be used. Please note, that the chosen font also will be used for HTML -exports, so you should only use fonts which are available generally. +exports, so if youy VYM mind map could ever be exported to a web or intranet page you should only use fonts which are available generally. \subsection{Find text} The noteeditor itself has no Find function, use Find in the mapeditor, @@ -636,33 +629,31 @@ \section{Hello world} This section is about how \vym can interact with other applications. -Many applications meanwhile can read and write their data using XML, the +Many applications can now read and write their data using XML, the eXtensible Markup Language. \vym also uses XML to save its maps, see \ref{fileformat} for a more detailed description. -So if your an application understands XML, chances are good that someone +So if you make use of another application that understands XML, chances are good that someone could write import/export filters for \vym. Volunteers are always welcome ;-) \subsection{Import} \label{import} \subsubsection*{KDE Bookmarks} -The integrated bookmark editor in KDE is somewhat limited, so why not +The integrated bookmark editor in KDE (Konqueror etc.) is somewhat limited, so why not use \vym to maintain the bookmark mess? To create a new map containing your current KDE bookmarks just choose \begin{itemize} - \item Map \ra Import\ra KDE Bookmarks + \item File \ra Import\ra KDE Bookmarks \end{itemize} \subsubsection*{Mind Manager} \vym has currently a very basic import filter to convert maps created by -{\em Mind Manager}\footnote{Mind Manager is a professional software by -Mindjet. Both names are registered trademarks by Mindjet. For more -information see their website at -\href{http://mindjet.de}{http://mindjet.de}} into \vym maps. Notes and +{\em Mind Manager}\footnote{Mind Manager is a commercial i.e. non free, software application by Mindjet for Windows and the Mac. Both names are registered trademarks by Mindjet. For more information see their website at +\href{http://mindjet.com}{http://mindjet.com}} into \vym maps. Notes and pictures are not converted at the moment. You can import files with \begin{itemize} - \item Map \ra Import\ra Mind Manager + \item File \ra Import\ra Mind Manager \end{itemize} @@ -676,7 +667,7 @@ \subsection{Export} \label{export} \label{hideexport} -Often you don't want to export the whole map, but just parts of it. For +Often you may not want to export the whole map, but just parts of it. For example you may have additional info you want to talk about in a presentation, while those parts should not be visible to the audience. To achieve this you can "hide" parts of the map during exports by @@ -689,12 +680,11 @@ use of this flag. By default the flag is enabled. \subsubsection*{Open Office} -Open Office beginning with version~2 uses the so called "Open Office -Document Format", which can be written by \vym. The options are +Open Office beginning with version~2 uses the so called "Open Document Format", which can be written by \vym. The options are currently limited, but it possible to export presentations which can be opened in Open Office Impress. By selecting \begin{itemize} - \item Map \ra Export\ra Open Office + \item File \ra Export\ra Open Office \end{itemize} you get a file dialogue where you can choose the output file and the file type: @@ -710,9 +700,10 @@ probably reedit in Open Office to avoid text running over the end of a page \item Images and flags are not used at the moment - \item Notes are just written as plain text, without RichText + \item Notes are just written as plain text, without RichText + \item The full range of templates are not available in all distributions. \end{itemize} -Some of the templates make use of {\em sections} e.g. insert the +Some of the templates make use of {\em sections} i.e sections insert the headings of mainbranches as chapters for sections into the presentation. \subsubsection*{Image} @@ -725,7 +716,7 @@ \subsubsection*{ASCII} Exporting an image as text is somewhat experimental at the moment. Later -this will probably done using stylesheets. So the output may change in +this will probably be done using stylesheets. So the output may change in future versions of \vym. \subsubsection*{\LaTeX} @@ -733,44 +724,44 @@ as experimental, there are no options (yet). By selecting \begin{itemize} - \item Map \ra Export\ra \LaTeX + \item File \ra Export\ra \LaTeX \end{itemize} you will be asked in a file dialog for the name of the output file. This -file should be included in a \LaTeX document using command +file may then be included in a \LaTeX document using command: \begin{verbatim} \include{inputfile.tex} \end{verbatim} \subsubsection*{KDE Bookmarks} \vym will overwrite the KDE bookmarks file and then try to notify -running konquerors via DCOP of the changed file. \vym does not create a +running Konquerors via DCOP of the changed file. \vym does not create a backup! \begin{itemize} - \item Map \ra Export \ra KDE Bookmarks + \item File \ra Export \ra KDE Bookmarks \end{itemize} \subsubsection*{XHTML (Webpages)} -This is the format you want to use to create a webpage. For an example -have a look at the \vym homepage: +This is the format to use if you wish to create a webpage. To see an example +visit the \vym homepage: \href{http://www.InSilmaril.de/vym}{www.InSilmaril.de/vym} -Some explanation how this works: +Some explanation on how this works: Before a map is exported as XHTML, it will be first written as XML into a directory (see \ref{xmlexport}). Then the external program {\tt -xsltproc}\footnote{On SUSE Linux {\tt xsltproc} is installed by +xsltproc}\footnote{On SUSE Linux and some other distributions {\tt xsltproc} is installed by default.} will be called to process the XML file and generate HTML code. -A dialog allows to set various options: +A dialog allows the user to set various options: \begin{itemize} \item {\bf Include image:} If set, \vym will creat an image map at the top of the HTML output. Clicking on a branch in the map will jump to the corresponding section in the output. \item {\bf Colored headings:} - If set to yes, \vym will color the headings in the text part with the - same colors like in the map. + If set to yes, \vym will colour the headings in the text part with the + same colours used in the \vym map. \item {\bf Show Warnings:} If set to yes, \vym will ask before overwriting data. \item {\bf Show output:} @@ -782,20 +773,19 @@ \subsubsection*{XML} \label{xmlexport} -The map is written into a directory both as an image and as XML. The +The map is written into a directory both as an image and as an XML file. The directory is set in a file dialog. If the directory is not empty, you -will be questioned if you risk to overwrite its contents. +will be warned and offered choices if you are at risk of overwriting existing contents. It is possible to export different maps into the same directory. Each file generated will have the map's name as prefix, e.g. {\tt todo.vym} becomes {\tt todo.xml}, {\tt todo.png}, {\tt todo-image-1.png} and so -on. This is useful if e.g. for a website several combined maps have to -be stored in the same directory. +on. This is useful if, for example, a website comprises several combined maps that have to be stored in the same directory. \subsubsection*{Export a part of a map} -Select a branch you want to export together with its childs, then open +Select a branch you want to export together with its children, then open the context menu and choose {\em Save Selection}. This will create a -file with the postfix {\tt .vyp}, which is an abbreviation for \lq vym +file with the suffix {\tt .vyp}, which is an abbreviation for \lq vym part\rq. @@ -807,7 +797,7 @@ \subsection{Macros} \label{macros} Macros have been added to \vym in version~1.9.0. Each function key \key{F1} to \key{F12} holds a macro, which is executed on the current -selection if the key is pressed. The default macros change the color of +selection if the key is pressed. The default macros change the colour of a subtree or set the frame of a branch: \begin{center} \includegraphics[width=8cm]{images/macros.png} @@ -819,13 +809,13 @@ \subsection{How to deal with Bookmarks} \label{bookmarks} \subsubsection*{Open new tabs instead of new windows} -If you use konqueror as browser, \vym will remember the konqueror which +If you use konqueror as your browser, \vym will remember the konqueror session which was opened first by \vym. You can also press \key{Ctrl} and click to -open the link in a new tab then. +open the link in a new tab. \vym can also open a new tab in Mozilla or Firefox using the remote command\footnote{\href{http://www.mozilla.org/unix/remote.html}{http://www.mozilla.org/unix/remote.html}} -of these. +of these browsers. \subsubsection*{Drag and Drop} If you want to keep bookmarks in a map, select a branch where you want @@ -847,108 +837,93 @@ \end{itemize} The URL will be build from the number in the heading. -\subsection{Including images into a branch} -The default setting of an image is to float "freely". They can be -positioned everywhere, but they might end up in the same place as other -parts of the map. +\subsection{Associating images with a branch} +The default setting for an image is for it to float "freely". Images can be +positioned anywhere on the canvas, but may end up in the same place as other +parts of the map obscuring that part of the map. -The solution is to include them "into" a branch. This can be done via +The solution is to insert or include them "into" a branch. This can be done via the context menu of their parent branch: \begin{itemize} \item Include images horizontally \item Include images vertically \end{itemize} -The image ist still positioned relatively to its parent branch, but the -heading and border of the branch adapt to the floating image, see below: +The image is still positioned relative to its parent branch, but the +heading and border of the branch frame adapt to the floating image, see below: \begin{center} \includegraphics[width=11cm]{images/includeImages.png} \end{center} \subsection{Modifier Modes} -Modifiers are for example the \key{Shift}- or the \key{Alt}-keys. When -pressed while doing actions with the mouse, they will cause \vym to use -a "modified" action. E.g. you can move branches with mouse. If +Modifiers are for example the \key{Shift}- the \key{Ctrl}- ot the \key{Alt}-keys. When +pressed while applying mouse actions, they will cause \vym to use +a "modified" action. e.g. you can move branches with the mouse. If \key{Ctrl} or \key{Alt}is pressed while releasing the branch, it will be added above/below the target, not as child of the target. -Without a modifier pressed, the first click on a branch just selects +Without a modifier key pressed, the first mouse click on a branch just selects it. For the behaviour of the \key{Ctrl} modifier there are several options, which can be set from the modifier toolbar: \begin{center} \includegraphics[width=3cm]{images/modmodes.png} \end{center} -The default is to copy the color from the clicked branch to the already +The default is to copy the colour from the clicked branch to the already selected branch. In the toolbar shown above the default modifier is -selected, namely to copy the color of a branch. The second modifier +selected, namely to copy the colour of a branch. The second modifier let's you easily copy a whole branch with a single click. The third -modifier lets you create {\em xLinks}, which will be explained in the -next section. +modifier lets you create links between branches called {\em xLinks}. They will be explained in the next section. \subsection{Hide links of unselected objects} Sometimes it would be useful to position a branch freely, just like a -mainbranch or an image. Though this is not possible (yet) for all +mainbranch or an image. This is possible for all branches, you can use a mainbranch and hide its connecting link to the -mapcenter. This can be used e.g. for legends or a collection of vymLinks +mapcenter or hide the link between a child branch and its parent. This can be used e.g. for legends or a collection of vymLinks pointing to other maps: \begin{center} \includegraphics[width=9cm]{images/hiddenlink.png} \end{center} -Change hiding of the links in the property window (opened in context -menu or with \key{CTRL-I} on the "links"-tab. +To hide the link between a branch and its parent open the context +menu (Right Click) and check Hide link if object is not selected. \subsection{XLinks} \label{xlinks} So far all the data in the \vym map has been treelike. Using xLinks you can link one branch to any other, just like attaching a rope between two branches in a real tree. This is especially useful in complex maps, -where you want to have crossreferences which don't fit on the same -visible area, which fits on your screen. The following example, which is -part of the \vym package, still fits on one screen, but shows how data -can be crosslinked. In the graphics there is a link from a task (prepare -a presentation) to general information: +where you want to have crossreferences which can not be displayed on the same +visible area of the {\em mapeditor} window. The following example map still fits on one screen, but shows how data can be crosslinked. In the graphics there is a link from a task (prepare a presentation) to general information: \begin{center} \includegraphics[width=12cm]{images/xlink.png} \end{center} Note that a xLink which points to a branch that is not visible (because -it is scrolled), is just show as a little horizontal arrow. In the +it is scrolled), is just shown as a little horizontal arrow. In the screenshot above have a look at the \lq Tuesday\rq\ branch. \subsubsection*{Create a xLink} -Choose the link mode from the modifier toolbar (by clicking or pressing +Choose the link mode from the modifier toolbar (by clicking the toolbar icon or pressing \key{L}). Select the branch, where the xLink should start. Press the -modifier key \key{Ctrl} and simultanously click on the branch where the -link should end. (The link is already drawn before you release the mouse -key). If you release the mouse over a branch the xLink becomes -permanent. +modifier key \key{Ctrl} and then click on the selected branch where the +link should start and drag the mouse pointer to the branch where the link is to end. (The link is drawn to follow the mouse pointer). When you release the mouse over a branch the xLink becomes permanent. \subsubsection*{Modify or delete a xLink} -Open the context menu of a branch and select \lq Edit xLink\rq. A -submenu contains all the xLinks of the branch (if there are any). They -are named like the branches, where they end. Choose one and -the xLink dialogue opens, where you can set color, width and also delete -the xLink. +First select a branch at either end of the xLink. Then open the context menu and select \lq Edit xLink\rq. A submenu contains all the xLinks of the branch (if there are any). They are named like the branches, where they end. Choose one and the xLink dialogue opens, where you can set colour, width and also delete the xLink. \subsubsection*{Follow a xLink} -In a complext \vym map it sometimes comes handy to jump to the other end -of a xLink. You can do this by opening the context menu of the branch -and clicking on \lq Goto xLink\rq and selecting the xLink you want to -follow. +In a complex \vym map it sometimes comes in handy to be able to jump to the other end +of a xLink. You can do this by opening the context menu of the branch and clicking on \lq Goto xLink\rq and selecting the xLink you want to follow. \subsection{Adding and removing branches} The context menu of a branch shows some more ways to add and delete data -e.g. you can delete a branch while keeping its childs. The childs become +e.g. you can delete a branch while keeping its children. The children become linked to the parent of the previously removed branch. Similar branches can be inserted into existing maps. For keyboard shortcuts also have a look at the context menu. \subsection{Adding a whole map or a part of a map} Select a branch where you want to add a previously saved map ({\tt .vym})or a part -of a map ({\tt .vyp}) , then open -the context menu and choose {\em Add \ra Import}. For the import you can -choose between {\em Import Add} and {\em Import Replace}: The imported -data will be added after the selection resp. replace the selection. +of a map ({\tt .vyp}) , then open the context menu and choose {\em Add \ra Add Map (Insert)}. For the import you can choose between {\em Add Map (Insert)} and {\em Add Map (Replace)}: The imported data will be added after the selected branch. \label{historywindow} @@ -985,7 +960,7 @@ \begin{appendix} -\section{\vym initialization process and configuration} +\section{\vym initialisation process and configuration} \subsection{Configuration file} On startup \vym will look for a configuration for user specific settings like window positions, toolbars etc. If this file does not already @@ -1017,20 +992,20 @@ \begin{center} \begin{tabular}{cccp{8cm}}\\ \bf Option & \bf Comment & \bf Argument & \bf Description \\ \hline -d & debug & & Turn on debugging output \\ -h & help & & Show help\\ +v & version & & Show version ov \vym\\ l & local & & Use local paths to stylesheets, translations, icons, etc. instead of system paths. Useful for testing\\ +h & help & & Show help\\ +r & run & filename & Run script\\ q & quit & & Quit immediatly after startup. Useful for benchmarks.\\ -r & run & filename & Run script\\ -v & version & & Show version ov \vym\\ \end{tabular} \end{center} You can also give several filenames at the commandline to let \vym open several maps at once. - \section{Scripts} \label{scripts} %FIXME + \section{Scripts} \label{scripts} + %FIXME @@ -1064,7 +1039,7 @@ \subsubsection*{Contacting the author}\label{author} Especially for support questions please try the mailinglists first. If -everything else fails you can contact the Uwe Drechsel at +everything else fails you can contact the author Uwe Drechsel at \begin{center} \href{mailto:vym@InSilmaril.de}{vym@InSilmaril.de} \end{center} @@ -1080,7 +1055,7 @@ \end{center} I build \vym regulary for openSUSE, so you may report it against a recent version there, even if you use another Operating System. -Please don't forget to tell +Please don't forget to tell me what you are using: \begin{itemize} \item the exact steps needed to reproduce the bug \item the version and build date of \vym (see the Help \ra About @@ -1103,7 +1078,7 @@ \subsubsection{The Qt toolkit} Qt is C++ toolkit for multiplatform GUI and application development. It provides single-source portability across MS~Windows, Mac~OS~X, Linux -ans all major commercial Unix variants. Qt is also available for +and all major commercial Unix variants. Qt is also available for embedded devices. Qt is a Trolltech product. For more information see \begin{center} \href{http://www.trolltech.com/qt/}{www.trolltech.com/qt} @@ -1126,7 +1101,7 @@ %FIXME \subsection{\vym file format} \label{fileformat} -\vym maps usually have the postfix "{\tt .vym}" and represent a +\vym maps usually have the suffix "{\tt .vym}" and represent a compressed archive of data. If you want to have a closer look into the data structure map called "mapname.vym", just uncompress the map manually using @@ -1233,7 +1208,7 @@ In the end I came up with the default presentation style, which still could be simplified, just in case you have free time\ldots -The existing templates are still work in progress, before you spent too +The existing templates are still work in progress, before you spend too much time developing your own style, please contact me. Basically the following steps are needed to build your own style: \begin{enumerate} @@ -1274,7 +1249,7 @@ \end{center} \end{enumerate} Currently images are exported and notes just will appear as text -without formatting and colors. +without formatting and colours. diff -r aff86e2f2a4a -r 9c86935835a4 texteditor.cpp --- a/texteditor.cpp Wed May 02 15:31:18 2007 +0000 +++ b/texteditor.cpp Wed May 02 15:31:20 2007 +0000 @@ -56,23 +56,23 @@ setInactive(); // Load Settings - resize (settings.value ( "/noteeditor/geometry/size", QSize(450,600)).toSize()); - move (settings.value ( "/noteeditor/geometry/pos", QPoint (250,50)).toPoint()); + resize (settings.value ( "/satellite/noteeditor/geometry/size", QSize(450,600)).toSize()); + move (settings.value ( "/satellite/noteeditor/geometry/pos", QPoint (250,50)).toPoint()); - if (settings.value ( "/noteeditor/showWithMain",true).toBool()) - setShowWithMain(true); + if (settings.value ( "/satellite/noteeditor/showWithMain",true).toBool()) + show(); else - setShowWithMain(false); + hide(); varFont.fromString( settings.value - ("/noteeditor/fonts/varFont", + ("/satellite/noteeditor/fonts/varFont", "Nimbus Sans l,14,-1,5,48,0,0,0,0,0").toString() ); fixedFont.fromString (settings.value( - "/noteeditor/fonts/fixedFont", + "/satellite/noteeditor/fonts/fixedFont", "Courier,14,-1,5,48,0,0,0,1,0").toString() ); - QString s=settings.value ("/noteeditor/fonts/fonthintDefault","variable").toString(); + QString s=settings.value ("/satellite/noteeditor/fonts/fonthintDefault","variable").toString(); if (s == "fixed") { actionSettingsFonthintDefault->setOn (true); @@ -85,7 +85,7 @@ filenameHint=""; // Restore position of toolbars - restoreState (settings.value("/noteeditor/state",0).toByteArray()); + restoreState (settings.value("/satellite/noteeditor/state",0).toByteArray()); // Save settings in vymrc settings.setValue("/mainwindow/printerName",printer->printerName()); @@ -96,20 +96,20 @@ { if (printer) delete printer; // Save Settings - settings.setValue( "/noteeditor/geometry/size", size() ); - settings.setValue( "/noteeditor/geometry/pos", pos() ); - settings.setValue ("/noteeditor/state",saveState(0)); + settings.setValue( "/satellite/noteeditor/geometry/size", size() ); + settings.setValue( "/satellite/noteeditor/geometry/pos", pos() ); + settings.setValue ("/satellite/noteeditor/state",saveState(0)); - settings.setValue( "/noteeditor/showWithMain",showWithMain()); + settings.setValue( "/satellite/noteeditor/showWithMain",isVisible()); QString s; if (actionSettingsFonthintDefault->isOn() ) s="fixed"; else s="variable"; - settings.setValue( "/noteeditor/fonts/fonthintDefault",s ); - settings.setValue("/noteeditor/fonts/varFont", varFont.toString() ); - settings.setValue("/noteeditor/fonts/fixedFont", fixedFont.toString() ); + settings.setValue( "/satellite/noteeditor/fonts/fonthintDefault",s ); + settings.setValue("/satellite/noteeditor/fonts/varFont", varFont.toString() ); + settings.setValue("/satellite/noteeditor/fonts/fixedFont", fixedFont.toString() ); } @@ -122,16 +122,6 @@ return true; } -void TextEditor::setShowWithMain(bool v) -{ - showwithmain=v; -} - -bool TextEditor::showWithMain() -{ - return showwithmain; -} - void TextEditor::setFontHint (const QString &fh) { if (fh=="fixed") @@ -499,7 +489,7 @@ void TextEditor::closeEvent( QCloseEvent* ce ) { ce->accept(); // TextEditor can be reopened with show() - showwithmain=false; + hide(); emit (windowClosed() ); return; } diff -r aff86e2f2a4a -r 9c86935835a4 texteditor.h --- a/texteditor.h Wed May 02 15:31:18 2007 +0000 +++ b/texteditor.h Wed May 02 15:31:20 2007 +0000 @@ -14,8 +14,6 @@ ~TextEditor(); bool isEmpty(); - void setShowWithMain (bool); - bool showWithMain (); void setFontHint(const QString&); QString getFontHint(); QString getFontHintDefault(); @@ -86,7 +84,6 @@ QBrush filledPaper; // depending on the state QBrush inactivePaper; // depending on the state EditorState state; - bool showwithmain; // same visibility as mainwindow? bool blockChangedSignal; QFont varFont; diff -r aff86e2f2a4a -r 9c86935835a4 version.h --- a/version.h Wed May 02 15:31:18 2007 +0000 +++ b/version.h Wed May 02 15:31:20 2007 +0000 @@ -6,7 +6,7 @@ #define __VYM_NAME "VYM" #define __VYM_VERSION "1.8.72" #define __VYM_CODENAME "Codename: 1.9.0-beta-1" -#define __VYM_BUILD_DATE "April 25, 2007" +#define __VYM_BUILD_DATE "May 2, 2007" bool checkVersion(const QString &); diff -r aff86e2f2a4a -r 9c86935835a4 vym.pro --- a/vym.pro Wed May 02 15:31:18 2007 +0000 +++ b/vym.pro Wed May 02 15:31:20 2007 +0000 @@ -41,8 +41,8 @@ ornamentedobj.h \ parser.h \ process.h \ + selection.h \ showtextdialog.h\ - selection.h \ simplescripteditor.h\ texteditor.h \ version.h \ @@ -86,9 +86,9 @@ ornamentedobj.cpp \ parser.cpp \ process.cpp \ + selection.cpp \ showtextdialog.cpp \ simplescripteditor.cpp \ - selection.cpp \ texteditor.cpp \ version.cpp \ xml.cpp \