// Slot called when the menu item is activated void QgsGPSPlugin::run() { // find all GPX layers std::vector<QgsVectorLayer*> gpxLayers; QMap<QString, QgsMapLayer*>::const_iterator iter; QgsMapLayerRegistry* registry = QgsMapLayerRegistry::instance(); QMap<QString, QgsMapLayer*> layers = registry->mapLayers(); for ( iter = layers.constBegin(); iter != layers.constEnd(); ++iter ) { if ( iter.value()->type() == QgsMapLayer::VectorLayer ) { QgsVectorLayer* vLayer = qobject_cast<QgsVectorLayer *>( iter.value() ); if ( vLayer->providerType() == QLatin1String( "gpx" ) ) gpxLayers.push_back( vLayer ); } } QgsGPSPluginGui *myPluginGui = new QgsGPSPluginGui( mImporters, mDevices, gpxLayers, mQGisInterface->mainWindow(), QgisGui::ModalDialogFlags ); myPluginGui->setAttribute( Qt::WA_DeleteOnClose ); //listen for when the layer has been made so we can draw it connect( myPluginGui, SIGNAL( drawVectorLayer( QString, QString, QString ) ), this, SLOT( drawVectorLayer( QString, QString, QString ) ) ); connect( myPluginGui, SIGNAL( loadGPXFile( QString, bool, bool, bool ) ), this, SLOT( loadGPXFile( QString, bool, bool, bool ) ) ); connect( myPluginGui, SIGNAL( importGPSFile( QString, QgsBabelFormat*, bool, bool, bool, QString, QString ) ), this, SLOT( importGPSFile( QString, QgsBabelFormat*, bool, bool, bool, QString, QString ) ) ); connect( myPluginGui, SIGNAL( convertGPSFile( QString, int, QString, QString ) ), this, SLOT( convertGPSFile( QString, int, QString, QString ) ) ); connect( myPluginGui, SIGNAL( downloadFromGPS( QString, QString, bool, bool, bool, QString, QString ) ), this, SLOT( downloadFromGPS( QString, QString, bool, bool, bool, QString, QString ) ) ); connect( myPluginGui, SIGNAL( uploadToGPS( QgsVectorLayer*, QString, QString ) ), this, SLOT( uploadToGPS( QgsVectorLayer*, QString, QString ) ) ); connect( this, SIGNAL( closeGui() ), myPluginGui, SLOT( close() ) ); myPluginGui->show(); }
// Slot called when the menu item is activated void QgsGPSPlugin::run() { // find all GPX layers std::vector<QgsVectorLayer *> gpxLayers; QMap<QString, QgsMapLayer *>::const_iterator iter; QMap<QString, QgsMapLayer *> layers = QgsProject::instance()->mapLayers(); for ( iter = layers.constBegin(); iter != layers.constEnd(); ++iter ) { if ( iter.value()->type() == QgsMapLayer::VectorLayer ) { QgsVectorLayer *vLayer = qobject_cast<QgsVectorLayer *>( iter.value() ); if ( vLayer->providerType() == QLatin1String( "gpx" ) ) gpxLayers.push_back( vLayer ); } } QgsGPSPluginGui *myPluginGui = new QgsGPSPluginGui( mImporters, mDevices, gpxLayers, mQGisInterface->mainWindow(), QgsGuiUtils::ModalDialogFlags ); myPluginGui->setAttribute( Qt::WA_DeleteOnClose ); //listen for when the layer has been made so we can draw it connect( myPluginGui, &QgsGPSPluginGui::drawVectorLayer, this, &QgsGPSPlugin::drawVectorLayer ); connect( myPluginGui, &QgsGPSPluginGui::loadGPXFile, this, &QgsGPSPlugin::loadGPXFile ); connect( myPluginGui, &QgsGPSPluginGui::importGPSFile, this, &QgsGPSPlugin::importGPSFile ); connect( myPluginGui, &QgsGPSPluginGui::convertGPSFile, this, &QgsGPSPlugin::convertGPSFile ); connect( myPluginGui, &QgsGPSPluginGui::downloadFromGPS, this, &QgsGPSPlugin::downloadFromGPS ); connect( myPluginGui, &QgsGPSPluginGui::uploadToGPS, this, &QgsGPSPlugin::uploadToGPS ); connect( this, &QgsGPSPlugin::closeGui, myPluginGui, &QWidget::close ); myPluginGui->show(); }