mirror of
https://github.com/OPM/ResInsight.git
synced 2025-02-25 18:55:39 -06:00
#3155 Implement grid lines settings for depth axis as well
* Done to "get away with" removing tick marks on all depth axes apart from the first track
This commit is contained in:
parent
162d82f8b7
commit
ca1f9506b1
@ -197,7 +197,7 @@ void RicNewWellBoreStabilityPlotFeature::createStabilityCurvesTrack(RimWellLogPl
|
||||
stabilityCurvesTrack->setWidthScaleFactor(RimWellLogTrack::EXTRA_WIDE_TRACK);
|
||||
stabilityCurvesTrack->setAutoScaleXEnabled(true);
|
||||
stabilityCurvesTrack->setTickIntervals(0.5, 0.05);
|
||||
stabilityCurvesTrack->enableGridLines(RimWellLogTrack::GRID_X_MAJOR_AND_MINOR);
|
||||
stabilityCurvesTrack->setXAxisGridVisibility(RimWellLogPlot::AXIS_GRID_MAJOR_AND_MINOR);
|
||||
stabilityCurvesTrack->setFormationWellPath(wellPath);
|
||||
stabilityCurvesTrack->setFormationCase(geoMechView->geoMechCase());
|
||||
stabilityCurvesTrack->setShowFormations(true);
|
||||
@ -270,7 +270,7 @@ void RicNewWellBoreStabilityPlotFeature::createAnglesTrack(RimWellLogPlot* plot,
|
||||
wellPathAnglesTrack->setWidthScaleFactor(RimWellLogTrack::NORMAL_TRACK);
|
||||
wellPathAnglesTrack->setVisibleXRange(minValue, maxValue);
|
||||
wellPathAnglesTrack->setTickIntervals(90.0, 30.0);
|
||||
wellPathAnglesTrack->enableGridLines(RimWellLogTrack::GRID_X_MAJOR_AND_MINOR);
|
||||
wellPathAnglesTrack->setXAxisGridVisibility(RimWellLogPlot::AXIS_GRID_MAJOR_AND_MINOR);
|
||||
wellPathAnglesTrack->setFormationWellPath(wellPath);
|
||||
wellPathAnglesTrack->setFormationCase(geoMechView->geoMechCase());
|
||||
wellPathAnglesTrack->setShowFormations(true);
|
||||
|
@ -53,6 +53,15 @@ namespace caf {
|
||||
setDefault(RimWellLogPlot::MEASURED_DEPTH);
|
||||
}
|
||||
|
||||
template<>
|
||||
void RimWellLogPlot::AxisGridEnum::setUp()
|
||||
{
|
||||
addItem(RimWellLogPlot::AXIS_GRID_NONE, "GRID_X_NONE", "No Grid Lines");
|
||||
addItem(RimWellLogPlot::AXIS_GRID_MAJOR, "GRID_X_MAJOR", "Major Only");
|
||||
addItem(RimWellLogPlot::AXIS_GRID_MAJOR_AND_MINOR, "GRID_X_MAJOR_AND_MINOR", "Major and Minor");
|
||||
setDefault(RimWellLogPlot::AXIS_GRID_MAJOR);
|
||||
}
|
||||
|
||||
} // End namespace caf
|
||||
|
||||
|
||||
@ -78,6 +87,7 @@ RimWellLogPlot::RimWellLogPlot()
|
||||
|
||||
CAF_PDM_InitField(&m_minVisibleDepth, "MinimumDepth", 0.0, "Min", "", "", "");
|
||||
CAF_PDM_InitField(&m_maxVisibleDepth, "MaximumDepth", 1000.0, "Max", "", "", "");
|
||||
CAF_PDM_InitFieldNoDefault(&m_depthAxisGridVisibility, "ShowDepthGridLines", "Show Grid Lines", "", "", "");
|
||||
CAF_PDM_InitField(&m_isAutoScaleDepthEnabled, "AutoScaleDepthEnabled", true, "Auto Scale", "", "", "");
|
||||
m_isAutoScaleDepthEnabled.uiCapability()->setUiHidden(true);
|
||||
CAF_PDM_InitField(&m_showTitleInPlot, "ShowTitleInPlot", false, "Show Title", "", "", "");
|
||||
@ -135,7 +145,8 @@ void RimWellLogPlot::fieldChangedByUi(const caf::PdmFieldHandle* changedField, c
|
||||
}
|
||||
else if (changedField == &m_showTitleInPlot ||
|
||||
changedField == &m_showTrackLegends ||
|
||||
changedField == &m_trackLegendsHorizontal)
|
||||
changedField == &m_trackLegendsHorizontal ||
|
||||
changedField == &m_depthAxisGridVisibility)
|
||||
{
|
||||
updateTracks();
|
||||
if (m_viewer) m_viewer->updateChildrenLayout();
|
||||
@ -568,6 +579,7 @@ void RimWellLogPlot::uiOrderingForDepthAxis(caf::PdmUiOrdering& uiOrdering)
|
||||
}
|
||||
gridGroup->add(&m_minVisibleDepth);
|
||||
gridGroup->add(&m_maxVisibleDepth);
|
||||
gridGroup->add(&m_depthAxisGridVisibility);
|
||||
}
|
||||
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
@ -830,6 +842,22 @@ QString RimWellLogPlot::depthPlotTitle() const
|
||||
return depthTitle;
|
||||
}
|
||||
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
///
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
void RimWellLogPlot::enableDepthGridLines(AxisGridVisibility gridVisibility)
|
||||
{
|
||||
m_depthAxisGridVisibility = gridVisibility;
|
||||
}
|
||||
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
///
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
RimWellLogPlot::AxisGridVisibility RimWellLogPlot::depthGridLinesVisibility() const
|
||||
{
|
||||
return m_depthAxisGridVisibility();
|
||||
}
|
||||
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
///
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
|
@ -52,8 +52,9 @@ public:
|
||||
CONNECTION_NUMBER
|
||||
};
|
||||
|
||||
enum AxisGridVisibility { AXIS_GRID_NONE, AXIS_GRID_MAJOR, AXIS_GRID_MAJOR_AND_MINOR };
|
||||
|
||||
|
||||
typedef caf::AppEnum<AxisGridVisibility> AxisGridEnum;
|
||||
|
||||
public:
|
||||
RimWellLogPlot();
|
||||
@ -71,8 +72,10 @@ public:
|
||||
RiaDefines::DepthUnitType depthUnit() const;
|
||||
void setDepthUnit(RiaDefines::DepthUnitType depthUnit);
|
||||
|
||||
|
||||
QString depthPlotTitle() const;
|
||||
void enableDepthGridLines(AxisGridVisibility gridVisibility);
|
||||
AxisGridVisibility depthGridLinesVisibility() const;
|
||||
|
||||
bool isPlotTitleVisible() const;
|
||||
void setPlotTitleVisible(bool visible);
|
||||
bool areTrackLegendsVisible() const;
|
||||
@ -140,25 +143,24 @@ private:
|
||||
void updatePlotTitle();
|
||||
|
||||
private:
|
||||
caf::PdmField<QString> m_userName;
|
||||
caf::PdmField<QString> m_userName;
|
||||
caf::PdmChildArrayField<RimWellLogTrack*> m_tracks;
|
||||
|
||||
caf::PdmField< caf::AppEnum<DepthTypeEnum>> m_depthType;
|
||||
caf::PdmField< caf::AppEnum<RiaDefines::DepthUnitType>> m_depthUnit;
|
||||
std::set<RimWellLogPlot::DepthTypeEnum> m_disabledDepthTypes;
|
||||
caf::PdmField<double> m_minVisibleDepth;
|
||||
caf::PdmField<double> m_maxVisibleDepth;
|
||||
caf::PdmField<AxisGridEnum> m_depthAxisGridVisibility;
|
||||
caf::PdmField<bool> m_isAutoScaleDepthEnabled;
|
||||
|
||||
caf::PdmField< caf::AppEnum< DepthTypeEnum > > m_depthType;
|
||||
caf::PdmField< caf::AppEnum< RiaDefines::DepthUnitType > > m_depthUnit;
|
||||
std::set<DepthTypeEnum> m_disabledDepthTypes;
|
||||
caf::PdmField<bool> m_showTitleInPlot;
|
||||
caf::PdmField<bool> m_showTrackLegends;
|
||||
caf::PdmField<bool> m_trackLegendsHorizontal;
|
||||
|
||||
caf::PdmChildArrayField<RimWellLogTrack*> m_tracks;
|
||||
|
||||
caf::PdmField<double> m_minVisibleDepth;
|
||||
caf::PdmField<double> m_maxVisibleDepth;
|
||||
caf::PdmField<bool> m_isAutoScaleDepthEnabled;
|
||||
caf::PdmField<bool> m_showTitleInPlot;
|
||||
caf::PdmField<bool> m_showTrackLegends;
|
||||
caf::PdmField<bool> m_trackLegendsHorizontal;
|
||||
|
||||
double m_minAvailableDepth;
|
||||
double m_maxAvailableDepth;
|
||||
double m_minAvailableDepth;
|
||||
double m_maxAvailableDepth;
|
||||
|
||||
friend class RiuWellLogPlot;
|
||||
QPointer<RiuWellLogPlot> m_viewer;
|
||||
|
||||
QPointer<RiuWellLogPlot> m_viewer;
|
||||
};
|
||||
|
@ -114,15 +114,6 @@ 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);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@ -150,7 +141,7 @@ RimWellLogTrack::RimWellLogTrack()
|
||||
|
||||
CAF_PDM_InitField(&m_isLogarithmicScaleEnabled, "LogarithmicScaleX", false, "Logarithmic Scale", "", "", "");
|
||||
|
||||
CAF_PDM_InitFieldNoDefault(&m_showXGridLines, "ShowXGridLines", "Show Grid Lines", "", "", "");
|
||||
CAF_PDM_InitFieldNoDefault(&m_xAxisGridVisibility, "ShowXGridLines", "Show Grid Lines", "", "", "");
|
||||
|
||||
CAF_PDM_InitField(&m_explicitTickIntervals, "ExplicitTickIntervals", false, "Manually Set Tick Intervals", "", "", "");
|
||||
CAF_PDM_InitField(&m_majorTickInterval, "MajorTickIntervals", 0.0, "Major Tick Interval", "", "", "");
|
||||
@ -274,7 +265,7 @@ void RimWellLogTrack::fieldChangedByUi(const caf::PdmFieldHandle* changedField,
|
||||
m_wellLogTrackPlotWidget->replot();
|
||||
}
|
||||
}
|
||||
else if (changedField == &m_showXGridLines ||
|
||||
else if (changedField == &m_xAxisGridVisibility ||
|
||||
changedField == &m_majorTickInterval ||
|
||||
changedField == &m_minorTickInterval)
|
||||
{
|
||||
@ -288,7 +279,7 @@ void RimWellLogTrack::fieldChangedByUi(const caf::PdmFieldHandle* changedField,
|
||||
m_isAutoScaleXEnabled = false;
|
||||
bool emptyRange = std::abs(m_visibleXRangeMax() - m_visibleXRangeMin) < 1.0e-6 * std::max(1.0, std::max(m_visibleXRangeMax(), m_visibleXRangeMin()));
|
||||
m_explicitTickIntervals.uiCapability()->setUiReadOnly(emptyRange);
|
||||
m_showXGridLines.uiCapability()->setUiReadOnly(emptyRange);
|
||||
m_xAxisGridVisibility.uiCapability()->setUiReadOnly(emptyRange);
|
||||
|
||||
updateEditors();
|
||||
updateParentPlotLayout();
|
||||
@ -477,16 +468,31 @@ void RimWellLogTrack::updateAxisAndGridTickIntervals()
|
||||
m_wellLogTrackPlotWidget->setAutoTickIntervalCounts(xMajorTickIntervals, xMinorTickIntervals);
|
||||
}
|
||||
|
||||
switch (m_showXGridLines())
|
||||
switch (m_xAxisGridVisibility())
|
||||
{
|
||||
case GRID_X_NONE:
|
||||
m_wellLogTrackPlotWidget->enableGridLines(false, false);
|
||||
case RimWellLogPlot::AXIS_GRID_NONE:
|
||||
m_wellLogTrackPlotWidget->enableXGridLines(false, false);
|
||||
break;
|
||||
case GRID_X_MAJOR:
|
||||
m_wellLogTrackPlotWidget->enableGridLines(true, false);
|
||||
case RimWellLogPlot::AXIS_GRID_MAJOR:
|
||||
m_wellLogTrackPlotWidget->enableXGridLines(true, false);
|
||||
break;
|
||||
case GRID_X_MAJOR_AND_MINOR:
|
||||
m_wellLogTrackPlotWidget->enableGridLines(true, true);
|
||||
case RimWellLogPlot::AXIS_GRID_MAJOR_AND_MINOR:
|
||||
m_wellLogTrackPlotWidget->enableXGridLines(true, true);
|
||||
break;
|
||||
}
|
||||
|
||||
RimWellLogPlot* plot = nullptr;
|
||||
this->firstAncestorOrThisOfTypeAsserted(plot);
|
||||
switch (plot->depthGridLinesVisibility())
|
||||
{
|
||||
case RimWellLogPlot::AXIS_GRID_NONE:
|
||||
m_wellLogTrackPlotWidget->enableDepthGridLines(false, false);
|
||||
break;
|
||||
case RimWellLogPlot::AXIS_GRID_MAJOR:
|
||||
m_wellLogTrackPlotWidget->enableDepthGridLines(true, false);
|
||||
break;
|
||||
case RimWellLogPlot::AXIS_GRID_MAJOR_AND_MINOR:
|
||||
m_wellLogTrackPlotWidget->enableDepthGridLines(true, true);
|
||||
break;
|
||||
}
|
||||
}
|
||||
@ -705,7 +711,7 @@ void RimWellLogTrack::loadDataAndUpdate()
|
||||
|
||||
bool emptyRange = std::abs(m_visibleXRangeMax() - m_visibleXRangeMin) < 1.0e-6 * std::max(1.0, std::max(m_visibleXRangeMax(), m_visibleXRangeMin()));
|
||||
m_explicitTickIntervals.uiCapability()->setUiReadOnly(emptyRange);
|
||||
m_showXGridLines.uiCapability()->setUiReadOnly(emptyRange);
|
||||
m_xAxisGridVisibility.uiCapability()->setUiReadOnly(emptyRange);
|
||||
}
|
||||
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
@ -1032,9 +1038,9 @@ void RimWellLogTrack::setTickIntervals(double majorTickInterval, double minorTic
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
///
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
void RimWellLogTrack::enableGridLines(GridLines gridLines)
|
||||
void RimWellLogTrack::setXAxisGridVisibility(RimWellLogPlot::AxisGridVisibility gridLines)
|
||||
{
|
||||
m_showXGridLines = gridLines;
|
||||
m_xAxisGridVisibility = gridLines;
|
||||
}
|
||||
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
@ -1292,7 +1298,7 @@ void RimWellLogTrack::uiOrderingForXAxisSettings(caf::PdmUiOrdering& uiOrdering)
|
||||
gridGroup->add(&m_isLogarithmicScaleEnabled);
|
||||
gridGroup->add(&m_visibleXRangeMin);
|
||||
gridGroup->add(&m_visibleXRangeMax);
|
||||
gridGroup->add(&m_showXGridLines);
|
||||
gridGroup->add(&m_xAxisGridVisibility);
|
||||
gridGroup->add(&m_explicitTickIntervals);
|
||||
gridGroup->add(&m_majorTickInterval);
|
||||
gridGroup->add(&m_minorTickInterval);
|
||||
|
@ -71,7 +71,6 @@ public:
|
||||
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();
|
||||
@ -113,7 +112,7 @@ public:
|
||||
void updateEditors();
|
||||
void setVisibleXRange(double minValue, double maxValue);
|
||||
void setTickIntervals(double majorTickInterval, double minorTickInterval);
|
||||
void enableGridLines(GridLines gridLines);
|
||||
void setXAxisGridVisibility(RimWellLogPlot::AxisGridVisibility gridLines);
|
||||
void setShowFormations(bool on);
|
||||
void setShowFormationLabels(bool on);
|
||||
|
||||
@ -172,17 +171,17 @@ private:
|
||||
private:
|
||||
QString m_xAxisTitle;
|
||||
|
||||
caf::PdmField<bool> m_show;
|
||||
caf::PdmField<QString> m_userName;
|
||||
caf::PdmChildArrayField<RimWellLogCurve*> curves;
|
||||
caf::PdmField<double> m_visibleXRangeMin;
|
||||
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_explicitTickIntervals;
|
||||
caf::PdmField<double> m_majorTickInterval;
|
||||
caf::PdmField<double> m_minorTickInterval;
|
||||
caf::PdmField<bool> m_show;
|
||||
caf::PdmField<QString> m_userName;
|
||||
caf::PdmChildArrayField<RimWellLogCurve*> curves;
|
||||
caf::PdmField<double> m_visibleXRangeMin;
|
||||
caf::PdmField<double> m_visibleXRangeMax;
|
||||
caf::PdmField<bool> m_isAutoScaleXEnabled;
|
||||
caf::PdmField<bool> m_isLogarithmicScaleEnabled;
|
||||
caf::PdmField<RimWellLogPlot::AxisGridEnum> m_xAxisGridVisibility;
|
||||
caf::PdmField<bool> m_explicitTickIntervals;
|
||||
caf::PdmField<double> m_majorTickInterval;
|
||||
caf::PdmField<double> m_minorTickInterval;
|
||||
|
||||
caf::PdmField<bool> m_showFormations;
|
||||
caf::PdmField<bool> m_showFormationLabels;
|
||||
|
@ -493,7 +493,7 @@ void RiuWellLogPlot::updateChildrenLayout()
|
||||
m_legends[tIdx]->setMaxColumns(legendColumns);
|
||||
m_legends[tIdx]->show();
|
||||
|
||||
m_trackPlots[tIdx]->enableVerticalAxisLabelsAndTitle(numTracksAlreadyShown == 0);
|
||||
m_trackPlots[tIdx]->enableDepthAxisLabelsAndTitle(numTracksAlreadyShown == 0);
|
||||
numTracksAlreadyShown++;
|
||||
}
|
||||
else
|
||||
|
@ -1,4 +1,4 @@
|
||||
/////////////////////////////////////////////////////////////////////////////////
|
||||
////////////////////////////////////////////////////////////////////////////////
|
||||
//
|
||||
// Copyright (C) 2015- Statoil ASA
|
||||
// Copyright (C) 2015- Ceetron Solutions AS
|
||||
@ -271,7 +271,7 @@ bool RiuWellLogTrack::isRimTrackVisible()
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
///
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
void RiuWellLogTrack::enableVerticalAxisLabelsAndTitle(bool enable)
|
||||
void RiuWellLogTrack::enableDepthAxisLabelsAndTitle(bool enable)
|
||||
{
|
||||
this->axisScaleDraw(QwtPlot::yLeft)->enableComponent(QwtAbstractScaleDraw::Ticks, enable);
|
||||
this->axisScaleDraw(QwtPlot::yLeft)->enableComponent(QwtAbstractScaleDraw::Labels, enable);
|
||||
@ -292,7 +292,7 @@ int RiuWellLogTrack::widthScaleFactor() const
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
///
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
void RiuWellLogTrack::enableGridLines(bool majorGridLines, bool minorGridLines)
|
||||
void RiuWellLogTrack::enableXGridLines(bool majorGridLines, bool minorGridLines)
|
||||
{
|
||||
QwtPlotItemList plotItems = this->itemList(QwtPlotItem::Rtti_PlotGrid);
|
||||
for (QwtPlotItem* plotItem : plotItems)
|
||||
@ -306,6 +306,24 @@ void RiuWellLogTrack::enableGridLines(bool majorGridLines, bool minorGridLines)
|
||||
}
|
||||
}
|
||||
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
///
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
void RiuWellLogTrack::enableDepthGridLines(bool majorGridLines, bool minorGridLines)
|
||||
{
|
||||
QwtPlotItemList plotItems = this->itemList(QwtPlotItem::Rtti_PlotGrid);
|
||||
for (QwtPlotItem* plotItem : plotItems)
|
||||
{
|
||||
QwtPlotGrid* grid = static_cast<QwtPlotGrid*>(plotItem);
|
||||
grid->setYAxis(QwtPlot::yLeft);
|
||||
grid->enableY(majorGridLines);
|
||||
grid->enableYMin(minorGridLines);
|
||||
grid->setMajorPen(Qt::lightGray, 1.0, Qt::SolidLine);
|
||||
grid->setMinorPen(Qt::lightGray, 1.0, Qt::DashLine);
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
///
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
|
@ -52,9 +52,10 @@ public:
|
||||
void setXRange(double min, double max);
|
||||
|
||||
bool isRimTrackVisible();
|
||||
void enableVerticalAxisLabelsAndTitle(bool enable);
|
||||
void enableDepthAxisLabelsAndTitle(bool enable);
|
||||
int widthScaleFactor() const;
|
||||
void enableGridLines(bool majorGridLines, bool minorGridLines);
|
||||
void enableXGridLines(bool majorGridLines, bool minorGridLines);
|
||||
void enableDepthGridLines(bool majorGridLines, bool minorGridLines);
|
||||
void setMajorAndMinorTickIntervals(double majorTickInterval, double minorTickInterval);
|
||||
void setAutoTickIntervalCounts(int maxMajorTickIntervalCount, int maxMinorTickIntervalCount);
|
||||
double getCurrentMajorTickInterval() const;
|
||||
|
Loading…
Reference in New Issue
Block a user