Remove data provider from annotation layer -- this is no longer required

This commit is contained in:
Nyall Dawson 2020-07-28 15:29:48 +10:00
parent 8300856615
commit a90555bf95
3 changed files with 5 additions and 84 deletions

View File

@ -101,12 +101,9 @@ and 1.0 (fully opaque).
virtual bool readSymbology( const QDomNode &node, QString &errorMessage, QgsReadWriteContext &context, StyleCategories categories = AllStyleCategories );
virtual QgsDataProvider *dataProvider();
};
/************************************************************************
* This file has been generated automatically from *
* *

View File

@ -24,18 +24,15 @@
QgsAnnotationLayer::QgsAnnotationLayer( const QString &name, const LayerOptions &options )
: QgsMapLayer( QgsMapLayerType::AnnotationLayer, name )
, mTransformContext( options.transformContext )
{
QgsDataProvider::ProviderOptions providerOptions;
providerOptions.transformContext = options.transformContext;
mDataProvider = qgis::make_unique< QgsAnnotationLayerDataProvider >( providerOptions );
mValid = true;
}
QgsAnnotationLayer::~QgsAnnotationLayer()
{
emit willBeDeleted();
mDataProvider.reset();
qDeleteAll( mItems );
}
void QgsAnnotationLayer::addItem( QgsAnnotationItem *item )
@ -52,7 +49,7 @@ QgsAnnotationItem *QgsAnnotationItem::takeItem( const QString &itemId )
QgsAnnotationLayer *QgsAnnotationLayer::clone() const
{
QgsAnnotationLayer::LayerOptions options( mDataProvider->transformContext() );
QgsAnnotationLayer::LayerOptions options( mTransformContext );
std::unique_ptr< QgsAnnotationLayer > layer = qgis::make_unique< QgsAnnotationLayer >( name(), options );
QgsMapLayer::clone( layer.get() );
@ -93,7 +90,7 @@ QgsRectangle QgsAnnotationLayer::extent() const
void QgsAnnotationLayer::setTransformContext( const QgsCoordinateTransformContext &context )
{
mDataProvider->setTransformContext( context );
mTransformContext = context;
}
bool QgsAnnotationLayer::readXml( const QDomNode &layerNode, QgsReadWriteContext &context )
@ -186,15 +183,6 @@ bool QgsAnnotationLayer::readSymbology( const QDomNode &node, QString &, QgsRead
return true;
}
QgsDataProvider *QgsAnnotationLayer::dataProvider()
{
return mDataProvider.get();
}
const QgsDataProvider *QgsAnnotationLayer::dataProvider() const
{
return mDataProvider.get();
}
#if 0
QString QgsAnnotationLayer::pickItem( const QgsRectangle &pickRect, const QgsMapSettings &mapSettings ) const
@ -243,39 +231,3 @@ QRectF QgsAnnotationLayer::margin() const
}
#endif
//
// QgsAnnotationLayerDataProvider
//
///@cond PRIVATE
QgsAnnotationLayerDataProvider::QgsAnnotationLayerDataProvider( const QgsDataProvider::ProviderOptions &options )
: QgsDataProvider( QString(), options )
{}
QgsCoordinateReferenceSystem QgsAnnotationLayerDataProvider::crs() const
{
return QgsCoordinateReferenceSystem();
}
QString QgsAnnotationLayerDataProvider::name() const
{
return QStringLiteral( "annotation" );
}
QString QgsAnnotationLayerDataProvider::description() const
{
return QString();
}
QgsRectangle QgsAnnotationLayerDataProvider::extent() const
{
return mExtent;
}
bool QgsAnnotationLayerDataProvider::isValid() const
{
return true;
}
///@endcond

View File

@ -119,39 +119,11 @@ class CORE_EXPORT QgsAnnotationLayer : public QgsMapLayer
bool writeXml( QDomNode &layer_node, QDomDocument &doc, const QgsReadWriteContext &context ) const override;
bool writeSymbology( QDomNode &node, QDomDocument &doc, QString &errorMessage, const QgsReadWriteContext &, StyleCategories categories = AllStyleCategories ) const override;
bool readSymbology( const QDomNode &node, QString &errorMessage, QgsReadWriteContext &context, StyleCategories categories = AllStyleCategories ) override;
QgsDataProvider *dataProvider() override;
const QgsDataProvider *dataProvider() const override SIP_SKIP;
private:
std::unique_ptr< QgsDataProvider > mDataProvider;
QMap<QString, QgsAnnotationItem *> mItems;
double mOpacity = 100;
QgsCoordinateTransformContext mTransformContext;
};
#ifndef SIP_RUN
///@cond PRIVATE
/**
* A minimal data provider for annotation layers
*/
class QgsAnnotationLayerDataProvider : public QgsDataProvider
{
Q_OBJECT
public:
QgsAnnotationLayerDataProvider( const QgsDataProvider::ProviderOptions &providerOptions );
void setExtent( const QgsRectangle &extent ) { mExtent = extent; }
QgsCoordinateReferenceSystem crs() const override;
QString name() const override;
QString description() const override;
QgsRectangle extent() const override;
bool isValid() const override;
private:
QgsRectangle mExtent;
};
///@endcond
#endif
#endif // QGSANNOTATIONLAYER_H