5 #include <QProgressDialog>
7 #include "branchpropeditor.h"
8 #include "extrainfodialog.h"
11 #include "historywindow.h"
12 #include "mapeditor.h"
13 #include "texteditor.h"
16 class Main : public QMainWindow
21 /*! Modifier modes are used when CTRL together with a mouse button is pressed */
23 ModModeNone, //!< Unused
24 ModModeColor, //!< Pick color from object
25 ModModeCopy, //!< Copy object
26 ModModeXLink //!< Create a XLink (XLinkObj) from selected object
29 Main(QWidget* parent=0, Qt::WindowFlags f=0);
34 QProgressDialog progressDialog;
37 int progressCounterTotal;
39 void statusMessage (const QString &);
40 void setProgressMaximum (int max);
41 void addProgressValue (float v);
42 void initProgressCounter(uint n=1);
43 void removeProgressCounter();
50 void closeEvent( QCloseEvent* );
55 /*! Helper method to clone actions later in MapEditor */
56 void cloneActionMapEditor( QAction *a, QKeySequence ks);
58 void setupFileActions();
59 void setupEditActions();
60 void setupSelectActions();
61 void setupFormatActions();
62 void setupViewActions();
63 void setupModeActions();
64 void setupWindowActions();
69 const QString &tooltip,
70 const QKeySequence &ks=0
72 void setupFlagActions();
73 void setupNetworkActions();
74 void setupSettingsActions();
75 void setupTestActions();
76 void setupHelpActions();
77 void setupContextMenus();
78 void setupRecentMapsMenu();
81 VymView* currentView() const;
83 MapEditor* currentMapEditor() const;
84 VymModel* currentModel() const;
85 uint currentModelID() const;
86 VymModel* getModel(uint) const;
87 void gotoModel (VymModel *m);
89 void updateTabName(VymModel *vm);
94 File::ErrorCode fileLoad(QString ,const LoadMode &, const FileType &ftype);
95 void fileLoad(const LoadMode &);
97 void fileSaveSession();
99 void fileRestoreSession();
101 void fileLoadRecent();
102 void addRecentMap (const QString &);
103 void fileSave(VymModel*, const SaveMode & );
106 void fileSave(VymModel*); // autosave from MapEditor
109 void fileSaveAs(const SaveMode &);
110 void fileImportFirefoxBookmarks();
111 void fileImportFreemind();
113 void fileImportDir();
114 void fileExportXML();
115 void fileExportHTML();
116 void fileExportImage();
117 void fileExportPDF();
118 void fileExportSVG();
120 void fileExportASCII();
121 void fileExportASCIITasks();
122 void fileExportCSV();
123 void fileExportOrgMode();
124 void fileExportLaTeX();
125 void fileExportTaskjuggler();
126 void fileExportImpress();
127 void fileExportLast();
128 bool fileCloseMap(int i = -1); // Optionally pass number of tab
135 void gotoHistoryStep (int);
142 void updateQueries (VymModel*);
144 bool openURL(const QString &url);
145 void openTabs(QStringList);
148 void editOpenURLTab();
150 void editOpenMultipleVisURLTabs(bool ignoreScrolled=true);
151 void editOpenMultipleURLTabs();
152 void editNote2URLs();
155 void editHeading2URL();
156 void editBugzilla2URL();
157 void getBugzillaData();
158 void getBugzillaDataSubtree();
160 void openVymLinks(const QStringList &, bool background=false);
162 void editOpenMultipleVymLinks();
165 void editHeadingFinished(VymModel *m);
166 void editOpenVymLink(bool background=false);
167 void editOpenVymLinkBackground();
169 void editDeleteVymLink();
170 void editToggleHideExport();
171 void editToggleTask();
172 void editCycleTaskStatus();
173 void editTaskSleepN();
174 void editAddTimestamp();
175 void editMapProperties();
179 void editSortChildren();
180 void editSortBackChildren();
181 void editToggleScroll();
182 void editExpandAll();
183 void editExpandOneLevel();
184 void editCollapseOneLevel();
185 void editCollapseUnselected();
186 void editUnscrollChildren();
187 void editGrowSelectionSize();
188 void editShrinkSelectionSize();
189 void editResetSelectionSize();
190 void editAddAttribute();
191 void editAddMapCenter();
192 void editNewBranch();
193 void editNewBranchBefore();
194 void editNewBranchAbove();
195 void editNewBranchBelow();
196 void editImportAdd();
197 void editImportReplace();
198 void editSaveBranch();
199 void editDeleteKeepChildren();
200 void editDeleteChildren();
201 void editDeleteSelection();
202 void editLoadImage();
203 void editSaveImage();
204 void popupFollowXLink ();
205 void editFollowXLink (QAction *);
206 void editEditXLink (QAction *);
209 void editToggleTarget();
210 bool initTargetsMenu( VymModel *model, QMenu *menu);
211 void editGoToTarget();
212 void editMoveToTarget();
213 void editSelectPrevious();
214 void editSelectNext();
215 void editSelectNothing();
216 void editOpenFindResultWidget();
217 void editFindNext(QString s);
218 void editFindDuplicateURLs();
221 void formatPickColor();
222 QColor getCurrentColor();
223 void setCurrentColor(QColor);
226 void formatSelectColor();
227 void formatColorBranch();
228 void formatColorSubtree();
229 void formatLinkStyleLine();
230 void formatLinkStyleParabel();
231 void formatLinkStylePolyLine();
232 void formatLinkStylePolyParabel();
233 void formatSelectBackColor();
234 void formatSelectBackImage();
235 void formatSelectLinkColor();
236 void formatSelectSelectionColor();
237 void formatSelectFont();
238 void formatToggleLinkColorHint();
239 void formatHideLinkUnselected();
242 void viewZoomReset();
245 void viewRotateCounterClockwise();
246 void viewRotateClockwise();
250 void networkStartServer();
251 void networkConnect();
252 void downloadFinished();
255 void settingsZipTool();
256 void settingsMacroDir();
257 void settingsUndoLevels();
261 void setAutosave( bool b);
264 void settingsAutosaveTime();
265 void settingsDefaultMapAuthor();
266 void settingsShowParentsLevelTasks();
267 void settingsShowParentsLevelFindResults();
268 void settingsToggleAutoLayout();
269 void settingsToggleWriteBackupFile();
270 void settingsToggleAnimation();
271 void settingsToggleDownloads();
273 void windowToggleNoteEditor();
274 void windowToggleTreeEditor();
275 void windowToggleTaskEditor();
276 void windowToggleSlideEditor();
277 void windowToggleScriptEditor();
278 void windowToggleHistory();
279 void windowToggleProperty();
280 void windowShowHeadingEditor();
281 void windowToggleHeadingEditor();
282 void updateHistory(SimpleSettings &);
283 void windowToggleAntiAlias();
286 bool hasSmoothPixmapTransform();
288 void windowToggleSmoothPixmap();
289 void updateHeading();
290 void updateNoteFlag();
291 void updateNoteEditor (QModelIndex index);
292 void selectInNoteEditor (QString s, int i);
293 void setFocusMapEditor();
294 void changeSelection (VymModel *model,const QItemSelection &newSel, const QItemSelection &delSel);
295 void updateDockWidgetTitles(VymModel *model);
297 void updateActions();
298 ModMode getModMode();
299 bool autoEditNewBranch();
300 bool autoSelectNewBranch();
301 void setScriptFile(const QString &fn);
302 QVariant execute(const QString &);
303 void executeEverywhere (const QString &);
304 void gotoWindow (const int &n);
307 void windowNextEditor();
308 void windowPreviousEditor();
310 void previousSlide();
312 void standardFlagChanged();
314 void testFunction1();
315 void testFunction2();
317 void toggleHideExport();
322 void helpShortcuts();
328 void downloadReleaseNotesFinished();
331 void checkReleaseNotes();
332 bool downloadsEnabled(bool userTriggered = false);
333 void downloadUpdatesFinished(bool userTriggered = false);
334 void downloadUpdatesFinishedInt();
335 void downloadUpdates(bool userTriggered);
339 QString shortcutScope; //! For listing shortcuts
340 QTabWidget *tabWidget;
343 QStringList imageTypes;
345 QList <VymView*> vymViews; //! Keeps track of models and views related to a tab
346 QString prevSelection;
348 HistoryWindow *historyWindow;
350 QDockWidget *headingEditorDW;
351 QDockWidget *noteEditorDW;
352 QDockWidget *scriptEditorDW;
354 BranchPropertyEditor *branchPropertyEditor;
357 QList <QAction*> mapEditorActions; //! allows mapEditor to clone actions and shortcuts
358 QList <QAction*> taskEditorActions; //! allows taskEditor to clone actions and shortcuts
360 QList <QAction*> restrictedMapActions; //! Actions reqire map and write access
361 QList <QAction*> unrestrictedMapActions;//! Actions require map, but work also in readonly, e.g. print, copy
362 QList <QAction*> actionListFiles; //! File related actions, e.g. load, save, restore session
363 QList <QAction*> actionListBranches;
364 QList <QAction*> actionListItems;
370 QMenu *recentFilesMenu;
371 enum { MaxRecentFiles = 9 };
372 QAction *recentFileActions[MaxRecentFiles];
374 QAction *macroActions[13];
378 QToolBar *fileToolbar;
379 QToolBar *clipboardToolbar;
380 QToolBar *editActionsToolbar;
381 QToolBar *selectionToolbar;
382 QToolBar *editorsToolbar;
383 QToolBar *colorsToolbar;
384 QToolBar *zoomToolbar;
385 QToolBar *modModesToolbar;
386 QToolBar *referencesToolbar;
387 QToolBar *standardFlagsToolbar;
389 QAction* actionFileNew;
390 QAction* actionFileNewCopy;
391 QAction* actionFileOpen;
392 QAction* actionFileRestoreSession;
393 QAction* actionFileSave;
394 QAction* actionFilePrint;
395 QAction* actionMapProperties;
396 QAction* actionFileExportLast;
401 QAction *actionPaste;
402 QAction *actionMoveUp;
403 QAction *actionMoveDown;
404 QAction *actionDetach;
405 QAction *actionSortChildren;
406 QAction *actionSortBackChildren;
407 QAction *actionToggleScroll;
408 QAction *actionExpandAll;
409 QAction *actionExpandOneLevel;
410 QAction *actionCollapseOneLevel;
411 QAction *actionCollapseUnselected;
412 QAction* actionOpenURL;
413 QAction* actionOpenURLTab;
414 QAction* actionOpenMultipleVisURLTabs;
415 QAction* actionOpenMultipleURLTabs;
416 QAction* actionGetURLsFromNote;
417 QAction* actionURLNew;
418 QAction* actionLocalURL;
419 QAction* actionHeading2URL;
420 QAction* actionBugzilla2URL;
421 QAction* actionGetBugzillaData;
422 QAction* actionGetBugzillaDataSubtree;
423 QAction* actionFATE2URL;
424 QAction *actionOpenVymLink;
425 QAction *actionOpenVymLinkBackground;
426 QAction *actionOpenMultipleVymLinks;
427 QAction *actionEditVymLink;
428 QAction *actionDeleteVymLink;
429 QAction *actionAddTimestamp;
430 QAction *actionToggleTask;
431 QAction *actionCycleTaskStatus;
432 QAction *actionTaskSleep0;
433 QAction *actionTaskSleepN;
434 QAction *actionTaskSleep1;
435 QAction *actionTaskSleep2;
436 QAction *actionTaskSleep3;
437 QAction *actionTaskSleep5;
438 QAction *actionTaskSleep7;
439 QAction *actionTaskSleep14;
440 QAction *actionTaskSleep28;
441 QAction *actionToggleHideExport;
442 QAction *actionMapInfo;
443 QAction *actionHeading;
444 QAction *actionDelete;
445 QAction *actionAddAttribute;
447 QAction *actionAddMapCenter;
450 QAction *actionAddBranch;
451 QAction *actionAddBranchBefore;
452 QAction *actionAddBranchAbove;
453 QAction *actionAddBranchBelow;
454 QAction *actionDeleteKeepChildren;
455 QAction *actionDeleteChildren;
456 QAction *actionImportAdd;
457 QAction *actionImportReplace;
458 QAction *actionSaveBranch;
459 QAction *actionLoadImage;
461 QAction *actionGrowSelectionSize;
462 QAction *actionShrinkSelectionSize;
463 QAction *actionResetSelectionSize;
465 QAction *actionToggleTarget;
466 QAction *actionGoToTarget;
467 QAction *actionMoveToTarget;
468 QAction *actionSelectPrevious;
469 QAction *actionSelectNext;
470 QAction *actionSelectNothing;
473 QAction *actionFormatColor;
474 QAction *actionFormatPickColor;
475 QAction *actionFormatColorBranch;
476 QAction *actionFormatColorSubtree;
477 QAction *actionFormatLinkColorHint;
478 QAction *actionFormatBackColor;
479 QAction *actionFormatBackImage;
480 QAction *actionFormatLinkColor;
481 QAction *actionFormatSelectionColor;
482 QAction *actionFormatFont;
484 QAction *actionZoomIn;
485 QAction *actionZoomOut;
486 QAction *actionZoomReset;
487 QAction *actionRotateCounterClockwise;
488 QAction *actionRotateClockwise;
489 QAction *actionCenterOn;
491 QActionGroup *actionGroupModModes;
492 QAction *actionModModeColor;
493 QAction *actionModModeXLink;
494 QAction *actionModModeCopy;
496 QAction *actionToggleHideMode;
498 QAction *actionToggleWinter;
500 QActionGroup *actionGroupFormatFrameTypes;
502 QActionGroup *actionGroupFormatLinkStyles;
503 QAction *actionFormatLinkStyleLine;
504 QAction *actionFormatLinkStyleParabel;
505 QAction *actionFormatLinkStylePolyLine;
506 QAction *actionFormatLinkStylePolyParabel;
507 QAction *actionFormatHideLinkUnselected;
509 QAction *actionViewToggleNoteEditor;
510 QAction *actionViewToggleHeadingEditor;
511 QAction *actionViewToggleTreeEditor;
512 QAction *actionViewToggleTaskEditor;
513 QAction *actionViewToggleSlideEditor;
514 QAction *actionViewToggleScriptEditor;
515 QAction *actionViewToggleHistoryWindow;
516 QAction *actionViewTogglePropertyEditor;
517 QAction *actionViewToggleAntiAlias;
518 QAction *actionViewToggleSmoothPixmapTransform;
519 QAction* actionViewCenter;
521 QAction* actionSettingsAutoEditNewBranch;
522 QAction* actionSettingsAutoSelectNewBranch;
523 QAction* actionSettingsAutoSelectText;
524 QAction* actionSettingsUseFlagGroups;
525 QAction* actionSettingsUseHideExport;
526 QAction* actionSettingsToggleAutosave;
527 QAction* actionSettingsAutosaveTime;
528 QAction* actionSettingsShowParentsLevelTasks;
529 QAction* actionSettingsShowParentsLevelFindResults;
530 QAction* actionSettingsToggleAutoLayout;
531 QAction* actionSettingsWriteBackupFile;
532 QAction* actionSettingsToggleDownloads;
533 QAction* actionSettingsUseAnimation;