mirror of
https://github.com/qgis/QGIS.git
synced 2025-04-16 00:03:12 -04:00
Small code cleanups
This commit is contained in:
parent
8d832d8aca
commit
80f022878f
@ -9,7 +9,21 @@ class QgsRasterBlockFeedback : QgsFeedback
|
|||||||
%TypeHeaderCode
|
%TypeHeaderCode
|
||||||
#include <qgsrasterinterface.h>
|
#include <qgsrasterinterface.h>
|
||||||
%End
|
%End
|
||||||
// TODO: extend with preview functionality??
|
|
||||||
|
public:
|
||||||
|
//! construct a new raster block feedback object
|
||||||
|
QgsRasterBlockFeedback( QObject* parent = nullptr );
|
||||||
|
|
||||||
|
//! whether the raster provider should return only data that are already available
|
||||||
|
//! without waiting for full result
|
||||||
|
bool preview_only;
|
||||||
|
|
||||||
|
//! whether our painter is drawing to a temporary image used just by this layer
|
||||||
|
bool render_partial_output;
|
||||||
|
|
||||||
|
//! may be emitted by raster data provider to indicate that some partial data are available
|
||||||
|
//! and a new preview image may be produced
|
||||||
|
virtual void onNewData();
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
||||||
|
@ -37,6 +37,7 @@
|
|||||||
class CORE_EXPORT QgsRasterBlockFeedback : public QgsFeedback
|
class CORE_EXPORT QgsRasterBlockFeedback : public QgsFeedback
|
||||||
{
|
{
|
||||||
public:
|
public:
|
||||||
|
//! construct a new raster block feedback object
|
||||||
QgsRasterBlockFeedback( QObject* parent = nullptr ) : QgsFeedback( parent ), preview_only( false ), render_partial_output( false ) {}
|
QgsRasterBlockFeedback( QObject* parent = nullptr ) : QgsFeedback( parent ), preview_only( false ), render_partial_output( false ) {}
|
||||||
|
|
||||||
//! whether the raster provider should return only data that are already available
|
//! whether the raster provider should return only data that are already available
|
||||||
|
@ -29,7 +29,7 @@ QgsRasterLayerRenderer::QgsRasterLayerRenderer( QgsRasterLayer* layer, QgsRender
|
|||||||
, mRasterViewPort( nullptr )
|
, mRasterViewPort( nullptr )
|
||||||
, mPipe( nullptr )
|
, mPipe( nullptr )
|
||||||
, mContext( rendererContext )
|
, mContext( rendererContext )
|
||||||
, mFeedback( new MyFeedback( this ) )
|
, mFeedback( new Feedback( this ) )
|
||||||
{
|
{
|
||||||
mPainter = rendererContext.painter();
|
mPainter = rendererContext.painter();
|
||||||
const QgsMapToPixel& theQgsMapToPixel = rendererContext.mapToPixel();
|
const QgsMapToPixel& theQgsMapToPixel = rendererContext.mapToPixel();
|
||||||
@ -227,14 +227,14 @@ QgsFeedback* QgsRasterLayerRenderer::feedback() const
|
|||||||
return mFeedback;
|
return mFeedback;
|
||||||
}
|
}
|
||||||
|
|
||||||
MyFeedback::MyFeedback( QgsRasterLayerRenderer *r )
|
QgsRasterLayerRenderer::Feedback::Feedback( QgsRasterLayerRenderer *r )
|
||||||
: mR( r )
|
: mR( r )
|
||||||
, mMinimalPreviewInterval( 250 )
|
, mMinimalPreviewInterval( 250 )
|
||||||
{
|
{
|
||||||
render_partial_output = r->mContext.testFlag( QgsRenderContext::RenderPartialOutput );
|
render_partial_output = r->mContext.testFlag( QgsRenderContext::RenderPartialOutput );
|
||||||
}
|
}
|
||||||
|
|
||||||
void MyFeedback::onNewData()
|
void QgsRasterLayerRenderer::Feedback::onNewData()
|
||||||
{
|
{
|
||||||
qDebug( "\nGOT NEW DATA!\n" );
|
qDebug( "\nGOT NEW DATA!\n" );
|
||||||
|
|
||||||
|
@ -31,18 +31,6 @@ class QgsRasterLayerRenderer;
|
|||||||
|
|
||||||
#include "qgsrasterinterface.h"
|
#include "qgsrasterinterface.h"
|
||||||
|
|
||||||
class MyFeedback : public QgsRasterBlockFeedback
|
|
||||||
{
|
|
||||||
public:
|
|
||||||
explicit MyFeedback( QgsRasterLayerRenderer* r );
|
|
||||||
|
|
||||||
virtual void onNewData() override;
|
|
||||||
private:
|
|
||||||
QgsRasterLayerRenderer* mR;
|
|
||||||
int mMinimalPreviewInterval; //!< in miliseconds
|
|
||||||
QTime mLastPreview;
|
|
||||||
};
|
|
||||||
|
|
||||||
|
|
||||||
/** \ingroup core
|
/** \ingroup core
|
||||||
* Implementation of threaded rendering for raster layers.
|
* Implementation of threaded rendering for raster layers.
|
||||||
@ -69,8 +57,22 @@ class QgsRasterLayerRenderer : public QgsMapLayerRenderer
|
|||||||
QgsRasterPipe* mPipe;
|
QgsRasterPipe* mPipe;
|
||||||
QgsRenderContext& mContext;
|
QgsRenderContext& mContext;
|
||||||
|
|
||||||
MyFeedback* mFeedback;
|
//! Specific feedback class to provide preview of raster layer rendering.
|
||||||
friend class MyFeedback;
|
class Feedback : public QgsRasterBlockFeedback
|
||||||
|
{
|
||||||
|
public:
|
||||||
|
explicit Feedback( QgsRasterLayerRenderer* r );
|
||||||
|
|
||||||
|
//! when notified of new data in data provider it launches a preview draw of the raster
|
||||||
|
virtual void onNewData() override;
|
||||||
|
private:
|
||||||
|
QgsRasterLayerRenderer* mR; //!< parent renderer instance
|
||||||
|
int mMinimalPreviewInterval; //!< in miliseconds
|
||||||
|
QTime mLastPreview; //!< when last preview has been generated
|
||||||
|
};
|
||||||
|
|
||||||
|
//! feedback class for cancellation and preview generation
|
||||||
|
Feedback* mFeedback;
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
||||||
|
Loading…
x
Reference in New Issue
Block a user