mirror of
https://github.com/OPM/ResInsight.git
synced 2025-02-10 07:26:03 -06:00
#4117 Improve time step names for Grid Cross plot categorisation
This commit is contained in:
parent
1b9a0fe5a7
commit
1e994ac8b8
@ -338,3 +338,58 @@ QString RiaQDateTimeTools::toStringUsingApplicationLocale(const QDateTime& dt, c
|
||||
|
||||
return defaultApplicationLocale.toString(dt, format);
|
||||
}
|
||||
|
||||
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
///
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
QString RiaQDateTimeTools::createTimeFormatStringFromDates(const std::vector<QDateTime>& dates)
|
||||
{
|
||||
bool hasHoursAndMinutesInTimesteps = false;
|
||||
bool hasSecondsInTimesteps = false;
|
||||
bool hasMillisecondsInTimesteps = false;
|
||||
|
||||
for (size_t i = 0; i < dates.size(); i++)
|
||||
{
|
||||
if (dates[i].time().msec() != 0.0)
|
||||
{
|
||||
hasMillisecondsInTimesteps = true;
|
||||
hasSecondsInTimesteps = true;
|
||||
hasHoursAndMinutesInTimesteps = true;
|
||||
break;
|
||||
}
|
||||
else if (dates[i].time().second() != 0.0)
|
||||
{
|
||||
hasHoursAndMinutesInTimesteps = true;
|
||||
hasSecondsInTimesteps = true;
|
||||
}
|
||||
else if (dates[i].time().hour() != 0.0 || dates[i].time().minute() != 0.0)
|
||||
{
|
||||
hasHoursAndMinutesInTimesteps = true;
|
||||
}
|
||||
}
|
||||
|
||||
QString formatString = dateFormatString();
|
||||
if (hasHoursAndMinutesInTimesteps)
|
||||
{
|
||||
formatString += " - hh:mm";
|
||||
if (hasSecondsInTimesteps)
|
||||
{
|
||||
formatString += ":ss";
|
||||
if (hasMillisecondsInTimesteps)
|
||||
{
|
||||
formatString += ".zzz";
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
return formatString;
|
||||
}
|
||||
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
///
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
QString RiaQDateTimeTools::dateFormatString()
|
||||
{
|
||||
return "dd.MMM yyyy";
|
||||
}
|
@ -101,6 +101,9 @@ public:
|
||||
// settings on local machine. Required for stable regression testing.
|
||||
static QString toStringUsingApplicationLocale(const QDateTime& dt, const QString& format);
|
||||
|
||||
static QString createTimeFormatStringFromDates(const std::vector<QDateTime>& dates);
|
||||
static QString dateFormatString();
|
||||
|
||||
private:
|
||||
static quint64 secondsInDay();
|
||||
static quint64 secondsInYear();
|
||||
|
@ -24,13 +24,13 @@
|
||||
#include "RiaApplication.h"
|
||||
#include "RiaFilePathTools.h"
|
||||
#include "RiaLogging.h"
|
||||
#include "RiaQDateTimeTools.h"
|
||||
|
||||
#include "RifReaderEclipseSummary.h"
|
||||
#include "RifEclipseSummaryTools.h"
|
||||
|
||||
#include "RimEclipseView.h"
|
||||
#include "Rim3dOverlayInfoConfig.h"
|
||||
#include "RimTools.h"
|
||||
|
||||
#include "RiuPlotMainWindow.h"
|
||||
#include "RiuTools.h"
|
||||
@ -484,9 +484,9 @@ void RicSummaryCaseRestartDialog::appendFileInfoToGridLayout(QGridLayout* gridLa
|
||||
CVF_ASSERT(gridLayout);
|
||||
|
||||
QDateTime startDate = QDateTime::fromTime_t(fileInfo.startDate);
|
||||
QString startDateString = startDate.toString(RimTools::dateFormatString());
|
||||
QString startDateString = startDate.toString(RiaQDateTimeTools::dateFormatString());
|
||||
QDateTime endDate = QDateTime::fromTime_t(fileInfo.endDate);
|
||||
QString endDateString = endDate.toString(RimTools::dateFormatString());
|
||||
QString endDateString = endDate.toString(RiaQDateTimeTools::dateFormatString());
|
||||
int rowCount = gridLayout->rowCount();
|
||||
|
||||
QLabel* fileNameLabel = new QLabel();
|
||||
|
@ -32,7 +32,6 @@
|
||||
#include "RimEclipseResultCase.h"
|
||||
#include "RimOilField.h"
|
||||
#include "RimProject.h"
|
||||
#include "RimTools.h"
|
||||
#include "RimWellLogExtractionCurve.h"
|
||||
#include "RimWellLogFile.h"
|
||||
#include "RimWellLogFileChannel.h"
|
||||
@ -937,7 +936,7 @@ void RimWellPlotTools::calculateValueOptionsForTimeSteps(
|
||||
{
|
||||
allTimeSteps.push_back(timeStepPair.first);
|
||||
}
|
||||
dateFormatString = RimTools::createTimeFormatStringFromDates(allTimeSteps);
|
||||
dateFormatString = RiaQDateTimeTools::createTimeFormatStringFromDates(allTimeSteps);
|
||||
}
|
||||
|
||||
for (const std::pair<QDateTime, std::set<RifDataSourceForRftPlt>>& timeStepPair : timestepsToShowWithSources)
|
||||
|
@ -43,7 +43,6 @@
|
||||
#include "RimOilField.h"
|
||||
#include "RimProject.h"
|
||||
#include "RimSummaryCurveAppearanceCalculator.h"
|
||||
#include "RimTools.h"
|
||||
#include "RimWellFlowRateCurve.h"
|
||||
#include "RimWellLogExtractionCurve.h"
|
||||
#include "RimWellLogFile.h"
|
||||
@ -510,7 +509,7 @@ void RimWellPltPlot::syncCurvesFromUiSelection()
|
||||
{
|
||||
allTimeSteps.push_back(curveDefToAdd.timeStep());
|
||||
}
|
||||
dateFormatString = RimTools::createTimeFormatStringFromDates(allTimeSteps);
|
||||
dateFormatString = RiaQDateTimeTools::createTimeFormatStringFromDates(allTimeSteps);
|
||||
}
|
||||
|
||||
// Add curves
|
||||
|
@ -293,12 +293,12 @@ void RimGridCrossPlotCurveSet::defineUiOrdering(QString uiConfigName, caf::PdmUi
|
||||
{
|
||||
uiOrdering.add(&m_timeStep);
|
||||
uiOrdering.add(&m_categorization);
|
||||
uiOrdering.add(&m_categoryBinCount);
|
||||
|
||||
if (m_categorization() == RESULT_CATEGORIZATION)
|
||||
{
|
||||
caf::PdmUiGroup* categoryGroup = uiOrdering.addNewGroup("Categorization Property");
|
||||
m_categoryProperty->uiOrdering(uiConfigName, *categoryGroup);
|
||||
categoryGroup->add(&m_categoryBinCount);
|
||||
}
|
||||
|
||||
caf::PdmUiGroup* xAxisGroup = uiOrdering.addNewGroup("X-Axis Property");
|
||||
|
@ -57,7 +57,6 @@
|
||||
#include "RimGeoMechView.h"
|
||||
#include "RimReservoirCellResultsStorage.h"
|
||||
#include "RimSimWellInViewCollection.h"
|
||||
#include "RimTools.h"
|
||||
|
||||
#include "RiuViewer.h"
|
||||
|
||||
@ -1092,7 +1091,7 @@ QString Rim3dOverlayInfoConfig::timeStepText(RimEclipseView* eclipseView)
|
||||
QString dateTimeString;
|
||||
if (currTimeStepIndex >= 0 && currTimeStepIndex < (int)timeSteps.size())
|
||||
{
|
||||
QString dateFormat = RimTools::createTimeFormatStringFromDates(timeSteps);
|
||||
QString dateFormat = RiaQDateTimeTools::createTimeFormatStringFromDates(timeSteps);
|
||||
|
||||
QString dateString = RiaQDateTimeTools::toStringUsingApplicationLocale(timeSteps[currTimeStepIndex], dateFormat);
|
||||
|
||||
|
@ -124,7 +124,7 @@ QString Rim3dWellLogRftCurve::createAutoName() const
|
||||
}
|
||||
if (!m_timeStep().isNull())
|
||||
{
|
||||
name.push_back(m_timeStep().toString(RimTools::dateFormatString()));
|
||||
name.push_back(m_timeStep().toString(RiaQDateTimeTools::dateFormatString()));
|
||||
}
|
||||
|
||||
return name.join(", ");
|
||||
|
@ -55,7 +55,6 @@
|
||||
#include "RimReloadCaseTools.h"
|
||||
#include "RimReservoirCellResultsStorage.h"
|
||||
#include "RimStimPlanColors.h"
|
||||
#include "RimTools.h"
|
||||
#include "RimWellLogPlotCollection.h"
|
||||
#include "RimWellPath.h"
|
||||
#include "RimWellPathCollection.h"
|
||||
@ -588,7 +587,7 @@ void RimEclipseCase::createTimeStepFormatString()
|
||||
{
|
||||
std::vector<QDateTime> timeStepDates = this->timeStepDates();
|
||||
|
||||
m_timeStepFormatString = RimTools::createTimeFormatStringFromDates(timeStepDates);
|
||||
m_timeStepFormatString = RiaQDateTimeTools::createTimeFormatStringFromDates(timeStepDates);
|
||||
}
|
||||
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
|
@ -21,6 +21,7 @@
|
||||
#include "RimEclipseResultDefinition.h"
|
||||
|
||||
#include "RiaLogging.h"
|
||||
#include "RiaQDateTimeTools.h"
|
||||
|
||||
#include "RigActiveCellInfo.h"
|
||||
#include "RigCaseCellResultsData.h"
|
||||
@ -46,7 +47,6 @@
|
||||
#include "RimPlotCurve.h"
|
||||
#include "RimProject.h"
|
||||
#include "RimReservoirCellResultsStorage.h"
|
||||
#include "RimTools.h"
|
||||
#include "RimViewLinker.h"
|
||||
#include "RimWellLogExtractionCurve.h"
|
||||
|
||||
@ -679,7 +679,7 @@ QList<caf::PdmOptionItemInfo> RimEclipseResultDefinition::calculateValueOptions(
|
||||
std::vector<QDateTime> stepDates = baseCase->timeStepDates();
|
||||
for (size_t stepIdx = 0; stepIdx < stepDates.size(); ++stepIdx)
|
||||
{
|
||||
QString displayString = stepDates[stepIdx].toString(RimTools::dateFormatString());
|
||||
QString displayString = stepDates[stepIdx].toString(RiaQDateTimeTools::dateFormatString());
|
||||
displayString += QString(" (#%1)").arg(stepIdx);
|
||||
|
||||
options.push_back(caf::PdmOptionItemInfo(displayString, static_cast<int>(stepIdx)));
|
||||
@ -859,7 +859,7 @@ QString RimEclipseResultDefinition::diffResultUiName() const
|
||||
{
|
||||
stepDates = gridCellResults->timeStepDates();
|
||||
diffResult += QString("<b>Base Time Step</b>: %1")
|
||||
.arg(stepDates[m_timeLapseBaseTimestep()].toString(RimTools::dateFormatString()));
|
||||
.arg(stepDates[m_timeLapseBaseTimestep()].toString(RiaQDateTimeTools::dateFormatString()));
|
||||
}
|
||||
}
|
||||
if (isCaseDiffResult())
|
||||
|
@ -28,7 +28,6 @@
|
||||
#include "RimGeoMechCase.h"
|
||||
#include "RimReloadCaseTools.h"
|
||||
#include "RimReservoirCellResultsStorage.h"
|
||||
#include "RimTools.h"
|
||||
|
||||
#include "cafPdmUiLineEditor.h"
|
||||
#include "cafPdmUiListEditor.h"
|
||||
@ -103,7 +102,7 @@ void RimTimeStepFilter::clearFilteredTimeSteps()
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
void RimTimeStepFilter::setTimeStepsFromFile(const std::vector<QDateTime>& timeSteps)
|
||||
{
|
||||
m_dateFormat = RimTools::createTimeFormatStringFromDates(timeSteps);
|
||||
m_dateFormat = RiaQDateTimeTools::createTimeFormatStringFromDates(timeSteps);
|
||||
|
||||
std::vector<QString> timeStepStrings;
|
||||
for (const QDateTime& date : timeSteps)
|
||||
@ -136,7 +135,7 @@ void RimTimeStepFilter::setTimeStepsFromFile(const std::vector<std::pair<QString
|
||||
validDates.push_back(stringDatePair.second);
|
||||
}
|
||||
}
|
||||
m_dateFormat = RimTools::createTimeFormatStringFromDates(validDates);
|
||||
m_dateFormat = RiaQDateTimeTools::createTimeFormatStringFromDates(validDates);
|
||||
|
||||
std::vector<QString> timeStepStrings;
|
||||
for (auto stringDatePair : timeSteps)
|
||||
|
@ -304,60 +304,6 @@ void RimTools::caseOptionItems(QList<caf::PdmOptionItemInfo>* options)
|
||||
}
|
||||
}
|
||||
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
///
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
QString RimTools::createTimeFormatStringFromDates(const std::vector<QDateTime>& dates)
|
||||
{
|
||||
bool hasHoursAndMinutesInTimesteps = false;
|
||||
bool hasSecondsInTimesteps = false;
|
||||
bool hasMillisecondsInTimesteps = false;
|
||||
|
||||
for (size_t i = 0; i < dates.size(); i++)
|
||||
{
|
||||
if (dates[i].time().msec() != 0.0)
|
||||
{
|
||||
hasMillisecondsInTimesteps = true;
|
||||
hasSecondsInTimesteps = true;
|
||||
hasHoursAndMinutesInTimesteps = true;
|
||||
break;
|
||||
}
|
||||
else if (dates[i].time().second() != 0.0)
|
||||
{
|
||||
hasHoursAndMinutesInTimesteps = true;
|
||||
hasSecondsInTimesteps = true;
|
||||
}
|
||||
else if (dates[i].time().hour() != 0.0 || dates[i].time().minute() != 0.0)
|
||||
{
|
||||
hasHoursAndMinutesInTimesteps = true;
|
||||
}
|
||||
}
|
||||
|
||||
QString formatString = dateFormatString();
|
||||
if (hasHoursAndMinutesInTimesteps)
|
||||
{
|
||||
formatString += " - hh:mm";
|
||||
if (hasSecondsInTimesteps)
|
||||
{
|
||||
formatString += ":ss";
|
||||
if (hasMillisecondsInTimesteps)
|
||||
{
|
||||
formatString += ".zzz";
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
return formatString;
|
||||
}
|
||||
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
///
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
QString RimTools::dateFormatString()
|
||||
{
|
||||
return "dd.MMM yyyy";
|
||||
}
|
||||
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
///
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
|
@ -54,9 +54,5 @@ public:
|
||||
static void wellPathWithFormations(std::vector<RimWellPath*>* wellPaths);
|
||||
static void caseOptionItems(QList<caf::PdmOptionItemInfo>* options);
|
||||
|
||||
static QString createTimeFormatStringFromDates(const std::vector<QDateTime>& dates);
|
||||
|
||||
static QString dateFormatString();
|
||||
|
||||
static RimWellPathCollection* wellPathCollection();
|
||||
};
|
||||
|
@ -334,7 +334,7 @@ void RimWellLogFile::defineEditorAttribute(const caf::PdmFieldHandle* field, QSt
|
||||
caf::PdmUiDateEditorAttribute* attrib = dynamic_cast<caf::PdmUiDateEditorAttribute*> (attribute);
|
||||
if (attrib != nullptr)
|
||||
{
|
||||
attrib->dateFormat = RimTools::dateFormatString();
|
||||
attrib->dateFormat = RiaQDateTimeTools::dateFormatString();
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -268,7 +268,7 @@ QString RimWellLogRftCurve::createCurveAutoName()
|
||||
}
|
||||
if ( !m_timeStep().isNull())
|
||||
{
|
||||
name.push_back(m_timeStep().toString(RimTools::dateFormatString()));
|
||||
name.push_back(m_timeStep().toString(RiaQDateTimeTools::dateFormatString()));
|
||||
}
|
||||
|
||||
return name.join(", ");
|
||||
|
@ -991,7 +991,7 @@ void RimSummaryCurve::fieldChangedByUi(const caf::PdmFieldHandle* changedField,
|
||||
timeSteps.push_back(first);
|
||||
timeSteps.push_back(last);
|
||||
|
||||
QString formatString = RimTools::createTimeFormatStringFromDates(timeSteps);
|
||||
QString formatString = RiaQDateTimeTools::createTimeFormatStringFromDates(timeSteps);
|
||||
|
||||
description += QString("Time step range for X : '%1' - '%2'")
|
||||
.arg(first.toString(formatString))
|
||||
@ -1006,7 +1006,7 @@ void RimSummaryCurve::fieldChangedByUi(const caf::PdmFieldHandle* changedField,
|
||||
timeSteps.push_back(first);
|
||||
timeSteps.push_back(last);
|
||||
|
||||
QString formatString = RimTools::createTimeFormatStringFromDates(timeSteps);
|
||||
QString formatString = RiaQDateTimeTools::createTimeFormatStringFromDates(timeSteps);
|
||||
|
||||
description += "\n";
|
||||
description += QString("Time step range for Y : '%1' - '%2'")
|
||||
|
@ -17,6 +17,8 @@
|
||||
/////////////////////////////////////////////////////////////////////////////////
|
||||
#include "RigEclipseCrossPlotDataExtractor.h"
|
||||
|
||||
#include "RiaQDateTimeTools.h"
|
||||
|
||||
#include "RigActiveCellInfo.h"
|
||||
#include "RigActiveCellsResultAccessor.h"
|
||||
#include "RigCaseCellResultsData.h"
|
||||
@ -132,6 +134,7 @@ RigEclipseCrossPlotResult RigEclipseCrossPlotDataExtractor::extract(RigEclipseCa
|
||||
}
|
||||
|
||||
std::vector<QDateTime> timeStepDates = resultData->timeStepDates();
|
||||
QString timeFormatString = RiaQDateTimeTools::createTimeFormatStringFromDates(timeStepDates);
|
||||
|
||||
for (const auto& sampleCategory : categorySamplesMap)
|
||||
{
|
||||
@ -140,7 +143,7 @@ RigEclipseCrossPlotResult RigEclipseCrossPlotDataExtractor::extract(RigEclipseCa
|
||||
{
|
||||
if (sampleCategory.first < timeStepDates.size())
|
||||
{
|
||||
categoryName = timeStepDates[sampleCategory.first].toString(Qt::ISODate);
|
||||
categoryName = RiaQDateTimeTools::toStringUsingApplicationLocale(timeStepDates[sampleCategory.first], timeFormatString);
|
||||
}
|
||||
}
|
||||
else if (categorizationType == FORMATION_CATEGORIZATION && activeFormationNames)
|
||||
|
Loading…
Reference in New Issue
Block a user