vedit.cpp 1.3 KB

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