fb2main.h 1.7 KB

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