insilmaril@0: #ifndef MAINWINDOW_H insilmaril@0: #define MAINWINDOW_H insilmaril@0: insilmaril@366: #include insilmaril@781: #include insilmaril@0: insilmaril@781: insilmaril@421: #include "branchpropwindow.h" insilmaril@721: #include "extrainfodialog.h" insilmaril@767: #include "flag.h" insilmaril@175: #include "file.h" insilmaril@404: #include "historywindow.h" insilmaril@175: #include "mapeditor.h" insilmaril@824: #include "shortcuts.h" insilmaril@432: #include "simplescripteditor.h" insilmaril@175: #include "texteditor.h" insilmaril@726: #include "vymview.h" insilmaril@0: insilmaril@0: class Main : public QMainWindow insilmaril@0: { insilmaril@0: Q_OBJECT insilmaril@0: insilmaril@0: public: insilmaril@473: /*! Modifier modes are used when CTRL together with a mouse button is pressed */ insilmaril@473: enum ModMode { insilmaril@473: ModModeNone, //!< Unused insilmaril@473: ModModeColor, //!< Pick color from object insilmaril@473: ModModeCopy, //!< Copy object insilmaril@473: ModModeXLink //!< Create a XLink (XLinkObj) from selected object insilmaril@473: }; insilmaril@473: insilmaril@366: Main(QWidget* parent=0, const char* name=0, Qt::WFlags f=0); insilmaril@0: ~Main(); insilmaril@0: void loadCmdLine(); insilmaril@742: insilmaril@742: private: insilmaril@821: QProgressDialog progressDialog; insilmaril@742: int progressMax; insilmaril@742: int progressMin; insilmaril@821: int progressCounter; insilmaril@821: int progressCounterTotal; insilmaril@742: public: insilmaril@0: void statusMessage (const QString &); insilmaril@742: void setProgressMaximum (int max); insilmaril@821: void addProgressValue (float v); insilmaril@821: void setProgressCounter (int v); insilmaril@822: void removeProgressCounter(); insilmaril@0: insilmaril@0: public slots: insilmaril@0: void fileNew(); insilmaril@491: void fileNewCopy(); insilmaril@0: insilmaril@0: protected: insilmaril@0: void closeEvent( QCloseEvent* ); insilmaril@0: insilmaril@0: private: insilmaril@0: void setupFileActions(); insilmaril@0: void setupEditActions(); insilmaril@0: void setupFormatActions(); insilmaril@0: void setupViewActions(); insilmaril@89: void setupModeActions(); insilmaril@0: void setupWindowActions(); insilmaril@767: void setupFlag(Flag *flag, QToolBar *tb, const QString &name, const QString &tooltip); insilmaril@0: void setupFlagActions(); insilmaril@528: void setupNetworkActions(); insilmaril@0: void setupSettingsActions(); insilmaril@0: void setupTestActions(); insilmaril@0: void setupHelpActions(); insilmaril@0: void setupContextMenus(); insilmaril@401: void setupRecentMapsMenu(); insilmaril@445: void setupMacros(); insilmaril@0: void hideEvent (QHideEvent * ); insilmaril@0: void showEvent (QShowEvent * ); insilmaril@0: MapEditor* currentMapEditor() const; insilmaril@721: VymModel* currentModel() const; insilmaril@823: public: insilmaril@832: uint currentModelID() const; insilmaril@823: VymModel* getModel(uint) const; insilmaril@0: insilmaril@0: private slots: insilmaril@0: void editorChanged(QWidget*); insilmaril@0: insilmaril@571: ErrorCode fileLoad(QString ,const LoadMode &, const FileType & ftype=VymMap); insilmaril@0: void fileLoad(const LoadMode &); insilmaril@0: void fileLoad(); insilmaril@401: void fileLoadRecent(); insilmaril@401: void addRecentMap (const QString &); insilmaril@721: void fileSave(VymModel*, const SaveMode & ); insilmaril@0: void fileSave(); insilmaril@473: public slots: insilmaril@721: void fileSave(VymModel*); // autosave from MapEditor insilmaril@473: private slots: insilmaril@0: void fileSaveAs(const SaveMode &); insilmaril@0: void fileSaveAs(); insilmaril@742: void fileImportKDE3Bookmarks(); insilmaril@742: void fileImportKDE4Bookmarks(); insilmaril@314: void fileImportFirefoxBookmarks(); insilmaril@571: void fileImportFreemind(); insilmaril@215: void fileImportMM(); insilmaril@0: void fileImportDir(); insilmaril@0: void fileExportXML(); insilmaril@819: void fileExportHTML(); insilmaril@0: void fileExportXHTML(); insilmaril@366: void fileExportImage(); insilmaril@807: void fileExportAO(); insilmaril@0: void fileExportASCII(); insilmaril@497: void fileExportCSV(); insilmaril@163: void fileExportLaTeX(); insilmaril@742: void fileExportKDE3Bookmarks(); insilmaril@742: void fileExportKDE4Bookmarks(); insilmaril@228: void fileExportTaskjuggler(); insilmaril@163: void fileExportOOPresentation(); insilmaril@0: void fileCloseMap(); insilmaril@0: void filePrint(); insilmaril@0: void fileExitVYM(); insilmaril@0: insilmaril@404: public slots: insilmaril@0: void editUndo(); insilmaril@0: void editRedo(); insilmaril@404: void gotoHistoryStep (int); insilmaril@404: private slots: insilmaril@0: void editCopy(); insilmaril@0: void editPaste(); insilmaril@0: void editCut(); insilmaril@808: void editOpenFindWidget(); insilmaril@829: void editHideFindWidget(); insilmaril@829: void editFindNext(QString s); insilmaril@821: void editFindDuplicateURLs(); insilmaril@366: private: insilmaril@366: void openTabs(QStringList); insilmaril@0: public slots: insilmaril@0: void editOpenURL(); insilmaril@266: void editOpenURLTab(); insilmaril@0: private slots: insilmaril@821: void editOpenMultipleVisURLTabs(bool ignoreScrolled=true); insilmaril@366: void editOpenMultipleURLTabs(); insilmaril@0: void editURL(); insilmaril@528: void editLocalURL(); insilmaril@0: void editHeading2URL(); insilmaril@0: void editBugzilla2URL(); insilmaril@820: void getBugzillaData(); insilmaril@175: void editFATE2URL(); insilmaril@366: void openVymLinks(const QStringList &); insilmaril@0: void editVymLink(); insilmaril@366: void editOpenMultipleVymLinks(); insilmaril@0: public slots: insilmaril@721: void editHeadingFinished(VymModel *m); insilmaril@721: // void editHeading(); insilmaril@0: void editOpenVymLink(); insilmaril@0: private slots: insilmaril@0: void editDeleteVymLink(); insilmaril@243: void editToggleHideExport(); insilmaril@804: void editAddTimestamp(); insilmaril@0: void editMapInfo(); insilmaril@0: void editMoveUp(); insilmaril@0: void editMoveDown(); insilmaril@795: void editDetach(); insilmaril@608: void editSortChildren(); insilmaril@822: void editSortBackChildren(); insilmaril@0: void editToggleScroll(); insilmaril@763: void editExpandAll(); insilmaril@804: void editExpandOneLevel(); insilmaril@804: void editCollapseOneLevel(); insilmaril@721: void editUnscrollChildren(); insilmaril@786: void editAddAttribute(); insilmaril@684: void editAddMapCenter(); insilmaril@0: void editNewBranch(); insilmaril@394: void editNewBranchBefore(); insilmaril@0: void editNewBranchAbove(); insilmaril@0: void editNewBranchBelow(); insilmaril@0: void editImportAdd(); insilmaril@0: void editImportReplace(); insilmaril@0: void editSaveBranch(); insilmaril@721: void editDeleteKeepChildren(); insilmaril@721: void editDeleteChildren(); insilmaril@0: void editDeleteSelection(); insilmaril@0: void editLoadImage(); insilmaril@366: void editSaveImage(); insilmaril@366: void editEditXLink (QAction *); insilmaril@0: insilmaril@0: void formatSelectColor(); insilmaril@0: void formatPickColor(); insilmaril@0: void colorChanged(QColor); insilmaril@0: void formatColorBranch(); insilmaril@417: void formatColorSubtree(); insilmaril@0: void formatLinkStyleLine(); insilmaril@0: void formatLinkStyleParabel(); insilmaril@0: void formatLinkStylePolyLine(); insilmaril@0: void formatLinkStylePolyParabel(); insilmaril@0: void formatSelectBackColor(); insilmaril@408: void formatSelectBackImage(); insilmaril@0: void formatSelectLinkColor(); insilmaril@442: void formatSelectSelectionColor(); insilmaril@0: void formatToggleLinkColorHint(); insilmaril@160: void formatHideLinkUnselected(); insilmaril@0: insilmaril@804: public slots: insilmaril@0: void viewZoomReset(); insilmaril@0: void viewZoomIn(); insilmaril@0: void viewZoomOut(); insilmaril@526: void viewCenter(); insilmaril@0: insilmaril@0: public slots: insilmaril@528: void networkStartServer(); insilmaril@528: void networkConnect(); insilmaril@0: bool settingsPDF(); insilmaril@0: bool settingsURL(); insilmaril@450: void settingsMacroDir(); insilmaril@328: void settingsToggleDelKey(); insilmaril@473: void settingsUndoLevels(); insilmaril@473: void settingsAutosaveToggle(); insilmaril@473: void settingsAutosaveTime(); insilmaril@625: void settingsWriteBackupFileToggle(); insilmaril@690: void settingsToggleAnimation(); insilmaril@0: insilmaril@0: void windowToggleNoteEditor(); insilmaril@823: void windowToggleTreeEditor(); insilmaril@294: void windowToggleHistory(); insilmaril@473: void windowToggleProperty(); insilmaril@404: void updateHistory(SimpleSettings &); insilmaril@408: void windowToggleAntiAlias(); insilmaril@732: public: insilmaril@732: bool isAliased(); insilmaril@732: bool hasSmoothPixmapTransform(); insilmaril@732: public slots: insilmaril@408: void windowToggleSmoothPixmap(); insilmaril@160: void updateNoteFlag(); insilmaril@753: void updateNoteEditor (QModelIndex index); insilmaril@746: void changeSelection (VymModel *model,const QItemSelection &newSel, const QItemSelection &delSel); insilmaril@746: insilmaril@390: void updateActions(); insilmaril@390: ModMode getModMode(); insilmaril@537: bool autoEditNewBranch(); insilmaril@537: bool autoSelectNewBranch(); insilmaril@434: void setScript(const QString &); insilmaril@434: void runScript(const QString &); insilmaril@514: void runScriptEverywhere (const QString &); insilmaril@160: insilmaril@0: private slots: insilmaril@0: void windowNextEditor(); insilmaril@0: void windowPreviousEditor(); insilmaril@0: void windowShowNoteEditor(); insilmaril@0: void windowHideNoteEditor(); insilmaril@0: insilmaril@0: void standardFlagChanged(); insilmaril@0: insilmaril@527: void testFunction1(); insilmaril@527: void testFunction2(); insilmaril@393: void testCommand(); insilmaril@0: insilmaril@0: void helpDoc(); insilmaril@505: void helpDemo(); insilmaril@0: void helpAbout(); insilmaril@0: void helpAboutQT(); insilmaril@0: insilmaril@445: void callMacro (); insilmaril@473: insilmaril@0: private: insilmaril@0: QTabWidget *tabWidget; insilmaril@804: QProcess *procBrowser; //FIXME-2 remove this... insilmaril@804: qint64 *browserPID; insilmaril@366: insilmaril@366: QStringList imageTypes; insilmaril@366: insilmaril@772: QList vymViews; //! Keeps track of models and views related to a tab insilmaril@394: QString prevSelection; insilmaril@390: insilmaril@404: HistoryWindow *historyWindow; insilmaril@404: insilmaril@421: BranchPropertyWindow *branchPropertyWindow; insilmaril@432: SimpleScriptEditor *scriptEditor; insilmaril@421: insilmaril@406: QList actionListBranches; insilmaril@390: insilmaril@395: QColor currentColor; insilmaril@395: insilmaril@600: int xLinkMenuWidth; insilmaril@600: insilmaril@401: QMenu *recentFilesMenu; insilmaril@401: enum { MaxRecentFiles = 9 }; insilmaril@445: QAction *recentFileActions[MaxRecentFiles]; insilmaril@445: insilmaril@445: QAction *macroActions[12]; insilmaril@445: QStringList macro; insilmaril@401: insilmaril@824: Switchboard switchboard; insilmaril@824: insilmaril@690: QAction* actionFileNewCopy; insilmaril@390: QAction* actionFileSave; insilmaril@390: QAction* actionFilePrint; insilmaril@723: QAction* actionUndo; insilmaril@723: QAction* actionRedo; insilmaril@723: QAction *actionCopy; insilmaril@723: QAction *actionCut; insilmaril@723: QAction *actionPaste; insilmaril@723: QAction *actionMoveUp; insilmaril@723: QAction *actionMoveDown; insilmaril@795: QAction *actionDetach; insilmaril@723: QAction *actionSortChildren; insilmaril@822: QAction *actionSortBackChildren; insilmaril@723: QAction *actionToggleScroll; insilmaril@763: QAction *actionExpandAll; insilmaril@804: QAction *actionExpandOneLevel; insilmaril@804: QAction *actionCollapseOneLevel; insilmaril@723: QAction* actionOpenURL; insilmaril@723: QAction* actionOpenURLTab; insilmaril@821: QAction* actionOpenMultipleVisURLTabs; insilmaril@723: QAction* actionOpenMultipleURLTabs; insilmaril@723: QAction* actionURL; insilmaril@723: QAction* actionLocalURL; insilmaril@723: QAction* actionHeading2URL; insilmaril@723: QAction* actionBugzilla2URL; insilmaril@820: QAction* actionGetBugzillaData; insilmaril@723: QAction* actionFATE2URL; insilmaril@723: QAction *actionOpenVymLink; insilmaril@723: QAction *actionOpenMultipleVymLinks; insilmaril@723: QAction *actionVymLink; insilmaril@723: QAction *actionDeleteVymLink; insilmaril@804: QAction *actionAddTimestamp; insilmaril@723: QAction *actionToggleHideExport; insilmaril@723: QAction *actionMapInfo; insilmaril@723: QAction *actionHeading; insilmaril@723: QAction *actionDelete; insilmaril@786: QAction *actionAddAttribute; insilmaril@723: public: insilmaril@723: QAction *actionAddMapCenter; insilmaril@723: insilmaril@723: private: insilmaril@723: QAction *actionAddBranch; insilmaril@723: QAction *actionAddBranchBefore; insilmaril@723: QAction *actionAddBranchAbove; insilmaril@723: QAction *actionAddBranchBelow; insilmaril@723: QAction *actionDeleteKeepChildren; insilmaril@723: QAction *actionDeleteChildren; insilmaril@723: QAction *actionImportAdd; insilmaril@723: QAction *actionImportReplace; insilmaril@723: QAction *actionSaveBranch; insilmaril@723: QAction *actionLoadImage; insilmaril@390: insilmaril@390: QAction* actionFormatColor; insilmaril@390: QAction* actionFormatPickColor; insilmaril@390: QAction* actionFormatColorBranch; insilmaril@390: QAction* actionFormatColorSubtree; insilmaril@390: QAction* actionFormatLinkColorHint; insilmaril@390: QAction* actionFormatBackColor; insilmaril@408: QAction* actionFormatBackImage; insilmaril@390: QAction* actionFormatLinkColor; insilmaril@442: QAction* actionFormatSelectionColor; insilmaril@390: insilmaril@390: QActionGroup* actionGroupModModes; insilmaril@390: QAction* actionModModeColor; insilmaril@390: QAction* actionModModeXLink; insilmaril@390: QAction* actionModModeCopy; insilmaril@390: insilmaril@390: QActionGroup *actionGroupFormatFrameTypes; insilmaril@421: insilmaril@390: insilmaril@390: QActionGroup *actionGroupFormatLinkStyles; insilmaril@390: QAction *actionFormatLinkStyleLine; insilmaril@390: QAction *actionFormatLinkStyleParabel; insilmaril@390: QAction *actionFormatLinkStylePolyLine; insilmaril@390: QAction *actionFormatLinkStylePolyParabel; insilmaril@390: QAction *actionFormatHideLinkUnselected; insilmaril@390: insilmaril@390: QAction *actionViewToggleNoteEditor; insilmaril@823: QAction *actionViewToggleTreeEditor; insilmaril@390: QAction *actionViewToggleHistoryWindow; insilmaril@486: QAction *actionViewTogglePropertyWindow; insilmaril@408: QAction *actionViewToggleAntiAlias; insilmaril@408: QAction *actionViewToggleSmoothPixmapTransform; insilmaril@526: QAction* actionViewCenter; insilmaril@390: insilmaril@537: QAction* actionSettingsAutoEditNewBranch; insilmaril@537: QAction* actionSettingsAutoSelectNewBranch; insilmaril@390: QAction* actionSettingsAutoSelectText; insilmaril@390: QAction* actionSettingsUseDelKey; insilmaril@390: QAction* actionSettingsUseFlagGroups; insilmaril@390: QAction* actionSettingsUseHideExport; insilmaril@473: QAction* actionSettingsAutosaveToggle; insilmaril@473: QAction* actionSettingsAutosaveTime; insilmaril@625: QAction* actionSettingsWriteBackupFile; insilmaril@690: QAction* actionSettingsUseAnimation; insilmaril@0: }; insilmaril@0: insilmaril@0: insilmaril@0: #endif insilmaril@0: