replacecommand.h 1.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566
  1. #pragma once
  2. #include "command.h"
  3. #include "rcglobal.h"
  4. class CompareWin;
  5. class ReplaceOperRecords {
  6. public:
  7. RC_DIRECTION dir;
  8. int startPos; //开始位置
  9. int srcEndPos;//原始结束位置
  10. char* srcContents; //原始文字内容
  11. int replaceLens;//替换长度
  12. char* replaceContents;//替换内容
  13. ReplaceOperRecords() :startPos(0), srcEndPos(0), srcContents(nullptr), replaceLens(0), replaceContents(nullptr)
  14. {
  15. }
  16. ~ReplaceOperRecords()
  17. {
  18. if (srcContents != nullptr)
  19. {
  20. delete[]srcContents;
  21. srcContents = nullptr;
  22. }
  23. if (replaceContents != nullptr)
  24. {
  25. delete[]replaceContents;
  26. replaceContents = nullptr;
  27. }
  28. }
  29. ReplaceOperRecords(const ReplaceOperRecords& other) = delete;
  30. };
  31. class ReplaceCommand :public Command
  32. {
  33. public:
  34. ReplaceCommand(CompareWin* operWin);
  35. virtual ~ReplaceCommand();
  36. virtual int getOperIndex()override;
  37. virtual void undo()override;
  38. virtual QString desc()override;
  39. void setDesc(QString v);
  40. void addRecord(ReplaceOperRecords* v);
  41. void setOperIndex(int v);
  42. private:
  43. QList<ReplaceOperRecords*> m_record;
  44. CompareWin* m_operWin;
  45. int m_index;
  46. QString m_desc;
  47. ReplaceCommand(const ReplaceCommand& o) = delete;
  48. ReplaceCommand& operator=(const ReplaceCommand& o) = delete;
  49. };