#5178 Fix axis rounding on plots other than Well Log Plots

This commit is contained in:
Gaute Lindkvist 2019-12-04 13:26:00 +01:00
parent 11d69281d7
commit a8454450eb
4 changed files with 35 additions and 41 deletions

View File

@ -67,7 +67,7 @@ RiuQwtPlotWidget::RiuQwtPlotWidget( RimPlotInterface* plotTrackDefinition, QWidg
m_plotOwner = dynamic_cast<caf::PdmObject*>( plotTrackDefinition );
CAF_ASSERT( m_plotOwner );
setDefaults();
RiuQwtPlotTools::setCommonPlotBehaviour( this );
this->installEventFilter( this );
this->canvas()->installEventFilter( this );
@ -171,34 +171,6 @@ caf::PdmObject* RiuQwtPlotWidget::plotOwner() const
return m_plotOwner.p();
}
//--------------------------------------------------------------------------------------------------
///
//--------------------------------------------------------------------------------------------------
void RiuQwtPlotWidget::setEnabledAxes( const std::set<QwtPlot::Axis> enabledAxes )
{
for ( int axisId = 0; axisId < QwtPlot::axisCnt; ++axisId )
{
QwtPlot::Axis axis = static_cast<QwtPlot::Axis>( axisId );
if ( enabledAxes.count( axis ) )
{
enableAxis( axis, true );
// Align the canvas with the actual min and max values of the curves
axisScaleEngine( axis )->setAttribute( QwtScaleEngine::Floating, true );
setAxisScale( axis, 0.0, 100.0 );
axisScaleDraw( axis )->setMinimumExtent( axisExtent( axis ) );
setMinimumWidth( defaultMinimumWidth() );
axisWidget( axis )->setMargin( 0 );
m_axisTitlesEnabled[axis] = true;
}
else
{
enableAxis( axis, false );
m_axisTitlesEnabled[axis] = false;
}
}
}
//--------------------------------------------------------------------------------------------------
///
//--------------------------------------------------------------------------------------------------
@ -664,15 +636,6 @@ RiuWidgetStyleSheet RiuQwtPlotWidget::createCanvasStyleSheet() const
return styleSheet;
}
//--------------------------------------------------------------------------------------------------
///
//--------------------------------------------------------------------------------------------------
void RiuQwtPlotWidget::setDefaults()
{
setEnabledAxes( {QwtPlot::xTop, QwtPlot::yLeft} );
RiuQwtPlotTools::setCommonPlotBehaviour( this );
}
void RiuQwtPlotWidget::selectPlotOwner( bool toggleItemInSelection )
{
if ( toggleItemInSelection )

View File

@ -71,8 +71,6 @@ public:
bool titleBold = false,
Qt::AlignmentFlag alignment = Qt::AlignRight );
void setEnabledAxes( const std::set<QwtPlot::Axis> enabledAxes );
void setAxisTitleText( QwtPlot::Axis axis, const QString& title );
void setAxisTitleEnabled( QwtPlot::Axis axis, bool enable );
@ -118,7 +116,6 @@ protected:
virtual void endZoomOperations();
private:
void setDefaults();
void selectPlotOwner( bool toggleItemInSelection = false );
void selectClosestCurve( const QPoint& pos, bool toggleItemInSelection = false );
static int defaultMinimumWidth();

View File

@ -21,6 +21,10 @@
#include "RimWellLogTrack.h"
#include "qwt_scale_draw.h"
#include "qwt_scale_engine.h"
#include "qwt_scale_widget.h"
#include <QWheelEvent>
#define RIU_SCROLLWHEEL_ZOOMFACTOR 1.1
@ -32,6 +36,10 @@
RiuWellLogTrack::RiuWellLogTrack( RimWellLogTrack* plotTrackDefinition, QWidget* parent /*= nullptr */ )
: RiuQwtPlotWidget( plotTrackDefinition, parent )
{
setAxisEnabled( QwtPlot::yLeft, true );
setAxisEnabled( QwtPlot::yRight, false );
setAxisEnabled( QwtPlot::xTop, true );
setAxisEnabled( QwtPlot::xBottom, false );
}
//--------------------------------------------------------------------------------------------------
@ -81,3 +89,26 @@ bool RiuWellLogTrack::eventFilter( QObject* watched, QEvent* event )
}
return RiuQwtPlotWidget::eventFilter( watched, event );
}
//--------------------------------------------------------------------------------------------------
///
//--------------------------------------------------------------------------------------------------
void RiuWellLogTrack::setAxisEnabled( QwtPlot::Axis axis, bool enabled )
{
if ( enabled )
{
enableAxis( axis, true );
// Align the canvas with the actual min and max values of the curves
axisScaleEngine( axis )->setAttribute( QwtScaleEngine::Floating, true );
setAxisScale( axis, 0.0, 100.0 );
axisScaleDraw( axis )->setMinimumExtent( axisExtent( axis ) );
axisWidget( axis )->setMargin( 0 );
setAxisTitleEnabled( axis, true );
}
else
{
enableAxis( axis, false );
}
}

View File

@ -37,4 +37,7 @@ public:
protected:
bool eventFilter( QObject* watched, QEvent* event ) override;
private:
void setAxisEnabled( QwtPlot::Axis axis, bool enabled );
};