mainwindow.h
author insilmaril
Tue, 20 Jan 2009 15:23:16 +0000
changeset 735 84ae10f6e3a3
parent 732 b77b56f707f1
child 742 54d44ecd6097
permissions -rw-r--r--
More work on removing Selection class
     1 #ifndef MAINWINDOW_H 
     2 #define MAINWINDOW_H
     3 
     4 #include <QMainWindow>
     5 
     6 #include "branchpropwindow.h"
     7 #include "extrainfodialog.h"
     8 #include "file.h"
     9 #include "findwindow.h"
    10 #include "historywindow.h"
    11 #include "mapeditor.h"
    12 #include "simplescripteditor.h"
    13 #include "texteditor.h"
    14 #include "vymview.h"
    15 
    16 class Main : public QMainWindow 
    17 {
    18     Q_OBJECT
    19 
    20 public:
    21 	/*! Modifier modes are used when CTRL together with a mouse button is pressed */
    22 	enum ModMode {
    23 		ModModeNone,	//!< Unused
    24 		ModModeColor,	//!< Pick color from object
    25 		ModModeCopy,	//!< Copy object
    26 		ModModeXLink	//!< Create a XLink (XLinkObj) from selected object
    27 		};
    28 
    29     Main(QWidget* parent=0, const char* name=0, Qt::WFlags f=0);
    30     ~Main();
    31 	void loadCmdLine();
    32 	void statusMessage (const QString &);
    33 
    34 private:
    35 	VymView* createView (VymModel*);
    36 
    37 public slots:
    38     void fileNew();
    39     void fileNewCopy();
    40 
    41 protected:
    42 	void closeEvent( QCloseEvent* );
    43 
    44 private:
    45     void setupFileActions();
    46     void setupEditActions();
    47     void setupFormatActions();
    48     void setupViewActions();
    49     void setupModeActions();
    50     void setupWindowActions();
    51     void setupFlag(FlagObj *fo, QToolBar *tb, bool aw, const QString &name, const QString &tooltip);
    52     void setupFlagActions();
    53     void setupNetworkActions();
    54     void setupSettingsActions();
    55     void setupTestActions();
    56     void setupHelpActions();
    57     void setupContextMenus();
    58 	void setupRecentMapsMenu();
    59     void setupMacros();
    60 	void hideEvent (QHideEvent * );
    61 	void showEvent (QShowEvent * );
    62 	MapEditor* currentMapEditor() const;
    63 	VymModel* currentModel() const;
    64     
    65 private slots:
    66 	void editorChanged(QWidget*);
    67 
    68     ErrorCode fileLoad(QString ,const LoadMode &, const FileType & ftype=VymMap);
    69     void fileLoad(const LoadMode &);
    70     void fileLoad();
    71 	void fileLoadRecent();
    72 	void addRecentMap (const QString &);
    73     void fileSave(VymModel*, const SaveMode & );
    74     void fileSave();
    75 public slots:	
    76     void fileSave(VymModel*);	// autosave from MapEditor
    77 private slots:	
    78     void fileSaveAs(const SaveMode &);
    79     void fileSaveAs();
    80     void fileImportKDEBookmarks();
    81     void fileImportFirefoxBookmarks();
    82     void fileImportFreemind();
    83     void fileImportMM();
    84     void fileImportDir();
    85     void fileExportXML();
    86     void fileExportXHTML();
    87     void fileExportImage();
    88     void fileExportASCII();
    89     void fileExportCSV();
    90     void fileExportLaTeX();
    91     void fileExportKDEBookmarks();
    92     void fileExportTaskjuggler();
    93     void fileExportOOPresentation();
    94     void fileCloseMap();
    95     void filePrint();
    96     void fileExitVYM();
    97 
    98 public slots:
    99     void editUndo();	
   100     void editRedo();	
   101 	void gotoHistoryStep (int);
   102 private slots:	
   103     void editCopy();	
   104     void editPaste();	
   105     void editCut();	
   106     void editOpenFindWindow();
   107 	void editFind(QString);
   108 	void editFindChanged();
   109 private:
   110 	void openTabs(QStringList);
   111 public slots:
   112 	void editOpenURL();
   113 	void editOpenURLTab();
   114 private slots:
   115 	void editOpenMultipleURLTabs();
   116 	void editURL();
   117 	void editLocalURL();
   118 	void editHeading2URL();
   119 	void editBugzilla2URL();
   120 	void editFATE2URL();
   121 	void openVymLinks(const QStringList &);
   122 	void editVymLink();
   123 	void editOpenMultipleVymLinks();
   124     void editAttributeFinished();
   125 public slots:
   126     void editHeadingFinished(VymModel *m);
   127 //    void editHeading();
   128     void editAttribute();
   129 	void editOpenVymLink();
   130 private slots:
   131 	void editDeleteVymLink();
   132 	void editToggleHideExport();
   133 	void editMapInfo();
   134     void editMoveUp();	
   135     void editMoveDown();	
   136 	void editSortChildren();
   137     void editToggleScroll();
   138     void editUnscrollChildren();
   139     void editAddMapCenter();
   140     void editNewBranch();
   141     void editNewBranchBefore();
   142     void editNewBranchAbove();
   143     void editNewBranchBelow();
   144     void editImportAdd();
   145     void editImportReplace();
   146     void editSaveBranch();
   147     void editDeleteKeepChildren();
   148     void editDeleteChildren();
   149     void editDeleteSelection();
   150     void editUpperBranch();
   151     void editLowerBranch();
   152     void editLeftBranch();
   153     void editRightBranch();
   154     void editFirstBranch();
   155     void editLastBranch();
   156     void editLoadImage();
   157     void editSaveImage();
   158     void editFollowXLink (QAction *);
   159     void editEditXLink (QAction *);
   160 
   161     void formatSelectColor();
   162     void formatPickColor();
   163     void colorChanged(QColor);
   164     void formatColorBranch();
   165     void formatColorSubtree();
   166 	void formatLinkStyleLine();
   167 	void formatLinkStyleParabel();
   168 	void formatLinkStylePolyLine();
   169 	void formatLinkStylePolyParabel();
   170     void formatSelectBackColor();
   171     void formatSelectBackImage();
   172     void formatSelectLinkColor();
   173     void formatSelectSelectionColor();
   174     void formatToggleLinkColorHint();
   175 	void formatHideLinkUnselected();
   176 
   177     void viewZoomReset();
   178     void viewZoomIn();
   179     void viewZoomOut();
   180     void viewCenter();
   181 
   182 public slots:
   183 	void networkStartServer();
   184 	void networkConnect();
   185 	bool settingsPDF();
   186 	bool settingsURL();
   187 	void settingsMacroDir();
   188 	void settingsToggleDelKey();
   189 	void settingsUndoLevels();
   190 	void settingsAutosaveToggle();
   191 	void settingsAutosaveTime();
   192 	void settingsWriteBackupFileToggle();
   193 	void settingsToggleAnimation();
   194 
   195 	void windowToggleNoteEditor();
   196 	void windowToggleHistory();
   197 	void windowToggleProperty();
   198 	void updateHistory(SimpleSettings &);
   199 	void windowToggleAntiAlias();
   200 public:
   201 	bool isAliased();
   202 	bool hasSmoothPixmapTransform();
   203 public slots:
   204 	void windowToggleSmoothPixmap();
   205 	void updateNoteFlag();
   206 	void updateSatellites(VymModel*);
   207 	void updateActions();
   208 	ModMode getModMode();
   209 	bool autoEditNewBranch();
   210 	bool autoSelectNewBranch();
   211 	bool useFlagGroups();
   212 	void setScript(const QString &);
   213 	void runScript(const QString &);
   214 	void runScriptEverywhere (const QString &);
   215 
   216 private slots:
   217 	void windowNextEditor();
   218 	void windowPreviousEditor();
   219 	void windowShowNoteEditor();
   220 	void windowHideNoteEditor();
   221 
   222 	void standardFlagChanged();
   223 
   224     void testFunction1();
   225     void testFunction2();
   226     void testCommand();
   227 
   228     void helpDoc();
   229     void helpDemo();
   230     void helpAbout();
   231     void helpAboutQT();
   232 
   233 	void callMacro ();
   234 
   235 private:
   236 	QTabWidget *tabWidget;
   237 	FindWindow *findWindow;
   238 	QProcess *procBrowser;
   239 
   240 	QStringList imageTypes;
   241 
   242 	QList <VymModel*> tabModel;		//!< the corresponding model to a tab
   243 
   244 	QString prevSelection;
   245 
   246 	HistoryWindow *historyWindow;
   247 
   248 	BranchPropertyWindow *branchPropertyWindow;
   249 	SimpleScriptEditor *scriptEditor;
   250 
   251 	QList <QAction*> actionListBranches;
   252 
   253 	QColor currentColor;
   254 
   255 	int xLinkMenuWidth;
   256 
   257 	QMenu *recentFilesMenu;
   258 	enum { MaxRecentFiles = 9 };
   259     QAction *recentFileActions[MaxRecentFiles];
   260 
   261     QAction *macroActions[12];
   262 	QStringList macro;
   263 
   264 	QAction* actionFileNewCopy;
   265 	QAction* actionFileSave;
   266 	QAction* actionFilePrint;
   267 	QAction* actionUndo;
   268 	QAction* actionRedo;
   269 	QAction *actionCopy;
   270 	QAction *actionCut;
   271 	QAction *actionPaste;
   272 	QAction *actionMoveUp;
   273 	QAction *actionMoveDown;
   274 	QAction *actionSortChildren;
   275 	QAction *actionToggleScroll;
   276 	QAction* actionOpenURL;
   277 	QAction* actionOpenURLTab;
   278 	QAction* actionOpenMultipleURLTabs;
   279 	QAction* actionURL;
   280 	QAction* actionLocalURL;
   281 	QAction* actionHeading2URL;
   282 	QAction* actionBugzilla2URL;
   283 	QAction* actionFATE2URL;
   284 	QAction *actionOpenVymLink;
   285 	QAction *actionOpenMultipleVymLinks;
   286 	QAction *actionVymLink;
   287 	QAction *actionDeleteVymLink;
   288 	QAction *actionToggleHideExport;
   289 	QAction *actionMapInfo;
   290 	QAction *actionHeading;
   291 	QAction *actionDelete;
   292 
   293 public:
   294 	QAction *actionAddMapCenter;
   295 
   296 private:	
   297 	QAction *actionAddBranch;
   298 	QAction *actionAddBranchBefore;
   299 	QAction *actionAddBranchAbove;
   300 	QAction *actionAddBranchBelow;
   301 	QAction *actionDeleteKeepChildren;
   302 	QAction *actionDeleteChildren;
   303 	QAction *actionImportAdd;
   304 	QAction *actionImportReplace;
   305 	QAction *actionSaveBranch;
   306 	QAction *actionSelectFirst;
   307 	QAction *actionSelectLast;
   308 	QAction *actionLoadImage;
   309 
   310 	QAction* actionFormatColor;
   311 	QAction* actionFormatPickColor;
   312 	QAction* actionFormatColorBranch;
   313 	QAction* actionFormatColorSubtree;
   314 	QAction* actionFormatLinkColorHint;
   315 	QAction* actionFormatBackColor;
   316 	QAction* actionFormatBackImage;
   317 	QAction* actionFormatLinkColor;
   318 	QAction* actionFormatSelectionColor;
   319 
   320 	QActionGroup* actionGroupModModes;
   321 	QAction* actionModModeColor;
   322 	QAction* actionModModeXLink;
   323 	QAction* actionModModeCopy;
   324 
   325 	QActionGroup *actionGroupFormatFrameTypes;
   326 
   327 
   328 	QActionGroup *actionGroupFormatLinkStyles;
   329 	QAction *actionFormatLinkStyleLine;
   330 	QAction *actionFormatLinkStyleParabel;
   331 	QAction *actionFormatLinkStylePolyLine;
   332 	QAction *actionFormatLinkStylePolyParabel;
   333 	QAction *actionFormatHideLinkUnselected;
   334 
   335 	QAction *actionViewToggleNoteEditor;
   336 	QAction *actionViewToggleHistoryWindow;
   337 	QAction *actionViewTogglePropertyWindow;
   338 	QAction *actionViewToggleAntiAlias;
   339 	QAction *actionViewToggleSmoothPixmapTransform;
   340 	QAction* actionViewCenter;
   341 
   342 	QAction* actionSettingsAutoEditNewBranch;
   343 	QAction* actionSettingsAutoSelectNewBranch;
   344 	QAction* actionSettingsAutoSelectText;
   345 	QAction* actionSettingsUseDelKey;
   346 	QAction* actionSettingsUseFlagGroups;
   347 	QAction* actionSettingsUseHideExport;
   348 	QAction* actionSettingsAutosaveToggle;
   349 	QAction* actionSettingsAutosaveTime;
   350 	QAction* actionSettingsWriteBackupFile;
   351 	QAction* actionSettingsUseAnimation;
   352 };
   353 
   354 
   355 #endif
   356