CompareItemData.h 2.0 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465
  1. #ifndef __COMPAREITEMDATA_H__
  2. #define __COMPAREITEMDATA_H__
  3. #include "GlobalVariable.h"
  4. #include "spdlog/spdlog.h"
  5. /* 对比项数据,管理对比项所有的数据 */
  6. #define CIData CompareItemDataManager::instance()
  7. class CompareItemDataManager
  8. {
  9. CompareItemDataManager() = default;
  10. CompareItemDataManager(const CompareItemDataManager&) = delete;
  11. CompareItemDataManager& operator=(const CompareItemDataManager&) = delete;
  12. public:
  13. ~CompareItemDataManager() = default;
  14. static CompareItemDataManager& instance()
  15. {
  16. static CompareItemDataManager instance;
  17. return instance;
  18. }
  19. /* 初始化 */
  20. bool init();
  21. /* 添加一个对比项 */
  22. bool addCompareItem(const CompareItemInfo_t& item);
  23. /* 根据对比项ID删除一个对比项 */
  24. bool removeCompareItem(int nID);
  25. /* 通过一个ID查找一个对比项 */
  26. CompareItemInfo_t findCompareItemByID(int nID) const;
  27. /* 通过一个ID判断该对比项是否存在 */
  28. bool isCompareItemExist(int nID) const;
  29. /* 修改一个对比项 */
  30. bool modifyCompareItem(const CompareItemInfo_t& item);
  31. /* 获取一个未使用的对比项ID */
  32. int getUnusedCompareItemID() const;
  33. /* 获取表格需要的对比项数据 */
  34. QList<CompareItemTableItem_t> getCompareItemTableData() const;
  35. /* 获取未修改过的对比项列表 */
  36. const QList<CompareItemInfo_t>& getSrcCompareItemList() const { return m_listSrcCompareItems; }
  37. /* 获取当前对比项列表 */
  38. const QList<CompareItemInfo_t>& getCompareItemList() const { return m_listCompareItems; }
  39. /* 设置对比项列表 */
  40. void setCompareItemList(const QList<CompareItemInfo_t>& listItems);
  41. private:
  42. std::shared_ptr<spdlog::logger> m_logger = nullptr;
  43. /* 对比项列表 */
  44. QList<CompareItemInfo_t> m_listCompareItems;
  45. /* 对比项未修改的数据 */
  46. QList<CompareItemInfo_t> m_listSrcCompareItems; // 用于对比修改前后的数据
  47. };
  48. #endif // __COMPAREITEMDATA_H__