#ifndef VMAINWINDOW_H #define VMAINWINDOW_H #include #include #include #include #include #include "vfile.h" #include "vedittab.h" class QLabel; class QComboBox; class VDirectoryTree; class QSplitter; class QListWidget; class QTabWidget; class QToolBar; class VNote; class QAction; class QPushButton; class VNotebook; class QActionGroup; class VFileList; class VEditArea; class QToolBox; class VOutline; class VNotebookSelector; class VAvatar; class VFindReplaceDialog; class VMainWindow : public QMainWindow { Q_OBJECT public: VMainWindow(QWidget *parent = 0); const QVector > &getPalette() const; void locateFile(VFile *p_file) const; private slots: void importNoteFromFile(); void changeMarkdownConverter(QAction *action); void aboutMessage(); void changeExpandTab(bool checked); void setTabStopWidth(QAction *action); void setEditorBackgroundColor(QAction *action); void setRenderBackgroundColor(QAction *action); void changeHighlightCursorLine(bool p_checked); void handleCurTabStatusChanged(const VFile *p_file, const VEditTab *p_editTab, bool p_editMode); void onePanelView(); void twoPanelView(); void expandPanelView(bool p_checked); void curEditFileInfo(); void deleteCurNote(); void handleCurrentDirectoryChanged(const VDirectory *p_dir); void handleCurrentNotebookChanged(const VNotebook *p_notebook); void insertImage(); void handleFindDialogTextChanged(const QString &p_text, uint p_options); void openFindDialog(); protected: void closeEvent(QCloseEvent *event) Q_DECL_OVERRIDE; void resizeEvent(QResizeEvent *event) Q_DECL_OVERRIDE; void keyPressEvent(QKeyEvent *event) Q_DECL_OVERRIDE; private: void setupUI(); QWidget *setupDirectoryPanel(); void initToolBar(); void initFileToolBar(); void initViewToolBar(); void initMenuBar(); void initFileMenu(); void initEditMenu(); void initViewMenu(); void initMarkdownMenu(); void initHelpMenu(); void initDockWindows(); void initAvatar(); void initPredefinedColorPixmaps(); void initRenderBackgroundMenu(QMenu *menu); void initEditorBackgroundMenu(QMenu *menu); void changeSplitterView(int nrPanel); void updateWindowTitle(const QString &str); void updateActionStateFromTabStatusChange(const VFile *p_file, bool p_editMode); void saveStateAndGeometry(); void restoreStateAndGeometry(); void repositionAvatar(); VNote *vnote; QPointer m_curFile; QPointer m_curTab; QLabel *notebookLabel; QLabel *directoryLabel; VNotebookSelector *notebookSelector; VFileList *fileList; VDirectoryTree *directoryTree; QSplitter *mainSplitter; VEditArea *editArea; QDockWidget *toolDock; QToolBox *toolBox; VOutline *outline; VAvatar *m_avatar; VFindReplaceDialog *m_findReplaceDialog; // Actions QAction *newRootDirAct; QAction *newNoteAct; QAction *noteInfoAct; QAction *deleteNoteAct; QAction *editNoteAct; QAction *saveNoteAct; QAction *saveExitAct; QAction *discardExitAct; QAction *expandViewAct; QAction *m_insertImageAct; QAction *m_findReplaceAct; QAction *m_findNextAct; QAction *m_findPreviousAct; QAction *m_replaceAct; QAction *m_replaceFindAct; QAction *m_replaceAllAct; // Menus QMenu *viewMenu; QVector predefinedColorPixmaps; }; #endif // VMAINWINDOW_H