No export of TVDRKB if diff field is empty

This commit is contained in:
Magne Sjaastad 2016-10-26 07:31:43 +02:00
parent 5302655dc0
commit 38921b593d
3 changed files with 25 additions and 8 deletions

View File

@ -30,7 +30,7 @@ RicExportToLasFileObj::RicExportToLasFileObj(void)
{
CAF_PDM_InitObject("RicExportToLasFileObj", "", "", "");
CAF_PDM_InitField(&tvdrkbOffset, "tvdrkbOffset", 0.0, "TVDRKB offset (RKB - MSL) [m]", "", "", "");
CAF_PDM_InitField(&tvdrkbOffset, "tvdrkbOffset", QString(""), "TVDRKB offset (RKB - MSL) [m]", "", "", "");
}
CAF_PDM_SOURCE_INIT(RicExportToLasFileResampleUi, "RicExportToLasFileResampleUi");
@ -73,7 +73,12 @@ void RicExportToLasFileResampleUi::tvdrkbDiffForWellPaths(std::vector<double>* r
{
for (size_t i = 0; i < m_tvdrkbOffsets.size(); i++)
{
rkbDiffs->push_back(m_tvdrkbOffsets()[i]->tvdrkbOffset);
double value = HUGE_VAL;
if (!m_tvdrkbOffsets()[i]->tvdrkbOffset().isEmpty())
{
value = m_tvdrkbOffsets()[i]->tvdrkbOffset().toDouble();
}
rkbDiffs->push_back(value);
}
}
@ -85,11 +90,16 @@ void RicExportToLasFileResampleUi::setRkbDiffs(const std::vector<QString>& wellN
for (size_t i = 0; i < wellNames.size(); i++)
{
RicExportToLasFileObj* obj = new RicExportToLasFileObj;
obj->tvdrkbOffset = rkbDiffs[i];
if (rkbDiffs[i] != HUGE_VAL)
{
obj->tvdrkbOffset = QString::number(rkbDiffs[i]);
}
obj->tvdrkbOffset.uiCapability()->setUiName(wellNames[i]);
m_tvdrkbOffsets.push_back(obj);
}
updateFieldVisibility();
}
//--------------------------------------------------------------------------------------------------
@ -138,6 +148,10 @@ void RicExportToLasFileResampleUi::updateFieldVisibility()
resampleInterval.uiCapability()->setUiReadOnly(true);
}
for (RicExportToLasFileObj* obj : m_tvdrkbOffsets)
{
obj->tvdrkbOffset.uiCapability()->setUiReadOnly(!exportTvdrkb);
}
}
//--------------------------------------------------------------------------------------------------
@ -158,7 +172,7 @@ void RicExportToLasFileResampleUi::defineUiOrdering(QString uiConfigName, caf::P
caf::PdmUiGroup* tvdrkbGroup = uiOrdering.addNewGroup("TVDRKB");
tvdrkbGroup->add(&exportTvdrkb);
caf::PdmUiGroup* group = tvdrkbGroup->addNewGroup("Difference between TVDRKB and TVDMSL");
caf::PdmUiGroup* group = tvdrkbGroup->addNewGroup("Difference between TVDRKB and TVDMSL, clear diff for no export");
for (auto& obj : m_tvdrkbOffsets)
{
group->add(&obj->tvdrkbOffset);

View File

@ -33,7 +33,7 @@ class RicExportToLasFileObj : public caf::PdmObject
public:
RicExportToLasFileObj(void);
caf::PdmField<double> tvdrkbOffset;
caf::PdmField<QString> tvdrkbOffset;
};

View File

@ -557,7 +557,7 @@ double RigLasFileExporter::rkbDiff(RimWellLogCurve* curve)
return extractionCurve->rkbDiff();
}
return -1.0;
return HUGE_VAL;
}
//--------------------------------------------------------------------------------------------------
@ -569,8 +569,11 @@ void RigLasFileExporter::applyUserDefinedRkbOffsets(std::vector<SingleLasFileMet
{
for (size_t i = 0; i < m_userDefinedRkbOffsets.size(); i++)
{
lasFileDescriptions->at(i).setRkbDiff(m_userDefinedRkbOffsets[i]);
lasFileDescriptions->at(i).enableTvdrkbExport();
if (m_userDefinedRkbOffsets[i] != HUGE_VAL)
{
lasFileDescriptions->at(i).setRkbDiff(m_userDefinedRkbOffsets[i]);
lasFileDescriptions->at(i).enableTvdrkbExport();
}
}
}
}