vedit.cpp 1.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566
  1. #include <QtWidgets>
  2. #include "vedit.h"
  3. #include "vnote.h"
  4. VEdit::VEdit(VNoteFile *noteFile, QWidget *parent)
  5. : QTextEdit(parent), noteFile(noteFile)
  6. {
  7. setFont(VNote::editorAndBrowserFont);
  8. }
  9. void VEdit::beginEdit()
  10. {
  11. setReadOnly(false);
  12. switch (noteFile->docType) {
  13. case DocType::Html:
  14. setHtml(noteFile->content);
  15. break;
  16. case DocType::Markdown:
  17. setPlainText(noteFile->content);
  18. break;
  19. default:
  20. qWarning() << "error: unknown doc type" << int(noteFile->docType);
  21. }
  22. }
  23. bool VEdit::tryEndEdit()
  24. {
  25. return !document()->isModified();
  26. }
  27. void VEdit::beginSave()
  28. {
  29. if (!document()->isModified()) {
  30. return;
  31. }
  32. switch (noteFile->docType) {
  33. case DocType::Html:
  34. noteFile->content = toHtml();
  35. break;
  36. case DocType::Markdown:
  37. noteFile->content = toPlainText();
  38. break;
  39. default:
  40. qWarning() << "error: unknown doc type" << int(noteFile->docType);
  41. }
  42. }
  43. void VEdit::endSave()
  44. {
  45. document()->setModified(false);
  46. }
  47. void VEdit::reloadFile()
  48. {
  49. switch (noteFile->docType) {
  50. case DocType::Html:
  51. setHtml(noteFile->content);
  52. break;
  53. case DocType::Markdown:
  54. setPlainText(noteFile->content);
  55. break;
  56. default:
  57. qWarning() << "error: unknown doc type" << int(noteFile->docType);
  58. }
  59. }