diff --git a/python/gui/qgisinterface.sip b/python/gui/qgisinterface.sip index 2401d3f70109..b4548191b487 100644 --- a/python/gui/qgisinterface.sip +++ b/python/gui/qgisinterface.sip @@ -39,6 +39,8 @@ class QgisInterface : QObject virtual QgsVectorLayer* addVectorLayer(QString vectorLayerPath, QString baseName, QString providerKey)=0; //! Add a raster layer given a raster layer file name virtual QgsRasterLayer* addRasterLayer(QString rasterLayerPath, QString baseName = QString())=0; + //! Add a WMS layer + virtual QgsRasterLayer* addRasterLayer(const QString& url, const QString& layerName, const QString& providerKey, const QStringList& layers, const QStringList& styles, const QString& format, const QString& crs) = 0; //! Add a project virtual bool addProject(QString theProject)=0; diff --git a/src/app/qgisapp.cpp b/src/app/qgisapp.cpp index 7a7d13d41a7d..3707bd64c79e 100644 --- a/src/app/qgisapp.cpp +++ b/src/app/qgisapp.cpp @@ -5216,7 +5216,7 @@ QgsRasterLayer* QgisApp::addRasterLayer(QString const & rasterFile, QString cons \note Copied from the equivalent addVectorLayer function in this file TODO Make it work for rasters specifically. */ -void QgisApp::addRasterLayer(QString const & rasterLayerPath, +QgsRasterLayer* QgisApp::addRasterLayer(QString const & rasterLayerPath, QString const & baseName, QString const & providerKey, QStringList const & layers, @@ -5232,7 +5232,7 @@ void QgisApp::addRasterLayer(QString const & rasterLayerPath, if(mMapCanvas && mMapCanvas->isDrawing()) { - return; + return 0; } mMapCanvas->freeze(); @@ -5278,6 +5278,7 @@ void QgisApp::addRasterLayer(QString const & rasterLayerPath, // draw the map mMapCanvas->freeze(false); mMapCanvas->refresh(); + return layer; // Let render() do its own cursor management // QApplication::restoreOverrideCursor(); diff --git a/src/app/qgisapp.h b/src/app/qgisapp.h index b02bf69d7f61..bf3ea32c9362 100644 --- a/src/app/qgisapp.h +++ b/src/app/qgisapp.h @@ -96,7 +96,7 @@ class QgisApp : public QMainWindow * Note this is included to support WMS layers only at this stage, * GDAL layer support via a Provider is not yet implemented. */ - void addRasterLayer(QString const & rasterLayerPath, + QgsRasterLayer* addRasterLayer(QString const & rasterLayerPath, QString const & baseName, QString const & providerKey, QStringList const & layers, diff --git a/src/app/qgisappinterface.cpp b/src/app/qgisappinterface.cpp index 693878850412..235fde1e90c0 100644 --- a/src/app/qgisappinterface.cpp +++ b/src/app/qgisappinterface.cpp @@ -77,6 +77,12 @@ QgsRasterLayer* QgisAppInterface::addRasterLayer(QString rasterLayerPath, QStrin return qgis->addRasterLayer(rasterLayerPath, baseName); } +QgsRasterLayer* QgisAppInterface::addRasterLayer(const QString& url, const QString& baseName, const QString& providerKey, \ + const QStringList& layers, const QStringList& styles, const QString& format, const QString& crs) +{ + return qgis->addRasterLayer(url, baseName, providerKey, layers, styles, format, crs); +} + bool QgisAppInterface::addProject(QString theProjectName) { diff --git a/src/app/qgisappinterface.h b/src/app/qgisappinterface.h index 94b680ebb3a4..d5620dff58e2 100644 --- a/src/app/qgisappinterface.h +++ b/src/app/qgisappinterface.h @@ -54,6 +54,9 @@ class QgisAppInterface : public QgisInterface QgsVectorLayer* addVectorLayer(QString vectorLayerPath, QString baseName, QString providerKey); //! Add a raster layer given its file name QgsRasterLayer* addRasterLayer(QString rasterLayerPath, QString baseName); + //! Add a WMS layer + QgsRasterLayer* addRasterLayer(const QString& url, const QString& baseName, const QString& providerKey, \ + const QStringList& layers, const QStringList& styles, const QString& format, const QString& crs); //! Add a project bool addProject(QString theProjectName); diff --git a/src/gui/qgisinterface.h b/src/gui/qgisinterface.h index d9ccb818a849..86b547c022db 100644 --- a/src/gui/qgisinterface.h +++ b/src/gui/qgisinterface.h @@ -72,6 +72,9 @@ class GUI_EXPORT QgisInterface : public QObject virtual QgsVectorLayer* addVectorLayer(QString vectorLayerPath, QString baseName, QString providerKey)=0; //! Add a raster layer given a raster layer file name virtual QgsRasterLayer* addRasterLayer(QString rasterLayerPath, QString baseName = QString())=0; + //! Add a WMS layer + virtual QgsRasterLayer* addRasterLayer(const QString& url, const QString& layerName, const QString& providerKey, const QStringList& layers, \ + const QStringList& styles, const QString& format, const QString& crs) = 0; //! Add a project virtual bool addProject(QString theProject)=0;