Change from QPainter to QPaintDevice in the API for PDF rendering

* This is to be able to use QPagedPaintDevice::nextPage in the Multi plot rendering.
This commit is contained in:
Gaute Lindkvist
2019-12-19 10:34:23 +01:00
parent 65f4a5e089
commit 27788b1abd
13 changed files with 46 additions and 33 deletions

View File

@@ -304,11 +304,11 @@ void RimMultiPlotWindow::doSetAutoScaleYEnabled( bool enabled )
//--------------------------------------------------------------------------------------------------
///
//--------------------------------------------------------------------------------------------------
void RimMultiPlotWindow::doRenderWindowContent( QPainter* painter )
void RimMultiPlotWindow::doRenderWindowContent( QPaintDevice* paintDevice )
{
if ( m_viewer )
{
m_viewer->renderTo( painter );
m_viewer->renderTo( paintDevice );
}
}
@@ -439,9 +439,8 @@ QImage RimMultiPlotWindow::snapshotWindowContent()
if ( m_viewer )
{
QPixmap pix( m_viewer->size() );
QPainter painter( &pix );
m_viewer->renderTo( &painter );
QPixmap pix( m_viewer->size() );
m_viewer->renderTo( &pix );
image = pix.toImage();
}

View File

@@ -129,7 +129,7 @@ private:
virtual void updateSubPlotNames();
virtual void updatePlotWindowTitle();
virtual void doSetAutoScaleYEnabled( bool enabled );
void doRenderWindowContent( QPainter* painter ) override;
void doRenderWindowContent( QPaintDevice* paintDevice ) override;
protected:
caf::PdmField<bool> m_showPlotWindowTitle;

View File

@@ -127,10 +127,10 @@ void RimPlot::fieldChangedByUi( const caf::PdmFieldHandle* changedField, const Q
//--------------------------------------------------------------------------------------------------
///
//--------------------------------------------------------------------------------------------------
void RimPlot::doRenderWindowContent( QPainter* painter )
void RimPlot::doRenderWindowContent( QPaintDevice* paintDevice )
{
if ( viewer() )
{
viewer()->renderTo( painter, viewer()->frameGeometry() );
viewer()->renderTo( paintDevice, viewer()->frameGeometry() );
}
}

View File

@@ -32,6 +32,8 @@ class RiuQwtPlotWidget;
class RimPlotCurve;
class QwtPlotCurve;
class QPaintDevice;
//==================================================================================================
///
///
@@ -93,7 +95,7 @@ protected:
private:
virtual void doRemoveFromCollection() = 0;
virtual void doRenderWindowContent( QPainter* painter );
virtual void doRenderWindowContent( QPaintDevice* paintDevice );
protected:
caf::PdmField<RowOrColSpanEnum> m_rowSpan;

View File

@@ -159,9 +159,9 @@ void RimPlotWindow::updateParentLayout()
//--------------------------------------------------------------------------------------------------
///
//--------------------------------------------------------------------------------------------------
void RimPlotWindow::renderWindowContent( QPainter* painter )
void RimPlotWindow::renderWindowContent( QPaintDevice* paintDevice )
{
doRenderWindowContent( painter );
doRenderWindowContent( paintDevice );
}
//--------------------------------------------------------------------------------------------------

View File

@@ -30,6 +30,7 @@ class RimProject;
class QwtPlotCurve;
class QKeyEvent;
class QPaintDevice;
//==================================================================================================
///
@@ -59,7 +60,7 @@ public:
void updateLayout();
void updateParentLayout();
void renderWindowContent( QPainter* painter );
void renderWindowContent( QPaintDevice* painter );
QPageLayout pageLayout() const;
protected:
@@ -75,7 +76,7 @@ protected:
private:
virtual void doUpdateLayout() {}
virtual bool hasCustomPageLayout( QPageLayout* customPageLayout ) const;
virtual void doRenderWindowContent( QPainter* painter ) = 0;
virtual void doRenderWindowContent( QPaintDevice* paintDevice ) = 0;
private:
friend class RimProject;