RoutingWidget::RoutingWidget( MarbleWidget *marbleWidget, QWidget *parent ) : QWidget( parent ), d( new RoutingWidgetPrivate( marbleWidget ) ) { d->m_ui.setupUi( this ); d->m_ui.routeComboBox->setVisible( false ); d->m_ui.routeComboBox->setModel( d->m_routingManager->alternativeRoutesModel() ); d->m_routingLayer->synchronizeAlternativeRoutesWith( d->m_ui.routeComboBox ); d->m_ui.routingProfileComboBox->setModel( d->m_routingManager->profilesModel() ); connect( d->m_routingManager->profilesModel(), SIGNAL( rowsInserted( QModelIndex, int, int ) ), this, SLOT( selectFirstProfile() ) ); connect( d->m_routingManager->profilesModel(), SIGNAL( modelReset() ), this, SLOT( selectFirstProfile() ) ); connect( d->m_routingLayer, SIGNAL( placemarkSelected( QModelIndex ) ), this, SLOT( activatePlacemark( QModelIndex ) ) ); connect( d->m_routingLayer, SIGNAL( pointSelected( GeoDataCoordinates ) ), this, SLOT( retrieveSelectedPoint( GeoDataCoordinates ) ) ); connect( d->m_routingLayer, SIGNAL( pointSelectionAborted() ), this, SLOT( pointSelectionCanceled() ) ); connect( d->m_routingManager, SIGNAL( stateChanged( RoutingManager::State, RouteRequest* ) ), this, SLOT( updateRouteState( RoutingManager::State, RouteRequest* ) ) ); connect( d->m_routingManager, SIGNAL( routeRetrieved( GeoDataDocument* ) ), this, SLOT( indicateRoutingFailure( GeoDataDocument* ) ) ); connect( d->m_routeRequest, SIGNAL( positionAdded( int ) ), this, SLOT( insertInputWidget( int ) ) ); connect( d->m_routeRequest, SIGNAL( positionRemoved( int ) ), this, SLOT( removeInputWidget( int ) ) ); connect( d->m_routeRequest, SIGNAL( routingProfileChanged() ), this, SLOT( updateActiveRoutingProfile() ) ); connect( &d->m_progressTimer, SIGNAL( timeout() ), this, SLOT( updateProgress() ) ); connect( d->m_ui.routeComboBox, SIGNAL( currentIndexChanged( int ) ), this, SLOT( switchRoute( int ) ) ); connect( d->m_ui.routingProfileComboBox, SIGNAL( currentIndexChanged( int ) ), this, SLOT( setRoutingProfile( int ) ) ); connect( d->m_routingManager->alternativeRoutesModel(), SIGNAL( rowsInserted( QModelIndex, int, int ) ), this, SLOT( updateAlternativeRoutes() ) ); d->m_ui.directionsListView->setModel( d->m_routingModel ); QItemSelectionModel *selectionModel = d->m_ui.directionsListView->selectionModel(); d->m_routingLayer->synchronizeWith( selectionModel ); connect( d->m_ui.directionsListView, SIGNAL( activated ( QModelIndex ) ), this, SLOT( activateItem ( QModelIndex ) ) ); connect( d->m_ui.searchButton, SIGNAL( clicked( ) ), this, SLOT( retrieveRoute () ) ); connect( d->m_ui.showInstructionsButton, SIGNAL( clicked( bool ) ), this, SLOT( showDirections() ) ); connect( d->m_ui.configureButton, SIGNAL( clicked() ), this, SLOT( configureProfile() ) ); for( int i=0; i<d->m_routeRequest->size(); ++i ) { insertInputWidget( i ); } for ( int i=0; i<2 && d->m_inputWidgets.size()<2; ++i ) { // Start with source and destination if the route is empty yet addInputWidget(); } //d->m_ui.descriptionLabel->setVisible( false ); d->m_ui.resultLabel->setVisible( false ); setShowDirectionsButtonVisible( false ); updateActiveRoutingProfile(); if ( MarbleGlobal::getInstance()->profiles() & MarbleGlobal::SmallScreen ) { d->m_ui.directionsListView->setVisible( false ); #ifdef Q_WS_MAEMO_5 d->m_ui.directionsListView->setAttribute( Qt::WA_Maemo5StackedWindow ); d->m_ui.directionsListView->setWindowFlags( Qt::Window ); d->m_ui.directionsListView->setWindowTitle( tr( "Directions - Marble" ) ); #endif // Q_WS_MAEMO_5 } }
void MapEditor::placemarkClickedOnList(int placemarkID) { emit placemarkSelected(placemarkID); }