[marble] (re)enable python bindings

Rex Dieter rdieter at fedoraproject.org
Sun Aug 11 21:37:16 UTC 2013


commit 61d1be2836e435b343fd37b45e618476dd3ad53d
Author: Rex Dieter <rdieter at math.unl.edu>
Date:   Sun Aug 11 16:37:08 2013 -0500

    (re)enable python bindings

 0001-Python-bindings-update.patch |  497 +++++++++
 0002-Python-bindings-update.patch | 2011 +++++++++++++++++++++++++++++++++++++
 marble.spec                       |   12 +-
 3 files changed, 2518 insertions(+), 2 deletions(-)
---
diff --git a/0001-Python-bindings-update.patch b/0001-Python-bindings-update.patch
new file mode 100644
index 0000000..ebc0019
--- /dev/null
+++ b/0001-Python-bindings-update.patch
@@ -0,0 +1,497 @@
+From c640a6889b440640da501237f21c0847b6a8303d Mon Sep 17 00:00:00 2001
+From: Simon Edwards <simon at simonzone.com>
+Date: Sat, 10 Aug 2013 13:27:22 +0200
+Subject: [PATCH 1/2] Python bindings update.
+
+Phase 1: Remove what ever it takes to get it building again.
+---
+ src/bindings/python/sip/AbstractDataPlugin.sip           | 1 -
+ src/bindings/python/sip/AbstractDataPluginItem.sip       | 3 ---
+ src/bindings/python/sip/AbstractDataPluginModel.sip      | 1 -
+ src/bindings/python/sip/FileViewWidget.sip               | 3 ---
+ src/bindings/python/sip/GeoDataAbstractView.sip          | 2 +-
+ src/bindings/python/sip/GeoDataCoordinates.sip           | 1 -
+ src/bindings/python/sip/GeoDataFeature.sip               | 4 ----
+ src/bindings/python/sip/GeoDataLatLonAltBox.sip          | 2 --
+ src/bindings/python/sip/GeoDataObject.sip                | 7 +++++--
+ src/bindings/python/sip/GeoDataPlacemark.sip             | 3 ---
+ src/bindings/python/sip/GeoDataPoint.sip                 | 1 -
+ src/bindings/python/sip/GeoGraphicsItem.sip              | 3 +--
+ src/bindings/python/sip/GeoGraphicsScene.sip             | 1 -
+ src/bindings/python/sip/GeoPainter.sip                   | 8 +-------
+ src/bindings/python/sip/MarbleGraphicsItem.sip           | 1 -
+ src/bindings/python/sip/MarbleMap.sip                    | 4 +---
+ src/bindings/python/sip/MarbleModel.sip                  | 4 ----
+ src/bindings/python/sip/MarbleWidget.sip                 | 2 --
+ src/bindings/python/sip/ParseRunnerPlugin.sip            | 3 +--
+ src/bindings/python/sip/RenderPlugin.sip                 | 8 --------
+ src/bindings/python/sip/ReverseGeocodingRunnerPlugin.sip | 3 +--
+ src/bindings/python/sip/RoutingRunnerPlugin.sip          | 3 +--
+ src/bindings/python/sip/SearchRunnerPlugin.sip           | 3 +--
+ src/bindings/python/sip/marblemod.sip                    | 1 -
+ 24 files changed, 13 insertions(+), 59 deletions(-)
+
+diff --git a/src/bindings/python/sip/AbstractDataPlugin.sip b/src/bindings/python/sip/AbstractDataPlugin.sip
+index 92d1044..1b13b91 100644
+--- a/src/bindings/python/sip/AbstractDataPlugin.sip
++++ b/src/bindings/python/sip/AbstractDataPlugin.sip
+@@ -42,7 +42,6 @@ signals:
+     void                    changedNumberOfItems (quint32 number);
+ public:
+ //ig    PluginManager*          pluginManager () const;
+-    virtual Marble::RenderPlugin::RenderType  renderType () const;
+                             AbstractDataPlugin (const Marble::MarbleModel* marbleModel);
+     bool                    isInitialized () const;
+     void                    setDelegate (QDeclarativeComponent* delegate, QGraphicsItem* parent);
+diff --git a/src/bindings/python/sip/AbstractDataPluginItem.sip b/src/bindings/python/sip/AbstractDataPluginItem.sip
+index dc61a7a..7cabb01 100644
+--- a/src/bindings/python/sip/AbstractDataPluginItem.sip
++++ b/src/bindings/python/sip/AbstractDataPluginItem.sip
+@@ -43,7 +43,6 @@
+ #include <MapViewWidget.h>
+ #include <MapWizard.h>
+ #include <MarbleAboutDialog.h>
+-#include <MarbleAbstractRunner.h>
+ #include <MarbleControlBox.h>
+ #include <MarbleMap.h>
+ #include <MarbleModel.h>
+@@ -114,8 +113,6 @@ public:
+         sipType = sipType_Marble_GeoGraphicsScene;
+     else if (dynamic_cast<Marble::MapThemeManager*>(sipCpp))
+         sipType = sipType_Marble_MapThemeManager;
+-    else if (dynamic_cast<Marble::MarbleAbstractRunner*>(sipCpp))
+-        sipType = sipType_Marble_MarbleAbstractRunner;
+     else if (dynamic_cast<Marble::MarbleMap*>(sipCpp))
+         sipType = sipType_Marble_MarbleMap;
+     else if (dynamic_cast<Marble::MarbleModel*>(sipCpp))
+diff --git a/src/bindings/python/sip/AbstractDataPluginModel.sip b/src/bindings/python/sip/AbstractDataPluginModel.sip
+index 37aeda1..95a34c7 100644
+--- a/src/bindings/python/sip/AbstractDataPluginModel.sip
++++ b/src/bindings/python/sip/AbstractDataPluginModel.sip
+@@ -51,7 +51,6 @@ protected:
+     virtual void            getAdditionalItems (const Marble::GeoDataLatLonAltBox& box, const Marble::MarbleModel* model, qint32 number = 10)=0;
+ public:
+ //ig    explicit                AbstractDataPluginModel (const QString& name, const PluginManager* pluginManager, QObject* parent /TransferThis/ = 0);
+-    QList<Marble::AbstractDataPluginItem*>  items (const Marble::ViewportParams* viewport, const Marble::MarbleModel* model, qint32 number = 10);
+     virtual void            setFavoriteItems (const QStringList& list);
+     QStringList             favoriteItems () const;
+     virtual void            setFavoriteItemsOnly (bool favoriteOnly);
+diff --git a/src/bindings/python/sip/FileViewWidget.sip b/src/bindings/python/sip/FileViewWidget.sip
+index 154d6ca..23e3cc3 100644
+--- a/src/bindings/python/sip/FileViewWidget.sip
++++ b/src/bindings/python/sip/FileViewWidget.sip
+@@ -28,12 +28,9 @@ class FileViewWidget : QWidget
+ public:
+                             FileViewWidget (QWidget* parent /TransferThis/ = 0, Qt::WindowFlags f = 0);
+     ~FileViewWidget ();
+-    void                    enableFileViewActions ();
+ //ig    void                    setFileViewModel (FileViewModel* model);
+ signals:
+     void                    centerOn (const Marble::GeoDataPlacemark&, bool animated);
+     void                    centerOn (const Marble::GeoDataLatLonBox&, bool animated);
+-public:
+-    void                    setTreeModel (Marble::GeoDataTreeModel* model);
+ };
+ };
+diff --git a/src/bindings/python/sip/GeoDataAbstractView.sip b/src/bindings/python/sip/GeoDataAbstractView.sip
+index 1da2da9..65fb8da 100644
+--- a/src/bindings/python/sip/GeoDataAbstractView.sip
++++ b/src/bindings/python/sip/GeoDataAbstractView.sip
+@@ -19,7 +19,7 @@
+ 
+ namespace Marble
+ {
+-class GeoDataAbstractView : Marble::GeoDataObject
++class GeoDataAbstractView : Marble::GeoDataObject /Abstract/
+ {
+ %TypeHeaderCode
+ #include <GeoDataAbstractView.h>
+diff --git a/src/bindings/python/sip/GeoDataCoordinates.sip b/src/bindings/python/sip/GeoDataCoordinates.sip
+index cadfa27..950430a 100644
+--- a/src/bindings/python/sip/GeoDataCoordinates.sip
++++ b/src/bindings/python/sip/GeoDataCoordinates.sip
+@@ -76,7 +76,6 @@ public:
+     virtual void            detach ();
+     virtual ~GeoDataCoordinates ();
+     bool                    isPole (Marble::Pole = Marble::AnyPole) const;
+-    virtual bool            operator != (const Marble::GeoDataCoordinates&) const;
+     enum BearingType
+     {
+         InitialBearing,
+diff --git a/src/bindings/python/sip/GeoDataFeature.sip b/src/bindings/python/sip/GeoDataFeature.sip
+index 048aeed..d8b5a08 100644
+--- a/src/bindings/python/sip/GeoDataFeature.sip
++++ b/src/bindings/python/sip/GeoDataFeature.sip
+@@ -28,7 +28,6 @@ public:
+                             GeoDataFeature ();
+                             GeoDataFeature (const QString& name);
+                             GeoDataFeature (const Marble::GeoDataFeature& other);
+-    bool                    operator == (const Marble::GeoDataFeature&) const;
+     Marble::EnumFeatureId   featureId () const;
+ 
+     enum GeoDataVisualCategory
+@@ -219,8 +218,6 @@ public:
+ protected:
+ //ig                            GeoDataFeature (GeoDataFeaturePrivate* priv);
+ public:
+-    Marble::GeoDataAbstractView  abstractView () const;
+-    void                    setAbstractView (const Marble::GeoDataAbstractView& abstractView);
+ //ig    Marble::GeoDataTimeSpan&  timeSpan () const;
+ //ig    GeoDataTimeStamp&       timeStamp () const;
+ //ig    void                    setTimeStamp (GeoDataTimeStamp timeStamp);
+@@ -235,7 +232,6 @@ public:
+     void                    setZoomLevel (int index);
+     static QColor           defaultLabelColor ();
+     static void             setDefaultLabelColor (const QColor& color);
+-    void                    setStyle (const Marble::GeoDataStyle* style);
+     void                    setStyleMap (const Marble::GeoDataStyleMap* map);
+ };
+ // GeoDataFeature
+diff --git a/src/bindings/python/sip/GeoDataLatLonAltBox.sip b/src/bindings/python/sip/GeoDataLatLonAltBox.sip
+index 60b44ca..f80aab0 100644
+--- a/src/bindings/python/sip/GeoDataLatLonAltBox.sip
++++ b/src/bindings/python/sip/GeoDataLatLonAltBox.sip
+@@ -28,7 +28,6 @@ class GeoDataLatLonAltBox : Marble::GeoDataLatLonBox
+ public:
+                             GeoDataLatLonAltBox ();
+                             GeoDataLatLonAltBox (const Marble::GeoDataLatLonAltBox& other);
+-                            GeoDataLatLonAltBox (const Marble::GeoDataLatLonBox& other);
+     qreal                   minAltitude () const;
+     void                    setMinAltitude (const qreal minAltitude);
+     qreal                   maxAltitude () const;
+@@ -43,7 +42,6 @@ public:
+     bool                    isNull () const;
+     virtual void            pack (QDataStream& stream) const;
+     virtual void            unpack (QDataStream& stream);
+-                            GeoDataLatLonAltBox (const Marble::GeoDataCoordinates& coordinates);
+     virtual ~GeoDataLatLonAltBox ();
+     virtual const char*     nodeType () const;
+     virtual Marble::GeoDataCoordinates  center () const;
+diff --git a/src/bindings/python/sip/GeoDataObject.sip b/src/bindings/python/sip/GeoDataObject.sip
+index 6071ee8..44b39c7 100644
+--- a/src/bindings/python/sip/GeoDataObject.sip
++++ b/src/bindings/python/sip/GeoDataObject.sip
+@@ -18,7 +18,7 @@
+ namespace Marble
+ {
+ 
+-class GeoDataObject : Marble::GeoNode, Marble::Serializable
++class GeoDataObject : Marble::GeoNode, Marble::Serializable /Abstract/
+ {
+ %TypeHeaderCode
+ #include <GeoDataObject.h>
+@@ -34,7 +34,10 @@ public:
+     virtual void            pack (QDataStream& stream) const;
+     virtual void            unpack (QDataStream& steam);
+     virtual ~GeoDataObject ();
+-    virtual const char*     nodeType () const;
++
++// no impl.
++//ig    virtual const char*     nodeType () const;
++
+     virtual Marble::GeoDataObject*  parent () const;
+     virtual void            setParent (Marble::GeoDataObject* parent);
+ };
+diff --git a/src/bindings/python/sip/GeoDataPlacemark.sip b/src/bindings/python/sip/GeoDataPlacemark.sip
+index 7a3228f..627b9e5 100644
+--- a/src/bindings/python/sip/GeoDataPlacemark.sip
++++ b/src/bindings/python/sip/GeoDataPlacemark.sip
+@@ -32,7 +32,6 @@ public:
+     Marble::GeoDataCoordinates  coordinate (const QDateTime& dateTime = QDateTime(), bool* iconAtCoordinates = 0) const;
+     Marble::GeoDataGeometry*  geometry () const;
+ //ig    void                    coordinate (qreal& longitude, qreal& latitude, qreal& altitude) const;
+-    void                    setCoordinate (qreal longitude, qreal latitude, qreal altitude = 0, Marble::GeoDataPoint::Unit _unit = Marble::GeoDataPoint::Radian);
+     void                    setCoordinate (const Marble::GeoDataPoint& point);
+     qreal                   area () const;
+     void                    setArea (qreal area);
+@@ -49,8 +48,6 @@ public:
+     void                    setGeometry (Marble::GeoDataGeometry* entry);
+     const QString           state () const;
+     void                    setState (const QString& state);
+-    Marble::GeoDataLookAt*  lookAt () const;
+-    void                    setLookAt (Marble::GeoDataLookAt* lookAt);
+ };
+ // GeoDataPlacemark
+ 
+diff --git a/src/bindings/python/sip/GeoDataPoint.sip b/src/bindings/python/sip/GeoDataPoint.sip
+index 0f17a69..296760c 100644
+--- a/src/bindings/python/sip/GeoDataPoint.sip
++++ b/src/bindings/python/sip/GeoDataPoint.sip
+@@ -32,7 +32,6 @@ public:
+                             GeoDataPoint (const Marble::GeoDataPoint& other);
+                             GeoDataPoint (const Marble::GeoDataGeometry& other);
+                             GeoDataPoint ();
+-                            GeoDataPoint (qreal _lon, qreal _lat, qreal alt = 0, Marble::GeoDataPoint::Unit _unit = Marble::GeoDataPoint::Radian, int _detail = 0);
+     typedef QVector<Marble::GeoDataPoint> Vector;
+ 
+     virtual void            pack (QDataStream& stream) const;
+diff --git a/src/bindings/python/sip/GeoGraphicsItem.sip b/src/bindings/python/sip/GeoGraphicsItem.sip
+index eff28d5..39c7372 100644
+--- a/src/bindings/python/sip/GeoGraphicsItem.sip
++++ b/src/bindings/python/sip/GeoGraphicsItem.sip
+@@ -28,8 +28,7 @@ class GeoGraphicsItem
+ %End
+ 
+ public:
+-                            GeoGraphicsItem ();
+-
++    GeoGraphicsItem (const Marble::GeoDataFeature *x);
+     virtual ~GeoGraphicsItem ();
+     enum GeoGraphicsItemFlag
+     {
+diff --git a/src/bindings/python/sip/GeoGraphicsScene.sip b/src/bindings/python/sip/GeoGraphicsScene.sip
+index 420216d..5ad03e1 100644
+--- a/src/bindings/python/sip/GeoGraphicsScene.sip
++++ b/src/bindings/python/sip/GeoGraphicsScene.sip
+@@ -28,7 +28,6 @@ class GeoGraphicsScene : QObject
+ public:
+                             GeoGraphicsScene (QObject* parent /TransferThis/ = 0);
+     ~GeoGraphicsScene ();
+-    void                    removeItem (Marble::GeoGraphicsItem* item);
+     void                    clear ();
+     QList<Marble::GeoGraphicsItem*>  items (const Marble::GeoDataLatLonAltBox& box, int maxZoomLevel) const;
+ //ig    static int s_tileZoomLevel;
+diff --git a/src/bindings/python/sip/GeoPainter.sip b/src/bindings/python/sip/GeoPainter.sip
+index eb95e62..75295c2 100644
+--- a/src/bindings/python/sip/GeoPainter.sip
++++ b/src/bindings/python/sip/GeoPainter.sip
+@@ -18,28 +18,24 @@
+ namespace Marble
+ {
+ 
+-class GeoPainter : Marble::ClipPainter
++class GeoPainter : Marble::ClipPainter /Abstract/
+ {
+ %TypeHeaderCode
+ #include <GeoPainter.h>
+ %End
+ 
+ public:
+-    void                    autoMapQuality ();
+     Marble::MapQuality      mapQuality () const;
+     void                    drawAnnotation (const Marble::GeoDataCoordinates& position, const QString& text, QSizeF bubbleSize = QSizeF(130,100), qreal bubbleOffsetX = -10, qreal bubbleOffsetY = -30, qreal xRnd = 5, qreal yRnd = 5);
+     void                    drawPoint (const Marble::GeoDataCoordinates& position);
+-    void                    drawPoints (const Marble::GeoDataCoordinates* positions, int pointCount);
+     void                    drawText (const Marble::GeoDataCoordinates& position, const QString& text);
+     void                    drawEllipse (const Marble::GeoDataCoordinates& centerPosition, qreal width, qreal height, bool isGeoProjected = 0);
+     void                    drawImage (const Marble::GeoDataCoordinates& centerPosition, const QImage& image);
+     void                    drawPixmap (const Marble::GeoDataCoordinates& centerPosition, const QPixmap& pixmap);
+-    void                    drawLine (const Marble::GeoDataCoordinates& startPosition, const Marble::GeoDataCoordinates& endPosition, bool isGeoProjected = 0);
+     void                    drawPolyline (const Marble::GeoDataLineString& lineString, const QString& labelText = QString(), Marble::LabelPositionFlags labelPositionFlags = Marble::LineCenter);
+     void                    drawPolygon (const Marble::GeoDataLinearRing& linearRing, Qt::FillRule fillRule = Qt::OddEvenFill);
+     void                    drawPolygon (const Marble::GeoDataPolygon& polygon, Qt::FillRule fillRule = Qt::OddEvenFill);
+     void                    drawRect (const Marble::GeoDataCoordinates& centerPosition, qreal width, qreal height, bool isGeoProjected = 0);
+-    void                    drawRoundRect (const Marble::GeoDataCoordinates& centerPosition, int width, int height, int xRnd = 25, int yRnd = 25, bool isGeoProjected = 0);
+     void                    drawText (int x, int y, const QString& text);
+     void                    drawText (const QPointF& position, const QString& text);
+     void                    drawText (const QPoint& position, const QString& text);
+@@ -62,11 +58,9 @@ public:
+     void                    drawPoint (const Marble::GeoDataPoint& point);
+     void                    drawImage (const QRect& rect, const QImage& image);
+     void                    drawImage (const QRectF& rect, const QImage& image);
+-                            GeoPainter (QPaintDevice* paintDevice, const Marble::ViewportParams* viewportParams, Marble::MapQuality mapQuality = Marble::NormalQuality, bool clip = 1);
+     QRegion                 regionFromPoint (const Marble::GeoDataCoordinates& position, qreal strokeWidth = 3) const;
+     QRegion                 regionFromPoint (const Marble::GeoDataPoint& point, qreal strokeWidth = 3) const;
+     QRegion                 regionFromEllipse (const Marble::GeoDataCoordinates& centerPosition, qreal width, qreal height, bool isGeoProjected = 0, qreal strokeWidth = 3) const;
+-    QRegion                 regionFromLine (const Marble::GeoDataCoordinates& startPosition, const Marble::GeoDataCoordinates& endPosition, bool isGeoProjected = 0, qreal strokeWidth = 3) const;
+     QRegion                 regionFromPolyline (const Marble::GeoDataLineString& lineString, qreal strokeWidth = 3) const;
+     QRegion                 regionFromPolygon (const Marble::GeoDataLinearRing& linearRing, Qt::FillRule fillRule, qreal strokeWidth = 3) const;
+     QRegion                 regionFromRect (const Marble::GeoDataCoordinates& centerPosition, qreal width, qreal height, bool isGeoProjected = 0, qreal strokeWidth = 3) const;
+diff --git a/src/bindings/python/sip/MarbleGraphicsItem.sip b/src/bindings/python/sip/MarbleGraphicsItem.sip
+index 4c447eb..a97b300 100644
+--- a/src/bindings/python/sip/MarbleGraphicsItem.sip
++++ b/src/bindings/python/sip/MarbleGraphicsItem.sip
+@@ -49,7 +49,6 @@ protected:
+ public:
+     virtual ~MarbleGraphicsItem ();
+     bool                    contains (const QPointF& point) const;
+-    QRectF                  containsRect (const QPointF& point) const;
+     Marble::AbstractMarbleGraphicsLayout*  layout () const;
+     void                    setLayout (Marble::AbstractMarbleGraphicsLayout* layout);
+     bool                    visible () const;
+diff --git a/src/bindings/python/sip/MarbleMap.sip b/src/bindings/python/sip/MarbleMap.sip
+index 34aad1f..8d0dcb9 100644
+--- a/src/bindings/python/sip/MarbleMap.sip
++++ b/src/bindings/python/sip/MarbleMap.sip
+@@ -103,7 +103,7 @@ protected:
+ 
+ public:
+     virtual ~MarbleMap ();
+-    void                    reload () const;
++    void                    reload ();
+     Marble::ViewportParams*  viewport ();
+     Marble::MapQuality      mapQuality () const;
+     void                    setSize (const QSize& size);
+@@ -140,11 +140,9 @@ public:
+ //ig    const Marble::ViewportParams*  viewport () const;
+     bool                    showSunShading () const;
+     bool                    showCityLights () const;
+-    bool                    showSunInZenith () const;
+     void                    paint (Marble::GeoPainter& painter, const QRect& dirtyRect);
+     void                    setShowSunShading (bool visible);
+     void                    setShowCityLights (bool visible);
+-    void                    setShowSunInZenith (bool visible);
+ signals:
+     void                    radiusChanged (int radius);
+ public:
+diff --git a/src/bindings/python/sip/MarbleModel.sip b/src/bindings/python/sip/MarbleModel.sip
+index 028d81f..93139a9 100644
+--- a/src/bindings/python/sip/MarbleModel.sip
++++ b/src/bindings/python/sip/MarbleModel.sip
+@@ -26,9 +26,6 @@ class MarbleModel : QObject
+ 
+ public:
+     QString                 mapThemeId () const;
+-    void                    addPlacemarkFile (const QString& filename);
+-    void                    addPlacemarkData (const QString& data, const QString& key = "data");
+-    void                    removePlacemarkKey (const QString& key);
+     qreal                   planetRadius () const;
+     QString                 planetName () const;
+     const Marble::SunLocator*  sunLocator () const;
+@@ -44,7 +41,6 @@ public:
+     virtual ~MarbleModel ();
+ //ig    Marble::GeoSceneDocument*  mapTheme () const;
+ //ig    HttpDownloadManager*    downloadManager () const;
+-    void                    openGpxFile (const QString& filename);
+     void                    setHome (qreal lon, qreal lat, int zoom = 1050);
+     void                    setHome (const Marble::GeoDataCoordinates& homePoint, int zoom = 1050);
+     void                    addGeoDataFile (const QString& filename);
+diff --git a/src/bindings/python/sip/MarbleWidget.sip b/src/bindings/python/sip/MarbleWidget.sip
+index 9269971..f67b4a3 100644
+--- a/src/bindings/python/sip/MarbleWidget.sip
++++ b/src/bindings/python/sip/MarbleWidget.sip
+@@ -172,11 +172,9 @@ public:
+ //ig    MarbleWidgetPopupMenu*  popupMenu ();
+     bool                    showSunShading () const;
+     bool                    showCityLights () const;
+-    bool                    showSunInZenith () const;
+     void                    centerOn (const Marble::GeoDataPlacemark& placemark, bool animated = 0);
+     void                    setShowSunShading (bool visible);
+     void                    setShowCityLights (bool visible);
+-    void                    setShowSunInZenith (bool visible);
+     QRegion                 mapRegion () const;
+     bool                    screenCoordinates (qreal lon, qreal lat, qreal& x, qreal& y) const;
+     bool                    geoCoordinates (int x, int y, qreal& lon, qreal& lat, Marble::GeoDataCoordinates::Unit = Marble::GeoDataCoordinates::Degree) const;
+diff --git a/src/bindings/python/sip/ParseRunnerPlugin.sip b/src/bindings/python/sip/ParseRunnerPlugin.sip
+index fa1b6b9..24da447 100644
+--- a/src/bindings/python/sip/ParseRunnerPlugin.sip
++++ b/src/bindings/python/sip/ParseRunnerPlugin.sip
+@@ -19,7 +19,7 @@
+ 
+ namespace Marble
+ {
+-class ParseRunnerPlugin : QObject, Marble::PluginInterface
++class ParseRunnerPlugin : QObject, Marble::PluginInterface /Abstract/
+ {
+ %TypeHeaderCode
+ #include <ParseRunnerPlugin.h>
+@@ -30,7 +30,6 @@ public:
+     virtual ~ParseRunnerPlugin ();
+     virtual QString         fileFormatDescription () const=0;
+     virtual QStringList     fileExtensions () const=0;
+-    virtual Marble::MarbleAbstractRunner*  newRunner () const=0;
+     virtual QIcon           icon () const;
+ };
+ };
+diff --git a/src/bindings/python/sip/RenderPlugin.sip b/src/bindings/python/sip/RenderPlugin.sip
+index 7570fa2..f7bed99 100644
+--- a/src/bindings/python/sip/RenderPlugin.sip
++++ b/src/bindings/python/sip/RenderPlugin.sip
+@@ -40,19 +40,11 @@ protected:
+ 
+ public:
+     virtual ~RenderPlugin ();
+-    virtual QList<QActionGroup*>*  actionGroups () const;
+-    virtual QList<QActionGroup*>*  toolbarActionGroups () const;
+     virtual QHash<QString,QVariant>  settings () const;
+ signals:
+     void                    settingsChanged (QString nameId);
+     void                    actionGroupsChanged ();
+ public:
+-    enum RenderType
+-    {
+-        Unknown,
+-        Online
+-    };
+-    virtual Marble::RenderPlugin::RenderType  renderType () const;
+     const Marble::MarbleModel*  marbleModel () const;
+     void                    restoreDefaultSettings ();
+ signals:
+diff --git a/src/bindings/python/sip/ReverseGeocodingRunnerPlugin.sip b/src/bindings/python/sip/ReverseGeocodingRunnerPlugin.sip
+index 751fe55..4642de9 100644
+--- a/src/bindings/python/sip/ReverseGeocodingRunnerPlugin.sip
++++ b/src/bindings/python/sip/ReverseGeocodingRunnerPlugin.sip
+@@ -19,7 +19,7 @@
+ 
+ namespace Marble
+ {
+-class ReverseGeocodingRunnerPlugin : QObject, Marble::PluginInterface
++class ReverseGeocodingRunnerPlugin : QObject, Marble::PluginInterface /Abstract/
+ {
+ %TypeHeaderCode
+ #include <ReverseGeocodingRunnerPlugin.h>
+@@ -29,7 +29,6 @@ public:
+     explicit                ReverseGeocodingRunnerPlugin (QObject* parent /TransferThis/ = 0);
+     virtual ~ReverseGeocodingRunnerPlugin ();
+     virtual QString         guiString () const=0;
+-    virtual Marble::MarbleAbstractRunner*  newRunner () const=0;
+     bool                    supportsCelestialBody (const QString& celestialBodyId) const;
+     bool                    canWorkOffline () const;
+     virtual bool            canWork () const;
+diff --git a/src/bindings/python/sip/RoutingRunnerPlugin.sip b/src/bindings/python/sip/RoutingRunnerPlugin.sip
+index 82e3954..b8381eb 100644
+--- a/src/bindings/python/sip/RoutingRunnerPlugin.sip
++++ b/src/bindings/python/sip/RoutingRunnerPlugin.sip
+@@ -19,7 +19,7 @@
+ 
+ namespace Marble
+ {
+-class RoutingRunnerPlugin : QObject, Marble::PluginInterface
++class RoutingRunnerPlugin : QObject, Marble::PluginInterface /Abstract/
+ {
+ %TypeHeaderCode
+ #include <RoutingRunnerPlugin.h>
+@@ -29,7 +29,6 @@ public:
+     explicit                RoutingRunnerPlugin (QObject* parent /TransferThis/ = 0);
+     virtual ~RoutingRunnerPlugin ();
+     virtual QString         guiString () const=0;
+-    virtual Marble::MarbleAbstractRunner*  newRunner () const=0;
+     bool                    supportsCelestialBody (const QString& celestialBodyId) const;
+     bool                    canWorkOffline () const;
+     virtual bool            canWork () const;
+diff --git a/src/bindings/python/sip/SearchRunnerPlugin.sip b/src/bindings/python/sip/SearchRunnerPlugin.sip
+index 090ed26..2924e79 100644
+--- a/src/bindings/python/sip/SearchRunnerPlugin.sip
++++ b/src/bindings/python/sip/SearchRunnerPlugin.sip
+@@ -19,7 +19,7 @@
+ 
+ namespace Marble
+ {
+-class SearchRunnerPlugin : QObject, Marble::PluginInterface
++class SearchRunnerPlugin : QObject, Marble::PluginInterface /Abstract/
+ {
+ %TypeHeaderCode
+ #include <SearchRunnerPlugin.h>
+@@ -29,7 +29,6 @@ public:
+     explicit                SearchRunnerPlugin (QObject* parent /TransferThis/ = 0);
+     virtual ~SearchRunnerPlugin ();
+     virtual QString         guiString () const=0;
+-    virtual Marble::MarbleAbstractRunner*  newRunner () const=0;
+     bool                    supportsCelestialBody (const QString& celestialBodyId) const;
+     bool                    canWorkOffline () const;
+     virtual bool            canWork () const;
+diff --git a/src/bindings/python/sip/marblemod.sip b/src/bindings/python/sip/marblemod.sip
+index f447ae9..9dc7f09 100644
+--- a/src/bindings/python/sip/marblemod.sip
++++ b/src/bindings/python/sip/marblemod.sip
+@@ -97,7 +97,6 @@
+ %Include MapViewWidget.sip
+ %Include MapWizard.sip
+ %Include MarbleAboutDialog.sip
+-%Include MarbleAbstractRunner.sip
+ %Include MarbleControlBox.sip
+ %Include MarbleDirs.sip
+ %Include MarbleGlobal.sip
+-- 
+1.8.3.1
+
diff --git a/0002-Python-bindings-update.patch b/0002-Python-bindings-update.patch
new file mode 100644
index 0000000..3534363
--- /dev/null
+++ b/0002-Python-bindings-update.patch
@@ -0,0 +1,2011 @@
+From 909b7e9bfb425106d5afdc0fe55fd9e1f96f51b5 Mon Sep 17 00:00:00 2001
+From: Simon Edwards <simon at simonzone.com>
+Date: Sun, 11 Aug 2013 11:48:37 +0200
+Subject: [PATCH 2/2] Python bindings update.
+
+Phase 2: update from current header files.
+---
+ src/bindings/python/sip/AbstractDataPlugin.sip     |  8 +-
+ src/bindings/python/sip/AbstractDataPluginItem.sip | 18 +++-
+ .../python/sip/AbstractDataPluginModel.sip         | 12 ++-
+ src/bindings/python/sip/AbstractFloatItem.sip      |  6 +-
+ src/bindings/python/sip/AbstractProjection.sip     |  2 +-
+ src/bindings/python/sip/AlternativeRoutesModel.sip |  1 +
+ src/bindings/python/sip/BillboardGraphicsItem.sip  |  3 +
+ src/bindings/python/sip/FileViewWidget.sip         |  3 +-
+ src/bindings/python/sip/FrameGraphicsItem.sip      |  3 +-
+ src/bindings/python/sip/GeoDataAbstractView.sip    |  8 ++
+ src/bindings/python/sip/GeoDataBalloonStyle.sip    | 49 +++++++++++
+ src/bindings/python/sip/GeoDataColorStyle.sip      |  1 +
+ src/bindings/python/sip/GeoDataContainer.sip       |  3 +-
+ src/bindings/python/sip/GeoDataCoordinates.sip     |  6 +-
+ src/bindings/python/sip/GeoDataDocument.sip        |  6 ++
+ src/bindings/python/sip/GeoDataFeature.sip         | 10 ++-
+ src/bindings/python/sip/GeoDataGroundOverlay.sip   | 22 +++++
+ src/bindings/python/sip/GeoDataIconStyle.sip       |  2 +
+ src/bindings/python/sip/GeoDataItemIcon.sip        | 50 +++++++++++
+ src/bindings/python/sip/GeoDataLatLonAltBox.sip    |  4 +
+ src/bindings/python/sip/GeoDataLineString.sip      |  6 ++
+ src/bindings/python/sip/GeoDataListStyle.sip       | 70 ++++++++++++++++
+ src/bindings/python/sip/GeoDataLookAt.sip          |  1 +
+ src/bindings/python/sip/GeoDataObject.sip          |  1 +
+ src/bindings/python/sip/GeoDataPlacemark.sip       |  4 +
+ src/bindings/python/sip/GeoDataPoint.sip           |  3 +
+ src/bindings/python/sip/GeoDataPolygon.sip         | 22 ++++-
+ src/bindings/python/sip/GeoDataStyle.sip           |  6 ++
+ src/bindings/python/sip/GeoDataTimePrimitive.sip   | 36 ++++++++
+ src/bindings/python/sip/GeoDataTimeSpan.sip        | 40 +++++++++
+ src/bindings/python/sip/GeoDataTimeStamp.sip       | 47 +++++++++++
+ src/bindings/python/sip/GeoDataTreeModel.sip       |  6 +-
+ src/bindings/python/sip/GeoDocument.sip            | 33 +++++++-
+ src/bindings/python/sip/GeoGraphicsItem.sip        |  4 +-
+ src/bindings/python/sip/GeoGraphicsScene.sip       |  3 +-
+ src/bindings/python/sip/GeoPainter.sip             | 21 +----
+ src/bindings/python/sip/GeoWriter.sip              |  2 +-
+ src/bindings/python/sip/LayerInterface.sip         |  2 +-
+ src/bindings/python/sip/MapThemeDownloadDialog.sip | 32 +++++++
+ src/bindings/python/sip/MapThemeManager.sip        |  1 +
+ src/bindings/python/sip/MapViewWidget.sip          |  4 +
+ src/bindings/python/sip/MarbleAboutDialog.sip      |  8 ++
+ src/bindings/python/sip/MarbleColors.sip           | 97 ++++++++++++++++++++++
+ src/bindings/python/sip/MarbleGlobal.sip           |  3 +-
+ src/bindings/python/sip/MarbleGraphicsItem.sip     |  2 +-
+ src/bindings/python/sip/MarbleMap.sip              |  4 +
+ src/bindings/python/sip/MarbleModel.sip            |  7 +-
+ src/bindings/python/sip/MarbleWebView.sip          | 19 +++++
+ src/bindings/python/sip/MarbleWidget.sip           |  8 ++
+ src/bindings/python/sip/ParseRunnerPlugin.sip      |  1 +
+ src/bindings/python/sip/ParsingRunner.sip          | 34 ++++++++
+ src/bindings/python/sip/Planet.sip                 |  4 +
+ src/bindings/python/sip/QtMarbleConfigDialog.sip   |  1 +
+ src/bindings/python/sip/RenderPlugin.sip           | 15 ++++
+ src/bindings/python/sip/ReverseGeocodingRunner.sip | 37 +++++++++
+ .../python/sip/ReverseGeocodingRunnerPlugin.sip    |  2 +
+ src/bindings/python/sip/RoutingModel.sip           |  2 +-
+ src/bindings/python/sip/RoutingRunner.sip          | 37 +++++++++
+ src/bindings/python/sip/RoutingRunnerPlugin.sip    |  2 +
+ src/bindings/python/sip/ScreenGraphicsItem.sip     |  3 +-
+ src/bindings/python/sip/SearchRunner.sip           | 38 +++++++++
+ src/bindings/python/sip/SearchRunnerPlugin.sip     |  2 +
+ src/bindings/python/sip/TileId.sip                 | 47 +++++++++++
+ src/bindings/python/sip/ViewportParams.sip         |  1 +
+ src/bindings/python/sip/WikipediaService.sip       | 19 +++++
+ src/bindings/python/sip/marblemod.sip              | 20 ++++-
+ 66 files changed, 919 insertions(+), 55 deletions(-)
+ create mode 100644 src/bindings/python/sip/GeoDataBalloonStyle.sip
+ create mode 100644 src/bindings/python/sip/GeoDataItemIcon.sip
+ create mode 100644 src/bindings/python/sip/GeoDataListStyle.sip
+ create mode 100644 src/bindings/python/sip/GeoDataTimePrimitive.sip
+ create mode 100644 src/bindings/python/sip/GeoDataTimeSpan.sip
+ create mode 100644 src/bindings/python/sip/GeoDataTimeStamp.sip
+ create mode 100644 src/bindings/python/sip/MapThemeDownloadDialog.sip
+ create mode 100644 src/bindings/python/sip/MarbleColors.sip
+ create mode 100644 src/bindings/python/sip/MarbleWebView.sip
+ create mode 100644 src/bindings/python/sip/ParsingRunner.sip
+ create mode 100644 src/bindings/python/sip/ReverseGeocodingRunner.sip
+ create mode 100644 src/bindings/python/sip/RoutingRunner.sip
+ create mode 100644 src/bindings/python/sip/SearchRunner.sip
+ create mode 100644 src/bindings/python/sip/TileId.sip
+ create mode 100644 src/bindings/python/sip/WikipediaService.sip
+
+diff --git a/src/bindings/python/sip/AbstractDataPlugin.sip b/src/bindings/python/sip/AbstractDataPlugin.sip
+index 1b13b91..4fcc0d6 100644
+--- a/src/bindings/python/sip/AbstractDataPlugin.sip
++++ b/src/bindings/python/sip/AbstractDataPlugin.sip
+@@ -41,17 +41,19 @@ public:
+ signals:
+     void                    changedNumberOfItems (quint32 number);
+ public:
+-//ig    PluginManager*          pluginManager () const;
+                             AbstractDataPlugin (const Marble::MarbleModel* marbleModel);
+     bool                    isInitialized () const;
+-    void                    setDelegate (QDeclarativeComponent* delegate, QGraphicsItem* parent);
++// FIXME
++//ig    void                    setDelegate (QDeclarativeComponent* delegate, QGraphicsItem* parent);
+     void                    setFavoriteItemsOnly (bool favoriteOnly);
+     bool                    isFavoriteItemsOnly () const;
+     QObject*                favoritesModel ();
+-    void                    handleViewportChange (Marble::ViewportParams* viewport);
+ signals:
+     void                    favoriteItemsOnlyChanged ();
+     void                    favoritesModelChanged ();
++public:
++    virtual Marble::RenderPlugin::RenderType  renderType () const;
++    void                    handleViewportChange (const Marble::ViewportParams* viewport);
+ };
+ // AbstractDataPlugin
+ 
+diff --git a/src/bindings/python/sip/AbstractDataPluginItem.sip b/src/bindings/python/sip/AbstractDataPluginItem.sip
+index 7cabb01..604b3ed 100644
+--- a/src/bindings/python/sip/AbstractDataPluginItem.sip
++++ b/src/bindings/python/sip/AbstractDataPluginItem.sip
+@@ -39,6 +39,7 @@
+ #include <LatLonBoxWidget.h>
+ #include <LatLonEdit.h>
+ #include <LegendWidget.h>
++#include <MapThemeDownloadDialog.h>
+ #include <MapThemeManager.h>
+ #include <MapViewWidget.h>
+ #include <MapWizard.h>
+@@ -51,14 +52,18 @@
+ #include <MarbleWidget.h>
+ #include <NavigationWidget.h>
+ #include <ParseRunnerPlugin.h>
++#include <ParsingRunner.h>
+ #include <PluginAboutDialog.h>
+ #include <PositionTracking.h>
+ #include <QtMarbleConfigDialog.h>
+ #include <RenderPlugin.h>
++#include <ReverseGeocodingRunner.h>
+ #include <ReverseGeocodingRunnerPlugin.h>
+ #include <routing/RouteRequest.h>
+ #include <routing/RoutingModel.h>
++#include <RoutingRunner.h>
+ #include <RoutingRunnerPlugin.h>
++#include <SearchRunner.h>
+ #include <SearchRunnerPlugin.h>
+ #include <SunLocator.h>
+ #include <TileCreator.h>
+@@ -86,7 +91,6 @@ public:
+     void                    setAddedAngularResolution (qreal resolution);
+     virtual QAction*        action ()=0;
+     virtual QString         itemType () const=0;
+-    virtual bool            initialized ()=0;
+     virtual void            addDownloadedFile (const QString& url, const QString& type)=0;
+ //ig    virtual bool            operator < (const Marble::AbstractDataPluginItem* other) const;
+ 
+@@ -121,6 +125,8 @@ public:
+         sipType = sipType_Marble_MarbleRunnerManager;
+     else if (dynamic_cast<Marble::ParseRunnerPlugin*>(sipCpp))
+         sipType = sipType_Marble_ParseRunnerPlugin;
++    else if (dynamic_cast<Marble::ParsingRunner*>(sipCpp))
++        sipType = sipType_Marble_ParsingRunner;
+     else if (dynamic_cast<Marble::PositionTracking*>(sipCpp))
+         sipType = sipType_Marble_PositionTracking;
+     else if (dynamic_cast<Marble::RenderPlugin*>(sipCpp))
+@@ -131,12 +137,18 @@ public:
+         else if (dynamic_cast<Marble::AbstractFloatItem*>(sipCpp))
+             sipType = sipType_Marble_AbstractFloatItem;
+         }
++    else if (dynamic_cast<Marble::ReverseGeocodingRunner*>(sipCpp))
++        sipType = sipType_Marble_ReverseGeocodingRunner;
+     else if (dynamic_cast<Marble::ReverseGeocodingRunnerPlugin*>(sipCpp))
+         sipType = sipType_Marble_ReverseGeocodingRunnerPlugin;
+     else if (dynamic_cast<Marble::RouteRequest*>(sipCpp))
+         sipType = sipType_Marble_RouteRequest;
++    else if (dynamic_cast<Marble::RoutingRunner*>(sipCpp))
++        sipType = sipType_Marble_RoutingRunner;
+     else if (dynamic_cast<Marble::RoutingRunnerPlugin*>(sipCpp))
+         sipType = sipType_Marble_RoutingRunnerPlugin;
++    else if (dynamic_cast<Marble::SearchRunner*>(sipCpp))
++        sipType = sipType_Marble_SearchRunner;
+     else if (dynamic_cast<Marble::SearchRunnerPlugin*>(sipCpp))
+         sipType = sipType_Marble_SearchRunnerPlugin;
+     else if (dynamic_cast<Marble::SunLocator*>(sipCpp))
+@@ -175,6 +187,8 @@ public:
+         sipType = sipType_Marble_TileLevelRangeWidget;
+     else if (dynamic_cast<Marble::DownloadRegionDialog*>(sipCpp))
+         sipType = sipType_Marble_DownloadRegionDialog;
++    else if (dynamic_cast<Marble::MapThemeDownloadDialog*>(sipCpp))
++        sipType = sipType_Marble_MapThemeDownloadDialog;
+     else if (dynamic_cast<Marble::MarbleAboutDialog*>(sipCpp))
+         sipType = sipType_Marble_MarbleAboutDialog;
+     else if (dynamic_cast<Marble::PluginAboutDialog*>(sipCpp))
+@@ -206,6 +220,8 @@ public:
+ signals:
+     void                    idChanged ();
+     void                    stickyChanged ();
++public:
++    virtual bool            initialized () const=0;
+ };
+ // AbstractDataPluginItem
+ 
+diff --git a/src/bindings/python/sip/AbstractDataPluginModel.sip b/src/bindings/python/sip/AbstractDataPluginModel.sip
+index 95a34c7..52d1f9d 100644
+--- a/src/bindings/python/sip/AbstractDataPluginModel.sip
++++ b/src/bindings/python/sip/AbstractDataPluginModel.sip
+@@ -47,10 +47,7 @@ protected:
+     bool                    itemExists (const QString& id) const;
+ signals:
+     void                    itemsUpdated ();
+-protected:
+-    virtual void            getAdditionalItems (const Marble::GeoDataLatLonAltBox& box, const Marble::MarbleModel* model, qint32 number = 10)=0;
+ public:
+-//ig    explicit                AbstractDataPluginModel (const QString& name, const PluginManager* pluginManager, QObject* parent /TransferThis/ = 0);
+     virtual void            setFavoriteItems (const QStringList& list);
+     QStringList             favoriteItems () const;
+     virtual void            setFavoriteItemsOnly (bool favoriteOnly);
+@@ -63,10 +60,17 @@ public:
+     QObject*                favoritesModel ();
+     void                    addItemsToList (const QList<Marble::AbstractDataPluginItem*>& items);
+ protected:
+-    virtual void            getItem (const QString& id, const Marble::MarbleModel* model);
+     void                    registerItemProperties (const QMetaObject& item);
+ signals:
+     void                    favoriteItemsOnlyChanged ();
++public:
++    explicit                AbstractDataPluginModel (const QString& name, const Marble::MarbleModel* marbleModel, QObject* parent /TransferThis/ = 0);
++    const Marble::MarbleModel*  marbleModel () const;
++    QList<Marble::AbstractDataPluginItem*>  items (const Marble::ViewportParams* viewport, qint32 number = 10);
++protected:
++    virtual void            getAdditionalItems (const Marble::GeoDataLatLonAltBox& box, qint32 number = 10)=0;
++    virtual void            getItem (const QString& id);
++    void                    downloadItem (const QUrl& url, const QString& type, Marble::AbstractDataPluginItem* item);
+ };
+ // AbstractDataPluginModel
+ 
+diff --git a/src/bindings/python/sip/AbstractFloatItem.sip b/src/bindings/python/sip/AbstractFloatItem.sip
+index 16d7f56..aa1242b 100644
+--- a/src/bindings/python/sip/AbstractFloatItem.sip
++++ b/src/bindings/python/sip/AbstractFloatItem.sip
+@@ -44,7 +44,6 @@ public:
+     bool                    render (Marble::GeoPainter* painter, Marble::ViewportParams* viewport, const QString& renderPos = "FLOAT_ITEM", Marble::GeoSceneLayer* layer = 0);
+     void                    setVisible (bool visible);
+     bool                    visible () const;
+-    bool                    positionLocked ();
+     void                    show ();
+     void                    hide ();
+ protected:
+@@ -55,6 +54,11 @@ public:
+     explicit                AbstractFloatItem (const Marble::MarbleModel* marbleModel, const QPointF& point = QPointF(10.0,10.0), const QSizeF& size = QSizeF(150.0,50.0));
+ protected:
+     virtual void            changeViewport (Marble::ViewportParams* viewport);
++public:
++    virtual QHash<QString,QVariant>  settings () const;
++    virtual void            setSettings (const QHash<QString,QVariant>& settings);
++    virtual Marble::RenderPlugin::RenderType  renderType () const;
++    bool                    positionLocked () const;
+ };
+ // AbstractFloatItem
+ 
+diff --git a/src/bindings/python/sip/AbstractProjection.sip b/src/bindings/python/sip/AbstractProjection.sip
+index 29ccbe8..33c8e52 100644
+--- a/src/bindings/python/sip/AbstractProjection.sip
++++ b/src/bindings/python/sip/AbstractProjection.sip
+@@ -72,6 +72,6 @@ public:
+     virtual bool            geoCoordinates (const int x, const int y, const Marble::ViewportParams* viewport, qreal& lon, qreal& lat, Marble::GeoDataCoordinates::Unit unit = Marble::GeoDataCoordinates::Degree) const=0;
+     virtual Marble::GeoDataLatLonAltBox  latLonAltBox (const QRect& screenRect, const Marble::ViewportParams* viewport) const;
+ protected:
+-//ig                            AbstractProjection (AbstractProjectionPrivate& dd);
++//ig                            AbstractProjection (AbstractProjectionPrivate* dd);
+ };
+ };
+diff --git a/src/bindings/python/sip/AlternativeRoutesModel.sip b/src/bindings/python/sip/AlternativeRoutesModel.sip
+index 6b0df79..47a466b 100644
+--- a/src/bindings/python/sip/AlternativeRoutesModel.sip
++++ b/src/bindings/python/sip/AlternativeRoutesModel.sip
+@@ -47,5 +47,6 @@ public:
+     static QVector<qreal>   deviation (const Marble::GeoDataDocument* routeA, const Marble::GeoDataDocument* routeB);
+ signals:
+     void                    currentRouteChanged (Marble::GeoDataDocument* newRoute);
++    void                    currentRouteChanged (int index);
+ };
+ };
+diff --git a/src/bindings/python/sip/BillboardGraphicsItem.sip b/src/bindings/python/sip/BillboardGraphicsItem.sip
+index 536f3f0..7ec7f66 100644
+--- a/src/bindings/python/sip/BillboardGraphicsItem.sip
++++ b/src/bindings/python/sip/BillboardGraphicsItem.sip
+@@ -31,5 +31,8 @@ public:
+     void                    setCoordinate (const Marble::GeoDataCoordinates& coordinates);
+     QList<QPointF>          positions () const;
+     QList<QRectF>           boundingRects () const;
++    Qt::Alignment           alignment () const;
++    void                    setAlignment (Qt::Alignment alignment);
++    QRectF                  containsRect (const QPointF& point) const;
+ };
+ };
+diff --git a/src/bindings/python/sip/FileViewWidget.sip b/src/bindings/python/sip/FileViewWidget.sip
+index 23e3cc3..60dda41 100644
+--- a/src/bindings/python/sip/FileViewWidget.sip
++++ b/src/bindings/python/sip/FileViewWidget.sip
+@@ -28,9 +28,10 @@ class FileViewWidget : QWidget
+ public:
+                             FileViewWidget (QWidget* parent /TransferThis/ = 0, Qt::WindowFlags f = 0);
+     ~FileViewWidget ();
+-//ig    void                    setFileViewModel (FileViewModel* model);
+ signals:
+     void                    centerOn (const Marble::GeoDataPlacemark&, bool animated);
+     void                    centerOn (const Marble::GeoDataLatLonBox&, bool animated);
++public:
++    void                    setMarbleWidget (Marble::MarbleWidget* widget);
+ };
+ };
+diff --git a/src/bindings/python/sip/FrameGraphicsItem.sip b/src/bindings/python/sip/FrameGraphicsItem.sip
+index ddc9303..5eb3c3d 100644
+--- a/src/bindings/python/sip/FrameGraphicsItem.sip
++++ b/src/bindings/python/sip/FrameGraphicsItem.sip
+@@ -30,7 +30,8 @@ public:
+     {
+         NoFrame,
+         RectFrame,
+-        RoundedRectFrame
++        RoundedRectFrame,
++        ShadowFrame
+     };
+     explicit                FrameGraphicsItem (Marble::MarbleGraphicsItem* parent = 0);
+     virtual ~FrameGraphicsItem ();
+diff --git a/src/bindings/python/sip/GeoDataAbstractView.sip b/src/bindings/python/sip/GeoDataAbstractView.sip
+index 65fb8da..4bf760a 100644
+--- a/src/bindings/python/sip/GeoDataAbstractView.sip
++++ b/src/bindings/python/sip/GeoDataAbstractView.sip
+@@ -28,5 +28,13 @@ class GeoDataAbstractView : Marble::GeoDataObject /Abstract/
+ public:
+                             GeoDataAbstractView ();
+     ~GeoDataAbstractView ();
++                            GeoDataAbstractView (const Marble::GeoDataAbstractView& other);
++    virtual Marble::GeoDataAbstractView*  copy () const=0;
++    const Marble::GeoDataTimeSpan&  timeSpan () const;
++//ig    Marble::GeoDataTimeSpan&  timeSpan ();
++    void                    setTimeSpan (const Marble::GeoDataTimeSpan& timeSpan);
++//ig    Marble::GeoDataTimeStamp&  timeStamp ();
++    const Marble::GeoDataTimeStamp&  timeStamp () const;
++    void                    setTimeStamp (const Marble::GeoDataTimeStamp& timeStamp);
+ };
+ };
+diff --git a/src/bindings/python/sip/GeoDataBalloonStyle.sip b/src/bindings/python/sip/GeoDataBalloonStyle.sip
+new file mode 100644
+index 0000000..9223740
+--- /dev/null
++++ b/src/bindings/python/sip/GeoDataBalloonStyle.sip
+@@ -0,0 +1,49 @@
++// Copyright 2011 Simon Edwards <simon at simonzone.com>
++
++//                 Generated by twine2
++
++// This program is free software; you can redistribute it and/or modify
++// it under the terms of the GNU Library General Public License as
++// published by the Free Software Foundation; either version 2, or
++// (at your option) any later version.
++
++// This program is distributed in the hope that it will be useful,
++// but WITHOUT ANY WARRANTY; without even the implied warranty of
++// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
++// GNU General Public License for more details
++
++// You should have received a copy of the GNU Library General Public
++// License along with this program; if not, write to the
++// Free Software Foundation, Inc.,
++// 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301, USA.
++
++namespace Marble
++{
++class GeoDataBalloonStyle : Marble::GeoDataColorStyle
++{
++%TypeHeaderCode
++#include <GeoDataBalloonStyle.h>
++%End
++
++public:
++                            GeoDataBalloonStyle ();
++                            GeoDataBalloonStyle (const Marble::GeoDataBalloonStyle& other);
++    ~GeoDataBalloonStyle ();
++    virtual const char*     nodeType () const;
++    enum DisplayMode
++    {
++        Default,
++        Hide
++    };
++    QColor                  backgroundColor () const;
++    void                    setBackgroundColor (const QColor& color);
++    QColor                  textColor () const;
++    void                    setTextColor (const QColor& color);
++    QString                 text () const;
++    void                    setText (const QString& text);
++    Marble::GeoDataBalloonStyle::DisplayMode  displayMode () const;
++    void                    setDisplayMode (const Marble::GeoDataBalloonStyle::DisplayMode& mode);
++    virtual void            pack (QDataStream& stream) const;
++    virtual void            unpack (QDataStream& stream);
++};
++};
+diff --git a/src/bindings/python/sip/GeoDataColorStyle.sip b/src/bindings/python/sip/GeoDataColorStyle.sip
+index 878269b..ddce9ae 100644
+--- a/src/bindings/python/sip/GeoDataColorStyle.sip
++++ b/src/bindings/python/sip/GeoDataColorStyle.sip
+@@ -42,6 +42,7 @@ public:
+                             GeoDataColorStyle (const Marble::GeoDataColorStyle& other);
+     virtual ~GeoDataColorStyle ();
+     virtual const char*     nodeType () const;
++    QColor                  paintedColor () const;
+ };
+ // GeoDataColorStyle
+ 
+diff --git a/src/bindings/python/sip/GeoDataContainer.sip b/src/bindings/python/sip/GeoDataContainer.sip
+index a2d2107..1a41c0f 100644
+--- a/src/bindings/python/sip/GeoDataContainer.sip
++++ b/src/bindings/python/sip/GeoDataContainer.sip
+@@ -53,11 +53,12 @@ public:
+ //ig    QVector<Marble::GeoDataFeature*>  featureList () const;
+ //ig    QVector<Marble::GeoDataPlacemark*>  placemarkList () const;
+     Marble::GeoDataFeature*  child (int);
+-    int                     childPosition (Marble::GeoDataFeature* child);
+     void                    append (Marble::GeoDataFeature* other);
+     void                    remove (int index);
+     Marble::GeoDataLatLonAltBox  latLonAltBox () const;
+ //ig    const Marble::GeoDataFeature*  child (int) const;
++    int                     childPosition (const Marble::GeoDataFeature* child) const;
++    void                    insert (Marble::GeoDataFeature* other, int index);
+ };
+ // GeoDataContainer
+ 
+diff --git a/src/bindings/python/sip/GeoDataCoordinates.sip b/src/bindings/python/sip/GeoDataCoordinates.sip
+index 950430a..e83efca 100644
+--- a/src/bindings/python/sip/GeoDataCoordinates.sip
++++ b/src/bindings/python/sip/GeoDataCoordinates.sip
+@@ -38,7 +38,10 @@ public:
+     {
+         Decimal,
+         DMS,
+-        DM
++        DM,
++        UTM,
++        MGRS,
++        Astro
+     };
+ 
+     typedef QVector<Marble::GeoDataCoordinates> Vector;
+@@ -84,6 +87,7 @@ public:
+     bool                    isValid () const;
+     qreal                   bearing (const Marble::GeoDataCoordinates& other, Marble::GeoDataCoordinates::Unit unit = Marble::GeoDataCoordinates::Radian, Marble::GeoDataCoordinates::BearingType type = Marble::GeoDataCoordinates::InitialBearing) const;
+ //ig    void                    geoCoordinates (qreal& lon, qreal& lat, qreal& alt, Marble::GeoDataCoordinates::Unit unit = GeoDataCoordinates::Radian) const;
++//ig    virtual bool            operator != (const Marble::GeoDataCoordinates&) const;
+ };
+ // GeoDataCoordinates
+ 
+diff --git a/src/bindings/python/sip/GeoDataDocument.sip b/src/bindings/python/sip/GeoDataDocument.sip
+index d8d0c0d..82f73b6 100644
+--- a/src/bindings/python/sip/GeoDataDocument.sip
++++ b/src/bindings/python/sip/GeoDataDocument.sip
+@@ -44,6 +44,12 @@ public:
+     ~GeoDataDocument ();
+ //ig    DocumentRole            documentRole () const;
+     void                    setDocumentRole (Marble::DocumentRole role);
++    QString                 property () const;
++    void                    setProperty (QString property);
++    QString                 baseUri () const;
++    void                    setBaseUri (const QString& baseUri);
++//ig    Marble::GeoDataNetworkLinkControl  networkLinkControl () const;
++//ig    void                    setNetworkLinkControl (const Marble::GeoDataNetworkLinkControl& networkLinkControl);
+ };
+ // GeoDataDocument
+ 
+diff --git a/src/bindings/python/sip/GeoDataFeature.sip b/src/bindings/python/sip/GeoDataFeature.sip
+index d8b5a08..5d147d2 100644
+--- a/src/bindings/python/sip/GeoDataFeature.sip
++++ b/src/bindings/python/sip/GeoDataFeature.sip
+@@ -194,7 +194,7 @@ public:
+     void                    setStyleUrl (const QString& value);
+     bool                    isVisible () const;
+     void                    setVisible (bool value);
+-    const Marble::GeoDataStyle*   style () const;
++    const Marble::GeoDataStyle*  style () const;
+     Marble::GeoDataFeature::GeoDataVisualCategory  visualCategory () const;
+     void                    setVisualCategory (Marble::GeoDataFeature::GeoDataVisualCategory category);
+ //ig    const QChar             role () const;
+@@ -220,11 +220,9 @@ protected:
+ public:
+ //ig    Marble::GeoDataTimeSpan&  timeSpan () const;
+ //ig    GeoDataTimeStamp&       timeStamp () const;
+-//ig    void                    setTimeStamp (GeoDataTimeStamp timeStamp);
+ //ig    GeoDataExtendedData&    extendedData () const;
+ //ig    void                    setExtendedData (const GeoDataExtendedData& extendedData);
+     void                    setRole (const QString& role);
+-//ig    void                    setTimeSpan (GeoDataTimeSpan timeSpan);
+     static Marble::GeoDataFeature::GeoDataVisualCategory  OsmVisualCategory (const QString& keyValue);
+     bool                    isGloballyVisible () const;
+     const QImage            symbol () const;
+@@ -233,6 +231,12 @@ public:
+     static QColor           defaultLabelColor ();
+     static void             setDefaultLabelColor (const QColor& color);
+     void                    setStyleMap (const Marble::GeoDataStyleMap* map);
++    const Marble::GeoDataAbstractView*  abstractView () const;
++//ig    Marble::GeoDataAbstractView*  abstractView ();
++    void                    setAbstractView (Marble::GeoDataAbstractView* abstractView);
++    void                    setTimeSpan (const Marble::GeoDataTimeSpan& timeSpan);
++    void                    setTimeStamp (const Marble::GeoDataTimeStamp& timeStamp);
++    void                    setStyle (Marble::GeoDataStyle* style);
+ };
+ // GeoDataFeature
+ 
+diff --git a/src/bindings/python/sip/GeoDataGroundOverlay.sip b/src/bindings/python/sip/GeoDataGroundOverlay.sip
+index 5e96560..7c330a7 100644
+--- a/src/bindings/python/sip/GeoDataGroundOverlay.sip
++++ b/src/bindings/python/sip/GeoDataGroundOverlay.sip
+@@ -17,3 +17,25 @@
+ // Free Software Foundation, Inc.,
+ // 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301, USA.
+ 
++namespace Marble
++{
++class GeoDataGroundOverlay : Marble::GeoDataOverlay
++{
++%TypeHeaderCode
++#include <GeoDataOverlay.h>
++#include <GeoDataGroundOverlay.h>
++%End
++
++public:
++                            GeoDataGroundOverlay ();
++                            GeoDataGroundOverlay (const Marble::GeoDataGroundOverlay& other);
++    ~GeoDataGroundOverlay ();
++    virtual const char*     nodeType () const;
++    double                  altitude () const;
++    void                    setAltitude (double altitude);
++    Marble::AltitudeMode    altitudeMode () const;
++    void                    setAltitudeMode (const Marble::AltitudeMode altitudeMode);
++    Marble::GeoDataLatLonBox&  latLonBox () const;
++    void                    setLatLonBox (const Marble::GeoDataLatLonBox& box);
++};
++};
+diff --git a/src/bindings/python/sip/GeoDataIconStyle.sip b/src/bindings/python/sip/GeoDataIconStyle.sip
+index b7b605c..8071be9 100644
+--- a/src/bindings/python/sip/GeoDataIconStyle.sip
++++ b/src/bindings/python/sip/GeoDataIconStyle.sip
+@@ -42,6 +42,8 @@ public:
+     void                    setIcon (const QImage& icon);
+     QString                 iconPath () const;
+ //ig    QPointF                 hotSpot (Marble::GeoDataHotSpot::Units& xunits, Marble::GeoDataHotSpot::Units& yunits) const;
++    int                     heading () const;
++    void                    setHeading (int heading);
+ };
+ // GeoDataIconStyle
+ 
+diff --git a/src/bindings/python/sip/GeoDataItemIcon.sip b/src/bindings/python/sip/GeoDataItemIcon.sip
+new file mode 100644
+index 0000000..d63f3cb
+--- /dev/null
++++ b/src/bindings/python/sip/GeoDataItemIcon.sip
+@@ -0,0 +1,50 @@
++// Copyright 2011 Simon Edwards <simon at simonzone.com>
++
++//                 Generated by twine2
++
++// This program is free software; you can redistribute it and/or modify
++// it under the terms of the GNU Library General Public License as
++// published by the Free Software Foundation; either version 2, or
++// (at your option) any later version.
++
++// This program is distributed in the hope that it will be useful,
++// but WITHOUT ANY WARRANTY; without even the implied warranty of
++// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
++// GNU General Public License for more details
++
++// You should have received a copy of the GNU Library General Public
++// License along with this program; if not, write to the
++// Free Software Foundation, Inc.,
++// 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301, USA.
++
++namespace Marble
++{
++class GeoDataItemIcon : Marble::GeoDataObject
++{
++%TypeHeaderCode
++#include <GeoDataItemIcon.h>
++%End
++
++public:
++                            GeoDataItemIcon ();
++                            GeoDataItemIcon (const Marble::GeoDataItemIcon& other);
++    ~GeoDataItemIcon ();
++    virtual const char*     nodeType () const;
++    enum ItemIconState
++    {
++        Open,
++        Closed,
++        Error,
++        Fetching0,
++        Fetching1,
++        Fetching2
++    };
++    typedef QFlags<Marble::GeoDataItemIcon::ItemIconState> ItemIconStates;
++    Marble::GeoDataItemIcon::ItemIconStates  state () const;
++    void                    setState (const Marble::GeoDataItemIcon::ItemIconStates& state);
++    QString                 iconPath () const;
++    void                    setIconPath (const QString& path);
++    QImage                  icon () const;
++    void                    setIcon (const QImage& icon);
++};
++};
+diff --git a/src/bindings/python/sip/GeoDataLatLonAltBox.sip b/src/bindings/python/sip/GeoDataLatLonAltBox.sip
+index f80aab0..08364ac 100644
+--- a/src/bindings/python/sip/GeoDataLatLonAltBox.sip
++++ b/src/bindings/python/sip/GeoDataLatLonAltBox.sip
+@@ -46,10 +46,14 @@ public:
+     virtual const char*     nodeType () const;
+     virtual Marble::GeoDataCoordinates  center () const;
+     virtual void            clear ();
++                            GeoDataLatLonAltBox (const Marble::GeoDataLatLonBox& other, qreal minAltitude, qreal maxAltitude);
++    explicit                GeoDataLatLonAltBox (const Marble::GeoDataCoordinates& coordinates);
++//ig    uint                    qHash (const Marble::GeoDataLatLonAltBox&);
+ };
+ // GeoDataLatLonAltBox
+ 
+ //ig bool                    operator == (const Marble::GeoDataLatLonAltBox& lhs, const Marble::GeoDataLatLonAltBox& rhs);
++//ig uint                    qHash (const Marble::GeoDataLatLonAltBox& r);
+ };
+ // Marble
+ 
+diff --git a/src/bindings/python/sip/GeoDataLineString.sip b/src/bindings/python/sip/GeoDataLineString.sip
+index d5a84dd..c6a722d 100644
+--- a/src/bindings/python/sip/GeoDataLineString.sip
++++ b/src/bindings/python/sip/GeoDataLineString.sip
+@@ -74,6 +74,12 @@ public:
+     void                    remove (int i);
+ protected:
+ //ig                            GeoDataLineString (GeoDataLineStringPrivate* priv);
++public:
++
++// FIXME
++//ig    QVector<GeoDataCoordinates>::ConstIterator  begin () const;
++//ig    QVector<GeoDataCoordinates>::ConstIterator  end () const;
++
+ };
+ // GeoDataLineString
+ 
+diff --git a/src/bindings/python/sip/GeoDataListStyle.sip b/src/bindings/python/sip/GeoDataListStyle.sip
+new file mode 100644
+index 0000000..e687a91
+--- /dev/null
++++ b/src/bindings/python/sip/GeoDataListStyle.sip
+@@ -0,0 +1,70 @@
++// Copyright 2011 Simon Edwards <simon at simonzone.com>
++
++//                 Generated by twine2
++
++// This program is free software; you can redistribute it and/or modify
++// it under the terms of the GNU Library General Public License as
++// published by the Free Software Foundation; either version 2, or
++// (at your option) any later version.
++
++// This program is distributed in the hope that it will be useful,
++// but WITHOUT ANY WARRANTY; without even the implied warranty of
++// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
++// GNU General Public License for more details
++
++// You should have received a copy of the GNU Library General Public
++// License along with this program; if not, write to the
++// Free Software Foundation, Inc.,
++// 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301, USA.
++
++namespace Marble
++{
++class GeoDataListStyle : Marble::GeoDataObject
++{
++%TypeHeaderCode
++#include <GeoDataListStyle.h>
++%End
++
++public:
++                            GeoDataListStyle ();
++                            GeoDataListStyle (const Marble::GeoDataListStyle& other);
++    ~GeoDataListStyle ();
++    virtual const char*     nodeType () const;
++    enum ListItemType
++    {
++        Check,
++        RadioFolder,
++        CheckOffOnly,
++        CheckHideChildren
++    };
++    Marble::GeoDataListStyle::ListItemType  listItemType () const;
++    void                    setListItemType (const Marble::GeoDataListStyle::ListItemType& type);
++    QColor                  backgroundColor () const;
++    void                    setBackgroundColor (const QColor& color);
++//FIXME
++//ig    QVector<Marble::GeoDataItemIcon*>  itemIconList () const;
++
++//ig    Marble::GeoDataItemIcon*  child (int);
++    const Marble::GeoDataItemIcon*  child (int) const;
++    int                     childPosition (Marble::GeoDataItemIcon* child);
++    void                    append (Marble::GeoDataItemIcon* other);
++    void                    remove (int index);
++    int                     size () const;
++//ig    Marble::GeoDataItemIcon&  at (int pos);
++    const Marble::GeoDataItemIcon&  at (int pos) const;
++//ig    Marble::GeoDataItemIcon&  last ();
++    const Marble::GeoDataItemIcon&  last () const;
++//ig    Marble::GeoDataItemIcon&  first ();
++    const Marble::GeoDataItemIcon&  first () const;
++
++// FIXME
++//    QVector<GeoDataItemIcon*>::Iterator  begin ();
++//    QVector<GeoDataItemIcon*>::Iterator  end ();
++//    QVector<GeoDataItemIcon*>::ConstIterator  constBegin () const;
++//    QVector<GeoDataItemIcon*>::ConstIterator  constEnd () const;
++
++    void                    clear ();
++    virtual void            pack (QDataStream& stream) const;
++    virtual void            unpack (QDataStream& stream);
++};
++};
+diff --git a/src/bindings/python/sip/GeoDataLookAt.sip b/src/bindings/python/sip/GeoDataLookAt.sip
+index 7db3bf9..467a680 100644
+--- a/src/bindings/python/sip/GeoDataLookAt.sip
++++ b/src/bindings/python/sip/GeoDataLookAt.sip
+@@ -41,5 +41,6 @@ public:
+     void                    setCoordinates (const Marble::GeoDataCoordinates& coordinates);
+     virtual const char*     nodeType () const;
+     void                    detach ();
++    Marble::GeoDataAbstractView*  copy () const;
+ };
+ };
+diff --git a/src/bindings/python/sip/GeoDataObject.sip b/src/bindings/python/sip/GeoDataObject.sip
+index 44b39c7..ed1b2dd 100644
+--- a/src/bindings/python/sip/GeoDataObject.sip
++++ b/src/bindings/python/sip/GeoDataObject.sip
+@@ -40,6 +40,7 @@ public:
+ 
+     virtual Marble::GeoDataObject*  parent () const;
+     virtual void            setParent (Marble::GeoDataObject* parent);
++    QString                 resolvePath (const QString& relativePath) const;
+ };
+ // GeoDataObject
+ 
+diff --git a/src/bindings/python/sip/GeoDataPlacemark.sip b/src/bindings/python/sip/GeoDataPlacemark.sip
+index 627b9e5..9cd22c6 100644
+--- a/src/bindings/python/sip/GeoDataPlacemark.sip
++++ b/src/bindings/python/sip/GeoDataPlacemark.sip
+@@ -48,6 +48,10 @@ public:
+     void                    setGeometry (Marble::GeoDataGeometry* entry);
+     const QString           state () const;
+     void                    setState (const QString& state);
++    void                    setCoordinate (qreal longitude, qreal latitude, qreal altitude = 0, Marble::GeoDataCoordinates::Unit _unit = Marble::GeoDataCoordinates::Radian);
++    void                    setCoordinate (const Marble::GeoDataCoordinates& coordinate);
++    const Marble::GeoDataLookAt*  lookAt () const;
++//ig    Marble::GeoDataLookAt*  lookAt ();
+ };
+ // GeoDataPlacemark
+ 
+diff --git a/src/bindings/python/sip/GeoDataPoint.sip b/src/bindings/python/sip/GeoDataPoint.sip
+index 296760c..78131f1 100644
+--- a/src/bindings/python/sip/GeoDataPoint.sip
++++ b/src/bindings/python/sip/GeoDataPoint.sip
+@@ -41,6 +41,9 @@ public:
+                             GeoDataPoint (const Marble::GeoDataCoordinates& other);
+     ~GeoDataPoint ();
+     virtual const char*     nodeType () const;
++                            GeoDataPoint (qreal lon, qreal lat, qreal alt = 0, Marble::GeoDataPoint::Unit _unit = Marble::GeoDataCoordinates::Radian);
++    void                    setCoordinates (const Marble::GeoDataCoordinates& coordinates);
++    const Marble::GeoDataCoordinates&  coordinates () const;
+ };
+ // GeoDataPoint
+ 
+diff --git a/src/bindings/python/sip/GeoDataPolygon.sip b/src/bindings/python/sip/GeoDataPolygon.sip
+index ff0efe2..e1621ba 100644
+--- a/src/bindings/python/sip/GeoDataPolygon.sip
++++ b/src/bindings/python/sip/GeoDataPolygon.sip
+@@ -33,10 +33,10 @@ public:
+     void                    setTessellate (bool tessellate);
+     Marble::TessellationFlags  tessellationFlags () const;
+     void                    setTessellationFlags (Marble::TessellationFlags f);
+-    virtual const Marble::GeoDataLatLonAltBox& latLonAltBox () const;
+-    Marble::GeoDataLinearRing&  outerBoundary ();
++    virtual const Marble::GeoDataLatLonAltBox&  latLonAltBox () const;
++//ig    Marble::GeoDataLinearRing&  outerBoundary ();
+     void                    setOuterBoundary (const Marble::GeoDataLinearRing& boundary);
+-    QVector<Marble::GeoDataLinearRing>&  innerBoundaries ();
++//ig    QVector<Marble::GeoDataLinearRing>&  innerBoundaries ();
+     void                    appendInnerBoundary (const Marble::GeoDataLinearRing& boundary);
+     virtual void            pack (QDataStream& stream) const;
+     virtual void            unpack (QDataStream& stream);
+@@ -45,9 +45,25 @@ protected:
+ //ig    GeoDataPolygonPrivate*  p () const;
+ public:
+     virtual bool            contains (const Marble::GeoDataCoordinates& coordinates) const;
++    const Marble::GeoDataLinearRing&  outerBoundary () const;
++    const QVector<Marble::GeoDataLinearRing>&  innerBoundaries () const;
+ };
+ // GeoDataPolygon
+ 
++class GeoDataOuterBoundary : Marble::GeoDataPolygon
++{
++%TypeHeaderCode
++#include <GeoDataPolygon.h>
++%End
++
++};
++class GeoDataInnerBoundary : Marble::GeoDataPolygon
++{
++%TypeHeaderCode
++#include <GeoDataPolygon.h>
++%End
++
++};
+ };
+ // Marble
+ 
+diff --git a/src/bindings/python/sip/GeoDataStyle.sip b/src/bindings/python/sip/GeoDataStyle.sip
+index 02bd992..d10b5ef 100644
+--- a/src/bindings/python/sip/GeoDataStyle.sip
++++ b/src/bindings/python/sip/GeoDataStyle.sip
+@@ -42,6 +42,12 @@ public:
+     virtual void            unpack (QDataStream& stream);
+     virtual const char*     nodeType () const;
+                             GeoDataStyle (const QImage& icon, const QFont& font, const QColor& color);
++    void                    setBalloonStyle (const Marble::GeoDataBalloonStyle& style);
++//ig    Marble::GeoDataBalloonStyle&  balloonStyle ();
++    const Marble::GeoDataBalloonStyle&  balloonStyle () const;
++    void                    setListStyle (const Marble::GeoDataListStyle& style);
++//ig    Marble::GeoDataListStyle&  listStyle ();
++    const Marble::GeoDataListStyle&  listStyle () const;
+ };
+ // GeoDataStyle
+ 
+diff --git a/src/bindings/python/sip/GeoDataTimePrimitive.sip b/src/bindings/python/sip/GeoDataTimePrimitive.sip
+new file mode 100644
+index 0000000..94faf2f
+--- /dev/null
++++ b/src/bindings/python/sip/GeoDataTimePrimitive.sip
+@@ -0,0 +1,36 @@
++// Copyright 2011 Simon Edwards <simon at simonzone.com>
++
++//                 Generated by twine2
++
++// This program is free software; you can redistribute it and/or modify
++// it under the terms of the GNU Library General Public License as
++// published by the Free Software Foundation; either version 2, or
++// (at your option) any later version.
++
++// This program is distributed in the hope that it will be useful,
++// but WITHOUT ANY WARRANTY; without even the implied warranty of
++// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
++// GNU General Public License for more details
++
++// You should have received a copy of the GNU Library General Public
++// License along with this program; if not, write to the
++// Free Software Foundation, Inc.,
++// 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301, USA.
++
++namespace Marble
++{
++class GeoDataTimePrimitive : Marble::GeoDataObject
++{
++%TypeHeaderCode
++#include <GeoDataTimePrimitive.h>
++%End
++
++public:
++    virtual const char*     nodeType () const;
++    virtual void            pack (QDataStream& stream) const;
++    virtual void            unpack (QDataStream& stream);
++                            GeoDataTimePrimitive ();
++                            GeoDataTimePrimitive (const Marble::GeoDataTimePrimitive& other);
++    ~GeoDataTimePrimitive ();
++};
++};
+diff --git a/src/bindings/python/sip/GeoDataTimeSpan.sip b/src/bindings/python/sip/GeoDataTimeSpan.sip
+new file mode 100644
+index 0000000..52b751f
+--- /dev/null
++++ b/src/bindings/python/sip/GeoDataTimeSpan.sip
+@@ -0,0 +1,40 @@
++// Copyright 2011 Simon Edwards <simon at simonzone.com>
++
++//                 Generated by twine2
++
++// This program is free software; you can redistribute it and/or modify
++// it under the terms of the GNU Library General Public License as
++// published by the Free Software Foundation; either version 2, or
++// (at your option) any later version.
++
++// This program is distributed in the hope that it will be useful,
++// but WITHOUT ANY WARRANTY; without even the implied warranty of
++// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
++// GNU General Public License for more details
++
++// You should have received a copy of the GNU Library General Public
++// License along with this program; if not, write to the
++// Free Software Foundation, Inc.,
++// 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301, USA.
++
++namespace Marble
++{
++class GeoDataTimeSpan : Marble::GeoDataTimePrimitive
++{
++%TypeHeaderCode
++#include <GeoDataTimeSpan.h>
++%End
++
++public:
++                            GeoDataTimeSpan ();
++                            GeoDataTimeSpan (const Marble::GeoDataTimeSpan& other);
++    ~GeoDataTimeSpan ();
++    virtual const char*     nodeType () const;
++    QDateTime               begin () const;
++    void                    setBegin (const QDateTime& begin);
++    QDateTime               end () const;
++    void                    setEnd (const QDateTime& end);
++    virtual void            pack (QDataStream& stream) const;
++    virtual void            unpack (QDataStream& stream);
++};
++};
+diff --git a/src/bindings/python/sip/GeoDataTimeStamp.sip b/src/bindings/python/sip/GeoDataTimeStamp.sip
+new file mode 100644
+index 0000000..1b3b6a5
+--- /dev/null
++++ b/src/bindings/python/sip/GeoDataTimeStamp.sip
+@@ -0,0 +1,47 @@
++// Copyright 2011 Simon Edwards <simon at simonzone.com>
++
++//                 Generated by twine2
++
++// This program is free software; you can redistribute it and/or modify
++// it under the terms of the GNU Library General Public License as
++// published by the Free Software Foundation; either version 2, or
++// (at your option) any later version.
++
++// This program is distributed in the hope that it will be useful,
++// but WITHOUT ANY WARRANTY; without even the implied warranty of
++// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
++// GNU General Public License for more details
++
++// You should have received a copy of the GNU Library General Public
++// License along with this program; if not, write to the
++// Free Software Foundation, Inc.,
++// 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301, USA.
++
++namespace Marble
++{
++class GeoDataTimeStamp : Marble::GeoDataTimePrimitive
++{
++%TypeHeaderCode
++#include <GeoDataTimeStamp.h>
++%End
++
++public:
++    enum TimeResolution
++    {
++        SecondResolution,
++        DayResolution,
++        MonthResolution,
++        YearResolution
++    };
++                            GeoDataTimeStamp ();
++                            GeoDataTimeStamp (const Marble::GeoDataTimeStamp& other);
++    virtual ~GeoDataTimeStamp ();
++    virtual const char*     nodeType () const;
++    QDateTime               when () const;
++    void                    setWhen (const QDateTime& when);
++    void                    setResolution (Marble::GeoDataTimeStamp::TimeResolution resolution);
++    Marble::GeoDataTimeStamp::TimeResolution  resolution () const;
++    virtual void            pack (QDataStream& stream) const;
++    virtual void            unpack (QDataStream& stream);
++};
++};
+diff --git a/src/bindings/python/sip/GeoDataTreeModel.sip b/src/bindings/python/sip/GeoDataTreeModel.sip
+index 8457f13..26bbaa5 100644
+--- a/src/bindings/python/sip/GeoDataTreeModel.sip
++++ b/src/bindings/python/sip/GeoDataTreeModel.sip
+@@ -41,9 +41,8 @@ public:
+     void                    reset ();
+     void                    setRootDocument (Marble::GeoDataDocument* document);
+     Marble::GeoDataDocument*  rootDocument ();
+-    int                     addFeature (Marble::GeoDataContainer* parent, Marble::GeoDataFeature* feature);
++    int                     addFeature (Marble::GeoDataContainer* parent, Marble::GeoDataFeature* feature, int row = -1);
+     bool                    removeFeature (Marble::GeoDataContainer* parent, int index);
+-    bool                    removeFeature (Marble::GeoDataFeature* feature);
+     void                    updateFeature (Marble::GeoDataFeature* feature);
+     int                     addDocument (Marble::GeoDataDocument* document);
+     void                    removeDocument (int index);
+@@ -52,5 +51,8 @@ public:
+ signals:
+     void                    removed (Marble::GeoDataObject* object);
+     void                    added (Marble::GeoDataObject* object);
++public:
++    QItemSelectionModel*    selectionModel ();
++    int                     removeFeature (const Marble::GeoDataFeature* feature);
+ };
+ };
+diff --git a/src/bindings/python/sip/GeoDocument.sip b/src/bindings/python/sip/GeoDocument.sip
+index 95e0d12..e4e3f0c 100644
+--- a/src/bindings/python/sip/GeoDocument.sip
++++ b/src/bindings/python/sip/GeoDocument.sip
+@@ -60,7 +60,9 @@ protected:
+         else if (dynamic_cast<Marble::GeoDataColorStyle*>(sipCpp))
+             {
+             sipType = sipType_Marble_GeoDataColorStyle;
+-            if (dynamic_cast<Marble::GeoDataIconStyle*>(sipCpp))
++            if (dynamic_cast<Marble::GeoDataBalloonStyle*>(sipCpp))
++                sipType = sipType_Marble_GeoDataBalloonStyle;
++            else if (dynamic_cast<Marble::GeoDataIconStyle*>(sipCpp))
+                 sipType = sipType_Marble_GeoDataIconStyle;
+             else if (dynamic_cast<Marble::GeoDataLabelStyle*>(sipCpp))
+                 sipType = sipType_Marble_GeoDataLabelStyle;
+@@ -81,7 +83,11 @@ protected:
+                     sipType = sipType_Marble_GeoDataFolder;
+                 }
+             else if (dynamic_cast<Marble::GeoDataOverlay*>(sipCpp))
++                {
+                 sipType = sipType_Marble_GeoDataOverlay;
++                if (dynamic_cast<Marble::GeoDataGroundOverlay*>(sipCpp))
++                    sipType = sipType_Marble_GeoDataGroundOverlay;
++                }
+             else if (dynamic_cast<Marble::GeoDataPlacemark*>(sipCpp))
+                 sipType = sipType_Marble_GeoDataPlacemark;
+             }
+@@ -99,18 +105,28 @@ protected:
+             else if (dynamic_cast<Marble::GeoDataPoint*>(sipCpp))
+                 sipType = sipType_Marble_GeoDataPoint;
+             else if (dynamic_cast<Marble::GeoDataPolygon*>(sipCpp))
++                {
+                 sipType = sipType_Marble_GeoDataPolygon;
++                if (dynamic_cast<Marble::GeoDataInnerBoundary*>(sipCpp))
++                    sipType = sipType_Marble_GeoDataInnerBoundary;
++                else if (dynamic_cast<Marble::GeoDataOuterBoundary*>(sipCpp))
++                    sipType = sipType_Marble_GeoDataOuterBoundary;
++                }
+             else if (dynamic_cast<Marble::GeoDataTrack*>(sipCpp))
+                 sipType = sipType_Marble_GeoDataTrack;
+             }
+         else if (dynamic_cast<Marble::GeoDataHotSpot*>(sipCpp))
+             sipType = sipType_Marble_GeoDataHotSpot;
++        else if (dynamic_cast<Marble::GeoDataItemIcon*>(sipCpp))
++            sipType = sipType_Marble_GeoDataItemIcon;
+         else if (dynamic_cast<Marble::GeoDataLatLonBox*>(sipCpp))
+             {
+             sipType = sipType_Marble_GeoDataLatLonBox;
+             if (dynamic_cast<Marble::GeoDataLatLonAltBox*>(sipCpp))
+                 sipType = sipType_Marble_GeoDataLatLonAltBox;
+             }
++        else if (dynamic_cast<Marble::GeoDataListStyle*>(sipCpp))
++            sipType = sipType_Marble_GeoDataListStyle;
+         else if (dynamic_cast<Marble::GeoDataLod*>(sipCpp))
+             sipType = sipType_Marble_GeoDataLod;
+         else if (dynamic_cast<Marble::GeoDataRegion*>(sipCpp))
+@@ -123,6 +139,14 @@ protected:
+             else if (dynamic_cast<Marble::GeoDataStyleMap*>(sipCpp))
+                 sipType = sipType_Marble_GeoDataStyleMap;
+             }
++        else if (dynamic_cast<Marble::GeoDataTimePrimitive*>(sipCpp))
++            {
++            sipType = sipType_Marble_GeoDataTimePrimitive;
++            if (dynamic_cast<Marble::GeoDataTimeSpan*>(sipCpp))
++                sipType = sipType_Marble_GeoDataTimeSpan;
++            else if (dynamic_cast<Marble::GeoDataTimeStamp*>(sipCpp))
++                sipType = sipType_Marble_GeoDataTimeStamp;
++            }
+         }
+ %End
+ public:
+@@ -138,20 +162,24 @@ public:
+ %ModuleHeaderCode
+ //ctscc
+ #include <GeoDataAbstractView.h>
++#include <GeoDataBalloonStyle.h>
+ #include <GeoDataColorStyle.h>
+ #include <GeoDataContainer.h>
+ #include <GeoDataDocument.h>
+ #include <GeoDataFeature.h>
+ #include <GeoDataFolder.h>
+ #include <GeoDataGeometry.h>
++#include <GeoDataGroundOverlay.h>
+ #include <GeoDataHotSpot.h>
+ #include <GeoDataIconStyle.h>
++#include <GeoDataItemIcon.h>
+ #include <GeoDataLabelStyle.h>
+ #include <GeoDataLatLonAltBox.h>
+ #include <GeoDataLatLonBox.h>
+ #include <GeoDataLineString.h>
+ #include <GeoDataLineStyle.h>
+ #include <GeoDataLinearRing.h>
++#include <GeoDataListStyle.h>
+ #include <GeoDataLod.h>
+ #include <GeoDataLookAt.h>
+ #include <GeoDataMultiGeometry.h>
+@@ -165,6 +193,9 @@ public:
+ #include <GeoDataStyle.h>
+ #include <GeoDataStyleMap.h>
+ #include <GeoDataStyleSelector.h>
++#include <GeoDataTimePrimitive.h>
++#include <GeoDataTimeSpan.h>
++#include <GeoDataTimeStamp.h>
+ #include <GeoDataTrack.h>
+ #include <GeoDocument.h>
+ %End
+diff --git a/src/bindings/python/sip/GeoGraphicsItem.sip b/src/bindings/python/sip/GeoGraphicsItem.sip
+index 39c7372..2a50695 100644
+--- a/src/bindings/python/sip/GeoGraphicsItem.sip
++++ b/src/bindings/python/sip/GeoGraphicsItem.sip
+@@ -28,7 +28,7 @@ class GeoGraphicsItem
+ %End
+ 
+ public:
+-    GeoGraphicsItem (const Marble::GeoDataFeature *x);
++                            GeoGraphicsItem (const Marble::GeoDataFeature* feature);
+     virtual ~GeoGraphicsItem ();
+     enum GeoGraphicsItemFlag
+     {
+@@ -54,6 +54,8 @@ public:
+     virtual void            paint (Marble::GeoPainter* painter, const Marble::ViewportParams* viewport)=0;
+ protected:
+ //ig    GeoGraphicsItemPrivate*  p () const;
++public:
++    const Marble::GeoDataFeature*  feature () const;
+ };
+ // GeoGraphicsItem
+ 
+diff --git a/src/bindings/python/sip/GeoGraphicsScene.sip b/src/bindings/python/sip/GeoGraphicsScene.sip
+index 5ad03e1..1ec1d2e 100644
+--- a/src/bindings/python/sip/GeoGraphicsScene.sip
++++ b/src/bindings/python/sip/GeoGraphicsScene.sip
+@@ -29,9 +29,10 @@ public:
+                             GeoGraphicsScene (QObject* parent /TransferThis/ = 0);
+     ~GeoGraphicsScene ();
+     void                    clear ();
+-    QList<Marble::GeoGraphicsItem*>  items (const Marble::GeoDataLatLonAltBox& box, int maxZoomLevel) const;
+ //ig    static int s_tileZoomLevel;
+     void                    addItem (Marble::GeoGraphicsItem* item);
+     void                    eraseAll ();
++    void                    removeItem (const Marble::GeoDataFeature* feature);
++    QList<Marble::GeoGraphicsItem*>  items (const Marble::GeoDataLatLonBox& box, int maxZoomLevel) const;
+ };
+ };
+diff --git a/src/bindings/python/sip/GeoPainter.sip b/src/bindings/python/sip/GeoPainter.sip
+index 75295c2..3bfc7f5 100644
+--- a/src/bindings/python/sip/GeoPainter.sip
++++ b/src/bindings/python/sip/GeoPainter.sip
+@@ -36,34 +36,17 @@ public:
+     void                    drawPolygon (const Marble::GeoDataLinearRing& linearRing, Qt::FillRule fillRule = Qt::OddEvenFill);
+     void                    drawPolygon (const Marble::GeoDataPolygon& polygon, Qt::FillRule fillRule = Qt::OddEvenFill);
+     void                    drawRect (const Marble::GeoDataCoordinates& centerPosition, qreal width, qreal height, bool isGeoProjected = 0);
+-    void                    drawText (int x, int y, const QString& text);
+-    void                    drawText (const QPointF& position, const QString& text);
+-    void                    drawText (const QPoint& position, const QString& text);
+-    void                    drawText (const QRect& rectangle, int flags, const QString& text, QRect* boundingRect = 0);
+-    void                    drawEllipse (int x, int y, int width, int height);
+-    void                    drawEllipse (const QRectF& rectangle);
+-    void                    drawImage (const QRect& target, const QImage& image, const QRect& source, Qt::ImageConversionFlags flags = Qt::AutoColor);
+-    void                    drawPixmap (int x, int y, const QPixmap& pixmap);
+-    void                    drawPixmap (const QPointF& point, const QPixmap& pixmap);
+-    void                    drawPixmap (const QPoint& point, const QPixmap& pixmap);
+-    void                    drawPoint (int x, int y);
+-    void                    drawPolyline (const QPolygonF& polyline);
+-    void                    drawPolygon (const QPolygonF& polygon);
+-    void                    drawLine (int x1, int y1, int x2, int y2);
+-    void                    drawRect (const QRectF& rectangle);
+-    void                    drawRect (const QRect& rectangle);
+-    void                    drawRect (int x, int y, int width, int height);
+ 
+     ~GeoPainter ();
+     void                    drawPoint (const Marble::GeoDataPoint& point);
+-    void                    drawImage (const QRect& rect, const QImage& image);
+-    void                    drawImage (const QRectF& rect, const QImage& image);
+     QRegion                 regionFromPoint (const Marble::GeoDataCoordinates& position, qreal strokeWidth = 3) const;
+     QRegion                 regionFromPoint (const Marble::GeoDataPoint& point, qreal strokeWidth = 3) const;
+     QRegion                 regionFromEllipse (const Marble::GeoDataCoordinates& centerPosition, qreal width, qreal height, bool isGeoProjected = 0, qreal strokeWidth = 3) const;
+     QRegion                 regionFromPolyline (const Marble::GeoDataLineString& lineString, qreal strokeWidth = 3) const;
+     QRegion                 regionFromPolygon (const Marble::GeoDataLinearRing& linearRing, Qt::FillRule fillRule, qreal strokeWidth = 3) const;
+     QRegion                 regionFromRect (const Marble::GeoDataCoordinates& centerPosition, qreal width, qreal height, bool isGeoProjected = 0, qreal strokeWidth = 3) const;
++                            GeoPainter (QPaintDevice* paintDevice, const Marble::ViewportParams* viewportParams, Marble::MapQuality mapQuality = NormalQuality);
++    void                    drawRoundRect (const Marble::GeoDataCoordinates& centerPosition, int width, int height, int xRnd = 25, int yRnd = 25);
+ };
+ // GeoPainter
+ 
+diff --git a/src/bindings/python/sip/GeoWriter.sip b/src/bindings/python/sip/GeoWriter.sip
+index 9ed3c22..60b9416 100644
+--- a/src/bindings/python/sip/GeoWriter.sip
++++ b/src/bindings/python/sip/GeoWriter.sip
+@@ -31,7 +31,7 @@ public:
+     void                    setDocumentType (const QString& documentType);
+     void                    writeElement (const QString& namespaceUri, const QString& key, const QString& value);
+     void                    writeElement (const QString& key, const QString& value);
+-    void                    writeOptionalElement (const QString& key, const QString& value);
++    void                    writeOptionalElement (const QString& key, const QString& value, const QString& defaultValue = QString());
+ %ConvertToSubClassCode
+     // CTSCC for subclasses of 'QXmlStreamWriter'
+     sipType = NULL;
+diff --git a/src/bindings/python/sip/LayerInterface.sip b/src/bindings/python/sip/LayerInterface.sip
+index 59f4680..8aa1bc6 100644
+--- a/src/bindings/python/sip/LayerInterface.sip
++++ b/src/bindings/python/sip/LayerInterface.sip
+@@ -29,7 +29,7 @@ public:
+     virtual ~LayerInterface ();
+     virtual QStringList     renderPosition () const=0;
+     virtual qreal           zValue () const;
+-    virtual bool            render (Marble::GeoPainter* painter, Marble::ViewportParams* viewport, const QString& renderPos, Marble::GeoSceneLayer* layer)=0;
+     virtual QString         runtimeTrace () const;
++    virtual bool            render (Marble::GeoPainter* painter, Marble::ViewportParams* viewport, const QString& renderPos, Marble::GeoSceneLayer* layer)=0;
+ };
+ };
+diff --git a/src/bindings/python/sip/MapThemeDownloadDialog.sip b/src/bindings/python/sip/MapThemeDownloadDialog.sip
+new file mode 100644
+index 0000000..e496adf
+--- /dev/null
++++ b/src/bindings/python/sip/MapThemeDownloadDialog.sip
+@@ -0,0 +1,32 @@
++// Copyright 2011 Simon Edwards <simon at simonzone.com>
++
++//                 Generated by twine2
++
++// This program is free software; you can redistribute it and/or modify
++// it under the terms of the GNU Library General Public License as
++// published by the Free Software Foundation; either version 2, or
++// (at your option) any later version.
++
++// This program is distributed in the hope that it will be useful,
++// but WITHOUT ANY WARRANTY; without even the implied warranty of
++// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
++// GNU General Public License for more details
++
++// You should have received a copy of the GNU Library General Public
++// License along with this program; if not, write to the
++// Free Software Foundation, Inc.,
++// 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301, USA.
++
++namespace Marble
++{
++class MapThemeDownloadDialog : QDialog
++{
++%TypeHeaderCode
++#include <MapThemeDownloadDialog.h>
++%End
++
++public:
++    explicit                MapThemeDownloadDialog (Marble::MarbleWidget* marbleWidget);
++    ~MapThemeDownloadDialog ();
++};
++};
+diff --git a/src/bindings/python/sip/MapThemeManager.sip b/src/bindings/python/sip/MapThemeManager.sip
+index cabf20b..8adc717 100644
+--- a/src/bindings/python/sip/MapThemeManager.sip
++++ b/src/bindings/python/sip/MapThemeManager.sip
+@@ -35,6 +35,7 @@ public:
+     QStringList             mapThemeIds () const;
+ //ig    GeoSceneDocument*       loadMapTheme (const QString& mapThemeStringID) const;
+     static void             deleteMapTheme (const QString& mapThemeId);
++    QStandardItemModel*     celestialBodiesModel ();
+ };
+ // MapThemeManager
+ 
+diff --git a/src/bindings/python/sip/MapViewWidget.sip b/src/bindings/python/sip/MapViewWidget.sip
+index bbc0f35..b9b0d42 100644
+--- a/src/bindings/python/sip/MapViewWidget.sip
++++ b/src/bindings/python/sip/MapViewWidget.sip
+@@ -39,5 +39,9 @@ signals:
+     void                    mapThemeIdChanged (const QString&);
+     void                    projectionChanged (Marble::Projection);
+     void                    celestialBodyChanged (const QString&);
++protected:
++    void                    resizeEvent (QResizeEvent* event);
++signals:
++    void                    mapThemeDeleted ();
+ };
+ };
+diff --git a/src/bindings/python/sip/MarbleAboutDialog.sip b/src/bindings/python/sip/MarbleAboutDialog.sip
+index d797d27..d793095 100644
+--- a/src/bindings/python/sip/MarbleAboutDialog.sip
++++ b/src/bindings/python/sip/MarbleAboutDialog.sip
+@@ -29,6 +29,14 @@ public:
+ 
+     ~MarbleAboutDialog ();
+     void                    setApplicationTitle (const QString& title);
++    enum Tab
++    {
++        About,
++        Authors,
++        Data,
++        License
++    };
++    void                    setInitialTab (Marble::MarbleAboutDialog::Tab tab);
+ };
+ // MarbleAboutDialog
+ 
+diff --git a/src/bindings/python/sip/MarbleColors.sip b/src/bindings/python/sip/MarbleColors.sip
+new file mode 100644
+index 0000000..c444c27
+--- /dev/null
++++ b/src/bindings/python/sip/MarbleColors.sip
+@@ -0,0 +1,97 @@
++// Copyright 2011 Simon Edwards <simon at simonzone.com>
++
++//                 Generated by twine2
++
++// This program is free software; you can redistribute it and/or modify
++// it under the terms of the GNU Library General Public License as
++// published by the Free Software Foundation; either version 2, or
++// (at your option) any later version.
++
++// This program is distributed in the hope that it will be useful,
++// but WITHOUT ANY WARRANTY; without even the implied warranty of
++// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
++// GNU General Public License for more details
++
++// You should have received a copy of the GNU Library General Public
++// License along with this program; if not, write to the
++// Free Software Foundation, Inc.,
++// 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301, USA.
++
++namespace Marble
++{
++namespace Oxygen
++{
++const QColor woodBrown6;
++const QColor woodBrown5;
++const QColor woodBrown4;
++const QColor woodBrown3;
++const QColor woodBrown2;
++const QColor woodBrown1;
++const QColor brickRed6;
++const QColor brickRed5;
++const QColor brickRed4;
++const QColor brickRed3;
++const QColor brickRed2;
++const QColor brickRed1;
++const QColor raspberryPink6;
++const QColor raspberryPink5;
++const QColor raspberryPink4;
++const QColor raspberryPink3;
++const QColor raspberryPink2;
++const QColor raspberryPink1;
++const QColor burgundyPurple6;
++const QColor burgundyPurple5;
++const QColor burgundyPurple4;
++const QColor burgundyPurple3;
++const QColor burgundyPurple2;
++const QColor burgundyPurple1;
++const QColor grapeViolet6;
++const QColor grapeViolet5;
++const QColor grapeViolet4;
++const QColor grapeViolet3;
++const QColor grapeViolet2;
++const QColor grapeViolet1;
++const QColor skyBlue6;
++const QColor skyBlue5;
++const QColor skyBlue4;
++const QColor skyBlue3;
++const QColor skyBlue2;
++const QColor skyBlue1;
++const QColor seaBlue6;
++const QColor seaBlue5;
++const QColor seaBlue4;
++const QColor seaBlue3;
++const QColor seaBlue2;
++const QColor seaBlue1;
++const QColor emeraldGreen6;
++const QColor emeraldGreen5;
++const QColor emeraldGreen4;
++const QColor emeraldGreen3;
++const QColor emeraldGreen2;
++const QColor emeraldGreen1;
++const QColor forestGreen6;
++const QColor forestGreen5;
++const QColor forestGreen4;
++const QColor forestGreen3;
++const QColor forestGreen2;
++const QColor forestGreen1;
++const QColor sunYellow6;
++const QColor sunYellow5;
++const QColor sunYellow4;
++const QColor sunYellow3;
++const QColor sunYellow2;
++const QColor sunYellow1;
++const QColor hotOrange6;
++const QColor hotOrange5;
++const QColor hotOrange4;
++const QColor hotOrange3;
++const QColor hotOrange2;
++const QColor hotOrange1;
++const QColor aluminumGray6;
++const QColor aluminumGray5;
++const QColor aluminumGray4;
++const QColor aluminumGray3;
++const QColor aluminumGray2;
++const QColor aluminumGray1;
++};
++};
+diff --git a/src/bindings/python/sip/MarbleGlobal.sip b/src/bindings/python/sip/MarbleGlobal.sip
+index 5dd45b1..c42c721 100644
+--- a/src/bindings/python/sip/MarbleGlobal.sip
++++ b/src/bindings/python/sip/MarbleGlobal.sip
+@@ -59,7 +59,8 @@ enum AngleUnit
+ {
+     DMSDegree,
+     DecimalDegree,
+-    UTM
++    UTM,
++    MGRS
+ };
+ 
+ 
+diff --git a/src/bindings/python/sip/MarbleGraphicsItem.sip b/src/bindings/python/sip/MarbleGraphicsItem.sip
+index a97b300..b69ee6a 100644
+--- a/src/bindings/python/sip/MarbleGraphicsItem.sip
++++ b/src/bindings/python/sip/MarbleGraphicsItem.sip
+@@ -85,7 +85,7 @@ private:
+ %End
+ public:
+     bool                    paintEvent (QPainter* painter, const Marble::ViewportParams* viewport);
+-    void                    setProjection (Marble::ViewportParams* viewport);
++    virtual void            setProjection (const Marble::ViewportParams* viewport);
+ };
+ // MarbleGraphicsItem
+ 
+diff --git a/src/bindings/python/sip/MarbleMap.sip b/src/bindings/python/sip/MarbleMap.sip
+index 8d0dcb9..7c5e653 100644
+--- a/src/bindings/python/sip/MarbleMap.sip
++++ b/src/bindings/python/sip/MarbleMap.sip
+@@ -149,6 +149,10 @@ public:
+ //ig    const TextureLayer*     textureLayer () const;
+     void                    setShowRuntimeTrace (bool visible);
+     void                    downloadRegion (const QVector<Marble::TileCoordsPyramid>&);
++    bool                    isLockedToSubSolarPoint () const;
++    bool                    isSubSolarPointIconVisible () const;
++    void                    setLockToSubSolarPoint (bool visible);
++    void                    setSubSolarPointIconVisible (bool visible);
+ };
+ // MarbleMap
+ 
+diff --git a/src/bindings/python/sip/MarbleModel.sip b/src/bindings/python/sip/MarbleModel.sip
+index 93139a9..8374c89 100644
+--- a/src/bindings/python/sip/MarbleModel.sip
++++ b/src/bindings/python/sip/MarbleModel.sip
+@@ -63,14 +63,13 @@ public:
+     QString                 planetId () const;
+     explicit                MarbleModel (QObject* parent /TransferThis/ = 0);
+ //ig    GeoDataTreeModel*       treeModel ();
+-    QAbstractItemModel*     placemarkModel ();
++//ig    QAbstractItemModel*     placemarkModel ();
+     QItemSelectionModel*    placemarkSelectionModel ();
+ //ig    GeoSceneDocument*       mapTheme ();
+     void                    home (qreal& lon, qreal& lat, int& zoom) const;
+     Marble::MapThemeManager*  mapThemeManager ();
+ //ig    HttpDownloadManager*    downloadManager ();
+ //ig    FileManager*            fileManager ();
+-//ig    FileViewModel*          fileViewModel ();
+ //ig    MarbleClock*            clock ();
+ //ig    Marble::SunLocator*     sunLocator ();
+ //ig    const RoutingManager*   routingManager () const;
+@@ -89,6 +88,10 @@ public:
+ //ig    PluginManager*          pluginManager ();
+ signals:
+     void                    homeChanged (const Marble::GeoDataCoordinates newHomePoint);
++public:
++    const Marble::GeoDataTreeModel*  treeModel () const;
++    const QAbstractItemModel*  placemarkModel () const;
++    void                    updateProperty (const QString& property, bool value);
+ };
+ // MarbleModel
+ 
+diff --git a/src/bindings/python/sip/MarbleWebView.sip b/src/bindings/python/sip/MarbleWebView.sip
+new file mode 100644
+index 0000000..5e96560
+--- /dev/null
++++ b/src/bindings/python/sip/MarbleWebView.sip
+@@ -0,0 +1,19 @@
++// Copyright 2011 Simon Edwards <simon at simonzone.com>
++
++//                 Generated by twine2
++
++// This program is free software; you can redistribute it and/or modify
++// it under the terms of the GNU Library General Public License as
++// published by the Free Software Foundation; either version 2, or
++// (at your option) any later version.
++
++// This program is distributed in the hope that it will be useful,
++// but WITHOUT ANY WARRANTY; without even the implied warranty of
++// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
++// GNU General Public License for more details
++
++// You should have received a copy of the GNU Library General Public
++// License along with this program; if not, write to the
++// Free Software Foundation, Inc.,
++// 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301, USA.
++
+diff --git a/src/bindings/python/sip/MarbleWidget.sip b/src/bindings/python/sip/MarbleWidget.sip
+index f67b4a3..ede7fbb 100644
+--- a/src/bindings/python/sip/MarbleWidget.sip
++++ b/src/bindings/python/sip/MarbleWidget.sip
+@@ -186,6 +186,14 @@ public:
+ //ig    const TextureLayer*     textureLayer () const;
+     void                    setShowRuntimeTrace (bool visible);
+     void                    downloadRegion (const QVector<Marble::TileCoordsPyramid>&);
++
++// FIXME
++//ig    PopupLayer*             popupLayer ();
++    bool                    isLockedToSubSolarPoint () const;
++    bool                    isSubSolarPointIconVisible () const;
++    void                    setZoom (int zoom, Marble::FlyToMode mode = Marble::Instant);
++    void                    setLockToSubSolarPoint (bool visible);
++    void                    setSubSolarPointIconVisible (bool visible);
+ };
+ // MarbleWidget
+ 
+diff --git a/src/bindings/python/sip/ParseRunnerPlugin.sip b/src/bindings/python/sip/ParseRunnerPlugin.sip
+index 24da447..262eaf5 100644
+--- a/src/bindings/python/sip/ParseRunnerPlugin.sip
++++ b/src/bindings/python/sip/ParseRunnerPlugin.sip
+@@ -31,5 +31,6 @@ public:
+     virtual QString         fileFormatDescription () const=0;
+     virtual QStringList     fileExtensions () const=0;
+     virtual QIcon           icon () const;
++    virtual Marble::ParsingRunner*  newRunner () const=0;
+ };
+ };
+diff --git a/src/bindings/python/sip/ParsingRunner.sip b/src/bindings/python/sip/ParsingRunner.sip
+new file mode 100644
+index 0000000..ce098e3
+--- /dev/null
++++ b/src/bindings/python/sip/ParsingRunner.sip
+@@ -0,0 +1,34 @@
++// Copyright 2011 Simon Edwards <simon at simonzone.com>
++
++//                 Generated by twine2
++
++// This program is free software; you can redistribute it and/or modify
++// it under the terms of the GNU Library General Public License as
++// published by the Free Software Foundation; either version 2, or
++// (at your option) any later version.
++
++// This program is distributed in the hope that it will be useful,
++// but WITHOUT ANY WARRANTY; without even the implied warranty of
++// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
++// GNU General Public License for more details
++
++// You should have received a copy of the GNU Library General Public
++// License along with this program; if not, write to the
++// Free Software Foundation, Inc.,
++// 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301, USA.
++
++namespace Marble
++{
++class ParsingRunner : QObject
++{
++%TypeHeaderCode
++#include <ParsingRunner.h>
++%End
++
++public:
++    explicit                ParsingRunner (QObject* parent /TransferThis/ = 0);
++    virtual void            parseFile (const QString& fileName, Marble::DocumentRole role)=0;
++signals:
++    void                    parsingFinished (Marble::GeoDataDocument* document, const QString& error = QString());
++};
++};
+diff --git a/src/bindings/python/sip/Planet.sip b/src/bindings/python/sip/Planet.sip
+index 26f2afb..87f80fc 100644
+--- a/src/bindings/python/sip/Planet.sip
++++ b/src/bindings/python/sip/Planet.sip
+@@ -64,6 +64,10 @@ public:
+     static QString          name (const QString& id);
+     ~Planet ();
+     static QStringList      planetList ();
++    bool                    hasAtmosphere () const;
++    void                    setHasAtmosphere (bool enabled);
++    QColor                  atmosphereColor () const;
++    void                    setAtmosphereColor (const QColor& color);
+ };
+ // Planet
+ 
+diff --git a/src/bindings/python/sip/QtMarbleConfigDialog.sip b/src/bindings/python/sip/QtMarbleConfigDialog.sip
+index 804ad10..befd09a 100644
+--- a/src/bindings/python/sip/QtMarbleConfigDialog.sip
++++ b/src/bindings/python/sip/QtMarbleConfigDialog.sip
+@@ -61,5 +61,6 @@ public:
+     int                     chosenTimezone () const;
+     void                    initializeCustomTimezone ();
+     QLocale::MeasurementSystem  measurementSystem () const;
++    bool                    inertialEarthRotation () const;
+ };
+ };
+diff --git a/src/bindings/python/sip/RenderPlugin.sip b/src/bindings/python/sip/RenderPlugin.sip
+index f7bed99..f8504ea 100644
+--- a/src/bindings/python/sip/RenderPlugin.sip
++++ b/src/bindings/python/sip/RenderPlugin.sip
+@@ -62,6 +62,21 @@ public:
+     QStringList             settingKeys ();
+     bool                    setSetting (const QString& key, const QVariant& value);
+     QVariant                setting (const QString& key);
++    enum RenderType
++    {
++        UnknownRenderType,
++        TopLevelRenderType,
++        PanelRenderType,
++        OnlineRenderType,
++        ThemeRenderType
++    };
++    virtual const QList<QActionGroup*>*  actionGroups () const;
++    virtual const QList<QActionGroup*>*  toolbarActionGroups () const;
++    bool                    isUserCheckable () const;
++    virtual Marble::RenderPlugin::RenderType  renderType () const;
++    void                    setUserCheckable (bool isUserCheckable);
++signals:
++    void                    userCheckableChanged (bool isUserCheckable);
+ };
+ // RenderPlugin
+ 
+diff --git a/src/bindings/python/sip/ReverseGeocodingRunner.sip b/src/bindings/python/sip/ReverseGeocodingRunner.sip
+new file mode 100644
+index 0000000..887f063
+--- /dev/null
++++ b/src/bindings/python/sip/ReverseGeocodingRunner.sip
+@@ -0,0 +1,37 @@
++// Copyright 2011 Simon Edwards <simon at simonzone.com>
++
++//                 Generated by twine2
++
++// This program is free software; you can redistribute it and/or modify
++// it under the terms of the GNU Library General Public License as
++// published by the Free Software Foundation; either version 2, or
++// (at your option) any later version.
++
++// This program is distributed in the hope that it will be useful,
++// but WITHOUT ANY WARRANTY; without even the implied warranty of
++// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
++// GNU General Public License for more details
++
++// You should have received a copy of the GNU Library General Public
++// License along with this program; if not, write to the
++// Free Software Foundation, Inc.,
++// 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301, USA.
++
++namespace Marble
++{
++class ReverseGeocodingRunner : QObject
++{
++%TypeHeaderCode
++#include <ReverseGeocodingRunner.h>
++%End
++
++public:
++    explicit                ReverseGeocodingRunner (QObject* parent /TransferThis/);
++    void                    setModel (const Marble::MarbleModel* model);
++    virtual void            reverseGeocoding (const Marble::GeoDataCoordinates& coordinates)=0;
++signals:
++    void                    reverseGeocodingFinished (const Marble::GeoDataCoordinates& coordinates, const Marble::GeoDataPlacemark& placemark);
++protected:
++    const Marble::MarbleModel*  model () const;
++};
++};
+diff --git a/src/bindings/python/sip/ReverseGeocodingRunnerPlugin.sip b/src/bindings/python/sip/ReverseGeocodingRunnerPlugin.sip
+index 4642de9..d1f7252 100644
+--- a/src/bindings/python/sip/ReverseGeocodingRunnerPlugin.sip
++++ b/src/bindings/python/sip/ReverseGeocodingRunnerPlugin.sip
+@@ -36,5 +36,7 @@ public:
+ protected:
+     void                    setSupportedCelestialBodies (const QStringList& celestialBodies);
+     void                    setCanWorkOffline (bool canWorkOffline);
++public:
++    virtual Marble::ReverseGeocodingRunner*  newRunner () const=0;
+ };
+ };
+diff --git a/src/bindings/python/sip/RoutingModel.sip b/src/bindings/python/sip/RoutingModel.sip
+index c2d8ac5..1da2865 100644
+--- a/src/bindings/python/sip/RoutingModel.sip
++++ b/src/bindings/python/sip/RoutingModel.sip
+@@ -49,6 +49,6 @@ signals:
+     void                    deviatedFromRoute (bool deviated);
+     void                    currentRouteChanged ();
+ public:
+-    int                     rightNeighbor (const Marble::GeoDataCoordinates& position, const Marble::RouteRequest * route) const;
++    int                     rightNeighbor (const Marble::GeoDataCoordinates& position, const Marble::RouteRequest* route) const;
+ };
+ };
+diff --git a/src/bindings/python/sip/RoutingRunner.sip b/src/bindings/python/sip/RoutingRunner.sip
+new file mode 100644
+index 0000000..a91f943
+--- /dev/null
++++ b/src/bindings/python/sip/RoutingRunner.sip
+@@ -0,0 +1,37 @@
++// Copyright 2011 Simon Edwards <simon at simonzone.com>
++
++//                 Generated by twine2
++
++// This program is free software; you can redistribute it and/or modify
++// it under the terms of the GNU Library General Public License as
++// published by the Free Software Foundation; either version 2, or
++// (at your option) any later version.
++
++// This program is distributed in the hope that it will be useful,
++// but WITHOUT ANY WARRANTY; without even the implied warranty of
++// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
++// GNU General Public License for more details
++
++// You should have received a copy of the GNU Library General Public
++// License along with this program; if not, write to the
++// Free Software Foundation, Inc.,
++// 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301, USA.
++
++namespace Marble
++{
++class RoutingRunner : QObject
++{
++%TypeHeaderCode
++#include <RoutingRunner.h>
++%End
++
++public:
++    explicit                RoutingRunner (QObject* parent /TransferThis/);
++    void                    setModel (const Marble::MarbleModel* model);
++    virtual void            retrieveRoute (const Marble::RouteRequest* request)=0;
++signals:
++    void                    routeCalculated (Marble::GeoDataDocument* route);
++protected:
++    const Marble::MarbleModel*  model () const;
++};
++};
+diff --git a/src/bindings/python/sip/RoutingRunnerPlugin.sip b/src/bindings/python/sip/RoutingRunnerPlugin.sip
+index b8381eb..3ea0313 100644
+--- a/src/bindings/python/sip/RoutingRunnerPlugin.sip
++++ b/src/bindings/python/sip/RoutingRunnerPlugin.sip
+@@ -41,5 +41,7 @@ protected:
+     void                    setStatusMessage (const QString& message);
+     void                    setSupportedCelestialBodies (const QStringList& celestialBodies);
+     void                    setCanWorkOffline (bool canWorkOffline);
++public:
++    virtual Marble::RoutingRunner*  newRunner () const=0;
+ };
+ };
+diff --git a/src/bindings/python/sip/ScreenGraphicsItem.sip b/src/bindings/python/sip/ScreenGraphicsItem.sip
+index eace811..fffebb9 100644
+--- a/src/bindings/python/sip/ScreenGraphicsItem.sip
++++ b/src/bindings/python/sip/ScreenGraphicsItem.sip
+@@ -35,7 +35,8 @@ public:
+ 
+     enum GraphicsItemFlag
+     {
+-        ItemIsMovable
++        ItemIsMovable,
++        ItemIsHideable
+     };
+     typedef QFlags<Marble::ScreenGraphicsItem::GraphicsItemFlag> GraphicsItemFlags;
+     virtual ~ScreenGraphicsItem ();
+diff --git a/src/bindings/python/sip/SearchRunner.sip b/src/bindings/python/sip/SearchRunner.sip
+new file mode 100644
+index 0000000..b8f7009
+--- /dev/null
++++ b/src/bindings/python/sip/SearchRunner.sip
+@@ -0,0 +1,38 @@
++// Copyright 2011 Simon Edwards <simon at simonzone.com>
++
++//                 Generated by twine2
++
++// This program is free software; you can redistribute it and/or modify
++// it under the terms of the GNU Library General Public License as
++// published by the Free Software Foundation; either version 2, or
++// (at your option) any later version.
++
++// This program is distributed in the hope that it will be useful,
++// but WITHOUT ANY WARRANTY; without even the implied warranty of
++// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
++// GNU General Public License for more details
++
++// You should have received a copy of the GNU Library General Public
++// License along with this program; if not, write to the
++// Free Software Foundation, Inc.,
++// 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301, USA.
++
++namespace Marble
++{
++class SearchRunner : QObject
++{
++%TypeHeaderCode
++#include <SearchRunner.h>
++%End
++
++public:
++    explicit                SearchRunner (QObject* parent /TransferThis/ = 0);
++    void                    setModel (const Marble::MarbleModel* model);
++    virtual void            search (const QString& searchTerm, const Marble::GeoDataLatLonAltBox& preferred)=0;
++signals:
++// FIXME
++//ig    void                    searchFinished (QVector<Marble::GeoDataPlacemark*> result);
++protected:
++    const Marble::MarbleModel*  model () const;
++};
++};
+diff --git a/src/bindings/python/sip/SearchRunnerPlugin.sip b/src/bindings/python/sip/SearchRunnerPlugin.sip
+index 2924e79..874e74f 100644
+--- a/src/bindings/python/sip/SearchRunnerPlugin.sip
++++ b/src/bindings/python/sip/SearchRunnerPlugin.sip
+@@ -36,5 +36,7 @@ public:
+ protected:
+     void                    setSupportedCelestialBodies (const QStringList& celestialBodies);
+     void                    setCanWorkOffline (bool canWorkOffline);
++public:
++    virtual Marble::SearchRunner*  newRunner () const=0;
+ };
+ };
+diff --git a/src/bindings/python/sip/TileId.sip b/src/bindings/python/sip/TileId.sip
+new file mode 100644
+index 0000000..0f709bd
+--- /dev/null
++++ b/src/bindings/python/sip/TileId.sip
+@@ -0,0 +1,47 @@
++// Copyright 2011 Simon Edwards <simon at simonzone.com>
++
++//                 Generated by twine2
++
++// This program is free software; you can redistribute it and/or modify
++// it under the terms of the GNU Library General Public License as
++// published by the Free Software Foundation; either version 2, or
++// (at your option) any later version.
++
++// This program is distributed in the hope that it will be useful,
++// but WITHOUT ANY WARRANTY; without even the implied warranty of
++// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
++// GNU General Public License for more details
++
++// You should have received a copy of the GNU Library General Public
++// License along with this program; if not, write to the
++// Free Software Foundation, Inc.,
++// 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301, USA.
++
++namespace Marble
++{
++class TileId
++{
++%TypeHeaderCode
++#include <TileId.h>
++%End
++
++public:
++                            TileId (const QString& mapThemeId, int zoomLevel, int tileX, int tileY);
++                            TileId (uint mapThemeIdHash, int zoomLevel, int tileX, int tileY);
++                            TileId ();
++    int                     zoomLevel () const;
++    int                     x () const;
++    int                     y () const;
++    uint                    mapThemeIdHash () const;
++    bool                    operator == (const Marble::TileId& rhs) const;
++    bool                    operator < (const Marble::TileId& rhs) const;
++    static Marble::TileId   fromCoordinates (const Marble::GeoDataCoordinates& coords, int popularity);
++};
++uint                    qHash (const Marble::TileId&);
++//ig int                     TileId::zoomLevel () const;
++//ig int                     TileId::x () const;
++//ig int                     TileId::y () const;
++//ig uint                    TileId::mapThemeIdHash () const;
++//ig uint                    qHash (const Marble::TileId& tid);
++};
++//ig QDebug                  operator << (QDebug, const Marble::TileId&);
+diff --git a/src/bindings/python/sip/ViewportParams.sip b/src/bindings/python/sip/ViewportParams.sip
+index a2d4b45..b33406b 100644
+--- a/src/bindings/python/sip/ViewportParams.sip
++++ b/src/bindings/python/sip/ViewportParams.sip
+@@ -76,6 +76,7 @@ public:
+ //ig    bool                    screenCoordinates (const Marble::GeoDataCoordinates& coordinates, qreal* x, qreal& y, int& pointRepeatNum, bool& globeHidesPoint) const;
+     bool                    screenCoordinates (const Marble::GeoDataCoordinates& coordinates, qreal* x, qreal& y, int& pointRepeatNum, const QSizeF& size, bool& globeHidesPoint) const;
+ //ig    bool                    screenCoordinates (const Marble::GeoDataLineString& lineString, QVector<QPolygonF*>& polygons) const;
++    explicit                ViewportParams (Marble::Projection projection, qreal centerLongitude = 0, qreal centerLatatitude = 0, int radius = 2000, const QSize& size = QSize(100,100));
+ };
+ // ViewportParams
+ 
+diff --git a/src/bindings/python/sip/WikipediaService.sip b/src/bindings/python/sip/WikipediaService.sip
+new file mode 100644
+index 0000000..5e96560
+--- /dev/null
++++ b/src/bindings/python/sip/WikipediaService.sip
+@@ -0,0 +1,19 @@
++// Copyright 2011 Simon Edwards <simon at simonzone.com>
++
++//                 Generated by twine2
++
++// This program is free software; you can redistribute it and/or modify
++// it under the terms of the GNU Library General Public License as
++// published by the Free Software Foundation; either version 2, or
++// (at your option) any later version.
++
++// This program is distributed in the hope that it will be useful,
++// but WITHOUT ANY WARRANTY; without even the implied warranty of
++// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
++// GNU General Public License for more details
++
++// You should have received a copy of the GNU Library General Public
++// License along with this program; if not, write to the
++// Free Software Foundation, Inc.,
++// 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301, USA.
++
+diff --git a/src/bindings/python/sip/marblemod.sip b/src/bindings/python/sip/marblemod.sip
+index 9dc7f09..9baccd4 100644
+--- a/src/bindings/python/sip/marblemod.sip
++++ b/src/bindings/python/sip/marblemod.sip
+@@ -27,10 +27,9 @@
+ %Import QtGui/QtGuimod.sip
+ %Import QtWebKit/QtWebKitmod.sip
+ %Import QtXml/QtXmlmod.sip
+-%Import QtDeclarative/QtDeclarativemod.sip
+ 
+ %Include AbstractLayerInterface.sip
+-%Include GeoDataGroundOverlay.sip
++%Include CylindricalProjection.sip
+ %Include TileCreatorDialog.sip
+ %Include AbstractDataPlugin.sip
+ %Include AbstractDataPluginItem.sip
+@@ -44,7 +43,6 @@
+ %Include BookmarkManager.sip
+ %Include ClipPainter.sip
+ %Include CurrentLocationWidget.sip
+-%Include CylindricalProjection.sip
+ %Include DialogConfigurationInterface.sip
+ %Include DownloadRegion.sip
+ %Include DownloadRegionDialog.sip
+@@ -53,6 +51,7 @@
+ %Include FrameGraphicsItem.sip
+ %Include GeoDataAbstractView.sip
+ %Include GeoDataAccuracy.sip
++%Include GeoDataBalloonStyle.sip
+ %Include GeoDataColorStyle.sip
+ %Include GeoDataContainer.sip
+ %Include GeoDataCoordinates.sip
+@@ -62,17 +61,20 @@
+ %Include GeoDataGeometry.sip
+ %Include GeoDataHotSpot.sip
+ %Include GeoDataIconStyle.sip
++%Include GeoDataItemIcon.sip
+ %Include GeoDataLabelStyle.sip
+ %Include GeoDataLatLonAltBox.sip
+ %Include GeoDataLatLonBox.sip
+ %Include GeoDataLineString.sip
+ %Include GeoDataLineStyle.sip
+ %Include GeoDataLinearRing.sip
++%Include GeoDataListStyle.sip
+ %Include GeoDataLod.sip
+ %Include GeoDataLookAt.sip
+ %Include GeoDataMultiGeometry.sip
+ %Include GeoDataObject.sip
+ %Include GeoDataOverlay.sip
++%Include GeoDataGroundOverlay.sip
+ %Include GeoDataPlacemark.sip
+ %Include GeoDataPoint.sip
+ %Include GeoDataPolyStyle.sip
+@@ -81,6 +83,9 @@
+ %Include GeoDataStyle.sip
+ %Include GeoDataStyleMap.sip
+ %Include GeoDataStyleSelector.sip
++%Include GeoDataTimePrimitive.sip
++%Include GeoDataTimeSpan.sip
++%Include GeoDataTimeStamp.sip
+ %Include GeoDataTrack.sip
+ %Include GeoDataTreeModel.sip
+ %Include GeoDocument.sip
+@@ -93,10 +98,12 @@
+ %Include LatLonEdit.sip
+ %Include LayerInterface.sip
+ %Include LegendWidget.sip
++%Include MapThemeDownloadDialog.sip
+ %Include MapThemeManager.sip
+ %Include MapViewWidget.sip
+ %Include MapWizard.sip
+ %Include MarbleAboutDialog.sip
++%Include MarbleColors.sip
+ %Include MarbleControlBox.sip
+ %Include MarbleDirs.sip
+ %Include MarbleGlobal.sip
+@@ -106,9 +113,11 @@
+ %Include MarbleModel.sip
+ %Include MarbleNavigator.sip
+ %Include MarbleRunnerManager.sip
++%Include MarbleWebView.sip
+ %Include MarbleWidget.sip
+ %Include NavigationWidget.sip
+ %Include ParseRunnerPlugin.sip
++%Include ParsingRunner.sip
+ %Include Planet.sip
+ %Include PluginAboutDialog.sip
+ %Include PluginInterface.sip
+@@ -119,18 +128,23 @@
+ %Include Quaternion.sip
+ %Include RenderPlugin.sip
+ %Include RenderPluginInterface.sip
++%Include ReverseGeocodingRunner.sip
+ %Include ReverseGeocodingRunnerPlugin.sip
++%Include RoutingRunner.sip
+ %Include RoutingRunnerPlugin.sip
+ %Include ScreenGraphicsItem.sip
++%Include SearchRunner.sip
+ %Include SearchRunnerPlugin.sip
+ %Include Serializable.sip
+ %Include SunLocator.sip
+ %Include TileCoordsPyramid.sip
+ %Include TileCreator.sip
++%Include TileId.sip
+ %Include TileLevelRangeWidget.sip
+ %Include TinyWebBrowser.sip
+ %Include ViewportParams.sip
+ %Include WidgetGraphicsItem.sip
++%Include WikipediaService.sip
+ %Include AlternativeRoutesModel.sip
+ %Include Maneuver.sip
+ %Include Route.sip
+-- 
+1.8.3.1
+
diff --git a/marble.spec b/marble.spec
index 1de8019..dfcf656 100644
--- a/marble.spec
+++ b/marble.spec
@@ -1,11 +1,11 @@
 ## enable python bindings or not
-#global python 1
+%global python 1
 
 Name:    marble
 Summary: Virtual globe and world atlas 
 Epoch:   1
 Version: 4.11.0
-Release: 1%{?dist}
+Release: 2%{?dist}
 
 License: LGPLv2+
 #URL:    https://projects.kde.org/projects/kde/kdeedu/marble
@@ -25,6 +25,8 @@ Patch0: marble-4.10.90-qextserialport.patch
 ## upstreamable patches
 
 ## upstream patches
+Patch101: 0001-Python-bindings-update.patch
+Patch102: 0002-Python-bindings-update.patch
 
 BuildRequires: desktop-file-utils
 BuildRequires: kdelibs4-devel >= %{version}
@@ -107,7 +109,10 @@ Requires: pykde4 >= %{version}
 
 %prep
 %setup -q
+
 %patch0 -p1 -b .qextserialport
+%patch101 -p1 -b .0001
+%patch102 -p1 -b .0002
 
 
 %build
@@ -201,6 +206,9 @@ fi
 
 
 %changelog
+* Sun Aug 11 2013 Rex Dieter <rdieter at fedoraproject.org> 4.11.0-2
+- (re)enable python bindings
+
 * Thu Aug 08 2013 Than Ngo <than at redhat.com> - 4.11.0-1
 - 4.11.0
 


More information about the scm-commits mailing list