Allow Bing Map source URL to be set via the configuration XML file.

Currently ATM only the hostname part will be used via a suitable configuration.
Making the URL part of the data structure means it can be overwritten.
This may be helpful in case the URL changes in the future,
 so it can be overridden via an entry in the maps.xml file by the end user without requiring code changes.
Fix location of gdk_threads_enter() to be before first window creation.
Fix background thread statusbar update instability.

Previous revision in using signalling method didn't actually ensure the gtk updates were performed in the main thread.
(Commit SHA1:901423020f8c8fbc41052247ff6d8c9414f8077d although it made it more reliable).

Ensure statusbar updates are performed in the main thread via use of gdk_threads_add_idle() when the update is requested from the background.
Allow opening of files via Drag and Drop onto the Viewport.
Support new versions of depreciated g_thread_* functions for glib 2.32
Prevent gcc 4.7.3 compiler warnings for new routing code.
Fix Drag and Drop file loading on Windows.
[QA] Prevent Gtk-Critical warnings on trying to use NULL strings on file entry widgets.
Generalize routing engine

Most routing WEB services works the same way.
This class allow to add a routing engine, by simply setting some
properties.

Signed-off-by: Guilhem Bonnefille <guilhem.bonnefille@gmail.com>
Routing: suppress OSRM specific code

All OSRM feature can be implemented with generic routing engine.

Signed-off-by: Guilhem Bonnefille <guilhem.bonnefille@gmail.com>
Routing: suppress Google

Suppress Google specific code as all can be done via generic
web engine.

Signed-off-by: Guilhem Bonnefille <guilhem.bonnefille@gmail.com>
Routing: refactor

All related Web stuff should be hosted by VikRoutingWebEngine.
Ideally, VikRoutingEngine should stay independent from any
technical implementation.

For exemple, we can imagine a future set of routing engine
running offline.

Signed-off-by: Guilhem Bonnefille <guilhem.bonnefille@gmail.com>
Fix selection of trackpoint via Edit Trackpoint button.

Need to set current bounding box for the trackpoint search.
Error was introduced by commit SHA1:79773236f27a9ab34622b2739f929737144b67b2
Don't silently fail on attempting to split to a track.

Annoyingly my new GPS output had a dodgy timed trackpoint,
 so I was wondering why the split functionality wasn't working.

This now gives a chance to go to the offending point,
 so that hopefully if it's only one, one can delete it to fix the issue.
Add ability to Download Maps for a defined region over several Zoom levels.

Tidied up some personal code I wrote ages ago, that enables downloading of a lot of tiles at once.
Primarily intended for getting the tiles into the cache for later off line usage.

There are some hardcoded limits: 500 tiles before asking for confirmation and an absolute 5000 max.

Promote this code for public use since Marble has had this feature for while, seemingly with no complaints.

See:
http://docs.kde.org/development/en/kdeedu/marble/download-region.html
[QA] Revise direct access for '->vbox' to use gtk_dialog_get_content_area() instead.
QA: factorize GObject cast operations (datasource_file.c)

GObject cast operation consume CPU, so it could be useful to reduce the
number of call (even if it is low consumption).
Furthermore, it is better to have small source code lines.
QA: factorize GObject cast operations (datasource_gc.c)

GObject cast operation consume CPU, so it could be useful to reduce the
number of call (even if it is low consumption).
Furthermore, it is better to have small source code lines.
QA: factorize GObject cast operations (datasource_geotag.c)

GObject cast operation consume CPU, so it could be useful to reduce the
number of call (even if it is low consumption).
Furthermore, it is better to have small source code lines.
QA: factorize GObject cast operations (datasource_google.c)

GObject cast operation consume CPU, so it could be useful to reduce the
number of call (even if it is low consumption).
Furthermore, it is better to have small source code lines.