void CurrentLocationWidgetPrivate::changePositionProvider( const QString &provider ) { foreach( const PositionProviderPlugin* plugin, m_positionProviderPlugins ) { if ( plugin->guiString() == provider ) { m_currentLocationUi.locationLabel->setEnabled( true ); PositionProviderPlugin* instance = plugin->newInstance(); PositionTracking *tracking = m_widget->model()->positionTracking(); tracking->setPositionProviderPlugin( instance ); m_widget->update(); return; } } // requested provider not found -> disable position tracking m_currentLocationUi.locationLabel->setEnabled( false ); m_widget->model()->positionTracking()->setPositionProviderPlugin( 0 ); m_widget->update(); }
void CurrentLocationWidgetPrivate::changePositionProvider( const QString &provider ) { bool hasProvider = ( provider != QObject::tr("Disabled") ); if ( hasProvider ) { foreach( const PositionProviderPlugin* plugin, m_positionProviderPlugins ) { if ( plugin->guiString() == provider ) { m_currentLocationUi.locationLabel->setEnabled( true ); PositionProviderPlugin* instance = plugin->newInstance(); PositionTracking *tracking = m_widget->model()->positionTracking(); instance->setMarbleModel( m_widget->model() ); tracking->setPositionProviderPlugin( instance ); m_widget->update(); return; } } } else {