mirror of
https://github.com/OPM/ResInsight.git
synced 2025-02-25 18:55:39 -06:00
#3103 Make grid lines match major and minor interval and make the grid lines optional
This commit is contained in:
parent
8c445388b8
commit
707a7a91e6
@ -1020,7 +1020,7 @@ void RimWellPltPlot::defineUiOrdering(QString uiConfigName, caf::PdmUiOrdering&
|
||||
|
||||
m_wellLogPlot->uiOrderingForPlotSettings(*legendAndAxisGroup);
|
||||
|
||||
track->uiOrderingForVisibleXRange(*legendAndAxisGroup);
|
||||
track->uiOrderingForXAxisSettings(*legendAndAxisGroup);
|
||||
|
||||
m_wellLogPlot->uiOrderingForDepthAxis(*legendAndAxisGroup);
|
||||
}
|
||||
|
@ -783,7 +783,7 @@ void RimWellRftPlot::defineUiOrdering(QString uiConfigName, caf::PdmUiOrdering&
|
||||
|
||||
m_wellLogPlot->uiOrderingForPlotSettings(*legendAndAxisGroup);
|
||||
|
||||
track->uiOrderingForVisibleXRange(*legendAndAxisGroup);
|
||||
track->uiOrderingForXAxisSettings(*legendAndAxisGroup);
|
||||
|
||||
m_wellLogPlot->uiOrderingForDepthAxis(*legendAndAxisGroup);
|
||||
}
|
||||
|
@ -115,6 +115,15 @@ namespace caf
|
||||
addItem(RimWellLogTrack::EXTRA_WIDE_TRACK, "EXTRA_WIDE_TRACK", "Extra wide");
|
||||
setDefault(RimWellLogTrack::NORMAL_TRACK);
|
||||
}
|
||||
|
||||
template<>
|
||||
void AppEnum< RimWellLogTrack::GridLines >::setUp()
|
||||
{
|
||||
addItem(RimWellLogTrack::GRID_X_NONE, "GRID_X_NONE", "No Gridlines");
|
||||
addItem(RimWellLogTrack::GRID_X_MAJOR, "GRID_X_MAJOR", "Major Only");
|
||||
addItem(RimWellLogTrack::GRID_X_MAJOR_AND_MINOR, "GRID_X_MAJOR_AND_MINOR", "Major and Minor");
|
||||
setDefault(RimWellLogTrack::GRID_X_MAJOR);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@ -142,6 +151,8 @@ RimWellLogTrack::RimWellLogTrack()
|
||||
|
||||
CAF_PDM_InitField(&m_isLogarithmicScaleEnabled, "LogarithmicScaleX", false, "Logarithmic Scale", "", "", "");
|
||||
|
||||
CAF_PDM_InitFieldNoDefault(&m_showXGridLines, "ShowXGridLines", "Show Grid Lines", "", "", "");
|
||||
|
||||
CAF_PDM_InitField(&m_showFormations, "ShowFormations", false, "Show", "", "", "");
|
||||
|
||||
CAF_PDM_InitFieldNoDefault(&m_formationSource, "FormationSource", "Source", "", "", "");
|
||||
@ -242,6 +253,11 @@ void RimWellLogTrack::fieldChangedByUi(const caf::PdmFieldHandle* changedField,
|
||||
updateAxisAndGridTickIntervals();
|
||||
m_wellLogTrackPlotWidget->replot();
|
||||
}
|
||||
else if (changedField == &m_showXGridLines)
|
||||
{
|
||||
updateAxisAndGridTickIntervals();
|
||||
m_wellLogTrackPlotWidget->replot();
|
||||
}
|
||||
else if (changedField == &m_visibleXRangeMin || changedField == &m_visibleXRangeMax)
|
||||
{
|
||||
m_wellLogTrackPlotWidget->setXRange(m_visibleXRangeMin, m_visibleXRangeMax);
|
||||
@ -417,6 +433,18 @@ void RimWellLogTrack::updateAxisAndGridTickIntervals()
|
||||
|
||||
m_wellLogTrackPlotWidget->setAxisMaxMajor(QwtPlot::xTop, xMajorTickIntervals);
|
||||
m_wellLogTrackPlotWidget->setAxisMaxMinor(QwtPlot::xTop, xMinorTickIntervals);
|
||||
switch (m_showXGridLines())
|
||||
{
|
||||
case GRID_X_NONE:
|
||||
m_wellLogTrackPlotWidget->enableGridLines(false, false);
|
||||
break;
|
||||
case GRID_X_MAJOR:
|
||||
m_wellLogTrackPlotWidget->enableGridLines(true, false);
|
||||
break;
|
||||
case GRID_X_MAJOR_AND_MINOR:
|
||||
m_wellLogTrackPlotWidget->enableGridLines(true, true);
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
@ -850,29 +878,43 @@ void RimWellLogTrack::calculateXZoomRange()
|
||||
double minValue = HUGE_VAL;
|
||||
double maxValue = -HUGE_VAL;
|
||||
|
||||
size_t visibleCurves = 0u;
|
||||
for (size_t cIdx = 0; cIdx < curves.size(); cIdx++)
|
||||
{
|
||||
double minCurveValue = HUGE_VAL;
|
||||
double maxCurveValue = -HUGE_VAL;
|
||||
|
||||
if (curves[cIdx]->isCurveVisible() && curves[cIdx]->valueRange(&minCurveValue, &maxCurveValue))
|
||||
if (curves[cIdx]->isCurveVisible())
|
||||
{
|
||||
if (minCurveValue < minValue)
|
||||
visibleCurves++;
|
||||
if (curves[cIdx]->valueRange(&minCurveValue, &maxCurveValue))
|
||||
{
|
||||
minValue = minCurveValue;
|
||||
}
|
||||
if (minCurveValue < minValue)
|
||||
{
|
||||
minValue = minCurveValue;
|
||||
}
|
||||
|
||||
if (maxCurveValue > maxValue)
|
||||
{
|
||||
maxValue = maxCurveValue;
|
||||
if (maxCurveValue > maxValue)
|
||||
{
|
||||
maxValue = maxCurveValue;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
if (minValue == HUGE_VAL)
|
||||
{
|
||||
minValue = RI_LOGPLOTTRACK_MINX_DEFAULT;
|
||||
maxValue = RI_LOGPLOTTRACK_MAXX_DEFAULT;
|
||||
if (visibleCurves)
|
||||
{
|
||||
minValue = RI_LOGPLOTTRACK_MINX_DEFAULT;
|
||||
maxValue = RI_LOGPLOTTRACK_MAXX_DEFAULT;
|
||||
}
|
||||
else
|
||||
{
|
||||
// Empty axis when there are no curves
|
||||
minValue = 0;
|
||||
maxValue = 0;
|
||||
}
|
||||
}
|
||||
|
||||
m_visibleXRangeMin = minValue;
|
||||
@ -990,7 +1032,7 @@ void RimWellLogTrack::defineUiOrdering(QString uiConfigName, caf::PdmUiOrdering&
|
||||
}
|
||||
}
|
||||
|
||||
uiOrderingForVisibleXRange(uiOrdering);
|
||||
uiOrderingForXAxisSettings(uiOrdering);
|
||||
|
||||
caf::PdmUiGroup* trackSettingsGroup = uiOrdering.addNewGroup("Track Settings");
|
||||
trackSettingsGroup->add(&m_widthScaleFactor);
|
||||
@ -1142,12 +1184,13 @@ void RimWellLogTrack::uiOrderingForRftPltFormations(caf::PdmUiOrdering& uiOrderi
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
///
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
void RimWellLogTrack::uiOrderingForVisibleXRange(caf::PdmUiOrdering& uiOrdering)
|
||||
void RimWellLogTrack::uiOrderingForXAxisSettings(caf::PdmUiOrdering& uiOrdering)
|
||||
{
|
||||
caf::PdmUiGroup* gridGroup = uiOrdering.addNewGroup("Visible X Axis Range");
|
||||
caf::PdmUiGroup* gridGroup = uiOrdering.addNewGroup("X Axis Settings");
|
||||
gridGroup->add(&m_isLogarithmicScaleEnabled);
|
||||
gridGroup->add(&m_visibleXRangeMin);
|
||||
gridGroup->add(&m_visibleXRangeMax);
|
||||
gridGroup->add(&m_showXGridLines);
|
||||
}
|
||||
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
|
@ -68,9 +68,10 @@ public:
|
||||
RimWellLogTrack();
|
||||
virtual ~RimWellLogTrack();
|
||||
|
||||
enum TrajectoryType { WELL_PATH, SIMULATION_WELL };
|
||||
enum FormationSource { CASE, WELL_PICK_FILTER };
|
||||
enum TrajectoryType { WELL_PATH, SIMULATION_WELL };
|
||||
enum FormationSource { CASE, WELL_PICK_FILTER };
|
||||
enum WidthScaleFactor { EXTRA_NARROW_TRACK = 2, NARROW_TRACK = 3, NORMAL_TRACK = 4, WIDE_TRACK = 6, EXTRA_WIDE_TRACK = 10 };
|
||||
enum GridLines { GRID_X_NONE, GRID_X_MAJOR, GRID_X_MAJOR_AND_MINOR};
|
||||
|
||||
void setDescription(const QString& description);
|
||||
bool isVisible();
|
||||
@ -125,7 +126,7 @@ public:
|
||||
std::vector<RimWellLogCurve* > curvesVector();
|
||||
|
||||
void uiOrderingForRftPltFormations(caf::PdmUiOrdering& uiOrdering);
|
||||
void uiOrderingForVisibleXRange(caf::PdmUiOrdering& uiOrdering);
|
||||
void uiOrderingForXAxisSettings(caf::PdmUiOrdering& uiOrdering);
|
||||
|
||||
void setFormationsForCaseWithSimWellOnly(bool caseWithSimWellOnly);
|
||||
|
||||
@ -174,6 +175,8 @@ private:
|
||||
caf::PdmField<double> m_visibleXRangeMax;
|
||||
caf::PdmField<bool> m_isAutoScaleXEnabled;
|
||||
caf::PdmField<bool> m_isLogarithmicScaleEnabled;
|
||||
caf::PdmField<caf::AppEnum<GridLines>> m_showXGridLines;
|
||||
|
||||
caf::PdmField<bool> m_showFormations;
|
||||
caf::PdmField<caf::AppEnum<FormationSource>> m_formationSource;
|
||||
caf::PdmPtrField<RimCase*> m_formationCase;
|
||||
|
@ -288,3 +288,20 @@ int RiuWellLogTrack::widthScaleFactor() const
|
||||
return 1;
|
||||
}
|
||||
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
///
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
void RiuWellLogTrack::enableGridLines(bool majorGridLines, bool minorGridLines)
|
||||
{
|
||||
QwtPlotItemList plotItems = this->itemList(QwtPlotItem::Rtti_PlotGrid);
|
||||
for (QwtPlotItem* plotItem : plotItems)
|
||||
{
|
||||
QwtPlotGrid* grid = static_cast<QwtPlotGrid*>(plotItem);
|
||||
grid->setXAxis(QwtPlot::xTop);
|
||||
grid->enableX(majorGridLines);
|
||||
grid->enableXMin(minorGridLines);
|
||||
grid->setMajorPen(Qt::lightGray, 1.0, Qt::SolidLine);
|
||||
grid->setMinorPen(Qt::lightGray, 1.0, Qt::DashLine);
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -54,7 +54,7 @@ public:
|
||||
bool isRimTrackVisible();
|
||||
void enableVerticalAxisLabelsAndTitle(bool enable);
|
||||
int widthScaleFactor() const;
|
||||
|
||||
void enableGridLines(bool majorGridLines, bool minorGridLines);
|
||||
protected:
|
||||
virtual bool eventFilter(QObject* watched, QEvent* event);
|
||||
virtual QSize sizeHint() const;
|
||||
|
Loading…
Reference in New Issue
Block a user