mirror of
https://github.com/OPM/ResInsight.git
synced 2026-09-03 20:53:13 -05:00
#5178 Fix axis rounding on plots other than Well Log Plots
This commit is contained in:
@@ -65,7 +65,7 @@ RiuQwtPlotWidget::RiuQwtPlotWidget( RimPlot* plot, QWidget* parent )
|
|||||||
, m_plotDefinition( plot )
|
, m_plotDefinition( plot )
|
||||||
, m_draggable( true )
|
, m_draggable( true )
|
||||||
{
|
{
|
||||||
setDefaults();
|
RiuQwtPlotTools::setCommonPlotBehaviour( this );
|
||||||
|
|
||||||
this->installEventFilter( this );
|
this->installEventFilter( this );
|
||||||
this->canvas()->installEventFilter( this );
|
this->canvas()->installEventFilter( this );
|
||||||
@@ -161,34 +161,6 @@ RimPlot* RiuQwtPlotWidget::plotDefinition() const
|
|||||||
return m_plotDefinition;
|
return m_plotDefinition;
|
||||||
}
|
}
|
||||||
|
|
||||||
//--------------------------------------------------------------------------------------------------
|
|
||||||
///
|
|
||||||
//--------------------------------------------------------------------------------------------------
|
|
||||||
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;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
//--------------------------------------------------------------------------------------------------
|
//--------------------------------------------------------------------------------------------------
|
||||||
///
|
///
|
||||||
//--------------------------------------------------------------------------------------------------
|
//--------------------------------------------------------------------------------------------------
|
||||||
@@ -704,15 +676,6 @@ void RiuQwtPlotWidget::updateOverlayFrameLayout()
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
//--------------------------------------------------------------------------------------------------
|
|
||||||
///
|
|
||||||
//--------------------------------------------------------------------------------------------------
|
|
||||||
void RiuQwtPlotWidget::setDefaults()
|
|
||||||
{
|
|
||||||
setEnabledAxes( {QwtPlot::xTop, QwtPlot::yLeft} );
|
|
||||||
RiuQwtPlotTools::setCommonPlotBehaviour( this );
|
|
||||||
}
|
|
||||||
|
|
||||||
void RiuQwtPlotWidget::selectPlotOwner( bool toggleItemInSelection )
|
void RiuQwtPlotWidget::selectPlotOwner( bool toggleItemInSelection )
|
||||||
{
|
{
|
||||||
if ( toggleItemInSelection )
|
if ( toggleItemInSelection )
|
||||||
|
|||||||
@@ -70,8 +70,6 @@ public:
|
|||||||
bool titleBold = false,
|
bool titleBold = false,
|
||||||
Qt::AlignmentFlag alignment = Qt::AlignRight );
|
Qt::AlignmentFlag alignment = Qt::AlignRight );
|
||||||
|
|
||||||
void setEnabledAxes( const std::set<QwtPlot::Axis> enabledAxes );
|
|
||||||
|
|
||||||
void setAxisTitleText( QwtPlot::Axis axis, const QString& title );
|
void setAxisTitleText( QwtPlot::Axis axis, const QString& title );
|
||||||
void setAxisTitleEnabled( QwtPlot::Axis axis, bool enable );
|
void setAxisTitleEnabled( QwtPlot::Axis axis, bool enable );
|
||||||
|
|
||||||
@@ -119,7 +117,6 @@ protected:
|
|||||||
virtual void endZoomOperations();
|
virtual void endZoomOperations();
|
||||||
|
|
||||||
private:
|
private:
|
||||||
void setDefaults();
|
|
||||||
void selectPlotOwner( bool toggleItemInSelection = false );
|
void selectPlotOwner( bool toggleItemInSelection = false );
|
||||||
void selectClosestCurve( const QPoint& pos, bool toggleItemInSelection = false );
|
void selectClosestCurve( const QPoint& pos, bool toggleItemInSelection = false );
|
||||||
static int defaultMinimumWidth();
|
static int defaultMinimumWidth();
|
||||||
|
|||||||
@@ -21,6 +21,10 @@
|
|||||||
|
|
||||||
#include "RimWellLogTrack.h"
|
#include "RimWellLogTrack.h"
|
||||||
|
|
||||||
|
#include "qwt_scale_draw.h"
|
||||||
|
#include "qwt_scale_engine.h"
|
||||||
|
#include "qwt_scale_widget.h"
|
||||||
|
|
||||||
#include <QWheelEvent>
|
#include <QWheelEvent>
|
||||||
|
|
||||||
#define RIU_SCROLLWHEEL_ZOOMFACTOR 1.1
|
#define RIU_SCROLLWHEEL_ZOOMFACTOR 1.1
|
||||||
@@ -32,6 +36,10 @@
|
|||||||
RiuWellLogTrack::RiuWellLogTrack( RimWellLogTrack* plotTrackDefinition, QWidget* parent /*= nullptr */ )
|
RiuWellLogTrack::RiuWellLogTrack( RimWellLogTrack* plotTrackDefinition, QWidget* parent /*= nullptr */ )
|
||||||
: RiuQwtPlotWidget( plotTrackDefinition, parent )
|
: 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 );
|
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 );
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|||||||
@@ -37,4 +37,7 @@ public:
|
|||||||
|
|
||||||
protected:
|
protected:
|
||||||
bool eventFilter( QObject* watched, QEvent* event ) override;
|
bool eventFilter( QObject* watched, QEvent* event ) override;
|
||||||
|
|
||||||
|
private:
|
||||||
|
void setAxisEnabled( QwtPlot::Axis axis, bool enabled );
|
||||||
};
|
};
|
||||||
|
|||||||
Reference in New Issue
Block a user