HM-SPMS/product/src/gui/plugin/ISCSTrendCurves/CTrendEditDialog.cpp

159 lines
4.0 KiB
C++

#include <QMessageBox>
#include "CTrendEditDialog.h"
#include "ui_CTrendEditDialog.h"
#include "CTrendEditModel.h"
#include "GraphTool/Retriever/CRetriever.h"
#include "pub_utility_api/FileUtil.h"
using namespace kbd_dbms;
CTrendEditDialog::CTrendEditDialog(QWidget *parent) :
QDialog(parent),
ui(new Ui::CTrendEditDialog),
m_graph(nullptr)
// m_pRretriever(nullptr)
{
ui->setupUi(this);
ui->m_retrieverWidget->setWindowFlags(Qt::Widget);
//setWindowModality(Qt::WindowModal);
initialize();
connect(ui->addCurve, SIGNAL(clicked()), this, SLOT(slot_addCureve()));
connect(ui->removeCurve, SIGNAL(clicked()), this, SLOT(slot_removeCureve()));
connect(ui->clearCurve, SIGNAL(clicked()), this, SLOT(slot_clearCureve()));
connect(ui->ok, SIGNAL(clicked()), this, SLOT(slot_updateTrend()));
connect(ui->cancle, SIGNAL(clicked()), this, SLOT(close()));
}
CTrendEditDialog::~CTrendEditDialog()
{
// if(m_pRretriever != NULL)
// {
// delete m_pRretriever;
// }
// m_pRretriever = NULL;
delete ui;
}
void CTrendEditDialog::initialize()
{
initTrendView();
// m_pRretriever = new CRetriever(this);
}
void CTrendEditDialog::initTrendView()
{
m_model = new CTrendEditModel(this);
ui->trendView->setModel(m_model);
ui->trendView->horizontalHeader()->setStretchLastSection(true);
CTrendDelegate * delegate = new CTrendDelegate(this);
ui->trendView->setItemDelegate(delegate);
ui->trendView->setAlternatingRowColors(true);
ui->trendView->horizontalHeader()->setStretchLastSection(true);
ui->trendView->setSelectionBehavior(QAbstractItemView::SelectRows);
ui->trendView->setSelectionMode(QAbstractItemView::SingleSelection);
connect(ui->m_retrieverWidget, &CRetriever::itemTagTriggered, ui->trendView, &CTrendEditView::appendTagName);
}
void CTrendEditDialog::showEvent(QShowEvent *event)
{
QDialog::showEvent(event);
updateTrendViewColumnWidth();
}
void CTrendEditDialog::resizeEvent(QResizeEvent *event)
{
QDialog::resizeEvent(event);
updateTrendViewColumnWidth();
}
void CTrendEditDialog::updateTrendViewColumnWidth()
{
int nTrendViewWidth = ui->trendView->width();
ui->trendView->setColumnWidth(0, nTrendViewWidth / 3 * 2);
}
void CTrendEditDialog::setTrendGraph(CTrendGraph *graph)
{
if( Q_NULLPTR == graph )
{
return;
}
m_graph = graph;
m_model->setTrendCurves(m_graph->curves());
}
CTrendGraph *CTrendEditDialog::trendGraph() const
{
return m_graph;
}
void CTrendEditDialog::setValidLocation(QStringList &list)
{
ui->m_retrieverWidget->setValidLocation(list);
}
void CTrendEditDialog::setValidSubsystm(QStringList &list)
{
ui->m_retrieverWidget->setValidProfession(list);
}
void CTrendEditDialog::slot_updateTrend()
{
if(m_model->rowCount() == 0)
{
QMessageBox::warning(this, tr("警告"), tr("测点数量不允许为空!"));
return;
}
for(int nIndex(0); nIndex < m_model->rowCount(); ++nIndex)
{
if(m_model->curves().at(nIndex).tag == "")
{
QMessageBox::warning(this, tr("警告"), tr("测点名称不允许存在空值!"));
return;
}
}
if(nullptr == m_graph)
{
m_graph = new CTrendGraph();
}
m_graph->setCurves(m_model->curves());
accept();
}
void CTrendEditDialog::slot_addCureve()
{
m_model->addTrendCurve();
}
void CTrendEditDialog::slot_removeCureve()
{
if(!ui->trendView->currentIndex().isValid())
{
QMessageBox::information(this, tr("提示"), tr("当前未选中行!"));
return;
}
m_model->removeTrendCurve(ui->trendView->currentIndex().row());
}
void CTrendEditDialog::slot_clearCureve()
{
m_model->clearTrendCurves();
}
//void CTrendEditDialog::slot_showRetriever()
//{
// if(nullptr == m_pRretriever)
// {
// m_pRretriever = new CRetriever(this);
// }
// m_pRretriever->show();
//}