159 lines
4.0 KiB
C++
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();
|
|
//}
|
|
|
|
|