Step 2: Marble Widget Layer (in progress)

Making the paint layer a QAbstractItemView working on the same model as the routing instructions list view and sharing the selection model with it

Make source/destination points movable directly in the map

Provide tooltips / unfolding for routing instructions

Integrate the paint layer with MarbleWidget/MarbleMap. Eventually extend LayerManager to support adding layers not via plugins.

Step 3: More routing providers (in progress)

Integrate openrouteservice.org (permission to use in Marble kindly granted by them)

Integrate yournavigation.com

Implement scoring, auto-choose the best provider/result

Google Maps can not be integrated due to its terms of service

Check terms of service for cloudmade

Step 4: Integrate with search UI

Merge UI in MarbleControlBox: Search via runners and routing can be done from the same widget similar to how Google Maps does it

Default Search is pretty much the same, but has a "Routing mode" button which adds a second search widget (likely more to support intermediate targets)

Search results are shown in the list view as before. The selected search result is kept track of and taken as the source/destination point.

Once all routing points are known (user selected a search result or clicked on the map for both routing source and destination and intermediate points, if any), the "Get Directions" button can be used to fetch routing instructions from the current routing provider

Routing results are shown in the same list view as marble runner search results