API changes for version 2.0¶
This is a list of changes for 2.0 which are breaking the API compatibility. It also serves as a basic guide on how to port plugins from 1.x to 2.0
Main application¶
QgisApp¶
Removed methods:- addRasterLayer( QString const &rasterLayerPath, QString const &baseName, QString const &providerKey, QStringList const & layers, QStringList const & styles, QString const &format, QString const &crs )
This method was a hack for WMS used before true raster providers. Use QgsDataSourceURI to create encoded URI and addRasterLayer( QString const & uri, QString const & baseName, QString const & providerKey );
QgisAppInterface¶
Removed methods:- addRasterLayer( const QString& url, const QString& baseName, const QString& providerKey, const QStringList& layers, const QStringList& styles, const QString& format, const QString& crs )
Replaced by addRasterLayer( const QString& url, const QString& baseName, const QString& providerKey)
QgsRasterLayer¶
Removed methods:- QgsRasterLayer( int dummy, const QString & baseName = QString(), const QString & path = QString(), const QString & providerLib = QString(), const QStringList & layers = QStringList(), const QStringList & styles = QStringList(), const QString & format = QString(), const QString & crs = QString() );
Replaced by QgsRasterLayer( const QString & uri, const QString & baseName, const QString & providerKey, bool loadDefaultStyleFlag = true );
- setDataProvider( QString const & provider, QStringList const & layers, QStringList const & styles, QString const & format, QString const & theCrs, bool loadDefaultStyleFlag )
Replaced by setDataProvider( QString const & provider) - setDataProvider( QString const & provider, QStringList const & layers, QStringList const & styles, QString const & format, QString const & theCrs )
Replaced by setDataProvider( QString const & provider)
Print composer¶
QgsComposerView¶
Removed methods:- addComposerLabel
- addComposerMap
- addComposerScaleBar
- addComposerLegend
- addComposerPicture
- addComposerShape
- addComposerTable
- pushAddRemoveCommand
- sendItemAddedSignal
- composerLabelAdded
- composerMapAdded
- composerScaleBarAdded
- composerLegendAdded
- composerPictureAdded
To port 1.x plugins, use the corresponding methods and signals of QgsComposition
PostrgeSQL data provider¶
Look at ce4fc1daa5
Best practises for Plugin developers¶
During a transition time, a plugin sould work with both the old and new API.
This can be achieved with exception handling in an import clause e.g.:
try:
from qgis.core import newFunctionName as newFunctionName
except:
from qgis.core import oldFunctionName as newFunctionName
Following the duck typing scheme of dynamic langagues, this could also be done before calling the function:
if hasattr(composerView, "addComposerShape"):
composerView.addComposerShape(item)
else:
composition.addComposerShape(item)