fb2main.h 1.7 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283
  1. #ifndef FB2MAIN_H
  2. #define FB2MAIN_H
  3. #include <QMainWindow>
  4. QT_BEGIN_NAMESPACE
  5. class QAction;
  6. class QMenu;
  7. class QFile;
  8. class QTextEdit;
  9. class QTextDocument;
  10. QT_END_NAMESPACE
  11. class QsciScintilla;
  12. class MainWindow : public QMainWindow
  13. {
  14. Q_OBJECT
  15. public:
  16. MainWindow();
  17. MainWindow(const QString &filename);
  18. MainWindow(const QString &filename, QTextDocument * document);
  19. protected:
  20. void closeEvent(QCloseEvent *event);
  21. private slots:
  22. void newFile();
  23. void open();
  24. bool save();
  25. bool saveAs();
  26. void about();
  27. void documentWasModified();
  28. void viewQsci();
  29. void viewText();
  30. private:
  31. static QTextDocument * loadFB2(const QString &filename);
  32. bool loadXML(const QString &filename);
  33. private:
  34. void init();
  35. void createText();
  36. void createQsci();
  37. void createActions();
  38. void createMenus();
  39. void createToolBars();
  40. void createStatusBar();
  41. void readSettings();
  42. void writeSettings();
  43. bool maybeSave();
  44. bool saveFile(const QString &fileName);
  45. void setCurrentFile(const QString &fileName, QTextDocument * document = NULL);
  46. MainWindow *findMainWindow(const QString &fileName);
  47. QTextEdit *textEdit;
  48. QsciScintilla *qsciEdit;
  49. QString curFile;
  50. bool isUntitled;
  51. QMenu *fileMenu;
  52. QMenu *editMenu;
  53. QMenu *viewMenu;
  54. QMenu *helpMenu;
  55. QToolBar *fileToolBar;
  56. QToolBar *editToolBar;
  57. QAction *newAct;
  58. QAction *openAct;
  59. QAction *saveAct;
  60. QAction *saveAsAct;
  61. QAction *closeAct;
  62. QAction *exitAct;
  63. QAction *cutAct;
  64. QAction *copyAct;
  65. QAction *pasteAct;
  66. QAction *textAct;
  67. QAction *qsciAct;
  68. QAction *aboutAct;
  69. QAction *aboutQtAct;
  70. };
  71. #endif // FB2MAIN_H