1.1 --- a/branchobj.cpp Thu Mar 24 21:10:38 2005 +0000
1.2 +++ b/branchobj.cpp Sat Apr 09 22:50:08 2005 +0000
1.3 @@ -380,9 +380,11 @@
1.4 FloatImageObj *fio;
1.5 for (fio=floatimage.first(); fio; fio=floatimage.next())
1.6 fio->setVisibility (v);
1.7 + LinkObj* lo;
1.8 + for (lo=link.first(); lo;lo=link.next() )
1.9 + lo->setVisibility ();
1.10 }
1.11 } // depth <= toDepth
1.12 - //FIXME move (absPos.x(), absPos.y() );
1.13 requestReposition();
1.14 }
1.15
1.16 @@ -798,7 +800,7 @@
1.17
1.18 }
1.19
1.20 -void BranchObj::removeLink (LinkObj *lo)
1.21 +void BranchObj::removeLinkRef (LinkObj *lo)
1.22 {
1.23 link.remove (lo);
1.24 }
1.25 @@ -809,6 +811,16 @@
1.26 if (!lo->isUsed()) delete (lo);
1.27 }
1.28
1.29 +void BranchObj::deleteLinkAt (int i)
1.30 +{
1.31 + LinkObj *lo=link.at(i);
1.32 + lo->deactivate();
1.33 + if (!lo->isUsed())
1.34 + {
1.35 + delete(lo);
1.36 + }
1.37 +}
1.38 +
1.39 int BranchObj::countLink()
1.40 {
1.41 return link.count();
1.42 @@ -1044,13 +1056,16 @@
1.43 {
1.44 // Find current parent and
1.45 // remove pointer to myself there
1.46 +
1.47 + if (!dst) return NULL;
1.48 +
1.49 BranchObj *par=(BranchObj*)(parObj);
1.50 if (par)
1.51 par->removeBranchPtr (this);
1.52 else
1.53 return NULL;
1.54
1.55 - if (pos<0)
1.56 + if (pos<0 || dst->getDepth()==1)
1.57 {
1.58 // links adds myself as last branch at dst
1.59 dst->addBranchPtr (this);
2.1 --- a/branchobj.h Thu Mar 24 21:10:38 2005 +0000
2.2 +++ b/branchobj.h Sat Apr 09 22:50:08 2005 +0000
2.3 @@ -64,8 +64,9 @@
2.4 virtual QString getVymLink ();
2.5 virtual QString saveToDir (const QString&,const QString&, const QPoint&);// Save data recursivly to tempdir
2.6 virtual void addLink (LinkObj*);
2.7 - virtual void removeLink (LinkObj*);
2.8 - virtual void deleteLink (LinkObj*);
2.9 + virtual void removeLinkRef (LinkObj*); // Remove ref in list
2.10 + virtual void deleteLink (LinkObj*); // remove references and delete LinkObj
2.11 + virtual void deleteLinkAt (int); // remove references and delete LinkObj
2.12 virtual int countLink ();
2.13 virtual BranchObj* linkTargetAt (int);
2.14 virtual LinkableMapObj* addFloatImage();
3.1 Binary file demos/todo.vym has changed
4.1 --- a/lang/vym_de.ts Thu Mar 24 21:10:38 2005 +0000
4.2 +++ b/lang/vym_de.ts Sat Apr 09 22:50:08 2005 +0000
4.3 @@ -273,7 +273,7 @@
4.4 </message>
4.5 <message>
4.6 <source>&Save...</source>
4.7 - <translation>Speichern &unter...</translation>
4.8 + <translation>&Speichern...</translation>
4.9 </message>
4.10 <message>
4.11 <source>Save &As...</source>
5.1 --- a/linkobj.cpp Thu Mar 24 21:10:38 2005 +0000
5.2 +++ b/linkobj.cpp Sat Apr 09 22:50:08 2005 +0000
5.3 @@ -8,20 +8,20 @@
5.4
5.5 LinkObj::LinkObj ():MapObj()
5.6 {
5.7 -// cout << "Const LinkObj ()\n";
5.8 - init();
5.9 + // cout << "Const LinkObj ()\n";
5.10 + init();
5.11 }
5.12
5.13 LinkObj::LinkObj (QCanvas* c):MapObj(c)
5.14 {
5.15 -// cout << "Const LinkObj (c) called from MapCenterObj (c)\n";
5.16 - init();
5.17 + // cout << "Const LinkObj (c) called from MapCenterObj (c)\n";
5.18 + init();
5.19 }
5.20
5.21
5.22 LinkObj::~LinkObj ()
5.23 {
5.24 -// cout << "Destr LinkObj\n";
5.25 + // cout << "Destr LinkObj\n";
5.26 if (linkState!=undefinedLink)
5.27 deactivate();
5.28 delete (line);
5.29 @@ -31,6 +31,7 @@
5.30 {
5.31 beginBranch=NULL;
5.32 endBranch=NULL;
5.33 + visBranch=NULL;
5.34 linkState=undefinedLink;
5.35
5.36 line=new QCanvasLine (canvas);
5.37 @@ -91,11 +92,12 @@
5.38 void LinkObj::deactivate ()
5.39 {
5.40 if (beginBranch)
5.41 - beginBranch->removeLink (this);
5.42 + beginBranch->removeLinkRef (this);
5.43 beginBranch=NULL;
5.44 if (endBranch)
5.45 - endBranch->removeLink (this);
5.46 + endBranch->removeLinkRef (this);
5.47 endBranch=NULL;
5.48 + visBranch=NULL;
5.49 linkState=undefinedLink;
5.50
5.51 line->hide();
5.52 @@ -112,22 +114,38 @@
5.53 void LinkObj::updateLink()
5.54 {
5.55 QPoint a,b;
5.56 - if (beginBranch)
5.57 - // If a link is just drawed in the editor,
5.58 - // we have already a beginBranch
5.59 - a=beginBranch->getChildPos();
5.60 - else
5.61 - // This shouldn't be reached normally...
5.62 - a=beginPos;
5.63 - if (linkState==activeLink && endBranch)
5.64 - b=endBranch->getChildPos();
5.65 - else
5.66 - b=endPos;
5.67 -
5.68 - if (line->startPoint()==a && line->endPoint()==b)
5.69 + if (visBranch)
5.70 + {
5.71 + // Only one of the linked branches is visible
5.72 + a=b=visBranch->getChildPos();
5.73 + if (visBranch->getOrientation()==OrientRightOfCenter)
5.74 + b.setX (b.x()+25);
5.75 + else
5.76 + b.setX (b.x()-25);
5.77 + } else
5.78 + {
5.79 + // Both linked branches are visible
5.80 + if (beginBranch)
5.81 + // If a link is just drawn in the editor,
5.82 + // we have already a beginBranch
5.83 + a=beginBranch->getChildPos();
5.84 + else
5.85 + // This shouldn't be reached normally...
5.86 + a=beginPos;
5.87 + if (linkState==activeLink && endBranch)
5.88 + b=endBranch->getChildPos();
5.89 + else
5.90 + b=endPos;
5.91 + }
5.92 +
5.93 +
5.94 + if (line->startPoint()==a && line->endPoint()==b && !visBranch)
5.95 + {
5.96 // update is called from both branches, so only
5.97 // update if needed
5.98 + cout <<"LO__updateL returnung...\n";
5.99 return;
5.100 + }
5.101 else
5.102 {
5.103 beginPos=a;
5.104 @@ -167,3 +185,31 @@
5.105 }
5.106 }
5.107
5.108 +void LinkObj::setVisibility ()
5.109 +{
5.110 + if (beginBranch && endBranch)
5.111 + {
5.112 + if(beginBranch->isVisibleObj() && endBranch->isVisibleObj())
5.113 + { // Both ends are visible
5.114 + setVisibility (true);
5.115 + visBranch=NULL;
5.116 + } else
5.117 + {
5.118 + if(!beginBranch->isVisibleObj() && !endBranch->isVisibleObj())
5.119 + { //None of the ends is visible
5.120 + setVisibility (false);
5.121 + visBranch=NULL;
5.122 + } else
5.123 + { // Just one end is visible, draw a symbol that shows
5.124 + // that there is a link to a scrolled branch
5.125 + setVisibility (true);
5.126 + if (beginBranch->isVisibleObj())
5.127 + visBranch=beginBranch;
5.128 + else
5.129 + visBranch=endBranch;
5.130 +
5.131 + }
5.132 + }
5.133 + }
5.134 +}
5.135 +
6.1 --- a/linkobj.h Thu Mar 24 21:10:38 2005 +0000
6.2 +++ b/linkobj.h Sat Apr 09 22:50:08 2005 +0000
6.3 @@ -24,11 +24,13 @@
6.4 void positionBBox();
6.5 void calcBBoxSize();
6.6 void setVisibility (bool);
6.7 + void setVisibility ();
6.8
6.9 private:
6.10 QCanvasLine *line;
6.11 BranchObj *beginBranch;
6.12 BranchObj *endBranch;
6.13 + BranchObj *visBranch; // the "visible" part of a partially scrolled link
6.14 LinkState linkState; // init during drawing or active
6.15 QPoint beginPos;
6.16 QPoint endPos;
7.1 --- a/main.cpp Thu Mar 24 21:10:38 2005 +0000
7.2 +++ b/main.cpp Sat Apr 09 22:50:08 2005 +0000
7.3 @@ -52,7 +52,6 @@
7.4 QAction *actionEditSelectLast;
7.5 QAction *actionEditLoadImage;
7.6 QAction *actionEditToggleFloatExport;
7.7 -QAction *actionEditNoLink;
7.8
7.9 QAction *actionFormatColor;
7.10 QAction *actionFormatPickColor;
7.11 @@ -87,6 +86,7 @@
7.12
7.13 QPopupMenu *branchContextMenu;
7.14 QPopupMenu *branchLinksContextMenu;
7.15 +QPopupMenu *branchLinksContextMenuDup;
7.16 QPopupMenu *floatimageContextMenu;
7.17 QPopupMenu *saveImageFormatMenu;
7.18 QPopupMenu *canvasContextMenu;
8.1 --- a/mainwindow.cpp Thu Mar 24 21:10:38 2005 +0000
8.2 +++ b/mainwindow.cpp Sat Apr 09 22:50:08 2005 +0000
8.3 @@ -92,7 +92,6 @@
8.4 extern QAction *actionEditSelectLast;
8.5 extern QAction *actionEditLoadImage;
8.6 extern QAction *actionEditToggleFloatExport;
8.7 -extern QAction *actionEditNoLink;
8.8
8.9 extern QAction* actionFormatColor;
8.10 extern QAction* actionFormatPickColor;
8.11 @@ -128,6 +127,7 @@
8.12
8.13 extern QPopupMenu* branchContextMenu;
8.14 extern QPopupMenu* branchLinksContextMenu;
8.15 +extern QPopupMenu* branchLinksContextMenuDup;
8.16 extern QPopupMenu* floatimageContextMenu;
8.17 extern QPopupMenu* saveImageFormatMenu;
8.18 extern QPopupMenu* canvasContextMenu;
8.19 @@ -572,10 +572,6 @@
8.20 connect( a, SIGNAL( activated() ), this, SLOT( editLoadImage() ) );
8.21 actionEditLoadImage=a;
8.22
8.23 - // inserted into branchLinksContextMenu, if no link is available.
8.24 - a = new QAction( tr( "No link available" ),tr( "No link available" ), 0, this, "noLink" );
8.25 - a->setEnabled (false);
8.26 - actionEditNoLink=a;
8.27 }
8.28
8.29 // Format Actions
8.30 @@ -856,8 +852,12 @@
8.31 // This will be populated "on demand" in MapEditor::updateActions
8.32 branchContextMenu->insertSeparator();
8.33 branchLinksContextMenu =new QPopupMenu (this);
8.34 - branchContextMenu->insertItem ("Goto Link",branchLinksContextMenu);
8.35 + branchContextMenu->insertItem (tr("Goto Link"),branchLinksContextMenu);
8.36 connect( branchLinksContextMenu, SIGNAL( activated(int) ), this, SLOT( editFollowLink(int ) ) );
8.37 +
8.38 + branchLinksContextMenuDup =new QPopupMenu (this);
8.39 + branchContextMenu->insertItem (tr("Edit Link"),branchLinksContextMenuDup);
8.40 + connect( branchLinksContextMenuDup, SIGNAL( activated(int) ), this, SLOT( editEditLink(int ) ) );
8.41
8.42 // Context menu for floatimage
8.43 floatimageContextMenu =new QPopupMenu (this);
8.44 @@ -1537,8 +1537,9 @@
8.45 fileSave(savemode);
8.46
8.47 // Set name of tab
8.48 - tabWidget->setTabLabel (currentMapEditor(),
8.49 - currentMapEditor()->getFileName() );
8.50 + if (savemode==CompleteMap)
8.51 + tabWidget->setTabLabel (currentMapEditor(),
8.52 + currentMapEditor()->getFileName() );
8.53 return;
8.54 }
8.55 }
8.56 @@ -1999,6 +2000,12 @@
8.57 currentMapEditor()->followLink(branchLinksContextMenu->indexOf(item));
8.58 }
8.59
8.60 +void Main::editEditLink(int item)
8.61 +{
8.62 + if (currentMapEditor())
8.63 + currentMapEditor()->editLink(branchLinksContextMenuDup->indexOf(item));
8.64 +}
8.65 +
8.66 void Main::formatSelectColor()
8.67 {
8.68 if (currentMapEditor())
9.1 --- a/mainwindow.h Thu Mar 24 21:10:38 2005 +0000
9.2 +++ b/mainwindow.h Sat Apr 09 22:50:08 2005 +0000
9.3 @@ -116,6 +116,7 @@
9.4 void editSaveImage(int);
9.5 void editToggleFloatExport();
9.6 void editFollowLink (int);
9.7 + void editEditLink (int);
9.8
9.9 void formatSelectColor();
9.10 void formatPickColor();
10.1 --- a/mapeditor.cpp Thu Mar 24 21:10:38 2005 +0000
10.2 +++ b/mapeditor.cpp Sat Apr 09 22:50:08 2005 +0000
10.3 @@ -29,6 +29,7 @@
10.4 #include "misc.h"
10.5 #include "mainwindow.h"
10.6 #include "extrainfodialog.h"
10.7 +#include "editlinkdialog.h"
10.8 #include "settings.h"
10.9
10.10 #include "icons/flag-note.xpm"
10.11 @@ -87,7 +88,6 @@
10.12 extern QAction *actionEditSelectLast;
10.13 extern QAction *actionEditLoadImage;
10.14 extern QAction *actionEditToggleFloatExport;
10.15 -extern QAction *actionEditNoLink;
10.16
10.17 extern QAction* actionFormatPickColor;
10.18 extern QAction* actionFormatColorBranch;
10.19 @@ -120,6 +120,7 @@
10.20
10.21 extern QPopupMenu *branchContextMenu;
10.22 extern QPopupMenu *branchLinksContextMenu;
10.23 +extern QPopupMenu *branchLinksContextMenuDup;
10.24 extern QPopupMenu *floatimageContextMenu;
10.25 extern QPopupMenu *saveImageFormatMenu;
10.26 extern QPopupMenu *exportImageFormatMenu;
10.27 @@ -521,6 +522,9 @@
10.28 if ( undoSelection &&
10.29 typeid(*undoSelection) == typeid(BranchObj) )
10.30 s+=((BranchObj*)(undoSelection))->saveToDir(tmpdir,prefix,offset);
10.31 + else
10.32 + if (selection && typeid(*selection)==typeid(BranchObj))
10.33 + s+=((BranchObj*)(selection))->saveToDir(tmpdir,prefix,offset);
10.34 }
10.35
10.36 // Save local settings
10.37 @@ -550,8 +554,8 @@
10.38 // the xml data itself is kept in memory in backupXML
10.39 //
10.40 // For faster write/read of data, a part of the map can be
10.41 - // written. Then the undoSelection will mark, which part of the
10.42 - // map should be replaced if an undo is wanted later.
10.43 + // written. Then the undoSelection will mark the part of the
10.44 + // map which should be replaced if an undo is wanted later.
10.45
10.46 if (mode==PartOfMap && part && (typeid(*part) == typeid (BranchObj) ) )
10.47 {
10.48 @@ -773,7 +777,7 @@
10.49 if ( !file.open( IO_WriteOnly ) )
10.50 {
10.51 // This should neverever happen
10.52 - QMessageBox::critical(0, tr("Critcal save error"),"MapEditor::save() Couldn't open "+file.name());
10.53 + QMessageBox::critical(0, tr("Critcal Save error"),"MapEditor::save() Couldn't open "+file.name());
10.54 return 1;
10.55 }
10.56
10.57 @@ -2241,12 +2245,15 @@
10.58 {
10.59 branchLinksContextMenu->clear();
10.60 branchLinksContextMenu->insertItem ("No link available");
10.61 + branchLinksContextMenuDup->clear();
10.62 + branchLinksContextMenuDup->insertItem ("No link available");
10.63
10.64 } else
10.65 {
10.66 BranchObj *bot;
10.67 QString s;
10.68 branchLinksContextMenu->clear();
10.69 + branchLinksContextMenuDup->clear();
10.70 for (int i=0; i<=bo->countLinks();i++)
10.71 {
10.72 bot=bo->linkTargetAt(i);
10.73 @@ -2256,6 +2263,7 @@
10.74 if (s.length()>25)
10.75 s=s.left(25)+"...";
10.76 branchLinksContextMenu->insertItem (s);
10.77 + branchLinksContextMenuDup->insertItem (s);
10.78 }
10.79 }
10.80 }
10.81 @@ -2686,6 +2694,21 @@
10.82 }
10.83 }
10.84
10.85 +void MapEditor::editLink(int i)
10.86 +{
10.87 + BranchObj *bo=((BranchObj*)(selection))->linkTargetAt(i);
10.88 + if (bo)
10.89 + {
10.90 + EditLinkDialog dia;
10.91 + if (dia.exec() == QDialog::Accepted)
10.92 + {
10.93 + if (dia.deleteLink())
10.94 + ((BranchObj*)(selection))->deleteLinkAt(i);
10.95 + setChanged();
10.96 + }
10.97 + }
10.98 +}
10.99 +
10.100 void MapEditor::testFunction()
10.101 {
10.102 cout << "MapEditor::testFunction() called\n";
10.103 @@ -2719,6 +2742,7 @@
10.104 }
10.105 }
10.106 }
10.107 + popupLinks->move(p);
10.108 popupLinks->exec();
10.109
10.110 }
10.111 @@ -3136,6 +3160,7 @@
10.112 ((LinkableMapObj*)(selection))->unsetParObjTmp();
10.113
10.114
10.115 + copyingObj=false;
10.116 if (!dst )
10.117 {
10.118 if (copyingObj)
10.119 @@ -3149,7 +3174,6 @@
10.120 selectionLast=NULL;
10.121 selection->select();
10.122 }
10.123 - copyingObj=false;
10.124 }
10.125 } else
10.126 {
11.1 --- a/mapeditor.h Thu Mar 24 21:10:38 2005 +0000
11.2 +++ b/mapeditor.h Sat Apr 09 22:50:08 2005 +0000
11.3 @@ -129,6 +129,7 @@
11.4 public:
11.5 void importDir();
11.6 void followLink (int);
11.7 + void editLink (int);
11.8 void testFunction(); // FIXME just testing
11.9
11.10 protected:
12.1 --- a/tex/vym.tex Thu Mar 24 21:10:38 2005 +0000
12.2 +++ b/tex/vym.tex Sat Apr 09 22:50:08 2005 +0000
12.3 @@ -713,6 +713,9 @@
12.4 \begin{longtable}{|lcp{8cm}l|} \hline
12.5 Version & & Comment & Date \\ \hline \hline \endhead
12.6 \hline \endfoot
12.7 +1.6.3 & - & Bugfix: Saving of selection to a vym part (.vyp) &2005-03-30\\
12.8 + & - & Bugfix: Closing the noteeditor by closing its window now
12.9 + also toggles the responding toolbar button. &\\
12.10 1.6.2 & - & Introduced Modifier modes: color, link, copy &2005-03-24\\
12.11 & - & Linking branches is basically possible, though it can't
12.12 be edited/saved yet &\\
13.1 --- a/texteditor.cpp Thu Mar 24 21:10:38 2005 +0000
13.2 +++ b/texteditor.cpp Sat Apr 09 22:50:08 2005 +0000
13.3 @@ -50,6 +50,8 @@
13.4 extern int statusbarTime;
13.5 extern QSettings settings;
13.6
13.7 +extern QAction *actionViewToggleNoteEditor;
13.8 +
13.9 using namespace std;
13.10
13.11
13.12 @@ -468,6 +470,8 @@
13.13 if ( !e->isModified() )
13.14 {
13.15 ce->accept(); // TextEditor can be reopened with show()
13.16 + actionViewToggleNoteEditor->setOn (false);
13.17 + showwithmain=false;
13.18 return;
13.19 }
13.20 }
14.1 --- a/version.h Thu Mar 24 21:10:38 2005 +0000
14.2 +++ b/version.h Sat Apr 09 22:50:08 2005 +0000
14.3 @@ -1,7 +1,7 @@
14.4 #ifndef VERSION_H
14.5 #define VERSION_H
14.6
14.7 -#define __VYM_VERSION__ "1.6.2"
14.8 -#define __BUILD_DATE__ "March 24, 2005"
14.9 +#define __VYM_VERSION__ "1.6.3"
14.10 +#define __BUILD_DATE__ "April 11, 2005"
14.11
14.12 #endif
15.1 --- a/vym.pro Thu Mar 24 21:10:38 2005 +0000
15.2 +++ b/vym.pro Sat Apr 09 22:50:08 2005 +0000
15.3 @@ -2,10 +2,7 @@
15.4 TRANSLATIONS += lang/vym_de.ts
15.5 TRANSLATIONS += lang/vym_en.ts
15.6
15.7 -TEMPLATE = app
15.8 -LANGUAGE = C++
15.9
15.10 -CONFIG += qt warn_on release
15.11
15.12 DESTROOT = /usr
15.13
15.14 @@ -25,6 +22,29 @@
15.15 INSTALLS += demo
15.16
15.17
15.18 +
15.19 +
15.20 +
15.21 +
15.22 +
15.23 +
15.24 +
15.25 +
15.26 +
15.27 +
15.28 +
15.29 +
15.30 +
15.31 +
15.32 +
15.33 +
15.34 +
15.35 +TEMPLATE = app
15.36 +LANGUAGE = C++
15.37 +
15.38 +CONFIG += qt warn_on release
15.39 +
15.40 +
15.41 HEADERS += branchobj.h \
15.42 exports.h \
15.43 findwindow.h \
15.44 @@ -80,5 +100,6 @@
15.45 FORMS = exporthtmldialog.ui \
15.46 exportxhtmldialog.ui \
15.47 showtextdialog.ui \
15.48 - extrainfodialog.ui
15.49 + extrainfodialog.ui \
15.50 + editlinkdialog.ui
15.51