// 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();
}
Beispiel #2
0
// 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();
}