fb2main.h 2.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596
  1. #ifndef FB2MAIN_H
  2. #define FB2MAIN_H
  3. #include <QMainWindow>
  4. #include <QTextCharFormat>
  5. QT_BEGIN_NAMESPACE
  6. class QAction;
  7. class QMenu;
  8. class QFile;
  9. class QThread;
  10. class QTextEdit;
  11. class QTextDocument;
  12. QT_END_NAMESPACE
  13. class QsciScintilla;
  14. class Fb2MainDocument;
  15. class MainWindow : public QMainWindow
  16. {
  17. Q_OBJECT
  18. public:
  19. explicit MainWindow();
  20. explicit MainWindow(const QString &filename);
  21. explicit MainWindow(const QString &filename, Fb2MainDocument * document);
  22. protected:
  23. void closeEvent(QCloseEvent *event);
  24. public slots:
  25. void logMessage(const QString &message);
  26. void sendDocument(const QString &filename, Fb2MainDocument * document);
  27. private slots:
  28. void fileNew();
  29. void fileOpen();
  30. bool fileSave();
  31. bool fileSaveAs();
  32. void about();
  33. void documentWasModified();
  34. void viewQsci();
  35. void viewText();
  36. void textBold();
  37. void textUnder();
  38. void textItalic();
  39. void textStrike();
  40. void currentCharFormatChanged(const QTextCharFormat &format);
  41. void cursorPositionChanged();
  42. void clipboardDataChanged();
  43. private:
  44. bool loadXML(const QString &filename);
  45. void connectTextDocument(QTextDocument * document);
  46. QIcon icon(const QString &name);
  47. private:
  48. void init();
  49. void createText();
  50. void createQsci();
  51. void createActions();
  52. void createStatusBar();
  53. void readSettings();
  54. void writeSettings();
  55. bool maybeSave();
  56. bool saveFile(const QString &fileName);
  57. void setCurrentFile(const QString &fileName, Fb2MainDocument * document = NULL);
  58. void mergeFormatOnWordOrSelection(const QTextCharFormat &format);
  59. MainWindow *findMainWindow(const QString &fileName);
  60. QThread *thread;
  61. QTextEdit *textEdit;
  62. QTextEdit *noteEdit;
  63. QTextEdit *messageEdit;
  64. QsciScintilla *qsciEdit;
  65. QString curFile;
  66. bool isUntitled;
  67. QAction
  68. *actionUndo,
  69. *actionRedo,
  70. *actionCut,
  71. *actionCopy,
  72. *actionPaste,
  73. *actionTextBold,
  74. *actionTextUnder,
  75. *actionTextItalic,
  76. *actionTextStrike,
  77. *actionTextSub,
  78. *actionTextSup;
  79. };
  80. #endif // FB2MAIN_H