123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130 |
- #include "CompareItemData.h"
- /* 初始化 */
- bool CompareItemDataManager::init()
- {
- if(m_logger == nullptr)
- {
- m_logger = spdlog::get("CompareItemData");
- if(m_logger == nullptr)
- {
- fmt::print("CompareItemDataManager: 初始化日志失败");
- return false;
- }
- }
- return true;
- }
- /* 添加一个对比项 */
- bool CompareItemDataManager::addCompareItem(const CompareItemInfo_t& item)
- {
- if(item.nID <= 0)
- {
- SPDLOG_LOGGER_ERROR(m_logger, "对比项ID {} 无效,无法添加", item.nID);
- return false;
- }
- if(isCompareItemExist(item.nID))
- {
- SPDLOG_LOGGER_WARN(m_logger, "对比项ID {} 已经存在,无法添加", item.nID);
- return false;
- }
- m_listCompareItems.append(item);
- return true;
- }
- /* 根据对比项ID删除一个对比项 */
- bool CompareItemDataManager::removeCompareItem(int nID)
- {
- for(auto it = m_listCompareItems.begin(); it != m_listCompareItems.end(); ++it)
- {
- if(it->nID == nID)
- {
- m_listCompareItems.erase(it);
- return true;
- }
- }
- SPDLOG_LOGGER_WARN(m_logger, "对比项ID {} 不存在,无法删除", nID);
- return false;
- }
- /* 通过一个ID查找一个对比项 */
- CompareItemInfo_t CompareItemDataManager::findCompareItemByID(int nID) const
- {
- for(const auto& compareItem : m_listCompareItems)
- {
- if(compareItem.nID == nID)
- {
- return compareItem;
- }
- }
- SPDLOG_LOGGER_WARN(m_logger, "对比项ID {} 不存在", nID);
- return CompareItemInfo_t(); // 返回一个默认构造的对比项
- }
- /* 通过一个ID判断该对比项是否存在 */
- bool CompareItemDataManager::isCompareItemExist(int nID) const
- {
- for(const auto& compareItem : m_listCompareItems)
- {
- if(compareItem.nID == nID)
- {
- return true;
- }
- }
- return false;
- }
- /* 修改一个对比项 */
- bool CompareItemDataManager::modifyCompareItem(const CompareItemInfo_t& item)
- {
- for(auto& compareItem : m_listCompareItems)
- {
- if(compareItem.nID == item.nID)
- {
- compareItem = item; // 使用赋值运算符更新对比项
- return true;
- }
- }
- SPDLOG_LOGGER_WARN(m_logger, "对比项ID {} 不存在,无法修改", item.nID);
- return false;
- }
- /* 获取一个未使用的对比项ID */
- int CompareItemDataManager::getUnusedCompareItemID() const
- {
- int nID = 1; // 从1开始
- while(isCompareItemExist(nID))
- {
- ++nID;
- }
- return nID;
- }
- /* 获取表格需要的对比项数据 */
- QList<CompareItemTableItem_t> CompareItemDataManager::getCompareItemTableData() const
- {
- QList<CompareItemTableItem_t> result;
- int nSerialNum = 1; // 序号从1开始
- for(const auto& compareItem : m_listCompareItems)
- {
- CompareItemTableItem_t tableItem;
- tableItem.nSerialNum = nSerialNum;
- tableItem.nID = compareItem.nID;
- tableItem.strName = compareItem.strName;
- tableItem.isEnable = compareItem.isEnable;
- tableItem.nChannelCount = compareItem.listRoads.size(); // 通道数
- // 添加到结果列表
- result.append(tableItem);
- // 序号自增
- nSerialNum++;
- }
- return result;
- }
|