fb2dock.hpp 1.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566
  1. #ifndef FB2DOCK_H
  2. #define FB2DOCK_H
  3. #include <QAction>
  4. #include <QIcon>
  5. #include <QStackedWidget>
  6. #include <QToolBar>
  7. #include <QIODevice>
  8. #include "fb2mode.h"
  9. class FbTextEdit;
  10. class FbHeadEdit;
  11. class FbCodeEdit;
  12. class FbMainDock : public QStackedWidget
  13. {
  14. Q_OBJECT
  15. public:
  16. explicit FbMainDock(QWidget *parent = 0);
  17. FbTextEdit * text() { return m_text; }
  18. FbHeadEdit * head() { return m_head; }
  19. FbCodeEdit * code() { return m_code; }
  20. bool load(const QString &filename);
  21. bool save(QIODevice *device, const QString &codec = QString());
  22. Fb::Mode mode() const { return m_mode; }
  23. void setMode(Fb::Mode mode);
  24. void setTool(QToolBar *tool) { m_tool = tool; }
  25. bool isModified() const;
  26. signals:
  27. public slots:
  28. private:
  29. void setModeText();
  30. void setModeHead();
  31. void setModeCode();
  32. void setModeHtml();
  33. private:
  34. QFrame *textFrame;
  35. FbTextEdit *m_text;
  36. FbHeadEdit *m_head;
  37. FbCodeEdit *m_code;
  38. QToolBar *m_tool;
  39. bool isSwitched;
  40. Fb::Mode m_mode;
  41. };
  42. class FbModeAction : public QAction
  43. {
  44. Q_OBJECT
  45. public:
  46. explicit FbModeAction(FbMainDock *parent, Fb::Mode mode, const QString &text);
  47. private slots:
  48. void switchMode();
  49. private:
  50. FbMainDock * m_dock;
  51. Fb::Mode m_mode;
  52. };
  53. #endif // FB2DOCK_H