diff --git a/src/app/qgisapp.cpp b/src/app/qgisapp.cpp index dc1f9125655..caadaa1425a 100644 --- a/src/app/qgisapp.cpp +++ b/src/app/qgisapp.cpp @@ -7051,6 +7051,9 @@ void QgisApp::showMouseCoordinate( const QgsPoint & p ) { if ( mMapCanvas->mapUnits() == QGis::Degrees ) { + if ( !mMapCanvas->mapSettings().destinationCrs().isValid() ) + return; + QgsPoint geo = p; if ( !mMapCanvas->mapSettings().destinationCrs().geographicFlag() ) { diff --git a/src/core/qgsdataitem.cpp b/src/core/qgsdataitem.cpp index 6032ce22d08..bbbbf63106d 100644 --- a/src/core/qgsdataitem.cpp +++ b/src/core/qgsdataitem.cpp @@ -350,14 +350,14 @@ QVector QgsDataItem::createChildren() return QVector(); } -void QgsDataItem::populate() +void QgsDataItem::populate( bool foreground ) { if ( state() == Populated || state() == Populating ) return; QgsDebugMsg( "mPath = " + mPath ); - if ( capabilities2() & QgsDataItem::Fast ) + if ( capabilities2() & QgsDataItem::Fast || foreground ) { populate( createChildren() ); } @@ -390,7 +390,7 @@ QVector QgsDataItem::runCreateChildren( QgsDataItem* item ) QgsDebugMsg( "moveToThread child " + child->path() ); child->moveToThread( QApplication::instance()->thread() ); // moves also children } - QgsDebugMsg( "finished path = " + item->path() ); + QgsDebugMsg( QString( "finished path %1: %2 children" ).arg( item->path() ).arg( children.size() ) ); return children; } diff --git a/src/core/qgsdataitem.h b/src/core/qgsdataitem.h index cb8dc55459f..afe425acfa4 100644 --- a/src/core/qgsdataitem.h +++ b/src/core/qgsdataitem.h @@ -241,7 +241,8 @@ class CORE_EXPORT QgsDataItem : public QObject virtual void deleteLater(); // Populate children using children vector created by createChildren() - virtual void populate(); + // @param foreground run createChildren in foreground + virtual void populate( bool foreground = false ); /** Remove children recursively and set as not populated. This is used when refreshing collapsed items. */ virtual void depopulate(); diff --git a/src/providers/ows/qgsowsdataitems.cpp b/src/providers/ows/qgsowsdataitems.cpp index 67eedad885a..5b82839cdf2 100644 --- a/src/providers/ows/qgsowsdataitems.cpp +++ b/src/providers/ows/qgsowsdataitems.cpp @@ -69,7 +69,7 @@ QVector QgsOWSConnectionItem::createChildren() continue; } - item->populate(); + item->populate( true ); // populate in foreground - this is already run in a thread layerCount += item->rowCount(); if ( item->rowCount() > 0 ) diff --git a/src/providers/wms/qgswmsdataitems.cpp b/src/providers/wms/qgswmsdataitems.cpp index 236d32bf516..eb2c15126c1 100644 --- a/src/providers/wms/qgswmsdataitems.cpp +++ b/src/providers/wms/qgswmsdataitems.cpp @@ -20,13 +20,9 @@ #include "qgswmscapabilities.h" #include "qgswmsconnection.h" #include "qgswmssourceselect.h" - #include "qgsnewhttpconnection.h" - #include "qgstilescalewidget.h" -#include "qgsapplication.h" - // --------------------------------------------------------------------------- QgsWMSConnectionItem::QgsWMSConnectionItem( QgsDataItem* parent, QString name, QString path, QString uri ) : QgsDataCollectionItem( parent, name, path ) @@ -46,19 +42,7 @@ QVector QgsWMSConnectionItem::createChildren() QgsDataSourceURI uri; uri.setEncodedUri( mUri ); -#if 0 - if ( mPath.contains( "url=" ) ) - { - encodedUri = mPath; - uri.setEncodedUri( encodedUri ); - } - else - { - QgsWMSConnection connection( mName ); - uri = connection.uri(); - encodedUri = uri.encodedUri(); - } -#endif + QgsDebugMsg( "mUri = " + mUri ); QgsWmsSettings wmsSettings; @@ -70,25 +54,6 @@ QVector QgsWMSConnectionItem::createChildren() QgsWmsCapabilitiesDownload capDownload( wmsSettings.baseUrl(), wmsSettings.authorization() ); -#if 0 - QWidget *mainWindow = 0; - - QWidgetList topLevelWidgets = qApp->topLevelWidgets(); - for ( QWidgetList::iterator it = topLevelWidgets.begin(); it != topLevelWidgets.end(); ++it ) - { - if (( *it )->objectName() == "QgisApp" ) - { - mainWindow = *it; - break; - } - } - - if ( mainWindow ) - { - connect( &capDownload, SIGNAL( statusChanged( QString ) ), mainWindow, SLOT( showStatusMessage( QString ) ) ); - } -#endif - bool res = capDownload.downloadCapabilities(); if ( !res ) @@ -402,6 +367,7 @@ QWidget * QgsWMSRootItem::paramWidget() connect( select, SIGNAL( connectionsChanged() ), this, SLOT( connectionsChanged() ) ); return select; } + void QgsWMSRootItem::connectionsChanged() { refresh();