logplus/DataMgr/src/AddCompCurveDlg.cpp

169 lines
5.7 KiB
C++

#pragma warning(push,0)
// #include "Family.h"
#include <QMessageBox>
#include "AddCompCurveDlg.h"
#include "ui_AddCompCurve.h"
#include "CStringType.h"
#include "GeometryUtils.h"
#include <QTextStream>
#include "DataObject.h"
#pragma warning(pop)
using namespace pai::ios::welllog;
BEGIN_OSGGRAPHICS_NAMESPACE
CAddCompCurveDlg::CAddCompCurveDlg(QWidget * parent, Qt::WindowFlags flags)
: QDialog(parent,flags)
{
m_pUI = new Ui_AddCompCurve();
m_pUI->setupUi(this);
QObject::connect(m_pUI->okbtn, SIGNAL(clicked()), this, SLOT(slotSave()));
QObject::connect(m_pUI->cancelbtn, SIGNAL(clicked()), this, SLOT(slotCancel()));
QObject::connect(m_pUI->checkBox_Curve, SIGNAL(clicked()), this, SLOT(slotCheckCurve()));
QObject::connect(m_pUI->checkBox_Wave, SIGNAL(clicked()), this, SLOT(slotCheckWave()));
QObject::connect(m_pUI->pushButton_SelAll, SIGNAL(clicked()), this, SLOT(slotSelAll()));
QObject::connect(m_pUI->pushButton_NotSelAll, SIGNAL(clicked()), this, SLOT(slotNotSelAll()));
QObject::connect(m_pUI->pushButton_ReSel, SIGNAL(clicked()), this, SLOT(slotReverseSel()));
m_pUI->tableWidgetNewCurve->setColumnCount(5);
QStringList header;
header<<" 名称"<<"起始深度"<<"终止深度"<<"采样间隔"<<"元素个数";
m_pUI->tableWidgetNewCurve->setHorizontalHeaderLabels(header);
m_pUI->tableWidgetNewCurve->horizontalHeader()->setStretchLastSection(true);
//m_pUI->tableWidgetNewCurve->horizontalHeader()->setResizeMode(0, QHeaderView::ResizeToContents);
CurveCheck=1;WaveCheck=1;
}
void CAddCompCurveDlg::slotSave()
{
NewList.clear();
for(int i=0;i<m_pUI->tableWidgetNewCurve->rowCount();i++)
{
Qt::CheckState eState= m_pUI->tableWidgetNewCurve->item(i,0)->checkState();
if (eState==Qt::Unchecked)continue;
NewList.append(m_pUI->tableWidgetNewCurve->item(i,0)->text());
}
accept();
}
/**
*@brief 取消槽函数
*/
void CAddCompCurveDlg::slotCancel()
{
reject ();
}
void CAddCompCurveDlg::init()
{
m_pUI->checkBox_Curve->setCheckState(Qt::Checked);
m_pUI->checkBox_Wave->setCheckState(Qt::Checked);
RebrushList();
}
void CAddCompCurveDlg::slotCheckCurve()
{
CurveCheck=!CurveCheck;
RebrushList();
}
void CAddCompCurveDlg::slotCheckWave()
{
WaveCheck=!WaveCheck;
RebrushList();
}
void CAddCompCurveDlg::slotSelAll()
{
for(int i=0;i<m_pUI->tableWidgetNewCurve->rowCount();i++)
{
if(IsExist(m_pUI->tableWidgetNewCurve->item(i,0)->text()))continue;
m_pUI->tableWidgetNewCurve->item(i,0)->setCheckState(Qt::Checked);
}
}
void CAddCompCurveDlg::slotNotSelAll()
{
for(int i=0;i<m_pUI->tableWidgetNewCurve->rowCount();i++)m_pUI->tableWidgetNewCurve->item(i,0)->setCheckState(Qt::Unchecked);
}
void CAddCompCurveDlg::slotReverseSel()
{
for(int i=0;i<m_pUI->tableWidgetNewCurve->rowCount();i++)
{
if(IsExist(m_pUI->tableWidgetNewCurve->item(i,0)->text()))continue;
Qt::CheckState eState= m_pUI->tableWidgetNewCurve->item(i,0)->checkState();
if (eState==Qt::Checked)m_pUI->tableWidgetNewCurve->item(i,0)->setCheckState(Qt::Unchecked);
else m_pUI->tableWidgetNewCurve->item(i,0)->setCheckState(Qt::Checked);
}
}
bool CAddCompCurveDlg::IsExist(QString Name)
{
foreach(QString name, OldList)
{
if(Name==name)
{
return 1;
break;
}
}
return 0;
}
void CAddCompCurveDlg::RebrushList()
{
m_pUI->tableWidgetNewCurve->clearContents();
CMemRdWt *mrw=new CMemRdWt();
mrw->Open(FileName.toStdString().c_str(),CSlfIO::modeRead);
int ObjectNumber=mrw->GetObjectCount();
int CurveCount=0,WaveCount=0;
m_pUI->tableWidgetNewCurve->setRowCount(ObjectNumber);
char Name[200];
int row=0;
for(int i=0;i<ObjectNumber;i++)
{
if(mrw->GetObjectStatus(i)!=OBJECT_NORMAL)
{
continue;
}
mrw->GetObjectName(i,Name);
short Attribute,SubAttribute;
Attribute=mrw->GetObjectType(i);
if(Attribute==CURVE_OBJECT)
{
if(!CurveCheck)continue;
Slf_CURVE cInfo;
int index=mrw->OpenCurve(Name);
if(index<0)continue;
mrw->GetCurveInfo(index,&cInfo);
m_pUI->tableWidgetNewCurve->setItem(row,0,new QTableWidgetItem(QString(QLatin1String(cInfo.Name))));
m_pUI->tableWidgetNewCurve->setItem(row,1,new QTableWidgetItem(QString::number(cInfo.StartDepth)));
m_pUI->tableWidgetNewCurve->setItem(row,2,new QTableWidgetItem(QString::number(cInfo.EndDepth)));
m_pUI->tableWidgetNewCurve->setItem(row,3,new QTableWidgetItem(QString::number(cInfo.DepLevel)));
m_pUI->tableWidgetNewCurve->setItem(row,4,new QTableWidgetItem("1"));
if(IsExist(QString(QLatin1String(cInfo.Name))))
{
m_pUI->tableWidgetNewCurve->item(row,0)->setFlags(Qt::NoItemFlags);
m_pUI->tableWidgetNewCurve->item(row,0)->setCheckState(Qt::Unchecked);
}
else m_pUI->tableWidgetNewCurve->item(row,0)->setCheckState(Qt::Checked);
}
else if(Attribute==WAVE_OBJECT)
{
if(!WaveCheck)continue;
Slf_WAVE cInfo;
int index=mrw->OpenWave(Name);
if(index<0)continue;
mrw->GetWaveInfo(index,&cInfo);
m_pUI->tableWidgetNewCurve->setItem(row,0,new QTableWidgetItem(QString(QLatin1String(cInfo.Name))));
m_pUI->tableWidgetNewCurve->setItem(row,1,new QTableWidgetItem(QString::number(cInfo.StartDepth)));
m_pUI->tableWidgetNewCurve->setItem(row,2,new QTableWidgetItem(QString::number(cInfo.EndDepth)));
m_pUI->tableWidgetNewCurve->setItem(row,3,new QTableWidgetItem(QString::number(cInfo.DepLevel)));
m_pUI->tableWidgetNewCurve->setItem(row,4,new QTableWidgetItem(QString::number(cInfo.TimeSamples)));
if(IsExist(QString(QLatin1String(cInfo.Name))))
{
m_pUI->tableWidgetNewCurve->item(row,0)->setFlags(Qt::NoItemFlags);
m_pUI->tableWidgetNewCurve->item(row,0)->setCheckState(Qt::Unchecked);
}
else m_pUI->tableWidgetNewCurve->item(row,0)->setCheckState(Qt::Checked);
}
else continue;
row++;
}
delete mrw;
m_pUI->tableWidgetNewCurve->setRowCount(row);
}
END_OSGGRAPHICS_NAMESPACE