123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129 |
- #include "PlanData.h"
- #include "LHQLogAPI.h"
- PlanData::PlanData()
- {
- /* 初始化计划卡片 */
- m_mapPlanCard.clear();
- }
- /* 新增一个卡片 */
- PlanCard* PlanData::createOneCard(const ChannelInfo& chnInfo)
- {
- /* 先查找有没有这个频率的卡片 */
- auto pCard = findPlanCard(chnInfo.ChannelID);
- if(pCard != nullptr)
- {
- /* 已经存在了,直接返回 */
- return pCard;
- }
- pCard = new PlanCard();
- pCard->setChannelInfo(chnInfo);
- connect(pCard, &PlanCard::signal_clickedCard, this, &PlanData::do_clickedCard);
- m_mapPlanCard.insert(chnInfo.ChannelID, pCard);
- return pCard;
- }
- /* 删除一个卡片 */
- void PlanData::deleteOneCard(int channelID)
- {
- if(m_mapPlanCard.contains(channelID))
- {
- auto pCard = m_mapPlanCard[channelID];
- delete pCard;
- m_mapPlanCard.remove(channelID);
- }
- }
- /* 删除所有的卡片 */
- void PlanData::deleteAllCard()
- {
- for(auto& it : m_mapPlanCard)
- {
- delete it;
- }
- m_mapPlanCard.clear();
- }
- /* 清空一个卡片的计划 */
- void PlanData::clearOnePlanItem(int channelID)
- {
- auto pCard = findPlanCard(channelID);
- if(pCard != nullptr)
- {
- pCard->clearPlanItem();
- }else {
- LH_WRITE_ERROR(QString("没有找到频率ID为%1的卡片").arg(channelID));
- }
- }
- /* 清空所有的计划 */
- void PlanData::clearAllPlanItem()
- {
- for(auto& it : m_mapPlanCard)
- {
- it->clearPlanItem();
- }
- }
- /* 清空所有卡片选中状态 */
- void PlanData::clearAllSelectedCard()
- {
- for(auto& it : m_mapPlanCard)
- {
- it->setSelected(false);
- }
- m_currentFrequencyID = 0;
- }
- /* 查找卡片 */
- PlanCard* PlanData::findPlanCard(int channelID)
- {
- if(m_mapPlanCard.contains(channelID))
- {
- return m_mapPlanCard[channelID];
- }
- return nullptr;
- }
- /* 新增一个计划 */
- void PlanData::addPlanItem(int channelID, const PlanInfo& info)
- {
- auto pCard = findPlanCard(channelID);
- if(pCard != nullptr)
- {
- pCard->addPlanItem(info);
- }else {
- LH_WRITE_ERROR(QString("没有找到频率ID为%1的卡片").arg(channelID));
- }
- }
- /* 设置每个卡片的大小 */
- void PlanData::setCardSize(int width, int height)
- {
- for(auto& it : m_mapPlanCard)
- {
- it->setFixedSize(width, height);
- }
- // LH_WRITE_LOG_DEBUG(QString("卡片的实际大小:%1*%2").arg(m_mapPlanCard.first()->width()).arg(m_mapPlanCard.first()->height()));
- }
- /* 点击了一个卡片 */
- void PlanData::do_clickedCard(int channelID)
- {
- // LH_WRITE_LOG_DEBUG(QString("点击了频率ID为%1的卡片").arg(channelID));
- /* 先取消所有的选中效果 */
- for(auto& it : m_mapPlanCard)
- {
- it->setSelected(false);
- }
- /* 设置选中效果 */
- m_currentFrequencyID = channelID;
- auto pCard = findPlanCard(channelID);
- if(pCard != nullptr)
- {
- pCard->setSelected(true);
- }
- }
|