7 #include <qfiledialog.h>
11 #include "mapcenterobj.h"
14 class MapEditor : public QCanvasView , public xmlObj {
18 MapEditor(QWidget* parent=0, bool interactive=false, const char* name=0, WFlags f=0);
21 QColor backgroundColor();
22 MapCenterObj* getMapCenter();
24 void adjustCanvasSize();// adjust canvas size to map and scrollview
25 bool blockReposition(); // block while load or undo
28 void makeTmpDirs(); // create temporary directories
29 void delTmpDirs(); // delete temporary directories
30 void makeSubDirs(const QString&);
31 // create subdirs in dir
32 QString saveToDir(const QString&,const QString &,bool, const QPoint
34 void saveState(); // save actual state to backup
35 void saveState(const SaveMode&, LinkableMapObj *);
38 void finishedLineEditNoSave();
41 bool isDefault(); // false, if map was changed once
42 bool isUnsaved(); // save necessary
43 bool hasChanged(); // undo possible
44 void setChanged(); // called from NoteEditor via LMO
46 void setFilePath (QString);
47 void setFilePath (QString,QString);
48 QString getFilePath (); // Full path e.g. "/home/tux/map.xml"
49 QString getFileName (); // e.g. "map.xml"
50 QString getMapName (); // e.g. "map"
51 QString getDestPath (); // e.g. "/home/tux/map.vym"
52 int load (QString&, const LoadMode &); // newmap, import/replace selection
53 int save(const SaveMode &); // Save map
54 void setZipped(bool); // save map zipped
55 bool saveZipped(); // 1 if file will be saved zipped
56 void print(); // print canvas
60 void exportImage (QString fn); // export as PNG
61 void exportImage (QString fn, int); // export in given format
63 void exportXML(const QString&); // export to directory
64 void clear(); // clear map
65 void undo(); // undo last action
66 void copy(); // copy branch to clipboard
68 LinkableMapObj* pasteNoSave(); // paste clipboard to branch
69 void cutNoSave(); // cut to clipboard
71 void paste(); // paste clipboard to branch and backup
72 void cut(); // cut to clipboard and backup
74 void moveBranchDown();
76 void addNewBranch(int); // pos allows to add above/below selection
77 void addNewBranchHere(); // insert and make selection its
78 void deleteSelection();
79 LinkableMapObj* getSelection(); // returns selection
80 bool select(const QString &); // Select
81 void unselect(); // before changing current noteedit
82 void reselect(); // after changing current noteedit
84 void selectNextBranch(); // Increment number of branch
85 void selectPrevBranch(); // Decrement number of branch
87 void selectUpperBranch();
88 void selectLowerBranch();
89 void selectLeftBranch();
90 void selectRightBranch();
91 void selectFirstBranch();
92 void selectLastBranch();
93 void setColor(QColor);
94 void selectBackgroundColor();
95 void setBackgroundColor(QColor);
99 void toggleStandardFlag(QString);
100 virtual void setViewCenter(); // needed for zooming
101 BranchObj* findText(QString,bool); // Find object
102 void findReset(); // Reset Find
103 void openURL(); // open URL in external browser
104 void editURL(); // edit the URL
105 void editHeading2URL(); // copy heading to URL
106 void editBugzilla2URL(); // create URL to Bugzilla
107 void editVymLink(); // edit link to another map
108 void deleteVymLink(); // delete link to another map
109 QString getVymLink(); // return path to map
110 void removeBranchHere(); // remove but keep childs
111 void removeChilds(); // remove childs
112 void editMapInfo(); // dialog to enter author, ...
113 void updateActions(); // update e.g. format buttons
114 void setLinkStyle (LinkStyle); // Set style of link
115 LinkStyle getLinkStyle (); // requested in LMO
116 void setLinkColor(QColor); // default color of links
117 void setLinkColorHint(); // color of links
118 void setLinkColorHint(LinkColorHint); // color of links
119 LinkColorHint getLinkColorHint();
120 QColor getDefLinkColor();
121 void setDefXLinkColor(QColor);
122 QColor getDefXLinkColor();
123 void setDefXLinkWidth (int);
124 int getDefXLinkWidth();
125 void toggleLinkColorHint(); // after changing linkStyles
126 void selectLinkColor();
129 void loadFloatImage ();
130 void saveFloatImage (int);
131 void toggleFloatExport();
132 void setFrame(const FrameType &);
134 void importDir(BranchObj *,QDir);
137 void followXLink (int);
138 void editXLink (int);
139 void testFunction(); // FIXME just testing
142 void ensureSelectionVisible();
143 virtual void updateViewCenter(); // needed for zooming
144 virtual void contentsContextMenuEvent ( QContextMenuEvent *e );
145 virtual void contentsMousePressEvent(QMouseEvent*);
146 virtual void contentsMouseReleaseEvent(QMouseEvent*);
147 virtual void contentsMouseDoubleClickEvent(QMouseEvent*);
148 virtual void contentsMouseMoveEvent(QMouseEvent*);
152 MapCenterObj* mapCenter;
154 bool adjustCanvasRequested; // collect requests until end of user event
155 BranchObj *editingBO; // entering Text into BO
158 QColor actColor; // actual color
159 QColor defLinkColor; // default color for links
160 QColor defXLinkColor; // default color for xlinks
161 int defXLinkWidth; // default width for xlinks
162 LinkColorHint linkcolorhint;// use heading color or own color
163 LinkStyle linkstyle; // default style for links
165 QCursor handOpenCursor; // cursor while moving canvas view
166 QCursor pickColorCursor; // cursor while picking color
168 bool drawingLink; // true while creating a link
169 bool copyingObj; // true while creating a link
172 LinkableMapObj* selection; // select a LinkableMapObj
173 LinkableMapObj* selectionLast; // last selection
174 MapObj* movingObj; // moving a MapObj
175 MapObj* linkingObj_src; // part of a link
176 QPoint movingObj_start; // rel. pos of mouse to absPos
177 QPoint movingCont_start; // inital pos of moving Content or
178 QPoint movingVec; // how far has Content moved
179 QPoint movingCenter; // used when zooming
180 QPrinter* printer; // Printing
182 bool mapDefault; // Flag if map is untouched
183 bool mapChanged; // Flag if undo is possible
184 bool mapUnsaved; // Flag if map should be saved
185 QString backupXML; // backup (XML) for undo
186 LinkableMapObj* undoSelection; // replace this LMO with vympart from backup
189 bool printFrame; // Print frame around map
190 bool printFooter; // Print footer below map
192 bool zipped; // should map be zipped
193 QString fileName; // short name of file (for tab)
194 QString filePath; // path to file which will be saved
195 QString fileDir; // dir where file is saved
196 QString destPath; // path to .vym file (needed for vymlinks)
197 QString mapName; // fileName without ".vym"
198 QString lastImageDir; // save dir for adding images
200 bool isInteractive; // non interactive don't need tmpdirs
201 QString bakMapDir; // tmp directory with data for undo
202 bool blockreposition; // block while load or undo
204 BranchObj* itFind; // next object in find process
205 bool EOFind; // true, if search failed
207 QPoint exportOffset; // set before export, used in save
208 void resizeEvent( QResizeEvent * );