8 #include "branchpropwindow.h"
9 #include "extrainfodialog.h"
12 #include "findwindow.h"
13 #include "historywindow.h"
14 #include "mapeditor.h"
15 #include "simplescripteditor.h"
16 #include "texteditor.h"
20 class Main : public QMainWindow
25 /*! Modifier modes are used when CTRL together with a mouse button is pressed */
27 ModModeNone, //!< Unused
28 ModModeColor, //!< Pick color from object
29 ModModeCopy, //!< Copy object
30 ModModeXLink //!< Create a XLink (XLinkObj) from selected object
33 Main(QWidget* parent=0, const char* name=0, Qt::WFlags f=0);
38 QProgressBar *progressBar;
42 void statusMessage (const QString &);
43 void setProgressMinimum (int min);
44 void setProgressMaximum (int max);
45 void setProgressValue (int v);
46 void removeProgressBar();
53 void closeEvent( QCloseEvent* );
56 void setupFileActions();
57 void setupEditActions();
58 void setupFormatActions();
59 void setupViewActions();
60 void setupModeActions();
61 void setupWindowActions();
62 void setupFlag(Flag *flag, QToolBar *tb, const QString &name, const QString &tooltip);
63 void setupFlagActions();
64 void setupNetworkActions();
65 void setupSettingsActions();
66 void setupTestActions();
67 void setupHelpActions();
68 void setupContextMenus();
69 void setupRecentMapsMenu();
71 void hideEvent (QHideEvent * );
72 void showEvent (QShowEvent * );
73 MapEditor* currentMapEditor() const;
74 VymModel* currentModel() const;
77 void editorChanged(QWidget*);
79 ErrorCode fileLoad(QString ,const LoadMode &, const FileType & ftype=VymMap);
80 void fileLoad(const LoadMode &);
82 void fileLoadRecent();
83 void addRecentMap (const QString &);
84 void fileSave(VymModel*, const SaveMode & );
87 void fileSave(VymModel*); // autosave from MapEditor
89 void fileSaveAs(const SaveMode &);
91 void fileImportKDE3Bookmarks();
92 void fileImportKDE4Bookmarks();
93 void fileImportFirefoxBookmarks();
94 void fileImportFreemind();
98 void fileExportXHTML();
99 void fileExportImage();
101 void fileExportASCII();
102 void fileExportCSV();
103 void fileExportLaTeX();
104 void fileExportKDE3Bookmarks();
105 void fileExportKDE4Bookmarks();
106 void fileExportTaskjuggler();
107 void fileExportOOPresentation();
115 void gotoHistoryStep (int);
120 void editOpenFindWindow();
121 void editFind(QString);
122 void editFindChanged();
124 void openTabs(QStringList);
127 void editOpenURLTab();
129 void editOpenMultipleURLTabs();
132 void editHeading2URL();
133 void editBugzilla2URL();
135 void openVymLinks(const QStringList &);
137 void editOpenMultipleVymLinks();
139 void editHeadingFinished(VymModel *m);
140 // void editHeading();
141 void editOpenVymLink();
143 void editDeleteVymLink();
144 void editToggleHideExport();
145 void editAddTimestamp();
150 void editSortChildren();
151 void editToggleScroll();
152 void editExpandAll();
153 void editExpandOneLevel();
154 void editCollapseOneLevel();
155 void editUnscrollChildren();
156 void editAddAttribute();
157 void editAddMapCenter();
158 void editNewBranch();
159 void editNewBranchBefore();
160 void editNewBranchAbove();
161 void editNewBranchBelow();
162 void editImportAdd();
163 void editImportReplace();
164 void editSaveBranch();
165 void editDeleteKeepChildren();
166 void editDeleteChildren();
167 void editDeleteSelection();
168 void editLoadImage();
169 void editSaveImage();
170 void editFollowXLink (QAction *);
171 void editEditXLink (QAction *);
173 void formatSelectColor();
174 void formatPickColor();
175 void colorChanged(QColor);
176 void formatColorBranch();
177 void formatColorSubtree();
178 void formatLinkStyleLine();
179 void formatLinkStyleParabel();
180 void formatLinkStylePolyLine();
181 void formatLinkStylePolyParabel();
182 void formatSelectBackColor();
183 void formatSelectBackImage();
184 void formatSelectLinkColor();
185 void formatSelectSelectionColor();
186 void formatToggleLinkColorHint();
187 void formatHideLinkUnselected();
190 void viewZoomReset();
196 void networkStartServer();
197 void networkConnect();
200 void settingsMacroDir();
201 void settingsToggleDelKey();
202 void settingsUndoLevels();
203 void settingsAutosaveToggle();
204 void settingsAutosaveTime();
205 void settingsWriteBackupFileToggle();
206 void settingsToggleAnimation();
208 void windowToggleNoteEditor();
209 void windowToggleHistory();
210 void windowToggleProperty();
211 void updateHistory(SimpleSettings &);
212 void windowToggleAntiAlias();
215 bool hasSmoothPixmapTransform();
217 void windowToggleSmoothPixmap();
218 void updateNoteFlag();
219 void updateNoteEditor (QModelIndex index);
220 void changeSelection (VymModel *model,const QItemSelection &newSel, const QItemSelection &delSel);
222 void updateActions();
223 ModMode getModMode();
224 bool autoEditNewBranch();
225 bool autoSelectNewBranch();
226 void setScript(const QString &);
227 void runScript(const QString &);
228 void runScriptEverywhere (const QString &);
231 void windowNextEditor();
232 void windowPreviousEditor();
233 void windowShowNoteEditor();
234 void windowHideNoteEditor();
236 void standardFlagChanged();
238 void testFunction1();
239 void testFunction2();
250 QTabWidget *tabWidget;
251 FindWindow *findWindow;
252 QProcess *procBrowser; //FIXME-2 remove this...
255 QStringList imageTypes;
257 QList <VymView*> vymViews; //! Keeps track of models and views related to a tab
258 QString prevSelection;
260 HistoryWindow *historyWindow;
262 BranchPropertyWindow *branchPropertyWindow;
263 SimpleScriptEditor *scriptEditor;
265 QList <QAction*> actionListBranches;
271 QMenu *recentFilesMenu;
272 enum { MaxRecentFiles = 9 };
273 QAction *recentFileActions[MaxRecentFiles];
275 QAction *macroActions[12];
278 QAction* actionFileNewCopy;
279 QAction* actionFileSave;
280 QAction* actionFilePrint;
285 QAction *actionPaste;
286 QAction *actionMoveUp;
287 QAction *actionMoveDown;
288 QAction *actionDetach;
289 QAction *actionSortChildren;
290 QAction *actionToggleScroll;
291 QAction *actionExpandAll;
292 QAction *actionExpandOneLevel;
293 QAction *actionCollapseOneLevel;
294 QAction* actionOpenURL;
295 QAction* actionOpenURLTab;
296 QAction* actionOpenMultipleURLTabs;
298 QAction* actionLocalURL;
299 QAction* actionHeading2URL;
300 QAction* actionBugzilla2URL;
301 QAction* actionFATE2URL;
302 QAction *actionOpenVymLink;
303 QAction *actionOpenMultipleVymLinks;
304 QAction *actionVymLink;
305 QAction *actionDeleteVymLink;
306 QAction *actionAddTimestamp;
307 QAction *actionToggleHideExport;
308 QAction *actionMapInfo;
309 QAction *actionHeading;
310 QAction *actionDelete;
311 QAction *actionAddAttribute;
313 QAction *actionAddMapCenter;
316 QAction *actionAddBranch;
317 QAction *actionAddBranchBefore;
318 QAction *actionAddBranchAbove;
319 QAction *actionAddBranchBelow;
320 QAction *actionDeleteKeepChildren;
321 QAction *actionDeleteChildren;
322 QAction *actionImportAdd;
323 QAction *actionImportReplace;
324 QAction *actionSaveBranch;
325 QAction *actionLoadImage;
327 QAction* actionFormatColor;
328 QAction* actionFormatPickColor;
329 QAction* actionFormatColorBranch;
330 QAction* actionFormatColorSubtree;
331 QAction* actionFormatLinkColorHint;
332 QAction* actionFormatBackColor;
333 QAction* actionFormatBackImage;
334 QAction* actionFormatLinkColor;
335 QAction* actionFormatSelectionColor;
337 QActionGroup* actionGroupModModes;
338 QAction* actionModModeColor;
339 QAction* actionModModeXLink;
340 QAction* actionModModeCopy;
342 QActionGroup *actionGroupFormatFrameTypes;
345 QActionGroup *actionGroupFormatLinkStyles;
346 QAction *actionFormatLinkStyleLine;
347 QAction *actionFormatLinkStyleParabel;
348 QAction *actionFormatLinkStylePolyLine;
349 QAction *actionFormatLinkStylePolyParabel;
350 QAction *actionFormatHideLinkUnselected;
352 QAction *actionViewToggleNoteEditor;
353 QAction *actionViewToggleHistoryWindow;
354 QAction *actionViewTogglePropertyWindow;
355 QAction *actionViewToggleAntiAlias;
356 QAction *actionViewToggleSmoothPixmapTransform;
357 QAction* actionViewCenter;
359 QAction* actionSettingsAutoEditNewBranch;
360 QAction* actionSettingsAutoSelectNewBranch;
361 QAction* actionSettingsAutoSelectText;
362 QAction* actionSettingsUseDelKey;
363 QAction* actionSettingsUseFlagGroups;
364 QAction* actionSettingsUseHideExport;
365 QAction* actionSettingsAutosaveToggle;
366 QAction* actionSettingsAutosaveTime;
367 QAction* actionSettingsWriteBackupFile;
368 QAction* actionSettingsUseAnimation;