diff --git a/docs/layermanagement.txt b/docs/layermanagement.txt --- a/docs/layermanagement.txt +++ b/docs/layermanagement.txt @@ -109,7 +109,7 @@ Code snippet: - bool MarbleTestPlugin::render( GeoPainter *painter, ViewportParams *viewport, const QString& renderPos, GeoSceneLayer * layer ) + bool MarbleTestPlugin::render(GeoPainter *painter, ViewportParams *viewport, RenderPosition renderPos, GeoSceneLayer * layer) { painter->autoMapQuality(); painter->setPen( Qt::red ); diff --git a/docs/paintingmaps.txt b/docs/paintingmaps.txt --- a/docs/paintingmaps.txt +++ b/docs/paintingmaps.txt @@ -68,7 +68,7 @@ Code snippet: - bool MarbleTestPlugin::render( GeoPainter *painter, ViewportParams *viewport, const QString& renderPos, GeoSceneLayer * layer ) + bool MarbleTestPlugin::render(GeoPainter *painter, ViewportParams *viewport, RenderPosition renderPos, GeoSceneLayer * layer) { painter->autoMapQuality(); painter->setPen( Qt::red ); diff --git a/examples/cpp/custom-layers/main.cpp b/examples/cpp/custom-layers/main.cpp --- a/examples/cpp/custom-layers/main.cpp +++ b/examples/cpp/custom-layers/main.cpp @@ -29,11 +29,11 @@ MyPaintLayer(MarbleWidget* widget); // Implemented from LayerInterface - virtual QStringList renderPosition() const; + RenderPositions renderPositions() const override; // Implemented from LayerInterface - virtual bool render( GeoPainter *painter, ViewportParams *viewport, - const QString& renderPos = "NONE", GeoSceneLayer * layer = 0 ); + bool render(GeoPainter *painter, ViewportParams *viewport, + RenderPosition renderPos, GeoSceneLayer *layer) override; // Overriding QObject virtual bool eventFilter(QObject *obj, QEvent *event); @@ -43,23 +43,26 @@ private: MarbleWidget* m_widget; + QHash m_renderPositions; int m_index; }; MyPaintLayer::MyPaintLayer(MarbleWidget* widget) : m_widget(widget), m_index(0) { - // nothing to do -} - -QStringList MyPaintLayer::renderPosition() const -{ // We will paint in exactly one of the following layers. // The current one can be changed by pressing the '+' key - QStringList layers = QStringList() << "SURFACE" << "HOVERS_ABOVE_SURFACE"; - layers << "ORBIT" << "USER_TOOLS" << "STARS"; + m_renderPositions.insert(SurfaceRenderPosition, "SURFACE"); + m_renderPositions.insert(HoversAboveSurfaceRenderPosition, "HOVERS_ABOVE_SURFACE"); + m_renderPositions.insert(OrbitRenderPosition, "ORBIT"); + m_renderPositions.insert(UserToolsRenderPosition, "USER_TOOLS"); + m_renderPositions.insert(StarsRenderPosition, "STARS"); - int index = m_index % layers.size(); - return QStringList() << layers.at(index); +} + +RenderPositions MyPaintLayer::renderPositions() const +{ + int index = m_index % m_renderPositions.size(); + return m_renderPositions.keys().at(index); } bool MyPaintLayer::eventFilter(QObject *obj, QEvent *event) @@ -88,15 +91,15 @@ base.latitude(deg) + dist * cos(angle), 0.0, deg); } -bool MyPaintLayer::render( GeoPainter *painter, ViewportParams *viewport, - const QString& renderPos, GeoSceneLayer * layer ) +bool MyPaintLayer::render(GeoPainter *painter, ViewportParams *viewport, + RenderPosition renderPos, GeoSceneLayer * layer) { Q_UNUSED(viewport) Q_UNUSED(renderPos) Q_UNUSED(layer) // Have window title reflect the current paint layer - m_widget->setWindowTitle(renderPosition().first()); + m_widget->setWindowTitle(m_renderPositions.value(renderPos)); GeoDataCoordinates home(8.4, 48.0, 0.0, GeoDataCoordinates::Degree); QTime now = QTime::currentTime(); diff --git a/examples/cpp/squad-interpolation/squad-interpolation.h b/examples/cpp/squad-interpolation/squad-interpolation.h --- a/examples/cpp/squad-interpolation/squad-interpolation.h +++ b/examples/cpp/squad-interpolation/squad-interpolation.h @@ -31,9 +31,9 @@ explicit MyPaintLayer( MarbleWidget* widget ); // LayerInterface - QStringList renderPosition() const; - bool render( GeoPainter *painter, ViewportParams *viewport, - const QString& renderPos = "NONE", GeoSceneLayer * layer = 0 ); + RenderPositions renderPositions() const override; + bool render(GeoPainter *painter, ViewportParams *viewport, + RenderPosition renderPos, GeoSceneLayer * layer) override; GeoDataLatLonBox center() const; private Q_SLOTS: diff --git a/examples/cpp/squad-interpolation/squad-interpolation.cpp b/examples/cpp/squad-interpolation/squad-interpolation.cpp --- a/examples/cpp/squad-interpolation/squad-interpolation.cpp +++ b/examples/cpp/squad-interpolation/squad-interpolation.cpp @@ -41,12 +41,12 @@ addInterpolatedPoint(); } -QStringList MyPaintLayer::renderPosition() const +RenderPositions MyPaintLayer::renderPositions() const { - return QStringList() << "USER_TOOLS"; + return UserToolsRenderPosition; } -bool MyPaintLayer::render ( GeoPainter *painter, ViewportParams *viewport, const QString &, GeoSceneLayer * ) +bool MyPaintLayer::render(GeoPainter *painter, ViewportParams *viewport, RenderPosition, GeoSceneLayer *) { if ( m_index < 20 ) { // Gray dotted line connects all current cities diff --git a/src/bindings/python/sip/AbstractFloatItem.sip b/src/bindings/python/sip/AbstractFloatItem.sip --- a/src/bindings/python/sip/AbstractFloatItem.sip +++ b/src/bindings/python/sip/AbstractFloatItem.sip @@ -34,7 +34,7 @@ void setFont (const QFont& font); void setPositionLocked (bool lock); virtual QString renderPolicy () const; - virtual QStringList renderPosition () const; + RenderPositions renderPosition () const override; protected: bool eventFilter (QObject* object, QEvent* e); diff --git a/src/bindings/python/sip/LayerInterface.sip b/src/bindings/python/sip/LayerInterface.sip --- a/src/bindings/python/sip/LayerInterface.sip +++ b/src/bindings/python/sip/LayerInterface.sip @@ -27,7 +27,7 @@ public: virtual ~LayerInterface (); - virtual QStringList renderPosition () const=0; + virtual RenderPositions renderPositions() const = 0; virtual qreal zValue () const; 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/RenderPluginInterface.sip b/src/bindings/python/sip/RenderPluginInterface.sip --- a/src/bindings/python/sip/RenderPluginInterface.sip +++ b/src/bindings/python/sip/RenderPluginInterface.sip @@ -31,7 +31,7 @@ public: virtual QStringList backendTypes () const=0; virtual QString renderPolicy () const=0; - virtual QStringList renderPosition () const=0; + virtual RenderPositions renderPositions() const = 0; virtual bool render (Marble::GeoPainter* painter, Marble::ViewportParams* viewport, const QString& renderPos = "NONE", Marble::GeoSceneLayer* layer = 0)=0; }; diff --git a/src/lib/marble/AbstractDataPlugin.h b/src/lib/marble/AbstractDataPlugin.h --- a/src/lib/marble/AbstractDataPlugin.h +++ b/src/lib/marble/AbstractDataPlugin.h @@ -67,14 +67,14 @@ /** * @brief Preferred level in the layer stack for the rendering */ - QStringList renderPosition() const; - + RenderPositions renderPositions() const override; + /** * @brief Renders the content provided by the plugin on the viewport. * @return @c true Returns whether the rendering has been successful */ - bool render( GeoPainter *painter, ViewportParams *viewport, - const QString& renderPos = QLatin1String("NONE"), GeoSceneLayer * layer = 0 ); + bool render(GeoPainter *painter, ViewportParams *viewport, + RenderPosition renderPos, GeoSceneLayer * layer) override; /** * @return The model associated with the plugin. diff --git a/src/lib/marble/AbstractDataPlugin.cpp b/src/lib/marble/AbstractDataPlugin.cpp --- a/src/lib/marble/AbstractDataPlugin.cpp +++ b/src/lib/marble/AbstractDataPlugin.cpp @@ -81,13 +81,13 @@ return QString( "ALWAYS" ); } -QStringList AbstractDataPlugin::renderPosition() const +RenderPositions AbstractDataPlugin::renderPositions() const { - return QStringList( "ALWAYS_ON_TOP" ); + return AlwaysOnTopRenderPosition; } -bool AbstractDataPlugin::render( GeoPainter *painter, ViewportParams *viewport, - const QString& renderPos, GeoSceneLayer * layer) +bool AbstractDataPlugin::render(GeoPainter *painter, ViewportParams *viewport, + RenderPosition renderPos, GeoSceneLayer *layer) { Q_UNUSED( renderPos ); Q_UNUSED( layer ); diff --git a/src/lib/marble/AbstractFloatItem.h b/src/lib/marble/AbstractFloatItem.h --- a/src/lib/marble/AbstractFloatItem.h +++ b/src/lib/marble/AbstractFloatItem.h @@ -85,18 +85,17 @@ * @deprecated Do not override this method since it won't be called any longer. * Override one of FrameGraphicsItem's paint methods instead. */ - MARBLE_DEPRECATED( bool render( GeoPainter *painter, ViewportParams *viewport, - const QString& renderPos = QLatin1String("FLOAT_ITEM"), - GeoSceneLayer * layer = 0 ) override ); + MARBLE_DEPRECATED(bool render(GeoPainter *painter, ViewportParams *viewport, + RenderPosition renderPos, GeoSceneLayer *layer) override); QString renderPolicy() const override; /** * @brief Returns the rendering position of this float item. * @deprecated The return value of method is ignored. The float item's rendering position - * will always be "FLOAT_ITEM". + * will always be FloatItemRenderPosition. */ - MARBLE_DEPRECATED( QStringList renderPosition() const override ); + MARBLE_DEPRECATED( RenderPositions renderPositions() const override ); /** * @brief Set visibility of the float item diff --git a/src/lib/marble/AbstractFloatItem.cpp b/src/lib/marble/AbstractFloatItem.cpp --- a/src/lib/marble/AbstractFloatItem.cpp +++ b/src/lib/marble/AbstractFloatItem.cpp @@ -123,9 +123,9 @@ return "ALWAYS"; } -QStringList AbstractFloatItem::renderPosition() const +RenderPositions AbstractFloatItem::renderPositions() const { - return QStringList( "FLOAT_ITEM" ); + return FloatItemRenderPosition; } void AbstractFloatItem::setVisible( bool visible ) @@ -202,8 +202,8 @@ Q_UNUSED( e ); } -bool AbstractFloatItem::render( GeoPainter *painter, ViewportParams *viewport, - const QString& renderPos, GeoSceneLayer * layer ) +bool AbstractFloatItem::render(GeoPainter *painter, ViewportParams *viewport, + RenderPosition renderPos, GeoSceneLayer *layer) { Q_UNUSED(painter) Q_UNUSED(viewport) diff --git a/src/lib/marble/LayerInterface.h b/src/lib/marble/LayerInterface.h --- a/src/lib/marble/LayerInterface.h +++ b/src/lib/marble/LayerInterface.h @@ -34,22 +34,10 @@ /** * @brief Preferred level in the layer stack for the rendering * - * Gives a preferred level in the existing layer stack where + * Gives the preferred levels in the existing layer stack where * the render() method of this plugin should get executed. - *. - * Possible Values: - * "NONE" - * "STARS" - * "BEHIND_TARGET" - * "SURFACE" - * "HOVERS_ABOVE_SURFACE" - * "ATMOSPHERE" - * "ORBIT" - * "ALWAYS_ON_TOP" - * "FLOAT_ITEM" - * "USER_TOOLS" */ - virtual QStringList renderPosition() const = 0; + virtual RenderPositions renderPositions() const = 0; /** * @brief Renders the content provided by the layer on the viewport. @@ -59,8 +47,8 @@ * @param layer deprecated, always zero (NULL) * @return @c true Returns whether the rendering has been successful */ - virtual bool render( GeoPainter *painter, ViewportParams *viewport, - const QString &renderPos, GeoSceneLayer *layer ) = 0; + virtual bool render(GeoPainter *painter, ViewportParams *viewport, + RenderPosition renderPosition, GeoSceneLayer *layer) = 0; /** * @brief Returns the z value of the layer (default: 0.0). If two layers are painted diff --git a/src/lib/marble/LayerManager.cpp b/src/lib/marble/LayerManager.cpp --- a/src/lib/marble/LayerManager.cpp +++ b/src/lib/marble/LayerManager.cpp @@ -126,22 +126,15 @@ d->m_renderState = RenderState( "Marble" ); const QTime totalTime = QTime::currentTime(); - QStringList renderPositions; - - if ( d->m_showBackground ) { - renderPositions << "STARS" << "BEHIND_TARGET"; - } - - renderPositions << "SURFACE" << "HOVERS_ABOVE_SURFACE" << "ATMOSPHERE" - << "ORBIT" << "ALWAYS_ON_TOP" << "FLOAT_ITEM" << "USER_TOOLS"; + RenderPosition renderPosition = d->m_showBackground ? FirstBackgroundRenderPosition : FirstObjectRenderPosition; QStringList traceList; - foreach( const auto& renderPosition, renderPositions ) { + while (renderPosition < EndRenderPosition) { QList layers; // collect all RenderPlugins of current renderPosition foreach( auto *renderPlugin, d->m_renderPlugins ) { - if ( renderPlugin && renderPlugin->renderPosition().contains( renderPosition ) ) { + if (renderPlugin && renderPlugin->renderPositions().testFlag(renderPosition)) { if ( renderPlugin->enabled() && renderPlugin->visible() ) { if ( !renderPlugin->isInitialized() ) { renderPlugin->initialize(); @@ -154,7 +147,7 @@ // collect all internal LayerInterfaces of current renderPosition foreach( auto *layer, d->m_internalLayers ) { - if ( layer && layer->renderPosition().contains( renderPosition ) ) { + if (layer && layer->renderPositions().testFlag(renderPosition)) { layers.push_back( layer ); } } @@ -173,6 +166,9 @@ d->m_renderState.addChild( layer->renderState() ); traceList.append( QString("%2 ms %3").arg( timer.elapsed(),3 ).arg( layer->runtimeTrace() ) ); } + + // next position + renderPosition = static_cast(renderPosition << 1); } if ( d->m_showRuntimeTrace ) { diff --git a/src/lib/marble/MarbleGlobal.h b/src/lib/marble/MarbleGlobal.h --- a/src/lib/marble/MarbleGlobal.h +++ b/src/lib/marble/MarbleGlobal.h @@ -182,6 +182,39 @@ }; /** + * @brief Positions in the order of rendering + * Values are ordered, from LSB matching what is rendered at the bottom to MSB matching what is rendered on top. + * This allows e.g. to loop over all positions like this: + * @code + * RenderPosition renderPosition = FirstBackgroundRenderPosition; + * while (renderPosition < EndRenderPosition) { + * doFoo(renderPosition); + * renderPosition = static_cast(renderPosition << 1); + * } + * @endcode + */ +enum RenderPosition { + NoRenderPosition = 0, + // background positions: + StarsRenderPosition = (1 << 0), + FirstBackgroundRenderPosition = StarsRenderPosition, ///< Helper value for iterating + BehindTargetRenderPosition = (1 << 1), + // object positions: TODO: better word for "object" + SurfaceRenderPosition = (1 << 2), + FirstObjectRenderPosition = SurfaceRenderPosition, ///< Helper value for iterating + HoversAboveSurfaceRenderPosition = (1 << 3), + AtmosphereRenderPosition = (1 << 4), + OrbitRenderPosition = (1 << 5), + AlwaysOnTopRenderPosition = (1 << 6), + // screen positions: + FloatItemRenderPosition = (1 << 7), + UserToolsRenderPosition = (1 << 8), + + EndRenderPosition = (1 << 9) ///< Helper value for iterating, behind last existing position +}; +Q_DECLARE_FLAGS(RenderPositions, RenderPosition) + +/** * @brief */ enum RenderStatus { diff --git a/src/lib/marble/MarbleMap.cpp b/src/lib/marble/MarbleMap.cpp --- a/src/lib/marble/MarbleMap.cpp +++ b/src/lib/marble/MarbleMap.cpp @@ -84,10 +84,10 @@ { } - virtual QStringList renderPosition() const { return QStringList() << "USER_TOOLS"; } + RenderPositions renderPositions() const override { return UserToolsRenderPosition; } - virtual bool render( GeoPainter *painter, ViewportParams *viewport, - const QString &renderPos, GeoSceneLayer *layer ) + bool render(GeoPainter *painter, ViewportParams *viewport, + RenderPosition renderPos, GeoSceneLayer *layer) override { Q_UNUSED( viewport ); Q_UNUSED( renderPos ); diff --git a/src/lib/marble/MarbleWidget.cpp b/src/lib/marble/MarbleWidget.cpp --- a/src/lib/marble/MarbleWidget.cpp +++ b/src/lib/marble/MarbleWidget.cpp @@ -57,10 +57,10 @@ { } - virtual QStringList renderPosition() const { return QStringList() << "USER_TOOLS"; } + RenderPositions renderPositions() const override { return UserToolsRenderPosition; } - virtual bool render( GeoPainter *painter, ViewportParams *viewport, - const QString &renderPos, GeoSceneLayer *layer ) + bool render(GeoPainter *painter, ViewportParams *viewport, + RenderPosition renderPos, GeoSceneLayer *layer) override { Q_UNUSED( viewport ); Q_UNUSED( renderPos ); diff --git a/src/lib/marble/layers/FloatItemsLayer.h b/src/lib/marble/layers/FloatItemsLayer.h --- a/src/lib/marble/layers/FloatItemsLayer.h +++ b/src/lib/marble/layers/FloatItemsLayer.h @@ -33,10 +33,10 @@ public: explicit FloatItemsLayer(QObject *parent = 0); - QStringList renderPosition() const override; + RenderPositions renderPositions() const override; bool render(GeoPainter *painter, ViewportParams *viewport, - const QString &renderPos = "NONE", GeoSceneLayer *layer = 0) override; + RenderPosition renderPos, GeoSceneLayer *layer) override; void addFloatItem(AbstractFloatItem *floatItem); diff --git a/src/lib/marble/layers/FloatItemsLayer.cpp b/src/lib/marble/layers/FloatItemsLayer.cpp --- a/src/lib/marble/layers/FloatItemsLayer.cpp +++ b/src/lib/marble/layers/FloatItemsLayer.cpp @@ -23,14 +23,14 @@ { } -QStringList FloatItemsLayer::renderPosition() const +RenderPositions FloatItemsLayer::renderPositions() const { - return QStringList() << "FLOAT_ITEM"; + return FloatItemRenderPosition; } bool FloatItemsLayer::render(GeoPainter *painter, ViewportParams *viewport, - const QString &renderPos, + RenderPosition renderPos, GeoSceneLayer *layer) { Q_UNUSED(renderPos) diff --git a/src/lib/marble/layers/FogLayer.h b/src/lib/marble/layers/FogLayer.h --- a/src/lib/marble/layers/FogLayer.h +++ b/src/lib/marble/layers/FogLayer.h @@ -22,11 +22,10 @@ class FogLayer : public LayerInterface { public: - virtual QStringList renderPosition() const; + RenderPositions renderPositions() const override; - virtual bool render( GeoPainter *painter, ViewportParams *viewport, - const QString& renderPos = QLatin1String("NONE"), - GeoSceneLayer * layer = 0 ); + bool render(GeoPainter *painter, ViewportParams *viewport, + RenderPosition renderPos, GeoSceneLayer *layer) override; RenderState renderState() const; virtual QString runtimeTrace() const { return "FogLayer"; } diff --git a/src/lib/marble/layers/FogLayer.cpp b/src/lib/marble/layers/FogLayer.cpp --- a/src/lib/marble/layers/FogLayer.cpp +++ b/src/lib/marble/layers/FogLayer.cpp @@ -18,15 +18,15 @@ namespace Marble { - -QStringList FogLayer::renderPosition() const + +RenderPositions FogLayer::renderPositions() const { - return QStringList() << "ATMOSPHERE"; + return AtmosphereRenderPosition; } bool FogLayer::render( GeoPainter *painter, ViewportParams *viewParams, - const QString &renderPos, + RenderPosition renderPos, GeoSceneLayer *layer ) { Q_UNUSED(renderPos) diff --git a/src/lib/marble/layers/GeometryLayer.h b/src/lib/marble/layers/GeometryLayer.h --- a/src/lib/marble/layers/GeometryLayer.h +++ b/src/lib/marble/layers/GeometryLayer.h @@ -38,11 +38,10 @@ explicit GeometryLayer(const QAbstractItemModel *model, const StyleBuilder *styleBuilder); ~GeometryLayer(); - virtual QStringList renderPosition() const; + RenderPositions renderPositions() const override; - virtual bool render( GeoPainter *painter, ViewportParams *viewport, - const QString& renderPos = QLatin1String("NONE"), - GeoSceneLayer * layer = 0 ); + bool render(GeoPainter *painter, ViewportParams *viewport, + RenderPosition renderPos, GeoSceneLayer *layer) override; RenderState renderState() const; diff --git a/src/lib/marble/layers/GeometryLayer.cpp b/src/lib/marble/layers/GeometryLayer.cpp --- a/src/lib/marble/layers/GeometryLayer.cpp +++ b/src/lib/marble/layers/GeometryLayer.cpp @@ -107,14 +107,14 @@ delete d; } -QStringList GeometryLayer::renderPosition() const +RenderPositions GeometryLayer::renderPositions() const { - return QStringList( "HOVERS_ABOVE_SURFACE" ); + return HoversAboveSurfaceRenderPosition; } -bool GeometryLayer::render( GeoPainter *painter, ViewportParams *viewport, - const QString& renderPos, GeoSceneLayer * layer ) +bool GeometryLayer::render(GeoPainter *painter, ViewportParams *viewport, + RenderPosition renderPos, GeoSceneLayer *layer) { Q_UNUSED( renderPos ) Q_UNUSED( layer ) diff --git a/src/lib/marble/layers/GroundLayer.h b/src/lib/marble/layers/GroundLayer.h --- a/src/lib/marble/layers/GroundLayer.h +++ b/src/lib/marble/layers/GroundLayer.h @@ -26,11 +26,10 @@ ~GroundLayer(); - virtual QStringList renderPosition() const; + RenderPositions renderPositions() const override; - virtual bool render( GeoPainter *painter, ViewportParams *viewport, - const QString& renderPos = QLatin1String("NONE"), - GeoSceneLayer * layer = 0 ); + bool render(GeoPainter *painter, ViewportParams *viewport, + RenderPosition renderPos, GeoSceneLayer *layer) override; virtual qreal zValue() const; diff --git a/src/lib/marble/layers/GroundLayer.cpp b/src/lib/marble/layers/GroundLayer.cpp --- a/src/lib/marble/layers/GroundLayer.cpp +++ b/src/lib/marble/layers/GroundLayer.cpp @@ -25,15 +25,15 @@ { } -QStringList GroundLayer::renderPosition() const +RenderPositions GroundLayer::renderPositions() const { - return QStringList() << "SURFACE"; + return SurfaceRenderPosition; } -bool GroundLayer::render( GeoPainter *painter, - ViewportParams *viewParams, - const QString &renderPos, - GeoSceneLayer *layer ) +bool GroundLayer::render(GeoPainter *painter, + ViewportParams *viewParams, + RenderPosition renderPos, + GeoSceneLayer *layer) { Q_UNUSED( renderPos ) Q_UNUSED( layer ) diff --git a/src/lib/marble/layers/MarbleSplashLayer.h b/src/lib/marble/layers/MarbleSplashLayer.h --- a/src/lib/marble/layers/MarbleSplashLayer.h +++ b/src/lib/marble/layers/MarbleSplashLayer.h @@ -22,11 +22,10 @@ public: MarbleSplashLayer(); - virtual QStringList renderPosition() const; + RenderPositions renderPositions() const override; - virtual bool render( GeoPainter *painter, ViewportParams *viewport, - const QString &renderPos = QLatin1String("SURFACE"), - GeoSceneLayer *layer = 0 ); + bool render(GeoPainter *painter, ViewportParams *viewport, + RenderPosition renderPos = SurfaceRenderPosition, GeoSceneLayer *layer = nullptr) override; RenderState renderState() const; diff --git a/src/lib/marble/layers/MarbleSplashLayer.cpp b/src/lib/marble/layers/MarbleSplashLayer.cpp --- a/src/lib/marble/layers/MarbleSplashLayer.cpp +++ b/src/lib/marble/layers/MarbleSplashLayer.cpp @@ -26,13 +26,13 @@ { } -QStringList MarbleSplashLayer::renderPosition() const +RenderPositions MarbleSplashLayer::renderPositions() const { - return QStringList() << "SURFACE"; + return SurfaceRenderPosition; } -bool MarbleSplashLayer::render( GeoPainter *painter, ViewportParams *viewport, - const QString &renderPos, GeoSceneLayer *layer ) +bool MarbleSplashLayer::render(GeoPainter *painter, ViewportParams *viewport, + RenderPosition renderPos, GeoSceneLayer *layer) { Q_UNUSED( renderPos ); Q_UNUSED( layer ); diff --git a/src/lib/marble/layers/PlacemarkLayer.h b/src/lib/marble/layers/PlacemarkLayer.h --- a/src/lib/marble/layers/PlacemarkLayer.h +++ b/src/lib/marble/layers/PlacemarkLayer.h @@ -54,7 +54,7 @@ /** * @reimp */ - QStringList renderPosition() const; + RenderPositions renderPositions() const override; /** * @reimp @@ -64,9 +64,8 @@ /** * @reimp */ - bool render( GeoPainter *painter, ViewportParams *viewport, - const QString &renderPos = QLatin1String("NONE"), - GeoSceneLayer *layer = 0 ); + bool render(GeoPainter *painter, ViewportParams *viewport, + RenderPosition renderPos, GeoSceneLayer *layer) override; RenderState renderState() const; diff --git a/src/lib/marble/layers/PlacemarkLayer.cpp b/src/lib/marble/layers/PlacemarkLayer.cpp --- a/src/lib/marble/layers/PlacemarkLayer.cpp +++ b/src/lib/marble/layers/PlacemarkLayer.cpp @@ -44,18 +44,18 @@ { } -QStringList PlacemarkLayer::renderPosition() const +RenderPositions PlacemarkLayer::renderPositions() const { - return QStringList() << "HOVERS_ABOVE_SURFACE"; + return HoversAboveSurfaceRenderPosition; } qreal PlacemarkLayer::zValue() const { return 2.0; } -bool PlacemarkLayer::render( GeoPainter *geoPainter, ViewportParams *viewport, - const QString &renderPos, GeoSceneLayer *layer ) +bool PlacemarkLayer::render(GeoPainter *geoPainter, ViewportParams *viewport, + RenderPosition renderPos, GeoSceneLayer *layer) { Q_UNUSED( renderPos ) Q_UNUSED( layer ) diff --git a/src/lib/marble/layers/PopupLayer.h b/src/lib/marble/layers/PopupLayer.h --- a/src/lib/marble/layers/PopupLayer.h +++ b/src/lib/marble/layers/PopupLayer.h @@ -40,9 +40,9 @@ explicit PopupLayer( MarbleWidget *widget, QObject* parent = 0 ); ~PopupLayer(); - QStringList renderPosition() const; - bool render( GeoPainter *painter, ViewportParams *viewport, - const QString &, GeoSceneLayer * ); + RenderPositions renderPositions() const override; + bool render(GeoPainter *painter, ViewportParams *viewport, + RenderPosition, GeoSceneLayer *) override; virtual bool eventFilter( QObject *, QEvent * ); qreal zValue() const; diff --git a/src/lib/marble/layers/PopupLayer.cpp b/src/lib/marble/layers/PopupLayer.cpp --- a/src/lib/marble/layers/PopupLayer.cpp +++ b/src/lib/marble/layers/PopupLayer.cpp @@ -78,13 +78,13 @@ delete d; } -QStringList PopupLayer::renderPosition() const +RenderPositions PopupLayer::renderPositions() const { - return QStringList( "ALWAYS_ON_TOP" ); + return AlwaysOnTopRenderPosition; } -bool PopupLayer::render( GeoPainter *painter, ViewportParams *viewport, - const QString&, GeoSceneLayer* ) +bool PopupLayer::render(GeoPainter *painter, ViewportParams *viewport, + RenderPosition, GeoSceneLayer*) { if ( visible() ) { d->setAppropriateSize( viewport ); diff --git a/src/lib/marble/layers/TextureLayer.h b/src/lib/marble/layers/TextureLayer.h --- a/src/lib/marble/layers/TextureLayer.h +++ b/src/lib/marble/layers/TextureLayer.h @@ -45,7 +45,7 @@ ~TextureLayer(); - QStringList renderPosition() const; + RenderPositions renderPositions() const override; void addSeaDocument( const GeoDataDocument *seaDocument ); @@ -93,9 +93,8 @@ virtual QString runtimeTrace() const; - virtual bool render( GeoPainter *painter, ViewportParams *viewport, - const QString &renderPos = QLatin1String("NONE"), - GeoSceneLayer *layer = 0 ); + bool render(GeoPainter *painter, ViewportParams *viewport, + RenderPosition renderPos, GeoSceneLayer *layer) override; public Q_SLOTS: void setShowRelief( bool show ); diff --git a/src/lib/marble/layers/TextureLayer.cpp b/src/lib/marble/layers/TextureLayer.cpp --- a/src/lib/marble/layers/TextureLayer.cpp +++ b/src/lib/marble/layers/TextureLayer.cpp @@ -264,9 +264,9 @@ delete d; } -QStringList TextureLayer::renderPosition() const +RenderPositions TextureLayer::renderPositions() const { - return QStringList() << "SURFACE"; + return SurfaceRenderPosition; } void TextureLayer::addSeaDocument( const GeoDataDocument *seaDocument ) @@ -300,8 +300,8 @@ return d->m_layerDecorator.showCityLights(); } -bool TextureLayer::render( GeoPainter *painter, ViewportParams *viewport, - const QString &renderPos, GeoSceneLayer *layer ) +bool TextureLayer::render(GeoPainter *painter, ViewportParams *viewport, + RenderPosition renderPos, GeoSceneLayer *layer) { Q_UNUSED( renderPos ); Q_UNUSED( layer ); diff --git a/src/lib/marble/layers/VectorTileLayer.h b/src/lib/marble/layers/VectorTileLayer.h --- a/src/lib/marble/layers/VectorTileLayer.h +++ b/src/lib/marble/layers/VectorTileLayer.h @@ -45,17 +45,16 @@ ~VectorTileLayer(); - QStringList renderPosition() const; + RenderPositions renderPositions() const override; RenderState renderState() const; int tileZoomLevel() const; QString runtimeTrace() const; - bool render( GeoPainter *painter, ViewportParams *viewport, - const QString &renderPos = QLatin1String("NONE"), - GeoSceneLayer *layer = 0 ); + bool render(GeoPainter *painter, ViewportParams *viewport, + RenderPosition renderPos, GeoSceneLayer *layer) override; Q_SIGNALS: void tileLevelChanged(int tileLevel); diff --git a/src/lib/marble/layers/VectorTileLayer.cpp b/src/lib/marble/layers/VectorTileLayer.cpp --- a/src/lib/marble/layers/VectorTileLayer.cpp +++ b/src/lib/marble/layers/VectorTileLayer.cpp @@ -121,9 +121,9 @@ delete d; } -QStringList VectorTileLayer::renderPosition() const +RenderPositions VectorTileLayer::renderPositions() const { - return QStringList() << "SURFACE"; + return SurfaceRenderPosition; } RenderState VectorTileLayer::renderState() const @@ -150,8 +150,8 @@ return QString("Vector Tiles: %1 tiles in %2 layers").arg(tiles).arg(layers); } -bool VectorTileLayer::render( GeoPainter *painter, ViewportParams *viewport, - const QString &renderPos, GeoSceneLayer *layer ) +bool VectorTileLayer::render(GeoPainter *painter, ViewportParams *viewport, + RenderPosition renderPos, GeoSceneLayer *layer) { Q_UNUSED( painter ); Q_UNUSED( renderPos ); diff --git a/src/lib/marble/routing/RoutingLayer.h b/src/lib/marble/routing/RoutingLayer.h --- a/src/lib/marble/routing/RoutingLayer.h +++ b/src/lib/marble/routing/RoutingLayer.h @@ -48,14 +48,14 @@ ~RoutingLayer(); /** Reimplemented from LayerInterface. We'll hover above the surface */ - QStringList renderPosition() const; + RenderPositions renderPositions() const override; /** Reimplemented from LayerInterface. */ qreal zValue() const; /** Reimplemented from LayerInterface. Paints route items and placemarks */ - bool render( GeoPainter *painter, ViewportParams *viewport, - const QString &renderPos = "NONE", GeoSceneLayer *layer = 0 ); + bool render(GeoPainter *painter, ViewportParams *viewport, + RenderPosition renderPos, GeoSceneLayer *layer) override; RenderState renderState() const; diff --git a/src/lib/marble/routing/RoutingLayer.cpp b/src/lib/marble/routing/RoutingLayer.cpp --- a/src/lib/marble/routing/RoutingLayer.cpp +++ b/src/lib/marble/routing/RoutingLayer.cpp @@ -628,18 +628,18 @@ delete d; } -QStringList RoutingLayer::renderPosition() const +RenderPositions RoutingLayer::renderPositions() const { - return QStringList() << "HOVERS_ABOVE_SURFACE"; + return HoversAboveSurfaceRenderPosition; } qreal RoutingLayer::zValue() const { return 1.0; } -bool RoutingLayer::render( GeoPainter *painter, ViewportParams *viewport, - const QString& renderPos, GeoSceneLayer *layer ) +bool RoutingLayer::render(GeoPainter *painter, ViewportParams *viewport, + RenderPosition renderPos, GeoSceneLayer *layer) { Q_UNUSED( viewport ) Q_UNUSED( renderPos ) diff --git a/src/plugins/render/annotate/AnnotatePlugin.h b/src/plugins/render/annotate/AnnotatePlugin.h --- a/src/plugins/render/annotate/AnnotatePlugin.h +++ b/src/plugins/render/annotate/AnnotatePlugin.h @@ -56,7 +56,7 @@ QString renderPolicy() const; - QStringList renderPosition() const; + RenderPositions renderPositions() const override; QString name() const; @@ -82,8 +82,8 @@ virtual const QList *actionGroups() const; - bool render( GeoPainter *painter, ViewportParams *viewport, - const QString &renderPos, GeoSceneLayer *layer = 0 ); + bool render(GeoPainter *painter, ViewportParams *viewport, + RenderPosition renderPos, GeoSceneLayer *layer) override; Q_SIGNALS: void placemarkMoved(); diff --git a/src/plugins/render/annotate/AnnotatePlugin.cpp b/src/plugins/render/annotate/AnnotatePlugin.cpp --- a/src/plugins/render/annotate/AnnotatePlugin.cpp +++ b/src/plugins/render/annotate/AnnotatePlugin.cpp @@ -149,9 +149,9 @@ return QString( "ALWAYS" ); } -QStringList AnnotatePlugin::renderPosition() const +RenderPositions AnnotatePlugin::renderPositions() const { - return QStringList() << "ALWAYS_ON_TOP"; + return AlwaysOnTopRenderPosition; } QString AnnotatePlugin::name() const @@ -231,7 +231,8 @@ return &m_actions; } -bool AnnotatePlugin::render( GeoPainter *painter, ViewportParams *viewport, const QString &renderPos, GeoSceneLayer *layer ) +bool AnnotatePlugin::render(GeoPainter *painter, ViewportParams *viewport, + RenderPosition renderPos, GeoSceneLayer *layer) { Q_UNUSED( renderPos ); Q_UNUSED( layer ); diff --git a/src/plugins/render/aprs/AprsPlugin.h b/src/plugins/render/aprs/AprsPlugin.h --- a/src/plugins/render/aprs/AprsPlugin.h +++ b/src/plugins/render/aprs/AprsPlugin.h @@ -48,7 +48,7 @@ ~AprsPlugin(); QStringList backendTypes() const; QString renderPolicy() const; - QStringList renderPosition() const; + RenderPositions renderPositions() const override; QString name() const; QString guiString() const; QString nameId() const; @@ -65,7 +65,7 @@ void initialize (); bool isInitialized () const; - bool render( GeoPainter *painter, ViewportParams *viewport, const QString& renderPos, GeoSceneLayer * layer = 0 ); + bool render( GeoPainter *painter, ViewportParams *viewport, RenderPosition renderPos, GeoSceneLayer * layer) override; QDialog *configDialog(); QAction *action() const; diff --git a/src/plugins/render/aprs/AprsPlugin.cpp b/src/plugins/render/aprs/AprsPlugin.cpp --- a/src/plugins/render/aprs/AprsPlugin.cpp +++ b/src/plugins/render/aprs/AprsPlugin.cpp @@ -117,9 +117,9 @@ return QString( "ALWAYS" ); } -QStringList AprsPlugin::renderPosition() const +RenderPositions AprsPlugin::renderPositions() const { - return QStringList( "HOVERS_ABOVE_SURFACE" ); + return HoversAboveSurfaceRenderPosition; } QString AprsPlugin::name() const @@ -401,7 +401,8 @@ return m_initialized; } -bool AprsPlugin::render( GeoPainter *painter, ViewportParams *viewport, const QString& renderPos, GeoSceneLayer * layer ) +bool AprsPlugin::render(GeoPainter *painter, ViewportParams *viewport, + RenderPosition renderPos, GeoSceneLayer *layer) { Q_UNUSED( renderPos ) Q_UNUSED( layer ) diff --git a/src/plugins/render/atmosphere/AtmospherePlugin.h b/src/plugins/render/atmosphere/AtmospherePlugin.h --- a/src/plugins/render/atmosphere/AtmospherePlugin.h +++ b/src/plugins/render/atmosphere/AtmospherePlugin.h @@ -35,7 +35,7 @@ QString renderPolicy() const; - QStringList renderPosition() const; + RenderPositions renderPositions() const override; virtual RenderType renderType() const; @@ -61,7 +61,7 @@ bool isInitialized() const; - bool render( GeoPainter *painter, ViewportParams *viewport, const QString& renderPos, GeoSceneLayer * layer = 0 ); + bool render(GeoPainter *painter, ViewportParams *viewport, RenderPosition renderPos, GeoSceneLayer * layer) override; void repaintPixmap(const ViewportParams *viewParams); public Q_SLOTS: diff --git a/src/plugins/render/atmosphere/AtmospherePlugin.cpp b/src/plugins/render/atmosphere/AtmospherePlugin.cpp --- a/src/plugins/render/atmosphere/AtmospherePlugin.cpp +++ b/src/plugins/render/atmosphere/AtmospherePlugin.cpp @@ -50,9 +50,9 @@ return QString( "SPECIFIED_ALWAYS" ); } -QStringList AtmospherePlugin::renderPosition() const +RenderPositions AtmospherePlugin::renderPositions() const { - return QStringList() << "SURFACE"; + return SurfaceRenderPosition; } RenderPlugin::RenderType AtmospherePlugin::renderType() const @@ -130,7 +130,7 @@ bool AtmospherePlugin::render( GeoPainter *painter, ViewportParams *viewParams, - const QString &renderPos, + RenderPosition renderPos, GeoSceneLayer *layer ) { Q_UNUSED(renderPos) diff --git a/src/plugins/render/crosshairs/CrosshairsPlugin.h b/src/plugins/render/crosshairs/CrosshairsPlugin.h --- a/src/plugins/render/crosshairs/CrosshairsPlugin.h +++ b/src/plugins/render/crosshairs/CrosshairsPlugin.h @@ -56,7 +56,7 @@ QString renderPolicy() const; - QStringList renderPosition() const; + RenderPositions renderPositions() const override; virtual RenderType renderType() const; @@ -80,7 +80,7 @@ bool isInitialized () const; - bool render( GeoPainter *painter, ViewportParams *viewport, const QString& renderPos, GeoSceneLayer * layer = 0 ); + bool render(GeoPainter *painter, ViewportParams *viewport, RenderPosition renderPos, GeoSceneLayer *layer) override; QDialog *configDialog(); diff --git a/src/plugins/render/crosshairs/CrosshairsPlugin.cpp b/src/plugins/render/crosshairs/CrosshairsPlugin.cpp --- a/src/plugins/render/crosshairs/CrosshairsPlugin.cpp +++ b/src/plugins/render/crosshairs/CrosshairsPlugin.cpp @@ -64,9 +64,9 @@ return QString( "ALWAYS" ); } -QStringList CrosshairsPlugin::renderPosition() const +RenderPositions CrosshairsPlugin::renderPositions() const { - return QStringList( "FLOAT_ITEM" ); // although this is not a float item we choose the position of one + return FloatItemRenderPosition; // although this is not a float item we choose the position of one } RenderPlugin::RenderType CrosshairsPlugin::renderType() const @@ -203,9 +203,9 @@ emit settingsChanged( nameId() ); } -bool CrosshairsPlugin::render( GeoPainter *painter, ViewportParams *viewport, - const QString& renderPos, - GeoSceneLayer * layer ) +bool CrosshairsPlugin::render(GeoPainter *painter, ViewportParams *viewport, + RenderPosition renderPos, + GeoSceneLayer *layer) { Q_UNUSED( renderPos ) Q_UNUSED( layer ) diff --git a/src/plugins/render/eclipses/EclipsesPlugin.h b/src/plugins/render/eclipses/EclipsesPlugin.h --- a/src/plugins/render/eclipses/EclipsesPlugin.h +++ b/src/plugins/render/eclipses/EclipsesPlugin.h @@ -55,7 +55,7 @@ QStringList backendTypes() const; QString renderPolicy() const; - QStringList renderPosition() const; + RenderPositions renderPositions() const override; QString name() const; QString nameId() const; QString guiString() const; @@ -71,10 +71,8 @@ void initialize(); bool isInitialized() const; - bool render( GeoPainter *painter, - ViewportParams *viewport, - const QString &renderPos, - GeoSceneLayer *layer ); + bool render(GeoPainter *painter, ViewportParams *viewport, + RenderPosition renderPos, GeoSceneLayer *layer) override; QHash settings() const; void setSettings( const QHash &settings ); diff --git a/src/plugins/render/eclipses/EclipsesPlugin.cpp b/src/plugins/render/eclipses/EclipsesPlugin.cpp --- a/src/plugins/render/eclipses/EclipsesPlugin.cpp +++ b/src/plugins/render/eclipses/EclipsesPlugin.cpp @@ -88,9 +88,9 @@ return QString( "ALWAYS" ); } -QStringList EclipsesPlugin::renderPosition() const +RenderPositions EclipsesPlugin::renderPositions() const { - return QStringList( "ORBIT" ); + return OrbitRenderPosition; } QString EclipsesPlugin::name() const @@ -232,10 +232,10 @@ return RenderPlugin::eventFilter(object, e); } -bool EclipsesPlugin::render( GeoPainter *painter, - ViewportParams *viewport, - const QString &renderPos, - GeoSceneLayer *layer ) +bool EclipsesPlugin::render(GeoPainter *painter, + ViewportParams *viewport, + RenderPosition renderPos, + GeoSceneLayer *layer) { Q_UNUSED( viewport ); Q_UNUSED( renderPos ); diff --git a/src/plugins/render/elevationprofilemarker/ElevationProfileMarker.h b/src/plugins/render/elevationprofilemarker/ElevationProfileMarker.h --- a/src/plugins/render/elevationprofilemarker/ElevationProfileMarker.h +++ b/src/plugins/render/elevationprofilemarker/ElevationProfileMarker.h @@ -41,7 +41,7 @@ QString renderPolicy() const; - QStringList renderPosition() const; + RenderPositions renderPositions() const override; qreal zValue() const; // Overriding LayerInterface to paint on top of the route @@ -65,8 +65,8 @@ bool isInitialized() const; - bool render( GeoPainter *painter, ViewportParams *viewport, - const QString &renderPos, GeoSceneLayer *layer = 0 ); + bool render(GeoPainter *painter, ViewportParams *viewport, + RenderPosition renderPos, GeoSceneLayer *layer) override; private Q_SLOTS: void onGeoObjectAdded( GeoDataObject *object ); diff --git a/src/plugins/render/elevationprofilemarker/ElevationProfileMarker.cpp b/src/plugins/render/elevationprofilemarker/ElevationProfileMarker.cpp --- a/src/plugins/render/elevationprofilemarker/ElevationProfileMarker.cpp +++ b/src/plugins/render/elevationprofilemarker/ElevationProfileMarker.cpp @@ -59,9 +59,9 @@ return "ALWAYS"; } -QStringList ElevationProfileMarker::renderPosition() const +RenderPositions ElevationProfileMarker::renderPositions() const { - return QStringList() << "HOVERS_ABOVE_SURFACE"; + return HoversAboveSurfaceRenderPosition; } qreal ElevationProfileMarker::zValue() const @@ -129,7 +129,8 @@ return !m_markerIcon.image().isNull(); } -bool ElevationProfileMarker::render( GeoPainter* painter, ViewportParams* viewport, const QString& renderPos, GeoSceneLayer* layer ) +bool ElevationProfileMarker::render(GeoPainter* painter, ViewportParams* viewport, + RenderPosition renderPos, GeoSceneLayer* layer) { Q_UNUSED( renderPos ) Q_UNUSED( layer ) diff --git a/src/plugins/render/graticule/GraticulePlugin.h b/src/plugins/render/graticule/GraticulePlugin.h --- a/src/plugins/render/graticule/GraticulePlugin.h +++ b/src/plugins/render/graticule/GraticulePlugin.h @@ -65,7 +65,7 @@ QString renderPolicy() const; - QStringList renderPosition() const; + RenderPositions renderPositions() const override; QString name() const; @@ -89,7 +89,8 @@ bool isInitialized () const; - virtual bool render( GeoPainter *painter, ViewportParams *viewport, const QString& renderPos, GeoSceneLayer * layer = 0 ); + bool render(GeoPainter *painter, ViewportParams *viewport, + RenderPosition renderPos, GeoSceneLayer *layer) override; virtual qreal zValue() const; diff --git a/src/plugins/render/graticule/GraticulePlugin.cpp b/src/plugins/render/graticule/GraticulePlugin.cpp --- a/src/plugins/render/graticule/GraticulePlugin.cpp +++ b/src/plugins/render/graticule/GraticulePlugin.cpp @@ -68,9 +68,9 @@ return QString( "ALWAYS" ); } -QStringList GraticulePlugin::renderPosition() const +RenderPositions GraticulePlugin::renderPositions() const { - return QStringList( "SURFACE" ); + return SurfaceRenderPosition; } QString GraticulePlugin::name() const @@ -257,9 +257,8 @@ emit settingsChanged( nameId() ); } -bool GraticulePlugin::render( GeoPainter *painter, ViewportParams *viewport, - const QString& renderPos, - GeoSceneLayer * layer ) +bool GraticulePlugin::render(GeoPainter *painter, ViewportParams *viewport, + RenderPosition renderPos, GeoSceneLayer *layer) { Q_UNUSED( layer ) Q_UNUSED( renderPos ) diff --git a/src/plugins/render/inhibit-screensaver/InhibitScreensaverPlugin.h b/src/plugins/render/inhibit-screensaver/InhibitScreensaverPlugin.h --- a/src/plugins/render/inhibit-screensaver/InhibitScreensaverPlugin.h +++ b/src/plugins/render/inhibit-screensaver/InhibitScreensaverPlugin.h @@ -60,10 +60,10 @@ QIcon icon() const; - virtual QStringList renderPosition() const; + RenderPositions renderPositions() const override; - virtual bool render( GeoPainter *painter, ViewportParams *viewport, - const QString& renderPos = "NONE", GeoSceneLayer * layer = 0 ); + bool render(GeoPainter *painter, ViewportParams *viewport, + RenderPosition renderPos, GeoSceneLayer *layer) override; virtual QString renderPolicy() const; diff --git a/src/plugins/render/inhibit-screensaver/InhibitScreensaverPlugin.cpp b/src/plugins/render/inhibit-screensaver/InhibitScreensaverPlugin.cpp --- a/src/plugins/render/inhibit-screensaver/InhibitScreensaverPlugin.cpp +++ b/src/plugins/render/inhibit-screensaver/InhibitScreensaverPlugin.cpp @@ -75,10 +75,10 @@ return QStringList( nameId() ); } -QStringList InhibitScreensaverPlugin::renderPosition() const +RenderPositions InhibitScreensaverPlugin::renderPositions() const { // We're invisible, but need to be initialized - return QStringList( "FLOAT_ITEM" ); + return FloatItemRenderPosition; } QString InhibitScreensaverPlugin::name() const @@ -160,7 +160,7 @@ } } -bool InhibitScreensaverPlugin::render( GeoPainter *, ViewportParams *, const QString&, GeoSceneLayer *) +bool InhibitScreensaverPlugin::render(GeoPainter *, ViewportParams *, RenderPosition, GeoSceneLayer *) { // invisible return true; diff --git a/src/plugins/render/measure/MeasureToolPlugin.h b/src/plugins/render/measure/MeasureToolPlugin.h --- a/src/plugins/render/measure/MeasureToolPlugin.h +++ b/src/plugins/render/measure/MeasureToolPlugin.h @@ -50,7 +50,7 @@ QStringList backendTypes() const; QString renderPolicy() const; - QStringList renderPosition() const; + RenderPositions renderPositions() const override; QString name() const; QString guiString() const; QString nameId() const; @@ -69,7 +69,8 @@ bool isInitialized () const; - bool render( GeoPainter *painter, ViewportParams *viewport, const QString& renderPos, GeoSceneLayer * layer = 0 ); + bool render(GeoPainter *painter, ViewportParams *viewport, + RenderPosition renderPos, GeoSceneLayer *layer) override; QDialog *configDialog(); QHash settings() const; diff --git a/src/plugins/render/measure/MeasureToolPlugin.cpp b/src/plugins/render/measure/MeasureToolPlugin.cpp --- a/src/plugins/render/measure/MeasureToolPlugin.cpp +++ b/src/plugins/render/measure/MeasureToolPlugin.cpp @@ -79,9 +79,9 @@ return QString( "ALWAYS" ); } -QStringList MeasureToolPlugin::renderPosition() const +RenderPositions MeasureToolPlugin::renderPositions() const { - return QStringList() << "ATMOSPHERE"; + return AtmosphereRenderPosition; } QString MeasureToolPlugin::name() const @@ -224,10 +224,10 @@ emit repaintNeeded(); } -bool MeasureToolPlugin::render( GeoPainter *painter, - ViewportParams *viewport, - const QString& renderPos, - GeoSceneLayer * layer ) +bool MeasureToolPlugin::render(GeoPainter *painter, + ViewportParams *viewport, + RenderPosition renderPos, + GeoSceneLayer *layer) { Q_UNUSED(renderPos) Q_UNUSED(layer) diff --git a/src/plugins/render/positionmarker/PositionMarker.h b/src/plugins/render/positionmarker/PositionMarker.h --- a/src/plugins/render/positionmarker/PositionMarker.h +++ b/src/plugins/render/positionmarker/PositionMarker.h @@ -43,7 +43,7 @@ explicit PositionMarker(const MarbleModel *marbleModel = 0 ); ~PositionMarker (); - QStringList renderPosition() const; + RenderPositions renderPositions() const override; QString renderPolicy() const; @@ -71,8 +71,8 @@ bool isInitialized () const; - bool render( GeoPainter *painter, ViewportParams *viewport, - const QString& renderPos, GeoSceneLayer * layer = 0 ); + bool render(GeoPainter *painter, ViewportParams *viewport, + RenderPosition renderPos, GeoSceneLayer *layer) override; // Overriding LayerInterface to paint on top of the route virtual qreal zValue() const; diff --git a/src/plugins/render/positionmarker/PositionMarker.cpp b/src/plugins/render/positionmarker/PositionMarker.cpp --- a/src/plugins/render/positionmarker/PositionMarker.cpp +++ b/src/plugins/render/positionmarker/PositionMarker.cpp @@ -64,9 +64,9 @@ delete m_configDialog; } -QStringList PositionMarker::renderPosition() const +RenderPositions PositionMarker::renderPositions() const { - return QStringList( "HOVERS_ABOVE_SURFACE" ); + return HoversAboveSurfaceRenderPosition; } QString PositionMarker::renderPolicy() const @@ -170,10 +170,10 @@ return m_isInitialized; } -bool PositionMarker::render( GeoPainter *painter, - ViewportParams *viewport, - const QString& renderPos, - GeoSceneLayer * layer ) +bool PositionMarker::render(GeoPainter *painter, + ViewportParams *viewport, + RenderPosition renderPos, + GeoSceneLayer *layer) { Q_UNUSED( renderPos ) Q_UNUSED( layer ) diff --git a/src/plugins/render/satellites/SatellitesPlugin.h b/src/plugins/render/satellites/SatellitesPlugin.h --- a/src/plugins/render/satellites/SatellitesPlugin.h +++ b/src/plugins/render/satellites/SatellitesPlugin.h @@ -41,7 +41,7 @@ QStringList backendTypes() const; QString renderPolicy() const; - QStringList renderPosition() const; + RenderPositions renderPositions() const override; QString name() const; QString nameId() const; QString guiString() const; @@ -55,10 +55,8 @@ void initialize(); bool isInitialized() const; - bool render( GeoPainter *painter, - ViewportParams *viewport, - const QString &renderPos, - GeoSceneLayer *layer ); + bool render(GeoPainter *painter, ViewportParams *viewport, + RenderPosition renderPos, GeoSceneLayer *layer) override; bool eventFilter( QObject *object, QEvent *event ); diff --git a/src/plugins/render/satellites/SatellitesPlugin.cpp b/src/plugins/render/satellites/SatellitesPlugin.cpp --- a/src/plugins/render/satellites/SatellitesPlugin.cpp +++ b/src/plugins/render/satellites/SatellitesPlugin.cpp @@ -77,9 +77,9 @@ return QString( "ALWAYS" ); } -QStringList SatellitesPlugin::renderPosition() const +RenderPositions SatellitesPlugin::renderPositions() const { - return QStringList( "ORBIT" ); + return OrbitRenderPosition; } QString SatellitesPlugin::name() const @@ -181,8 +181,8 @@ return m_isInitialized; } -bool SatellitesPlugin::render( GeoPainter *painter, ViewportParams *viewport, - const QString &renderPos, GeoSceneLayer *layer ) +bool SatellitesPlugin::render(GeoPainter *painter, ViewportParams *viewport, + RenderPosition renderPos, GeoSceneLayer *layer) { Q_UNUSED( painter ); Q_UNUSED( viewport ); diff --git a/src/plugins/render/stars/StarsPlugin.h b/src/plugins/render/stars/StarsPlugin.h --- a/src/plugins/render/stars/StarsPlugin.h +++ b/src/plugins/render/stars/StarsPlugin.h @@ -137,7 +137,7 @@ QString renderPolicy() const; - QStringList renderPosition() const; + RenderPositions renderPositions() const override; virtual RenderType renderType() const; @@ -161,7 +161,8 @@ bool isInitialized() const; - bool render( GeoPainter *painter, ViewportParams *viewport, const QString& renderPos, GeoSceneLayer * layer = 0 ); + bool render(GeoPainter *painter, ViewportParams *viewport, + RenderPosition renderPos, GeoSceneLayer *layer) override; QDialog *configDialog(); diff --git a/src/plugins/render/stars/StarsPlugin.cpp b/src/plugins/render/stars/StarsPlugin.cpp --- a/src/plugins/render/stars/StarsPlugin.cpp +++ b/src/plugins/render/stars/StarsPlugin.cpp @@ -92,9 +92,9 @@ return QString( "SPECIFIED_ALWAYS" ); } -QStringList StarsPlugin::renderPosition() const +RenderPositions StarsPlugin::renderPositions() const { - return QStringList() << "STARS"; + return StarsRenderPosition; } RenderPlugin::RenderType StarsPlugin::renderType() const @@ -774,8 +774,8 @@ m_dsosLoaded = true; } -bool StarsPlugin::render( GeoPainter *painter, ViewportParams *viewport, - const QString& renderPos, GeoSceneLayer * layer ) +bool StarsPlugin::render(GeoPainter *painter, ViewportParams *viewport, + RenderPosition renderPos, GeoSceneLayer *layer) { Q_UNUSED( renderPos ) Q_UNUSED( layer ) diff --git a/src/plugins/render/sun/SunPlugin.h b/src/plugins/render/sun/SunPlugin.h --- a/src/plugins/render/sun/SunPlugin.h +++ b/src/plugins/render/sun/SunPlugin.h @@ -39,7 +39,7 @@ QString renderPolicy() const; - QStringList renderPosition() const; + RenderPositions renderPositions() const override; QString name() const; @@ -61,7 +61,8 @@ bool isInitialized () const; - bool render( GeoPainter *painter, ViewportParams *viewport, const QString& renderPos, GeoSceneLayer * layer = 0 ); + bool render(GeoPainter *painter, ViewportParams *viewport, + RenderPosition renderPos, GeoSceneLayer *layer) override; private: QPixmap m_pixmap; diff --git a/src/plugins/render/sun/SunPlugin.cpp b/src/plugins/render/sun/SunPlugin.cpp --- a/src/plugins/render/sun/SunPlugin.cpp +++ b/src/plugins/render/sun/SunPlugin.cpp @@ -43,10 +43,9 @@ return QString( "SPECIFIED_ALWAYS" ); } -QStringList SunPlugin::renderPosition() const +RenderPositions SunPlugin::renderPositions() const { - QStringList layers = QStringList() << "ALWAYS_ON_TOP"; - return layers; + return AlwaysOnTopRenderPosition; } QString SunPlugin::name() const @@ -103,8 +102,8 @@ return !m_pixmap.isNull(); } -bool SunPlugin::render( GeoPainter *painter, ViewportParams *viewport, - const QString& renderPos, GeoSceneLayer * layer ) +bool SunPlugin::render(GeoPainter *painter, ViewportParams *viewport, + RenderPosition renderPos, GeoSceneLayer *layer) { Q_UNUSED( viewport ) Q_UNUSED( renderPos ) diff --git a/src/plugins/render/test/TestPlugin.h b/src/plugins/render/test/TestPlugin.h --- a/src/plugins/render/test/TestPlugin.h +++ b/src/plugins/render/test/TestPlugin.h @@ -40,7 +40,7 @@ QString renderPolicy() const; - QStringList renderPosition() const; + RenderPositions renderPositions() const override; QString name() const; @@ -63,7 +63,8 @@ bool isInitialized () const; - bool render( GeoPainter *painter, ViewportParams *viewport, const QString& renderPos, GeoSceneLayer * layer = 0 ); + bool render(GeoPainter *painter, ViewportParams *viewport, + RenderPosition renderPos, GeoSceneLayer *layer) overide; }; } diff --git a/src/plugins/render/test/TestPlugin.cpp b/src/plugins/render/test/TestPlugin.cpp --- a/src/plugins/render/test/TestPlugin.cpp +++ b/src/plugins/render/test/TestPlugin.cpp @@ -48,9 +48,9 @@ return QString( "ALWAYS" ); } -QStringList TestPlugin::renderPosition() const +RenderPositions TestPlugin::renderPositions() const { - return QStringList( "ALWAYS_ON_TOP" ); + return AlwaysOnTopRenderPosition; } QString TestPlugin::name() const @@ -104,7 +104,8 @@ return true; } -bool TestPlugin::render( GeoPainter *painter, ViewportParams *viewport, const QString& renderPos, GeoSceneLayer * layer ) +bool TestPlugin::render(GeoPainter *painter, ViewportParams *viewport, + RenderPosition renderPos, GeoSceneLayer *layer) { Q_UNUSED(viewport); Q_UNUSED(renderPos); diff --git a/src/plugins/render/twitter/twitterPlugin.h b/src/plugins/render/twitter/twitterPlugin.h --- a/src/plugins/render/twitter/twitterPlugin.h +++ b/src/plugins/render/twitter/twitterPlugin.h @@ -49,7 +49,7 @@ QString renderPolicy() const; - QStringList renderPosition() const; + RenderPositions renderPositions() const override; QString name() const; @@ -66,7 +66,8 @@ bool isInitialized() const; - bool render(GeoPainter *painter, ViewportParams *viewport, const QString& renderPos, GeoSceneLayer * layer = 0); + bool render(GeoPainter *painter, ViewportParams *viewport, + RenderPosition renderPos, GeoSceneLayer *layer) override; ~twitterPlugin(); diff --git a/src/plugins/render/twitter/twitterPlugin.cpp b/src/plugins/render/twitter/twitterPlugin.cpp --- a/src/plugins/render/twitter/twitterPlugin.cpp +++ b/src/plugins/render/twitter/twitterPlugin.cpp @@ -35,9 +35,9 @@ return QString("ALWAYS"); } -QStringList twitterPlugin::renderPosition() const +RenderPositions twitterPlugin::renderPositions() const { - return QStringList("ALWAYS_ON_TOP"); + return AlwaysOnTopRenderPosition; } QString twitterPlugin::name() const @@ -81,7 +81,7 @@ } bool twitterPlugin::render(GeoPainter *painter, ViewportParams *viewport, - const QString& renderPos, GeoSceneLayer * layer) + RenderPosition renderPos, GeoSceneLayer *layer) { QBrush brush(QColor(99, 198, 198, 80)); painter->setPen(QColor(198, 99, 99, 255)); diff --git a/src/plugins/templates/floatitem/FITemplateFloatItem.h b/src/plugins/templates/floatitem/FITemplateFloatItem.h --- a/src/plugins/templates/floatitem/FITemplateFloatItem.h +++ b/src/plugins/templates/floatitem/FITemplateFloatItem.h @@ -58,7 +58,7 @@ // Provided by AbstractFloatItem and should not be implemented. // // QString renderPolicy() const; - // QStringList renderPosition() const; + // RenderPositions renderPositions() const; QString name() const; @@ -76,8 +76,8 @@ // Provided by AbstractFloatItem and should not be implemented. // - // bool render( GeoPainter *painter, ViewportParams *viewport, - // const QString &renderPos, GeoSceneLayer *layer); + // bool render(GeoPainter *painter, ViewportParams *viewport, + // RenderPosition renderPos, GeoSceneLayer *layer) override; QPainterPath backgroundShape() const; diff --git a/tests/AbstractFloatItemTest.cpp b/tests/AbstractFloatItemTest.cpp --- a/tests/AbstractFloatItemTest.cpp +++ b/tests/AbstractFloatItemTest.cpp @@ -84,7 +84,7 @@ const NullFloatItem item; QCOMPARE( item.renderPolicy(), QString( "ALWAYS") ); - QCOMPARE( item.renderPosition(), QStringList( "FLOAT_ITEM" ) ); + QCOMPARE( item.renderPositions(), RenderPositions(FloatItemRenderPosition) ); QCOMPARE( item.cacheMode(), AbstractFloatItem::ItemCoordinateCache ); QCOMPARE( item.frame(), AbstractFloatItem::RectFrame ); QCOMPARE( item.padding(), 4. );