|
@@ -10,6 +10,7 @@
|
|
#include <QMouseEvent>
|
|
#include <QMouseEvent>
|
|
#include <memory>
|
|
#include <memory>
|
|
#include <qchar.h>
|
|
#include <qchar.h>
|
|
|
|
+#include <qnamespace.h>
|
|
|
|
|
|
#include "warning/warning.h"
|
|
#include "warning/warning.h"
|
|
#include "LHQLogAPI.h"
|
|
#include "LHQLogAPI.h"
|
|
@@ -61,8 +62,8 @@ TemplateManager::TemplateManager(QWidget *parent) :
|
|
//设置行高
|
|
//设置行高
|
|
ui->tableWidget->verticalHeader()->setDefaultSectionSize(40);
|
|
ui->tableWidget->verticalHeader()->setDefaultSectionSize(40);
|
|
|
|
|
|
- //设置不可编辑
|
|
|
|
- ui->tableWidget->setEditTriggers(QTableWidget::NoEditTriggers);
|
|
|
|
|
|
+ /* 设置可编辑,后续创建的时候,单独设置不可编辑 */
|
|
|
|
+ ui->tableWidget->setEditTriggers(QTableWidget::DoubleClicked);
|
|
//设置选中一行
|
|
//设置选中一行
|
|
ui->tableWidget->setSelectionBehavior(QAbstractItemView::SelectRows);
|
|
ui->tableWidget->setSelectionBehavior(QAbstractItemView::SelectRows);
|
|
//设置只能选中一行
|
|
//设置只能选中一行
|
|
@@ -148,11 +149,41 @@ void TemplateManager::do_itemChanged(QTableWidgetItem* item)
|
|
info.templateName = item->data(m_roleTemplateName).toString();
|
|
info.templateName = item->data(m_roleTemplateName).toString();
|
|
info.channelInfo.ChannelID = item->data(m_roleChnID).toInt();
|
|
info.channelInfo.ChannelID = item->data(m_roleChnID).toInt();
|
|
/* 判断是否修改了模版名称 */
|
|
/* 判断是否修改了模版名称 */
|
|
- if(newName != info.templateName)
|
|
|
|
|
|
+ if(newName == info.templateName)
|
|
{
|
|
{
|
|
- /* 修改模版名称 */
|
|
|
|
- m_mapModifyTemplateName.insert(info, newName);
|
|
|
|
|
|
+ return;
|
|
|
|
+ }
|
|
|
|
+ /* 判断同频率下的模板名称是否冲突 */
|
|
|
|
+ int rowCount = ui->tableWidget->rowCount();
|
|
|
|
+ for(int i = 0; i < rowCount; i++)
|
|
|
|
+ {
|
|
|
|
+ /* 排除当前项 */
|
|
|
|
+ if(i == item->row())
|
|
|
|
+ {
|
|
|
|
+ continue;
|
|
|
|
+ }
|
|
|
|
+ /* 获取当前项显示的名称 */
|
|
|
|
+ auto itemTmp = ui->tableWidget->item(i, 1);
|
|
|
|
+ if(itemTmp == nullptr)
|
|
|
|
+ {
|
|
|
|
+ continue;
|
|
|
|
+ }
|
|
|
|
+ /* 获取当前项的模版名称 */
|
|
|
|
+ QString strName = itemTmp->text();
|
|
|
|
+ /* 获取当前项的模版频率 */
|
|
|
|
+ int chnID = itemTmp->data(m_roleChnID).toInt();
|
|
|
|
+ /* 判断是否冲突 */
|
|
|
|
+ if(chnID == info.channelInfo.ChannelID && strName == newName)
|
|
|
|
+ {
|
|
|
|
+ /* 已经存在相同的模版名称 */
|
|
|
|
+ LH_WRITE_ERROR(QString("模版名称冲突:%1").arg(newName));
|
|
|
|
+ TipWidget::display(TipWidget::OPERATOR_FAIL, "模版名称冲突", this);
|
|
|
|
+ item->setText(info.templateName);
|
|
|
|
+ return;
|
|
|
|
+ }
|
|
}
|
|
}
|
|
|
|
+ /* 修改模版名称 */
|
|
|
|
+ m_mapModifyTemplateName.insert(info, newName);
|
|
}
|
|
}
|
|
|
|
|
|
|
|
|
|
@@ -172,10 +203,15 @@ void TemplateManager::showEvent(QShowEvent *event)
|
|
/* 设置模版列表 */
|
|
/* 设置模版列表 */
|
|
void TemplateManager::setTemplateList(const QMultiMap<int, OneTemplateInfo>& mapTemplate)
|
|
void TemplateManager::setTemplateList(const QMultiMap<int, OneTemplateInfo>& mapTemplate)
|
|
{
|
|
{
|
|
|
|
+ // 暂时阻止 itemChanged 信号
|
|
|
|
+ ui->tableWidget->blockSignals(true);
|
|
for(auto it = mapTemplate.begin(), end = mapTemplate.end(); it != end; it++)
|
|
for(auto it = mapTemplate.begin(), end = mapTemplate.end(); it != end; it++)
|
|
{
|
|
{
|
|
createRow(it.value());
|
|
createRow(it.value());
|
|
|
|
+ m_listTemplate.append(it.value());
|
|
}
|
|
}
|
|
|
|
+ // 恢复信号
|
|
|
|
+ ui->tableWidget->blockSignals(false);
|
|
}
|
|
}
|
|
|
|
|
|
|
|
|
|
@@ -232,6 +268,7 @@ void TemplateManager::createRow(const OneTemplateInfo& info)
|
|
|
|
|
|
/* 频率名称 */
|
|
/* 频率名称 */
|
|
QTableWidgetItem* item0 = new QTableWidgetItem(info.channelInfo.ChannelName);
|
|
QTableWidgetItem* item0 = new QTableWidgetItem(info.channelInfo.ChannelName);
|
|
|
|
+ item0->setFlags(item0->flags() & ~Qt::ItemIsEditable);
|
|
item0->setData(m_roleChnID, info.channelInfo.ChannelID);
|
|
item0->setData(m_roleChnID, info.channelInfo.ChannelID);
|
|
ui->tableWidget->setItem(row, 0, item0);
|
|
ui->tableWidget->setItem(row, 0, item0);
|
|
/* 模板名称,需要可编辑 */
|
|
/* 模板名称,需要可编辑 */
|
|
@@ -243,18 +280,21 @@ void TemplateManager::createRow(const OneTemplateInfo& info)
|
|
|
|
|
|
/* 添加固定的三个项 */
|
|
/* 添加固定的三个项 */
|
|
auto item2 = new QTableWidgetItem("预览");
|
|
auto item2 = new QTableWidgetItem("预览");
|
|
|
|
+ item2->setFlags(item0->flags() & ~Qt::ItemIsEditable);
|
|
item2->setData(m_roleChnID, info.channelInfo.ChannelID);
|
|
item2->setData(m_roleChnID, info.channelInfo.ChannelID);
|
|
item2->setData(m_roleTemplateName, info.templateName);
|
|
item2->setData(m_roleTemplateName, info.templateName);
|
|
item2->setForeground(QBrush("#438EFF"));
|
|
item2->setForeground(QBrush("#438EFF"));
|
|
ui->tableWidget->setItem(row, 2, item2);
|
|
ui->tableWidget->setItem(row, 2, item2);
|
|
|
|
|
|
auto item3 = new QTableWidgetItem("修改");
|
|
auto item3 = new QTableWidgetItem("修改");
|
|
|
|
+ item3->setFlags(item0->flags() & ~Qt::ItemIsEditable);
|
|
item3->setData(m_roleChnID, info.channelInfo.ChannelID);
|
|
item3->setData(m_roleChnID, info.channelInfo.ChannelID);
|
|
item3->setData(m_roleTemplateName, info.templateName);
|
|
item3->setData(m_roleTemplateName, info.templateName);
|
|
item3->setForeground(QBrush("#438EFF"));
|
|
item3->setForeground(QBrush("#438EFF"));
|
|
ui->tableWidget->setItem(row, 3, item3);
|
|
ui->tableWidget->setItem(row, 3, item3);
|
|
|
|
|
|
auto item4 = new QTableWidgetItem("删除");
|
|
auto item4 = new QTableWidgetItem("删除");
|
|
|
|
+ item4->setFlags(item0->flags() & ~Qt::ItemIsEditable);
|
|
item4->setData(m_roleChnID, info.channelInfo.ChannelID);
|
|
item4->setData(m_roleChnID, info.channelInfo.ChannelID);
|
|
item4->setData(m_roleTemplateName, info.templateName);
|
|
item4->setData(m_roleTemplateName, info.templateName);
|
|
item4->setForeground(QBrush("#438EFF"));
|
|
item4->setForeground(QBrush("#438EFF"));
|
|
@@ -335,7 +375,7 @@ void TemplateManager::deleteTemplate(QTableWidgetItem* item)
|
|
m_listDeleteTemplate.append(info);
|
|
m_listDeleteTemplate.append(info);
|
|
/* 删除当前行 */
|
|
/* 删除当前行 */
|
|
ui->tableWidget->removeRow(item->row());
|
|
ui->tableWidget->removeRow(item->row());
|
|
-
|
|
|
|
|
|
+ m_listTemplate.removeOne(info);
|
|
}
|
|
}
|
|
|
|
|
|
/* 预览 */
|
|
/* 预览 */
|