[Libreoffice-commits] core.git: include/cui include/dbaccess include/drawinglayer

Noel Grandin (via logerrit) logerrit at kemper.freedesktop.org
Tue Oct 29 08:51:21 UTC 2019


 include/cui/cuicharmap.hxx                                          |    4 -
 include/cui/numberingpreview.hxx                                    |    3 -
 include/dbaccess/dbaundomanager.hxx                                 |    2 
 include/drawinglayer/primitive2d/animatedprimitive2d.hxx            |    6 --
 include/drawinglayer/primitive2d/backgroundcolorprimitive2d.hxx     |    3 -
 include/drawinglayer/primitive2d/bitmapprimitive2d.hxx              |    2 
 include/drawinglayer/primitive2d/borderlineprimitive2d.hxx          |    2 
 include/drawinglayer/primitive2d/controlprimitive2d.hxx             |    3 -
 include/drawinglayer/primitive2d/cropprimitive2d.hxx                |    2 
 include/drawinglayer/primitive2d/discretebitmapprimitive2d.hxx      |    3 -
 include/drawinglayer/primitive2d/discreteshadowprimitive2d.hxx      |    3 -
 include/drawinglayer/primitive2d/embedded3dprimitive2d.hxx          |    3 -
 include/drawinglayer/primitive2d/epsprimitive2d.hxx                 |    3 -
 include/drawinglayer/primitive2d/fillgraphicprimitive2d.hxx         |    3 -
 include/drawinglayer/primitive2d/fillhatchprimitive2d.hxx           |    3 -
 include/drawinglayer/primitive2d/graphicprimitive2d.hxx             |    3 -
 include/drawinglayer/primitive2d/gridprimitive2d.hxx                |    3 -
 include/drawinglayer/primitive2d/helplineprimitive2d.hxx            |    3 -
 include/drawinglayer/primitive2d/hiddengeometryprimitive2d.hxx      |    2 
 include/drawinglayer/primitive2d/invertprimitive2d.hxx              |    2 
 include/drawinglayer/primitive2d/markerarrayprimitive2d.hxx         |    3 -
 include/drawinglayer/primitive2d/maskprimitive2d.hxx                |    2 
 include/drawinglayer/primitive2d/mediaprimitive2d.hxx               |    3 -
 include/drawinglayer/primitive2d/metafileprimitive2d.hxx            |    3 -
 include/drawinglayer/primitive2d/modifiedcolorprimitive2d.hxx       |    2 
 include/drawinglayer/primitive2d/objectinfoprimitive2d.hxx          |    2 
 include/drawinglayer/primitive2d/pagehierarchyprimitive2d.hxx       |    2 
 include/drawinglayer/primitive2d/pagepreviewprimitive2d.hxx         |    3 -
 include/drawinglayer/primitive2d/patternfillprimitive2d.hxx         |    3 -
 include/drawinglayer/primitive2d/pointarrayprimitive2d.hxx          |    2 
 include/drawinglayer/primitive2d/polygonprimitive2d.hxx             |   11 +---
 include/drawinglayer/primitive2d/polypolygonprimitive2d.hxx         |   23 +++-------
 include/drawinglayer/primitive2d/sceneprimitive2d.hxx               |    3 -
 include/drawinglayer/primitive2d/shadowprimitive2d.hxx              |    2 
 include/drawinglayer/primitive2d/structuretagprimitive2d.hxx        |    2 
 include/drawinglayer/primitive2d/svggradientprimitive2d.hxx         |   14 +-----
 include/drawinglayer/primitive2d/textdecoratedprimitive2d.hxx       |    3 -
 include/drawinglayer/primitive2d/texteffectprimitive2d.hxx          |    3 -
 include/drawinglayer/primitive2d/texthierarchyprimitive2d.hxx       |   12 ++---
 include/drawinglayer/primitive2d/textlineprimitive2d.hxx            |    3 -
 include/drawinglayer/primitive2d/textstrikeoutprimitive2d.hxx       |    6 --
 include/drawinglayer/primitive2d/transformprimitive2d.hxx           |    2 
 include/drawinglayer/primitive2d/transparenceprimitive2d.hxx        |    2 
 include/drawinglayer/primitive2d/unifiedtransparenceprimitive2d.hxx |    2 
 include/drawinglayer/primitive2d/wallpaperprimitive2d.hxx           |    3 -
 include/drawinglayer/primitive2d/wrongspellprimitive2d.hxx          |    3 -
 include/drawinglayer/primitive3d/hiddengeometryprimitive3d.hxx      |    2 
 include/drawinglayer/primitive3d/modifiedcolorprimitive3d.hxx       |    2 
 include/drawinglayer/primitive3d/polygonprimitive3d.hxx             |    3 -
 include/drawinglayer/primitive3d/polypolygonprimitive3d.hxx         |    2 
 include/drawinglayer/primitive3d/sdrcubeprimitive3d.hxx             |    3 -
 include/drawinglayer/primitive3d/sdrextrudeprimitive3d.hxx          |    3 -
 include/drawinglayer/primitive3d/sdrlatheprimitive3d.hxx            |    3 -
 include/drawinglayer/primitive3d/sdrpolypolygonprimitive3d.hxx      |    3 -
 include/drawinglayer/primitive3d/sdrsphereprimitive3d.hxx           |    3 -
 include/drawinglayer/primitive3d/textureprimitive3d.hxx             |    6 +-
 include/drawinglayer/primitive3d/transformprimitive3d.hxx           |    2 
 include/drawinglayer/processor2d/contourextractor2d.hxx             |    2 
 include/drawinglayer/processor2d/hittestprocessor2d.hxx             |    2 
 include/drawinglayer/processor2d/linegeometryextractor2d.hxx        |    2 
 include/drawinglayer/processor2d/objectinfoextractor2d.hxx          |    2 
 include/drawinglayer/processor2d/textaspolygonextractor2d.hxx       |    2 
 include/drawinglayer/processor3d/cutfindprocessor3d.hxx             |    2 
 include/drawinglayer/processor3d/geometry2dextractor.hxx            |    2 
 include/drawinglayer/processor3d/shadow3dextractor.hxx              |    2 
 include/drawinglayer/processor3d/zbufferprocessor3d.hxx             |    2 
 include/drawinglayer/texture/texture.hxx                            |    8 +--
 67 files changed, 93 insertions(+), 142 deletions(-)

New commits:
commit bfd6beaa8e836c739dcc2af67ebd634f03cb2060
Author:     Noel Grandin <noel.grandin at collabora.co.uk>
AuthorDate: Tue Oct 29 09:23:53 2019 +0200
Commit:     Noel Grandin <noel.grandin at collabora.co.uk>
CommitDate: Tue Oct 29 09:49:45 2019 +0100

    loplugin:finalclasses in drawinglayer
    
    Change-Id: I24e5187f603f66ef87f10a1b197907c5b869cfd1
    Reviewed-on: https://gerrit.libreoffice.org/81644
    Tested-by: Jenkins
    Reviewed-by: Noel Grandin <noel.grandin at collabora.co.uk>

diff --git a/include/cui/cuicharmap.hxx b/include/cui/cuicharmap.hxx
index fbe9b11f369e..7c5ca0d28a23 100644
--- a/include/cui/cuicharmap.hxx
+++ b/include/cui/cuicharmap.hxx
@@ -41,7 +41,7 @@ struct SvxShowCharSetItem;
 }
 
 /// Provides the show characters or texts in a drawing area with special sizes and fonts.
-class CUI_DLLPUBLIC SvxShowText : public weld::CustomWidgetController
+class CUI_DLLPUBLIC SvxShowText final : public weld::CustomWidgetController
 {
 private:
     ScopedVclPtr<VirtualDevice> m_xVirDev;
@@ -68,7 +68,7 @@ public:
 
 /** The main purpose of this dialog is to enable the use of characters
     that are not easily accessible from the keyboard. */
-class CUI_DLLPUBLIC SvxCharacterMap : public SfxDialogController
+class CUI_DLLPUBLIC SvxCharacterMap final : public SfxDialogController
 {
 private:
     void init();
diff --git a/include/cui/numberingpreview.hxx b/include/cui/numberingpreview.hxx
index 979773df6f72..8a7883522bf0 100644
--- a/include/cui/numberingpreview.hxx
+++ b/include/cui/numberingpreview.hxx
@@ -6,14 +6,13 @@
 #include <vcl/customweld.hxx>
 
 /// Provides the preview to show how looks bullet or numbering format before the apply.
-class CUI_DLLPUBLIC SvxNumberingPreview : public weld::CustomWidgetController
+class CUI_DLLPUBLIC SvxNumberingPreview final : public weld::CustomWidgetController
 {
     const SvxNumRule* pActNum;
     vcl::Font aStdFont;
     bool bPosition;
     sal_uInt16 nActLevel;
 
-protected:
     virtual void Paint(vcl::RenderContext& rRenderContext,
                        const ::tools::Rectangle& rRect) override;
 
diff --git a/include/dbaccess/dbaundomanager.hxx b/include/dbaccess/dbaundomanager.hxx
index c7d86c7b84df..b39e36f49783 100644
--- a/include/dbaccess/dbaundomanager.hxx
+++ b/include/dbaccess/dbaundomanager.hxx
@@ -55,7 +55,7 @@ namespace dbaui
 
     struct UndoManager_Impl;
     typedef ::cppu::ImplHelper1< css::document::XUndoManager > UndoManager_Base;
-    class DBACCESS_DLLPUBLIC UndoManager : public UndoManager_Base
+    class DBACCESS_DLLPUBLIC UndoManager final : public UndoManager_Base
     {
     public:
         UndoManager( ::cppu::OWeakObject& i_parent, ::osl::Mutex& i_mutex );
diff --git a/include/drawinglayer/primitive2d/animatedprimitive2d.hxx b/include/drawinglayer/primitive2d/animatedprimitive2d.hxx
index 21e7d9d5ba69..372e09b2b888 100644
--- a/include/drawinglayer/primitive2d/animatedprimitive2d.hxx
+++ b/include/drawinglayer/primitive2d/animatedprimitive2d.hxx
@@ -116,9 +116,8 @@ namespace drawinglayer
             decomposition is specialized in delivering the children in the
             range [0.0.. 0.5] and an empty sequence else
          */
-        class DRAWINGLAYER_DLLPUBLIC AnimatedBlinkPrimitive2D : public AnimatedSwitchPrimitive2D
+        class DRAWINGLAYER_DLLPUBLIC AnimatedBlinkPrimitive2D final : public AnimatedSwitchPrimitive2D
         {
-        protected:
         public:
             /// constructor
             AnimatedBlinkPrimitive2D(
@@ -146,13 +145,12 @@ namespace drawinglayer
             will be linearly combined from the decomposed values and the animation value
             to allow a smooth animation.
          */
-        class DRAWINGLAYER_DLLPUBLIC AnimatedInterpolatePrimitive2D : public AnimatedSwitchPrimitive2D
+        class DRAWINGLAYER_DLLPUBLIC AnimatedInterpolatePrimitive2D final : public AnimatedSwitchPrimitive2D
         {
         private:
             /// the transformations
             std::vector< basegfx::utils::B2DHomMatrixBufferedDecompose >        maMatrixStack;
 
-        protected:
         public:
             /// constructor
             AnimatedInterpolatePrimitive2D(
diff --git a/include/drawinglayer/primitive2d/backgroundcolorprimitive2d.hxx b/include/drawinglayer/primitive2d/backgroundcolorprimitive2d.hxx
index 8ccc43375bfd..6b91ca1b0d6e 100644
--- a/include/drawinglayer/primitive2d/backgroundcolorprimitive2d.hxx
+++ b/include/drawinglayer/primitive2d/backgroundcolorprimitive2d.hxx
@@ -43,7 +43,7 @@ namespace drawinglayer
             It will try to buffer its last decomposition using maLastViewport
             to detect changes in the get2DDecomposition call.
          */
-        class DRAWINGLAYER_DLLPUBLIC BackgroundColorPrimitive2D : public BufferedDecompositionPrimitive2D
+        class DRAWINGLAYER_DLLPUBLIC BackgroundColorPrimitive2D final : public BufferedDecompositionPrimitive2D
         {
         private:
             /// the fill color to use
@@ -53,7 +53,6 @@ namespace drawinglayer
             /// the last used viewInformation, used from getDecomposition for buffering
             basegfx::B2DRange                           maLastViewport;
 
-        protected:
             /// create local decomposition
             virtual void create2DDecomposition(Primitive2DContainer& rContainer, const geometry::ViewInformation2D& rViewInformation) const override;
 
diff --git a/include/drawinglayer/primitive2d/bitmapprimitive2d.hxx b/include/drawinglayer/primitive2d/bitmapprimitive2d.hxx
index 26f507896c98..17e36637e2f1 100644
--- a/include/drawinglayer/primitive2d/bitmapprimitive2d.hxx
+++ b/include/drawinglayer/primitive2d/bitmapprimitive2d.hxx
@@ -40,7 +40,7 @@ namespace drawinglayer
             This may change in the future to any other, maybe more general base
             class providing 24bit RGBA.
          */
-        class DRAWINGLAYER_DLLPUBLIC BitmapPrimitive2D : public BasePrimitive2D
+        class DRAWINGLAYER_DLLPUBLIC BitmapPrimitive2D final : public BasePrimitive2D
         {
         private:
             /// the RGBA Bitmap-data
diff --git a/include/drawinglayer/primitive2d/borderlineprimitive2d.hxx b/include/drawinglayer/primitive2d/borderlineprimitive2d.hxx
index c801f36dc1a0..1e0b1e2215f5 100644
--- a/include/drawinglayer/primitive2d/borderlineprimitive2d.hxx
+++ b/include/drawinglayer/primitive2d/borderlineprimitive2d.hxx
@@ -94,7 +94,7 @@ namespace drawinglayer
         The LineStart/End overlap is defined in the BorderLines definitions (see
         class BorderLine above).
         */
-        class DRAWINGLAYER_DLLPUBLIC BorderLinePrimitive2D : public BufferedDecompositionPrimitive2D
+        class DRAWINGLAYER_DLLPUBLIC BorderLinePrimitive2D final : public BufferedDecompositionPrimitive2D
         {
         private:
             /// the line definition
diff --git a/include/drawinglayer/primitive2d/controlprimitive2d.hxx b/include/drawinglayer/primitive2d/controlprimitive2d.hxx
index 3b102cc07116..8cfbe7ca78dd 100644
--- a/include/drawinglayer/primitive2d/controlprimitive2d.hxx
+++ b/include/drawinglayer/primitive2d/controlprimitive2d.hxx
@@ -40,7 +40,7 @@ namespace drawinglayer
             representation is limited to a quadratic pixel maximum defined
             in the application settings.
          */
-        class DRAWINGLAYER_DLLPUBLIC ControlPrimitive2D : public BufferedDecompositionPrimitive2D
+        class DRAWINGLAYER_DLLPUBLIC ControlPrimitive2D final : public BufferedDecompositionPrimitive2D
         {
         private:
             /// object's base data
@@ -62,7 +62,6 @@ namespace drawinglayer
             Primitive2DReference createBitmapDecomposition(const geometry::ViewInformation2D& rViewInformation) const;
             Primitive2DReference createPlaceholderDecomposition() const;
 
-        protected:
             /// local decomposition
             virtual void create2DDecomposition(Primitive2DContainer& rContainer, const geometry::ViewInformation2D& rViewInformation) const override;
 
diff --git a/include/drawinglayer/primitive2d/cropprimitive2d.hxx b/include/drawinglayer/primitive2d/cropprimitive2d.hxx
index ee5871e8a52c..08f2b50a4789 100644
--- a/include/drawinglayer/primitive2d/cropprimitive2d.hxx
+++ b/include/drawinglayer/primitive2d/cropprimitive2d.hxx
@@ -53,7 +53,7 @@ namespace drawinglayer
             Of course this is a primitive, so feel free to just ignore all that
             stuff and use the automatically generated decomposition. Sigh.
         */
-        class DRAWINGLAYER_DLLPUBLIC CropPrimitive2D : public GroupPrimitive2D
+        class DRAWINGLAYER_DLLPUBLIC CropPrimitive2D final : public GroupPrimitive2D
         {
         private:
             // the transformation already applied to the child geometry
diff --git a/include/drawinglayer/primitive2d/discretebitmapprimitive2d.hxx b/include/drawinglayer/primitive2d/discretebitmapprimitive2d.hxx
index 9cca4a97a7da..431c97245a9f 100644
--- a/include/drawinglayer/primitive2d/discretebitmapprimitive2d.hxx
+++ b/include/drawinglayer/primitive2d/discretebitmapprimitive2d.hxx
@@ -39,7 +39,7 @@ namespace drawinglayer
             painted in 1:1 pixel resolution. It will never be sheared, rotated
             or scaled with the view.
          */
-        class DRAWINGLAYER_DLLPUBLIC DiscreteBitmapPrimitive2D : public ObjectAndViewTransformationDependentPrimitive2D
+        class DRAWINGLAYER_DLLPUBLIC DiscreteBitmapPrimitive2D final : public ObjectAndViewTransformationDependentPrimitive2D
         {
         private:
             /// the RGBA Bitmap-data
@@ -48,7 +48,6 @@ namespace drawinglayer
             /** the top-left object position */
             basegfx::B2DPoint                           maTopLeft;
 
-        protected:
             /// local decomposition.
             virtual void create2DDecomposition(Primitive2DContainer& rContainer, const geometry::ViewInformation2D& rViewInformation) const override;
 
diff --git a/include/drawinglayer/primitive2d/discreteshadowprimitive2d.hxx b/include/drawinglayer/primitive2d/discreteshadowprimitive2d.hxx
index 12a06366a4e8..2ce3f12cb419 100644
--- a/include/drawinglayer/primitive2d/discreteshadowprimitive2d.hxx
+++ b/include/drawinglayer/primitive2d/discreteshadowprimitive2d.hxx
@@ -79,7 +79,7 @@ namespace drawinglayer
         /** DiscreteShadowPrimitive2D class
 
          */
-        class DRAWINGLAYER_DLLPUBLIC DiscreteShadowPrimitive2D : public DiscreteMetricDependentPrimitive2D
+        class DRAWINGLAYER_DLLPUBLIC DiscreteShadowPrimitive2D final : public DiscreteMetricDependentPrimitive2D
         {
         private:
             // the object transformation of the rectangular object
@@ -88,7 +88,6 @@ namespace drawinglayer
             // the bitmap shadow data
             DiscreteShadow              maDiscreteShadow;
 
-        protected:
             /// create local decomposition
             virtual void create2DDecomposition(Primitive2DContainer& rContainer, const geometry::ViewInformation2D& rViewInformation) const override;
 
diff --git a/include/drawinglayer/primitive2d/embedded3dprimitive2d.hxx b/include/drawinglayer/primitive2d/embedded3dprimitive2d.hxx
index 7a545e89af46..e3b6b405e013 100644
--- a/include/drawinglayer/primitive2d/embedded3dprimitive2d.hxx
+++ b/include/drawinglayer/primitive2d/embedded3dprimitive2d.hxx
@@ -44,7 +44,7 @@ namespace drawinglayer
             This primitive will not be visualized and decomposes to a yellow
             2D rectangle to visualize that this should never be visualized
          */
-        class DRAWINGLAYER_DLLPUBLIC Embedded3DPrimitive2D : public BufferedDecompositionPrimitive2D
+        class DRAWINGLAYER_DLLPUBLIC Embedded3DPrimitive2D final : public BufferedDecompositionPrimitive2D
         {
         private:
             /// the sequence of 3d primitives
@@ -80,7 +80,6 @@ namespace drawinglayer
             /// private helpers
             bool impGetShadow3D() const;
 
-        protected:
             /// local decomposition.
             virtual void create2DDecomposition(Primitive2DContainer& rContainer, const geometry::ViewInformation2D& rViewInformation) const override;
 
diff --git a/include/drawinglayer/primitive2d/epsprimitive2d.hxx b/include/drawinglayer/primitive2d/epsprimitive2d.hxx
index 42b10d6cf07e..4e0a34692f72 100644
--- a/include/drawinglayer/primitive2d/epsprimitive2d.hxx
+++ b/include/drawinglayer/primitive2d/epsprimitive2d.hxx
@@ -32,7 +32,7 @@ namespace drawinglayer
     namespace primitive2d
     {
         /** EpsPrimitive2D class */
-        class DRAWINGLAYER_DLLPUBLIC EpsPrimitive2D : public BufferedDecompositionPrimitive2D
+        class DRAWINGLAYER_DLLPUBLIC EpsPrimitive2D final : public BufferedDecompositionPrimitive2D
         {
         private:
             /// the geometry definition
@@ -44,7 +44,6 @@ namespace drawinglayer
             /// the replacement content definition
             GDIMetaFile                                 maMetaFile;
 
-        protected:
             /// create local decomposition
             virtual void create2DDecomposition(Primitive2DContainer& rContainer, const geometry::ViewInformation2D& rViewInformation) const override;
 
diff --git a/include/drawinglayer/primitive2d/fillgraphicprimitive2d.hxx b/include/drawinglayer/primitive2d/fillgraphicprimitive2d.hxx
index 26dc00c77427..3651b5a0a3c2 100644
--- a/include/drawinglayer/primitive2d/fillgraphicprimitive2d.hxx
+++ b/include/drawinglayer/primitive2d/fillgraphicprimitive2d.hxx
@@ -45,7 +45,7 @@ namespace drawinglayer
             decomposition, but on pixel outputs the areas where the tiled pieces are
             aligned tend to show up (one overlapping or empty pixel)
          */
-        class DRAWINGLAYER_DLLPUBLIC FillGraphicPrimitive2D : public BufferedDecompositionPrimitive2D
+        class DRAWINGLAYER_DLLPUBLIC FillGraphicPrimitive2D final : public BufferedDecompositionPrimitive2D
         {
         private:
             /// the geometric definition
@@ -54,7 +54,6 @@ namespace drawinglayer
             /// the fill attributes
             attribute::FillGraphicAttribute             maFillGraphic;
 
-        protected:
             /// local decomposition.
             virtual void create2DDecomposition(Primitive2DContainer& rContainer, const geometry::ViewInformation2D& rViewInformation) const override;
 
diff --git a/include/drawinglayer/primitive2d/fillhatchprimitive2d.hxx b/include/drawinglayer/primitive2d/fillhatchprimitive2d.hxx
index 4291cbb496d0..c721b2116f1f 100644
--- a/include/drawinglayer/primitive2d/fillhatchprimitive2d.hxx
+++ b/include/drawinglayer/primitive2d/fillhatchprimitive2d.hxx
@@ -48,7 +48,7 @@ namespace drawinglayer
 
             The decomposition will deliver the hatch lines.
          */
-        class DRAWINGLAYER_DLLPUBLIC FillHatchPrimitive2D : public DiscreteMetricDependentPrimitive2D
+        class DRAWINGLAYER_DLLPUBLIC FillHatchPrimitive2D final : public DiscreteMetricDependentPrimitive2D
         {
         private:
             /// the geometrically visible area
@@ -64,7 +64,6 @@ namespace drawinglayer
             /// hatch background color (if used)
             basegfx::BColor                         maBColor;
 
-        protected:
             /// local decomposition.
             virtual void create2DDecomposition(Primitive2DContainer& rContainer, const geometry::ViewInformation2D& rViewInformation) const override;
 
diff --git a/include/drawinglayer/primitive2d/graphicprimitive2d.hxx b/include/drawinglayer/primitive2d/graphicprimitive2d.hxx
index b3127145be19..2799c4d95a3a 100644
--- a/include/drawinglayer/primitive2d/graphicprimitive2d.hxx
+++ b/include/drawinglayer/primitive2d/graphicprimitive2d.hxx
@@ -46,7 +46,7 @@ namespace drawinglayer
 
             The primitive geometry area is defined by Transform.
          */
-        class DRAWINGLAYER_DLLPUBLIC GraphicPrimitive2D : public BufferedDecompositionPrimitive2D
+        class DRAWINGLAYER_DLLPUBLIC GraphicPrimitive2D final : public BufferedDecompositionPrimitive2D
         {
         private:
             /// the geometric definition
@@ -58,7 +58,6 @@ namespace drawinglayer
             /// The GraphicAttr with all its modification possibilities
             GraphicAttr                                 maGraphicAttr;
 
-        protected:
             /// local decomposition
             virtual void create2DDecomposition(Primitive2DContainer& rContainer, const geometry::ViewInformation2D& rViewInformation) const override;
 
diff --git a/include/drawinglayer/primitive2d/gridprimitive2d.hxx b/include/drawinglayer/primitive2d/gridprimitive2d.hxx
index 4e55030dfb2f..d076509567b8 100644
--- a/include/drawinglayer/primitive2d/gridprimitive2d.hxx
+++ b/include/drawinglayer/primitive2d/gridprimitive2d.hxx
@@ -43,7 +43,7 @@ namespace drawinglayer
             makes this primitive highly view-dependent and it dynamically buffers
             the last decomposition dependent from the Viewport used.
          */
-        class DRAWINGLAYER_DLLPUBLIC GridPrimitive2D : public BufferedDecompositionPrimitive2D
+        class DRAWINGLAYER_DLLPUBLIC GridPrimitive2D final : public BufferedDecompositionPrimitive2D
         {
         private:
             /// The geometry definition for the grid area
@@ -69,7 +69,6 @@ namespace drawinglayer
             basegfx::B2DHomMatrix                           maLastObjectToViewTransformation;
             basegfx::B2DRange                               maLastViewport;
 
-        protected:
             /// create local decomposition
             virtual void create2DDecomposition(Primitive2DContainer& rContainer, const geometry::ViewInformation2D& rViewInformation) const override;
 
diff --git a/include/drawinglayer/primitive2d/helplineprimitive2d.hxx b/include/drawinglayer/primitive2d/helplineprimitive2d.hxx
index fd48f0aae5fe..3236e0161a21 100644
--- a/include/drawinglayer/primitive2d/helplineprimitive2d.hxx
+++ b/include/drawinglayer/primitive2d/helplineprimitive2d.hxx
@@ -54,7 +54,7 @@ namespace drawinglayer
             The visualisation uses the two given colors to create a dashed line with
             the given dash length.
          */
-        class DRAWINGLAYER_DLLPUBLIC HelplinePrimitive2D : public BufferedDecompositionPrimitive2D
+        class DRAWINGLAYER_DLLPUBLIC HelplinePrimitive2D final : public BufferedDecompositionPrimitive2D
         {
         private:
             /// Helpline geometry definition
@@ -73,7 +73,6 @@ namespace drawinglayer
             basegfx::B2DHomMatrix                           maLastObjectToViewTransformation;
             basegfx::B2DRange                               maLastViewport;
 
-        protected:
             /// create local decomposition
             virtual void create2DDecomposition(Primitive2DContainer& rContainer, const geometry::ViewInformation2D& rViewInformation) const override;
 
diff --git a/include/drawinglayer/primitive2d/hiddengeometryprimitive2d.hxx b/include/drawinglayer/primitive2d/hiddengeometryprimitive2d.hxx
index f94289bea5c0..d12d281c305a 100644
--- a/include/drawinglayer/primitive2d/hiddengeometryprimitive2d.hxx
+++ b/include/drawinglayer/primitive2d/hiddengeometryprimitive2d.hxx
@@ -37,7 +37,7 @@ namespace drawinglayer
         // filled nor lines' creation criteria. The whole primitive decomposes to nothing,
         // so no one not knowing it will be influenced. Only helper processors for hit test
         // (and maybe BoundRect extractors) will use it and its children subcontent.
-        class DRAWINGLAYER_DLLPUBLIC HiddenGeometryPrimitive2D : public GroupPrimitive2D
+        class DRAWINGLAYER_DLLPUBLIC HiddenGeometryPrimitive2D final : public GroupPrimitive2D
         {
         public:
             explicit HiddenGeometryPrimitive2D(const Primitive2DContainer& rChildren);
diff --git a/include/drawinglayer/primitive2d/invertprimitive2d.hxx b/include/drawinglayer/primitive2d/invertprimitive2d.hxx
index 537e73867d52..da37ead7d06f 100644
--- a/include/drawinglayer/primitive2d/invertprimitive2d.hxx
+++ b/include/drawinglayer/primitive2d/invertprimitive2d.hxx
@@ -39,7 +39,7 @@ namespace drawinglayer
             systems. XOR painting needs read access to the target, so modern
             graphic systems tend to not support it anymore.
          */
-        class DRAWINGLAYER_DLLPUBLIC InvertPrimitive2D : public GroupPrimitive2D
+        class DRAWINGLAYER_DLLPUBLIC InvertPrimitive2D final : public GroupPrimitive2D
         {
         public:
             /// constructor
diff --git a/include/drawinglayer/primitive2d/markerarrayprimitive2d.hxx b/include/drawinglayer/primitive2d/markerarrayprimitive2d.hxx
index e98dbcf4c3ad..925e65eb3c61 100644
--- a/include/drawinglayer/primitive2d/markerarrayprimitive2d.hxx
+++ b/include/drawinglayer/primitive2d/markerarrayprimitive2d.hxx
@@ -45,7 +45,7 @@ namespace drawinglayer
             It decomposes to the needed number of BitmapPrimitive2D's, so it would
             be efficient to handle it directly in a renderer.
          */
-        class DRAWINGLAYER_DLLPUBLIC MarkerArrayPrimitive2D : public BufferedDecompositionPrimitive2D
+        class DRAWINGLAYER_DLLPUBLIC MarkerArrayPrimitive2D final : public BufferedDecompositionPrimitive2D
         {
         private:
             /// the positions for the marker
@@ -54,7 +54,6 @@ namespace drawinglayer
             /// the marker definition to visualize
             BitmapEx                                        maMarker;
 
-        protected:
             /// create local decomposition
             virtual void create2DDecomposition(Primitive2DContainer& rContainer, const geometry::ViewInformation2D& rViewInformation) const override;
 
diff --git a/include/drawinglayer/primitive2d/maskprimitive2d.hxx b/include/drawinglayer/primitive2d/maskprimitive2d.hxx
index 2a0b16b5cf90..1b2ef677cd75 100644
--- a/include/drawinglayer/primitive2d/maskprimitive2d.hxx
+++ b/include/drawinglayer/primitive2d/maskprimitive2d.hxx
@@ -44,7 +44,7 @@ namespace drawinglayer
             The geometry range of this primitive is completely defined by the Mask
             tools::PolyPolygon since by definition nothing outside of the mask is visible.
          */
-        class DRAWINGLAYER_DLLPUBLIC MaskPrimitive2D : public GroupPrimitive2D
+        class DRAWINGLAYER_DLLPUBLIC MaskPrimitive2D final : public GroupPrimitive2D
         {
         private:
             /// the mask PolyPolygon
diff --git a/include/drawinglayer/primitive2d/mediaprimitive2d.hxx b/include/drawinglayer/primitive2d/mediaprimitive2d.hxx
index 36d8f599580f..936944f2be63 100644
--- a/include/drawinglayer/primitive2d/mediaprimitive2d.hxx
+++ b/include/drawinglayer/primitive2d/mediaprimitive2d.hxx
@@ -41,7 +41,7 @@ namespace drawinglayer
             background and the decomposition will try to create a graphic representation
             if the content (defined by the URL), e.g. a still frame for animated stuff.
          */
-        class DRAWINGLAYER_DLLPUBLIC MediaPrimitive2D : public BufferedDecompositionPrimitive2D
+        class DRAWINGLAYER_DLLPUBLIC MediaPrimitive2D final : public BufferedDecompositionPrimitive2D
         {
         private:
             /// the geometry definition
@@ -58,7 +58,6 @@ namespace drawinglayer
 
             const Graphic                               maSnapshot;
 
-        protected:
             /// local decomposition
             virtual void create2DDecomposition(Primitive2DContainer& rContainer, const geometry::ViewInformation2D& rViewInformation) const override;
 
diff --git a/include/drawinglayer/primitive2d/metafileprimitive2d.hxx b/include/drawinglayer/primitive2d/metafileprimitive2d.hxx
index 62d113d034a9..6978d9d4f588 100644
--- a/include/drawinglayer/primitive2d/metafileprimitive2d.hxx
+++ b/include/drawinglayer/primitive2d/metafileprimitive2d.hxx
@@ -54,7 +54,7 @@ namespace drawinglayer
             have many advantages; Metafile would no longer have to be rendered by
             sub-systems and a standard way for converting Metafiles would exist.
          */
-        class DRAWINGLAYER_DLLPUBLIC MetafilePrimitive2D : public BufferedDecompositionPrimitive2D, public MetafileAccessor
+        class DRAWINGLAYER_DLLPUBLIC MetafilePrimitive2D final : public BufferedDecompositionPrimitive2D, public MetafileAccessor
         {
         private:
             /// the geometry definition
@@ -63,7 +63,6 @@ namespace drawinglayer
             /// the content definition
             GDIMetaFile                                 maMetaFile;
 
-        protected:
             /// local decomposition.
             virtual void create2DDecomposition(Primitive2DContainer& rContainer, const geometry::ViewInformation2D& rViewInformation) const override;
         public:
diff --git a/include/drawinglayer/primitive2d/modifiedcolorprimitive2d.hxx b/include/drawinglayer/primitive2d/modifiedcolorprimitive2d.hxx
index e4ee26e4de8d..4eb2b236e1e6 100644
--- a/include/drawinglayer/primitive2d/modifiedcolorprimitive2d.hxx
+++ b/include/drawinglayer/primitive2d/modifiedcolorprimitive2d.hxx
@@ -48,7 +48,7 @@ namespace drawinglayer
             If a renderer does not handle this primitive, the content will
             be visualized unchanged.
          */
-        class DRAWINGLAYER_DLLPUBLIC ModifiedColorPrimitive2D : public GroupPrimitive2D
+        class DRAWINGLAYER_DLLPUBLIC ModifiedColorPrimitive2D final : public GroupPrimitive2D
         {
         private:
             /// The ColorModifier to use
diff --git a/include/drawinglayer/primitive2d/objectinfoprimitive2d.hxx b/include/drawinglayer/primitive2d/objectinfoprimitive2d.hxx
index 3c0f1b684df2..95ccd3495e00 100644
--- a/include/drawinglayer/primitive2d/objectinfoprimitive2d.hxx
+++ b/include/drawinglayer/primitive2d/objectinfoprimitive2d.hxx
@@ -35,7 +35,7 @@ namespace drawinglayer
             to its content, so all direct renderers may ignore it. May e.g.
             be used when re-creating graphical content from a sequence of primitives
          */
-        class DRAWINGLAYER_DLLPUBLIC ObjectInfoPrimitive2D : public GroupPrimitive2D
+        class DRAWINGLAYER_DLLPUBLIC ObjectInfoPrimitive2D final : public GroupPrimitive2D
         {
         private:
             OUString                           maName;
diff --git a/include/drawinglayer/primitive2d/pagehierarchyprimitive2d.hxx b/include/drawinglayer/primitive2d/pagehierarchyprimitive2d.hxx
index cc77043f8af1..cf4bbc1e6a5d 100644
--- a/include/drawinglayer/primitive2d/pagehierarchyprimitive2d.hxx
+++ b/include/drawinglayer/primitive2d/pagehierarchyprimitive2d.hxx
@@ -33,7 +33,7 @@ namespace drawinglayer
 
             This primitive encapsulates text lines.
          */
-        class DRAWINGLAYER_DLLPUBLIC PageHierarchyPrimitive2D : public GroupPrimitive2D
+        class DRAWINGLAYER_DLLPUBLIC PageHierarchyPrimitive2D final : public GroupPrimitive2D
         {
         private:
         public:
diff --git a/include/drawinglayer/primitive2d/pagepreviewprimitive2d.hxx b/include/drawinglayer/primitive2d/pagepreviewprimitive2d.hxx
index 6abe873e6f22..c4dbaee7d67b 100644
--- a/include/drawinglayer/primitive2d/pagepreviewprimitive2d.hxx
+++ b/include/drawinglayer/primitive2d/pagepreviewprimitive2d.hxx
@@ -40,7 +40,7 @@ namespace drawinglayer
             those primitives to be visualized correctly, Your renderer needs to locally correct its
             ViewInformation2D to reference the new XDrawPage.
          */
-        class DRAWINGLAYER_DLLPUBLIC PagePreviewPrimitive2D : public BufferedDecompositionPrimitive2D
+        class DRAWINGLAYER_DLLPUBLIC PagePreviewPrimitive2D final : public BufferedDecompositionPrimitive2D
         {
         private:
             /** the XDrawPage visualized by this primitive. When we go forward with primitives
@@ -59,7 +59,6 @@ namespace drawinglayer
             double                                      mfContentWidth;
             double                                      mfContentHeight;
 
-        protected:
             /// local decomposition. Implementation will just return children
             virtual void create2DDecomposition(Primitive2DContainer& rContainer, const geometry::ViewInformation2D& rViewInformation) const override;
 
diff --git a/include/drawinglayer/primitive2d/patternfillprimitive2d.hxx b/include/drawinglayer/primitive2d/patternfillprimitive2d.hxx
index 150eeba92fdf..69f18cf4401c 100644
--- a/include/drawinglayer/primitive2d/patternfillprimitive2d.hxx
+++ b/include/drawinglayer/primitive2d/patternfillprimitive2d.hxx
@@ -37,7 +37,7 @@ namespace drawinglayer
             area relative to the tools::PolyPolygon (in unit coordinates) which is virtually
             infinitely repeated.
          */
-        class DRAWINGLAYER_DLLPUBLIC PatternFillPrimitive2D : public BufferedDecompositionPrimitive2D
+        class DRAWINGLAYER_DLLPUBLIC PatternFillPrimitive2D final : public BufferedDecompositionPrimitive2D
         {
         private:
             const basegfx::B2DPolyPolygon       maMask;
@@ -59,7 +59,6 @@ namespace drawinglayer
             /// creates buffered content to speed up rendering
             Primitive2DContainer createContent(const geometry::ViewInformation2D& rViewInformation) const;
 
-        protected:
             /// create local decomposition
             virtual void create2DDecomposition(Primitive2DContainer& rContainer, const geometry::ViewInformation2D& rViewInformation) const override;
 
diff --git a/include/drawinglayer/primitive2d/pointarrayprimitive2d.hxx b/include/drawinglayer/primitive2d/pointarrayprimitive2d.hxx
index 841b1ae7de96..1438f3437fd9 100644
--- a/include/drawinglayer/primitive2d/pointarrayprimitive2d.hxx
+++ b/include/drawinglayer/primitive2d/pointarrayprimitive2d.hxx
@@ -42,7 +42,7 @@ namespace drawinglayer
             should process it (Currently it is only used for grid visualisation,
             but this may change).
          */
-        class DRAWINGLAYER_DLLPUBLIC PointArrayPrimitive2D : public BasePrimitive2D
+        class DRAWINGLAYER_DLLPUBLIC PointArrayPrimitive2D final : public BasePrimitive2D
         {
         private:
             /// the array of positions
diff --git a/include/drawinglayer/primitive2d/polygonprimitive2d.hxx b/include/drawinglayer/primitive2d/polygonprimitive2d.hxx
index e92276c6d5f9..d37a8eb6c25e 100644
--- a/include/drawinglayer/primitive2d/polygonprimitive2d.hxx
+++ b/include/drawinglayer/primitive2d/polygonprimitive2d.hxx
@@ -45,7 +45,7 @@ namespace drawinglayer
             This is one of the non-decomposable primitives, so a renderer
             should process it.
          */
-        class DRAWINGLAYER_DLLPUBLIC PolygonHairlinePrimitive2D : public BasePrimitive2D
+        class DRAWINGLAYER_DLLPUBLIC PolygonHairlinePrimitive2D final : public BasePrimitive2D
         {
         private:
             /// the hairline geometry
@@ -92,7 +92,7 @@ namespace drawinglayer
             It will be decomposed to the needed PolygonHairlinePrimitive2D if
             not handled directly by a renderer.
          */
-        class DRAWINGLAYER_DLLPUBLIC PolygonMarkerPrimitive2D : public BufferedDecompositionPrimitive2D
+        class DRAWINGLAYER_DLLPUBLIC PolygonMarkerPrimitive2D final : public BufferedDecompositionPrimitive2D
         {
         private:
             /// the marker hairline geometry
@@ -108,7 +108,6 @@ namespace drawinglayer
             /// decomposition is view-dependent, remember last InverseObjectToViewTransformation
             basegfx::B2DHomMatrix                   maLastInverseObjectToViewTransformation;
 
-        protected:
             /// local decomposition.
             virtual void create2DDecomposition(Primitive2DContainer& rContainer, const geometry::ViewInformation2D& rViewInformation) const override;
 
@@ -211,14 +210,13 @@ namespace drawinglayer
             This primitive defines a waveline based on a PolygonStrokePrimitive2D
             where the wave is defined by wave width and wave length.
          */
-        class DRAWINGLAYER_DLLPUBLIC PolygonWavePrimitive2D : public PolygonStrokePrimitive2D
+        class DRAWINGLAYER_DLLPUBLIC PolygonWavePrimitive2D final : public PolygonStrokePrimitive2D
         {
         private:
             /// wave definition
             double                                  mfWaveWidth;
             double                                  mfWaveHeight;
 
-        protected:
             /// local decomposition.
             virtual void create2DDecomposition(Primitive2DContainer& rContainer, const geometry::ViewInformation2D& rViewInformation) const override;
 
@@ -267,14 +265,13 @@ namespace drawinglayer
             possibly extended by start and end definitions, which are
             normally used for arrows.
          */
-        class DRAWINGLAYER_DLLPUBLIC PolygonStrokeArrowPrimitive2D : public PolygonStrokePrimitive2D
+        class DRAWINGLAYER_DLLPUBLIC PolygonStrokeArrowPrimitive2D final : public PolygonStrokePrimitive2D
         {
         private:
             /// geometric definitions for line start and end
             attribute::LineStartEndAttribute                maStart;
             attribute::LineStartEndAttribute                maEnd;
 
-        protected:
             /// local decomposition.
             virtual void create2DDecomposition(Primitive2DContainer& rContainer, const geometry::ViewInformation2D& rViewInformation) const override;
 
diff --git a/include/drawinglayer/primitive2d/polypolygonprimitive2d.hxx b/include/drawinglayer/primitive2d/polypolygonprimitive2d.hxx
index 8cc503903ad9..6d6397ee8760 100644
--- a/include/drawinglayer/primitive2d/polypolygonprimitive2d.hxx
+++ b/include/drawinglayer/primitive2d/polypolygonprimitive2d.hxx
@@ -45,7 +45,7 @@ namespace drawinglayer
             just for convenience. The definition is not different from the single
                 defined PolygonHairlinePrimitive2Ds.
          */
-        class DRAWINGLAYER_DLLPUBLIC PolyPolygonHairlinePrimitive2D : public BufferedDecompositionPrimitive2D
+        class DRAWINGLAYER_DLLPUBLIC PolyPolygonHairlinePrimitive2D final : public BufferedDecompositionPrimitive2D
         {
         private:
             /// the hairline geometry
@@ -54,7 +54,6 @@ namespace drawinglayer
             /// the hairline color
             basegfx::BColor                         maBColor;
 
-        protected:
             /// local decomposition.
             virtual void create2DDecomposition(Primitive2DContainer& rContainer, const geometry::ViewInformation2D& rViewInformation) const override;
 
@@ -91,7 +90,7 @@ namespace drawinglayer
             just for convenience. The definition is not different from the single
             defined PolygonMarkerPrimitive2Ds.
          */
-        class DRAWINGLAYER_DLLPUBLIC PolyPolygonMarkerPrimitive2D : public BufferedDecompositionPrimitive2D
+        class DRAWINGLAYER_DLLPUBLIC PolyPolygonMarkerPrimitive2D final : public BufferedDecompositionPrimitive2D
         {
         private:
             /// the marker hairline geometry
@@ -104,7 +103,6 @@ namespace drawinglayer
             /// the dash distance in 'pixels'
             double                                  mfDiscreteDashLength;
 
-        protected:
             /// local decomposition.
             virtual void create2DDecomposition(Primitive2DContainer& rContainer, const geometry::ViewInformation2D& rViewInformation) const override;
 
@@ -147,7 +145,7 @@ namespace drawinglayer
             just for convenience. The definition is not different from the single
             defined PolygonStrokePrimitive2Ds.
          */
-        class DRAWINGLAYER_DLLPUBLIC PolyPolygonStrokePrimitive2D : public BufferedDecompositionPrimitive2D
+        class DRAWINGLAYER_DLLPUBLIC PolyPolygonStrokePrimitive2D final : public BufferedDecompositionPrimitive2D
         {
         private:
             /// the line geometry
@@ -159,7 +157,6 @@ namespace drawinglayer
             /// the line stroking (if used)
             attribute::StrokeAttribute              maStrokeAttribute;
 
-        protected:
             /// local decomposition.
             virtual void create2DDecomposition(Primitive2DContainer& rContainer, const geometry::ViewInformation2D& rViewInformation) const override;
 
@@ -204,7 +201,7 @@ namespace drawinglayer
             This is one of the non-decomposable primitives, so a renderer
             should process it.
          */
-        class DRAWINGLAYER_DLLPUBLIC PolyPolygonColorPrimitive2D : public BasePrimitive2D
+        class DRAWINGLAYER_DLLPUBLIC PolyPolygonColorPrimitive2D final : public BasePrimitive2D
         {
         private:
             /// the tools::PolyPolygon geometry
@@ -248,7 +245,7 @@ namespace drawinglayer
             decomosition will create a MaskPrimitive2D containing a
             FillGradientPrimitive2D.
          */
-        class DRAWINGLAYER_DLLPUBLIC PolyPolygonGradientPrimitive2D : public BufferedDecompositionPrimitive2D
+        class DRAWINGLAYER_DLLPUBLIC PolyPolygonGradientPrimitive2D final : public BufferedDecompositionPrimitive2D
         {
         private:
             /// the tools::PolyPolygon geometry
@@ -260,7 +257,6 @@ namespace drawinglayer
             /// the gradient definition
             attribute::FillGradientAttribute            maFillGradient;
 
-        protected:
             /// local decomposition.
             virtual void create2DDecomposition(Primitive2DContainer& rContainer, const geometry::ViewInformation2D& rViewInformation) const override;
 
@@ -301,7 +297,7 @@ namespace drawinglayer
             decomosition will create a MaskPrimitive2D containing a
             FillHatchPrimitive2D.
          */
-        class DRAWINGLAYER_DLLPUBLIC PolyPolygonHatchPrimitive2D : public BufferedDecompositionPrimitive2D
+        class DRAWINGLAYER_DLLPUBLIC PolyPolygonHatchPrimitive2D final : public BufferedDecompositionPrimitive2D
         {
         private:
             /// the tools::PolyPolygon geometry
@@ -316,7 +312,6 @@ namespace drawinglayer
             /// the hatch definition
             attribute::FillHatchAttribute               maFillHatch;
 
-        protected:
             /// local decomposition.
             virtual void create2DDecomposition(Primitive2DContainer& rContainer, const geometry::ViewInformation2D& rViewInformation) const override;
 
@@ -360,7 +355,7 @@ namespace drawinglayer
             (including transparence). The decomosition will create a MaskPrimitive2D
             containing a FillGraphicPrimitive2D.
          */
-        class DRAWINGLAYER_DLLPUBLIC PolyPolygonGraphicPrimitive2D : public BufferedDecompositionPrimitive2D
+        class DRAWINGLAYER_DLLPUBLIC PolyPolygonGraphicPrimitive2D final : public BufferedDecompositionPrimitive2D
         {
         private:
             /// the tools::PolyPolygon geometry
@@ -372,7 +367,6 @@ namespace drawinglayer
             /// the bitmap fill definition (may include tiling)
             attribute::FillGraphicAttribute             maFillGraphic;
 
-        protected:
             /// local decomposition.
             virtual void create2DDecomposition(Primitive2DContainer& rContainer, const geometry::ViewInformation2D& rViewInformation) const override;
 
@@ -409,7 +403,7 @@ namespace drawinglayer
             and a defined transparence, but also gets extended ('grown') by the given
             discrete size (thus being a view-dependent primitive)
          */
-        class DRAWINGLAYER_DLLPUBLIC PolyPolygonSelectionPrimitive2D : public DiscreteMetricDependentPrimitive2D
+        class DRAWINGLAYER_DLLPUBLIC PolyPolygonSelectionPrimitive2D final : public DiscreteMetricDependentPrimitive2D
         {
         private:
             /// the tools::PolyPolygon geometry
@@ -427,7 +421,6 @@ namespace drawinglayer
             /// draw polygons filled when fill is set
             bool                                    mbFill : 1;
 
-        protected:
             /// local decomposition.
             virtual void create2DDecomposition(Primitive2DContainer& rContainer, const geometry::ViewInformation2D& rViewInformation) const override;
 
diff --git a/include/drawinglayer/primitive2d/sceneprimitive2d.hxx b/include/drawinglayer/primitive2d/sceneprimitive2d.hxx
index fbd0b4f07523..5dbfddb41e62 100644
--- a/include/drawinglayer/primitive2d/sceneprimitive2d.hxx
+++ b/include/drawinglayer/primitive2d/sceneprimitive2d.hxx
@@ -51,7 +51,7 @@ namespace drawinglayer
             This is the class a renderer may process directly when he wants to implement
             an own (e.g. system-specific) 3D renderer.
          */
-        class DRAWINGLAYER_DLLPUBLIC ScenePrimitive2D : public BufferedDecompositionPrimitive2D
+        class DRAWINGLAYER_DLLPUBLIC ScenePrimitive2D final : public BufferedDecompositionPrimitive2D
         {
         private:
             /// the 3D geometry definition
@@ -95,7 +95,6 @@ namespace drawinglayer
                 basegfx::B2DRange& rVisibleDiscreteRange,
                 basegfx::B2DRange& rUnitVisibleRange) const;
 
-        protected:
             /// local decomposition.
             virtual void create2DDecomposition(Primitive2DContainer& rContainer, const geometry::ViewInformation2D& rViewInformation) const override;
 
diff --git a/include/drawinglayer/primitive2d/shadowprimitive2d.hxx b/include/drawinglayer/primitive2d/shadowprimitive2d.hxx
index b216aca24b8c..ddc832f92582 100644
--- a/include/drawinglayer/primitive2d/shadowprimitive2d.hxx
+++ b/include/drawinglayer/primitive2d/shadowprimitive2d.hxx
@@ -45,7 +45,7 @@ namespace drawinglayer
             are needed for the shadow itself; all the local decompositions of the
             original geometry can be reused from the renderer for shadow visualisation.
         */
-        class DRAWINGLAYER_DLLPUBLIC ShadowPrimitive2D : public GroupPrimitive2D
+        class DRAWINGLAYER_DLLPUBLIC ShadowPrimitive2D final : public GroupPrimitive2D
         {
         private:
             /// the shadow transformation, normally just an offset
diff --git a/include/drawinglayer/primitive2d/structuretagprimitive2d.hxx b/include/drawinglayer/primitive2d/structuretagprimitive2d.hxx
index 255dc5e64f56..868fbb226e48 100644
--- a/include/drawinglayer/primitive2d/structuretagprimitive2d.hxx
+++ b/include/drawinglayer/primitive2d/structuretagprimitive2d.hxx
@@ -42,7 +42,7 @@ namespace drawinglayer
             If a renderer ignores this, it just decomposes to its child
             content.
          */
-        class DRAWINGLAYER_DLLPUBLIC StructureTagPrimitive2D : public GroupPrimitive2D
+        class DRAWINGLAYER_DLLPUBLIC StructureTagPrimitive2D final : public GroupPrimitive2D
         {
         private:
             /// the PDF structure element this grouping represents
diff --git a/include/drawinglayer/primitive2d/svggradientprimitive2d.hxx b/include/drawinglayer/primitive2d/svggradientprimitive2d.hxx
index 47322f35e0ec..274034bc1089 100644
--- a/include/drawinglayer/primitive2d/svggradientprimitive2d.hxx
+++ b/include/drawinglayer/primitive2d/svggradientprimitive2d.hxx
@@ -180,13 +180,12 @@ namespace drawinglayer
     namespace primitive2d
     {
         /// the basic linear gradient primitive
-        class DRAWINGLAYER_DLLPUBLIC SvgLinearGradientPrimitive2D : public BufferedDecompositionPrimitive2D, public SvgGradientHelper
+        class DRAWINGLAYER_DLLPUBLIC SvgLinearGradientPrimitive2D final : public BufferedDecompositionPrimitive2D, public SvgGradientHelper
         {
         private:
             /// the end point for linear gradient
             basegfx::B2DPoint                       maEnd;
 
-        protected:
             /// local helpers
             virtual void createAtom(
                 Primitive2DContainer& rTargetColor,
@@ -234,7 +233,7 @@ namespace drawinglayer
     namespace primitive2d
     {
         /// the basic radial gradient primitive
-        class DRAWINGLAYER_DLLPUBLIC SvgRadialGradientPrimitive2D : public BufferedDecompositionPrimitive2D, public SvgGradientHelper
+        class DRAWINGLAYER_DLLPUBLIC SvgRadialGradientPrimitive2D final : public BufferedDecompositionPrimitive2D, public SvgGradientHelper
         {
         private:
             /// the geometric definition
@@ -254,7 +253,6 @@ namespace drawinglayer
             const SvgGradientEntryVector& getMirroredGradientEntries() const;
             void createMirroredGradientEntries();
 
-        protected:
             /// local helpers
             virtual void createAtom(
                 Primitive2DContainer& rTargetColor,
@@ -308,7 +306,7 @@ namespace drawinglayer
             It's derived from DiscreteMetricDependentPrimitive2D to allow view-dependent
             decompositions allowing reduced color steps
          **/
-        class DRAWINGLAYER_DLLPUBLIC SvgLinearAtomPrimitive2D : public DiscreteMetricDependentPrimitive2D
+        class DRAWINGLAYER_DLLPUBLIC SvgLinearAtomPrimitive2D final : public DiscreteMetricDependentPrimitive2D
         {
         private:
             /// the geometric definition in unit coordinates
@@ -317,8 +315,6 @@ namespace drawinglayer
             double                      mfOffsetA;
             double                      mfOffsetB;
 
-        protected:
-
             /// local decomposition.
             virtual void create2DDecomposition(Primitive2DContainer& rContainer, const geometry::ViewInformation2D& rViewInformation) const override;
 
@@ -354,7 +350,7 @@ namespace drawinglayer
             It's derived from DiscreteMetricDependentPrimitive2D to allow view-dependent
             decompositions allowing reduced color steps
          **/
-        class DRAWINGLAYER_DLLPUBLIC SvgRadialAtomPrimitive2D : public DiscreteMetricDependentPrimitive2D
+        class DRAWINGLAYER_DLLPUBLIC SvgRadialAtomPrimitive2D final : public DiscreteMetricDependentPrimitive2D
         {
         private:
             /// the geometric definition in unit coordinates
@@ -379,8 +375,6 @@ namespace drawinglayer
             /// Only used when focal is set
             std::unique_ptr<VectorPair> mpTranslate;
 
-        protected:
-
             /// local decomposition.
             virtual void create2DDecomposition(Primitive2DContainer& rContainer, const geometry::ViewInformation2D& rViewInformation) const override;
 
diff --git a/include/drawinglayer/primitive2d/textdecoratedprimitive2d.hxx b/include/drawinglayer/primitive2d/textdecoratedprimitive2d.hxx
index 8980322b5c93..434011f198c0 100644
--- a/include/drawinglayer/primitive2d/textdecoratedprimitive2d.hxx
+++ b/include/drawinglayer/primitive2d/textdecoratedprimitive2d.hxx
@@ -40,7 +40,7 @@ namespace drawinglayer
             a TextSimplePortionPrimitive2D and all the contained decorations (if used)
             as geometry.
          */
-        class DRAWINGLAYER_DLLPUBLIC TextDecoratedPortionPrimitive2D : public TextSimplePortionPrimitive2D
+        class DRAWINGLAYER_DLLPUBLIC TextDecoratedPortionPrimitive2D final : public TextSimplePortionPrimitive2D
         {
         private:
             /// decoration definitions
@@ -68,7 +68,6 @@ namespace drawinglayer
                 const ::std::vector< double >& rDXArray,
                 const attribute::FontAttribute& rFontAttribute) const;
 
-        protected:
             /// local decomposition.
             virtual void create2DDecomposition(Primitive2DContainer& rContainer, const geometry::ViewInformation2D& rViewInformation) const override;
 
diff --git a/include/drawinglayer/primitive2d/texteffectprimitive2d.hxx b/include/drawinglayer/primitive2d/texteffectprimitive2d.hxx
index a8da738bf087..1f57ec4a54e3 100644
--- a/include/drawinglayer/primitive2d/texteffectprimitive2d.hxx
+++ b/include/drawinglayer/primitive2d/texteffectprimitive2d.hxx
@@ -46,7 +46,7 @@ namespace drawinglayer
             also be used for any other primitives) which have some TextEffect applied
             and create the needed geometry and embedding on decomposition.
         */
-        class DRAWINGLAYER_DLLPUBLIC TextEffectPrimitive2D : public BufferedDecompositionPrimitive2D
+        class DRAWINGLAYER_DLLPUBLIC TextEffectPrimitive2D final : public BufferedDecompositionPrimitive2D
         {
         private:
             /// the text (or other) content
@@ -62,7 +62,6 @@ namespace drawinglayer
              */
             basegfx::B2DHomMatrix                           maLastObjectToViewTransformation;
 
-        protected:
             /// create local decomposition
             virtual void create2DDecomposition(Primitive2DContainer& rContainer, const geometry::ViewInformation2D& rViewInformation) const override;
 
diff --git a/include/drawinglayer/primitive2d/texthierarchyprimitive2d.hxx b/include/drawinglayer/primitive2d/texthierarchyprimitive2d.hxx
index 5b08106b6912..086c28e93078 100644
--- a/include/drawinglayer/primitive2d/texthierarchyprimitive2d.hxx
+++ b/include/drawinglayer/primitive2d/texthierarchyprimitive2d.hxx
@@ -39,7 +39,7 @@ namespace drawinglayer
 
             This primitive encapsulates text lines.
          */
-        class DRAWINGLAYER_DLLPUBLIC TextHierarchyLinePrimitive2D : public GroupPrimitive2D
+        class DRAWINGLAYER_DLLPUBLIC TextHierarchyLinePrimitive2D final : public GroupPrimitive2D
         {
         private:
         public:
@@ -61,7 +61,7 @@ namespace drawinglayer
 
             This primitive encapsulates text bullets.
          */
-        class DRAWINGLAYER_DLLPUBLIC TextHierarchyBulletPrimitive2D : public GroupPrimitive2D
+        class DRAWINGLAYER_DLLPUBLIC TextHierarchyBulletPrimitive2D final : public GroupPrimitive2D
         {
         private:
         public:
@@ -83,7 +83,7 @@ namespace drawinglayer
 
             This primitive encapsulates text paragraphs.
          */
-        class DRAWINGLAYER_DLLPUBLIC TextHierarchyParagraphPrimitive2D : public GroupPrimitive2D
+        class DRAWINGLAYER_DLLPUBLIC TextHierarchyParagraphPrimitive2D final : public GroupPrimitive2D
         {
         private:
             // outline level of the encapsulated paragraph data.
@@ -117,7 +117,7 @@ namespace drawinglayer
 
             This primitive encapsulates text blocks.
          */
-        class DRAWINGLAYER_DLLPUBLIC TextHierarchyBlockPrimitive2D : public GroupPrimitive2D
+        class DRAWINGLAYER_DLLPUBLIC TextHierarchyBlockPrimitive2D final : public GroupPrimitive2D
         {
         private:
         public:
@@ -157,7 +157,7 @@ namespace drawinglayer
             type. Also added is a String which is type-dependent. E.g. for URL
             fields, it contains the URL.
          */
-        class DRAWINGLAYER_DLLPUBLIC TextHierarchyFieldPrimitive2D : public GroupPrimitive2D
+        class DRAWINGLAYER_DLLPUBLIC TextHierarchyFieldPrimitive2D final : public GroupPrimitive2D
         {
         private:
             /// field type definition
@@ -202,7 +202,7 @@ namespace drawinglayer
             content. To suppress, this primitive needs to be parsed by
             the renderer without taking any action.
          */
-        class DRAWINGLAYER_DLLPUBLIC TextHierarchyEditPrimitive2D : public GroupPrimitive2D
+        class DRAWINGLAYER_DLLPUBLIC TextHierarchyEditPrimitive2D final : public GroupPrimitive2D
         {
         private:
         public:
diff --git a/include/drawinglayer/primitive2d/textlineprimitive2d.hxx b/include/drawinglayer/primitive2d/textlineprimitive2d.hxx
index e9f5efe70c82..e092db8a2906 100644
--- a/include/drawinglayer/primitive2d/textlineprimitive2d.hxx
+++ b/include/drawinglayer/primitive2d/textlineprimitive2d.hxx
@@ -32,7 +32,7 @@ namespace drawinglayer
 {
     namespace primitive2d
     {
-        class DRAWINGLAYER_DLLPUBLIC TextLinePrimitive2D : public BufferedDecompositionPrimitive2D
+        class DRAWINGLAYER_DLLPUBLIC TextLinePrimitive2D final : public BufferedDecompositionPrimitive2D
         {
         private:
             /// geometric definitions
@@ -45,7 +45,6 @@ namespace drawinglayer
             TextLine                                    meTextLine;
             basegfx::BColor                             maLineColor;
 
-        protected:
             /// local decomposition.
             virtual void create2DDecomposition(Primitive2DContainer& rContainer, const geometry::ViewInformation2D& rViewInformation) const override;
 
diff --git a/include/drawinglayer/primitive2d/textstrikeoutprimitive2d.hxx b/include/drawinglayer/primitive2d/textstrikeoutprimitive2d.hxx
index b3771c56e8c6..3247cfad3569 100644
--- a/include/drawinglayer/primitive2d/textstrikeoutprimitive2d.hxx
+++ b/include/drawinglayer/primitive2d/textstrikeoutprimitive2d.hxx
@@ -67,14 +67,13 @@ namespace drawinglayer
 {
     namespace primitive2d
     {
-        class DRAWINGLAYER_DLLPUBLIC TextCharacterStrikeoutPrimitive2D : public BaseTextStrikeoutPrimitive2D
+        class DRAWINGLAYER_DLLPUBLIC TextCharacterStrikeoutPrimitive2D final : public BaseTextStrikeoutPrimitive2D
         {
         private:
             sal_Unicode                             maStrikeoutChar;
             attribute::FontAttribute                maFontAttribute;
             css::lang::Locale                       maLocale;
 
-        protected:
             /// local decomposition.
             virtual void create2DDecomposition(Primitive2DContainer& rContainer, const geometry::ViewInformation2D& rViewInformation) const override;
 
@@ -107,14 +106,13 @@ namespace drawinglayer
 {
     namespace primitive2d
     {
-        class DRAWINGLAYER_DLLPUBLIC TextGeometryStrikeoutPrimitive2D : public BaseTextStrikeoutPrimitive2D
+        class DRAWINGLAYER_DLLPUBLIC TextGeometryStrikeoutPrimitive2D final : public BaseTextStrikeoutPrimitive2D
         {
         private:
             double                                  mfHeight;
             double                                  mfOffset;
             TextStrikeout                           meTextStrikeout;
 
-        protected:
             /// local decomposition.
             virtual void create2DDecomposition(Primitive2DContainer& rContainer, const geometry::ViewInformation2D& rViewInformation) const override;
 
diff --git a/include/drawinglayer/primitive2d/transformprimitive2d.hxx b/include/drawinglayer/primitive2d/transformprimitive2d.hxx
index 38e4543eed52..54187bb19bce 100644
--- a/include/drawinglayer/primitive2d/transformprimitive2d.hxx
+++ b/include/drawinglayer/primitive2d/transformprimitive2d.hxx
@@ -49,7 +49,7 @@ namespace drawinglayer
             different, transformed states without the need to create those
             thousand primitive contents.
          */
-        class DRAWINGLAYER_DLLPUBLIC TransformPrimitive2D : public GroupPrimitive2D
+        class DRAWINGLAYER_DLLPUBLIC TransformPrimitive2D final : public GroupPrimitive2D
         {
         private:
             // the transformation to apply to the child geometry
diff --git a/include/drawinglayer/primitive2d/transparenceprimitive2d.hxx b/include/drawinglayer/primitive2d/transparenceprimitive2d.hxx
index a4d9572e9da2..0c9c0091d845 100644
--- a/include/drawinglayer/primitive2d/transparenceprimitive2d.hxx
+++ b/include/drawinglayer/primitive2d/transparenceprimitive2d.hxx
@@ -46,7 +46,7 @@ namespace drawinglayer
             rendering, not the transparent one. The transparent one should/will be clipped
             accordingly.
          */
-        class DRAWINGLAYER_DLLPUBLIC TransparencePrimitive2D : public GroupPrimitive2D
+        class DRAWINGLAYER_DLLPUBLIC TransparencePrimitive2D final : public GroupPrimitive2D
         {
         private:
             /// The transparence-Mask who's RGB-Values are interpreted as Luminance
diff --git a/include/drawinglayer/primitive2d/unifiedtransparenceprimitive2d.hxx b/include/drawinglayer/primitive2d/unifiedtransparenceprimitive2d.hxx
index d012d71a4880..c5015d933401 100644
--- a/include/drawinglayer/primitive2d/unifiedtransparenceprimitive2d.hxx
+++ b/include/drawinglayer/primitive2d/unifiedtransparenceprimitive2d.hxx
@@ -38,7 +38,7 @@ namespace drawinglayer
             regions of combined transparency, but be all rendered with the
             defined, single transparency.
          */
-        class DRAWINGLAYER_DLLPUBLIC UnifiedTransparencePrimitive2D : public GroupPrimitive2D
+        class DRAWINGLAYER_DLLPUBLIC UnifiedTransparencePrimitive2D final : public GroupPrimitive2D
         {
         private:
             /// the unified transparence
diff --git a/include/drawinglayer/primitive2d/wallpaperprimitive2d.hxx b/include/drawinglayer/primitive2d/wallpaperprimitive2d.hxx
index e6927398edad..a9dd81dadac8 100644
--- a/include/drawinglayer/primitive2d/wallpaperprimitive2d.hxx
+++ b/include/drawinglayer/primitive2d/wallpaperprimitive2d.hxx
@@ -44,14 +44,13 @@ namespace drawinglayer
             layouting which is dependent from WallpaperStyle; thus it does not need
             to be handled anywhere else in the future.
          */
-        class DRAWINGLAYER_DLLPUBLIC WallpaperBitmapPrimitive2D : public ViewTransformationDependentPrimitive2D
+        class DRAWINGLAYER_DLLPUBLIC WallpaperBitmapPrimitive2D final : public ViewTransformationDependentPrimitive2D
         {
         private:
             basegfx::B2DRange                   maObjectRange;
             BitmapEx                            maBitmapEx;
             WallpaperStyle                      meWallpaperStyle;
 
-        protected:
             /// create local decomposition
             virtual void create2DDecomposition(Primitive2DContainer& rContainer, const geometry::ViewInformation2D& rViewInformation) const override;
 
diff --git a/include/drawinglayer/primitive2d/wrongspellprimitive2d.hxx b/include/drawinglayer/primitive2d/wrongspellprimitive2d.hxx
index 3ad6bef0f596..c517e1472cf8 100644
--- a/include/drawinglayer/primitive2d/wrongspellprimitive2d.hxx
+++ b/include/drawinglayer/primitive2d/wrongspellprimitive2d.hxx
@@ -47,7 +47,7 @@ namespace drawinglayer
             The geometric definition defines a line on the X-Axis (no Y-coordinates)
             which will when transformed by Transformation, create the coordinate data.
          */
-        class DRAWINGLAYER_DLLPUBLIC WrongSpellPrimitive2D : public BufferedDecompositionPrimitive2D
+        class DRAWINGLAYER_DLLPUBLIC WrongSpellPrimitive2D final : public BufferedDecompositionPrimitive2D
         {
         private:
             /// geometry definition
@@ -58,7 +58,6 @@ namespace drawinglayer
             /// color (usually red)
             basegfx::BColor                                 maColor;
 
-        protected:
             /// create local decomposition
             virtual void create2DDecomposition(Primitive2DContainer& rContainer, const geometry::ViewInformation2D& rViewInformation) const override;
 
diff --git a/include/drawinglayer/primitive3d/hiddengeometryprimitive3d.hxx b/include/drawinglayer/primitive3d/hiddengeometryprimitive3d.hxx
index 4ebe5508e8ab..d5508bd0d4d8 100644
--- a/include/drawinglayer/primitive3d/hiddengeometryprimitive3d.hxx
+++ b/include/drawinglayer/primitive3d/hiddengeometryprimitive3d.hxx
@@ -39,7 +39,7 @@ namespace drawinglayer
         // decomposes to nothing, so no one not knowing it will be influenced. Only
         // helper processors for hit test (and maybe BoundRect extractors) will
         // use it and its children subcontent.
-        class DRAWINGLAYER_DLLPUBLIC HiddenGeometryPrimitive3D : public GroupPrimitive3D
+        class DRAWINGLAYER_DLLPUBLIC HiddenGeometryPrimitive3D final : public GroupPrimitive3D
         {
         public:
             explicit HiddenGeometryPrimitive3D(const Primitive3DContainer& rChildren);
diff --git a/include/drawinglayer/primitive3d/modifiedcolorprimitive3d.hxx b/include/drawinglayer/primitive3d/modifiedcolorprimitive3d.hxx
index bb077fe6afad..58d4512b87d6 100644
--- a/include/drawinglayer/primitive3d/modifiedcolorprimitive3d.hxx
+++ b/include/drawinglayer/primitive3d/modifiedcolorprimitive3d.hxx
@@ -37,7 +37,7 @@ namespace drawinglayer
             visualisation. Please see the ModifiedColorPrimitive2D
             description for more info.
          */
-        class DRAWINGLAYER_DLLPUBLIC ModifiedColorPrimitive3D : public GroupPrimitive3D
+        class DRAWINGLAYER_DLLPUBLIC ModifiedColorPrimitive3D final : public GroupPrimitive3D
         {
         private:
             /// The ColorModifier to use
diff --git a/include/drawinglayer/primitive3d/polygonprimitive3d.hxx b/include/drawinglayer/primitive3d/polygonprimitive3d.hxx
index 9f3f363b9495..116b71e26709 100644
--- a/include/drawinglayer/primitive3d/polygonprimitive3d.hxx
+++ b/include/drawinglayer/primitive3d/polygonprimitive3d.hxx
@@ -83,7 +83,7 @@ namespace drawinglayer
             and stroke attributes. It will be decomposed dependent on the definition
             to the needed primitives, e.g. filled Tubes for fat lines.
          */
-        class DRAWINGLAYER_DLLPUBLIC PolygonStrokePrimitive3D : public BufferedDecompositionPrimitive3D
+        class DRAWINGLAYER_DLLPUBLIC PolygonStrokePrimitive3D final : public BufferedDecompositionPrimitive3D
         {
         private:
             /// the line geometry
@@ -95,7 +95,6 @@ namespace drawinglayer
             /// the line stroking (if used)
             attribute::StrokeAttribute              maStrokeAttribute;
 
-        protected:
             /// local decomposition.
             virtual Primitive3DContainer create3DDecomposition(const geometry::ViewInformation3D& rViewInformation) const override;
 
diff --git a/include/drawinglayer/primitive3d/polypolygonprimitive3d.hxx b/include/drawinglayer/primitive3d/polypolygonprimitive3d.hxx
index 52f2cbcec7f9..914fe9315823 100644
--- a/include/drawinglayer/primitive3d/polypolygonprimitive3d.hxx
+++ b/include/drawinglayer/primitive3d/polypolygonprimitive3d.hxx
@@ -39,7 +39,7 @@ namespace drawinglayer
 
             It is assumed here that the PolyPolgon is a single plane in 3D.
          */
-        class DRAWINGLAYER_DLLPUBLIC PolyPolygonMaterialPrimitive3D : public BasePrimitive3D
+        class DRAWINGLAYER_DLLPUBLIC PolyPolygonMaterialPrimitive3D final : public BasePrimitive3D
         {
         private:
             /// the tools::PolyPolygon geometry
diff --git a/include/drawinglayer/primitive3d/sdrcubeprimitive3d.hxx b/include/drawinglayer/primitive3d/sdrcubeprimitive3d.hxx
index 3d4ee0be1808..e7d816a0363f 100644
--- a/include/drawinglayer/primitive3d/sdrcubeprimitive3d.hxx
+++ b/include/drawinglayer/primitive3d/sdrcubeprimitive3d.hxx
@@ -35,9 +35,8 @@ namespace drawinglayer
             The cube is implicitly in unit coordinates and the given transformation
             defines its geometry in space.
          */
-        class DRAWINGLAYER_DLLPUBLIC SdrCubePrimitive3D : public SdrPrimitive3D
+        class DRAWINGLAYER_DLLPUBLIC SdrCubePrimitive3D final : public SdrPrimitive3D
         {
-        protected:
             /// local decomposition.
             virtual Primitive3DContainer create3DDecomposition(const geometry::ViewInformation3D& rViewInformation) const override;
 
diff --git a/include/drawinglayer/primitive3d/sdrextrudeprimitive3d.hxx b/include/drawinglayer/primitive3d/sdrextrudeprimitive3d.hxx
index eea2f2f932b4..c7458893ff6f 100644
--- a/include/drawinglayer/primitive3d/sdrextrudeprimitive3d.hxx
+++ b/include/drawinglayer/primitive3d/sdrextrudeprimitive3d.hxx
@@ -42,7 +42,7 @@ namespace drawinglayer
 
             The decomposition will create all necessary 3D planes for visualisation.
          */
-        class DRAWINGLAYER_DLLPUBLIC SdrExtrudePrimitive3D : public SdrPrimitive3D
+        class DRAWINGLAYER_DLLPUBLIC SdrExtrudePrimitive3D final : public SdrPrimitive3D
         {
         private:
             /// geometry helper for slices
@@ -70,7 +70,6 @@ namespace drawinglayer
             /// get (evtl. create) slices
             const Slice3DVector& getSlices() const;
 
-        protected:
             /// local decomposition.
             virtual Primitive3DContainer create3DDecomposition(const geometry::ViewInformation3D& rViewInformation) const override;
 
diff --git a/include/drawinglayer/primitive3d/sdrlatheprimitive3d.hxx b/include/drawinglayer/primitive3d/sdrlatheprimitive3d.hxx
index da713c1663fb..1b29f6c575e4 100644
--- a/include/drawinglayer/primitive3d/sdrlatheprimitive3d.hxx
+++ b/include/drawinglayer/primitive3d/sdrlatheprimitive3d.hxx
@@ -42,7 +42,7 @@ namespace drawinglayer
 
             The decomposition will create all necessary 3D planes for visualisation.
          */
-        class DRAWINGLAYER_DLLPUBLIC SdrLathePrimitive3D : public SdrPrimitive3D
+        class DRAWINGLAYER_DLLPUBLIC SdrLathePrimitive3D final : public SdrPrimitive3D
         {
         private:
             /// geometry helper for slices
@@ -72,7 +72,6 @@ namespace drawinglayer
             /// get (evtl. create) slices
             const Slice3DVector& getSlices() const;
 
-        protected:
             /// local decomposition.
             virtual Primitive3DContainer create3DDecomposition(const geometry::ViewInformation3D& rViewInformation) const override;
 
diff --git a/include/drawinglayer/primitive3d/sdrpolypolygonprimitive3d.hxx b/include/drawinglayer/primitive3d/sdrpolypolygonprimitive3d.hxx
index d80dc149a7d9..d492391671f6 100644
--- a/include/drawinglayer/primitive3d/sdrpolypolygonprimitive3d.hxx
+++ b/include/drawinglayer/primitive3d/sdrpolypolygonprimitive3d.hxx
@@ -39,13 +39,12 @@ namespace drawinglayer
             The decomposition will include all needed 3D data for visualisation,
             including FatLines and fill styles.
          */
-        class DRAWINGLAYER_DLLPUBLIC SdrPolyPolygonPrimitive3D : public SdrPrimitive3D
+        class DRAWINGLAYER_DLLPUBLIC SdrPolyPolygonPrimitive3D final : public SdrPrimitive3D
         {
         private:
             /// the planar polyPolygon evtl with normals and texture coordinates
             basegfx::B3DPolyPolygon                 maPolyPolygon3D;
 
-        protected:
             /// local decomposition.
             virtual Primitive3DContainer create3DDecomposition(const geometry::ViewInformation3D& rViewInformation) const override;
 
diff --git a/include/drawinglayer/primitive3d/sdrsphereprimitive3d.hxx b/include/drawinglayer/primitive3d/sdrsphereprimitive3d.hxx
index db3b57d81fd8..929425499947 100644
--- a/include/drawinglayer/primitive3d/sdrsphereprimitive3d.hxx
+++ b/include/drawinglayer/primitive3d/sdrsphereprimitive3d.hxx
@@ -35,14 +35,13 @@ namespace drawinglayer
             The sphere is implicitly in unit coordinates and the given transformation
             defines its geometry in space.
          */
-        class DRAWINGLAYER_DLLPUBLIC SdrSpherePrimitive3D : public SdrPrimitive3D
+        class DRAWINGLAYER_DLLPUBLIC SdrSpherePrimitive3D final : public SdrPrimitive3D
         {
         private:
             /// additional geometry definitions
             sal_uInt32                                  mnHorizontalSegments;
             sal_uInt32                                  mnVerticalSegments;
 
-        protected:
             /// local decomposition.
             virtual Primitive3DContainer create3DDecomposition(const geometry::ViewInformation3D& rViewInformation) const override;
 
diff --git a/include/drawinglayer/primitive3d/textureprimitive3d.hxx b/include/drawinglayer/primitive3d/textureprimitive3d.hxx
index 13ee158c8d8c..16af14c96108 100644
--- a/include/drawinglayer/primitive3d/textureprimitive3d.hxx
+++ b/include/drawinglayer/primitive3d/textureprimitive3d.hxx
@@ -80,7 +80,7 @@ namespace drawinglayer
             transparence texture definition. All 3D primitives
             embedded here will be shown with the given transparency.
          */
-        class DRAWINGLAYER_DLLPUBLIC UnifiedTransparenceTexturePrimitive3D : public TexturePrimitive3D
+        class DRAWINGLAYER_DLLPUBLIC UnifiedTransparenceTexturePrimitive3D final : public TexturePrimitive3D
         {
         private:
             /// transparency definition
@@ -159,7 +159,7 @@ namespace drawinglayer
             definition. All 3D primitives embedded here will be shown with the
             defined bitmap (maybe tiled if defined).
          */
-        class DRAWINGLAYER_DLLPUBLIC BitmapTexturePrimitive3D : public TexturePrimitive3D
+        class DRAWINGLAYER_DLLPUBLIC BitmapTexturePrimitive3D final : public TexturePrimitive3D
         {
         private:
             /// bitmap fill attribute
@@ -198,7 +198,7 @@ namespace drawinglayer
             that gradient will be interpreted as luminance Transparence-Values. All 3D
             primitives embedded here will be shown with the defined transparence.
          */
-        class DRAWINGLAYER_DLLPUBLIC TransparenceTexturePrimitive3D : public GradientTexturePrimitive3D
+        class DRAWINGLAYER_DLLPUBLIC TransparenceTexturePrimitive3D final : public GradientTexturePrimitive3D
         {
         public:
             /// constructor
diff --git a/include/drawinglayer/primitive3d/transformprimitive3d.hxx b/include/drawinglayer/primitive3d/transformprimitive3d.hxx
index d223b065dbf2..86bef4bdc6b9 100644
--- a/include/drawinglayer/primitive3d/transformprimitive3d.hxx
+++ b/include/drawinglayer/primitive3d/transformprimitive3d.hxx
@@ -39,7 +39,7 @@ namespace drawinglayer
             Please see the description for TransformPrimitive2D since these
             primitives are pretty similar.
          */
-        class DRAWINGLAYER_DLLPUBLIC TransformPrimitive3D : public GroupPrimitive3D
+        class DRAWINGLAYER_DLLPUBLIC TransformPrimitive3D final : public GroupPrimitive3D
         {
         private:
             // the 3D transformation to apply
diff --git a/include/drawinglayer/processor2d/contourextractor2d.hxx b/include/drawinglayer/processor2d/contourextractor2d.hxx
index fb8e9fe67624..6ae6695e0af1 100644
--- a/include/drawinglayer/processor2d/contourextractor2d.hxx
+++ b/include/drawinglayer/processor2d/contourextractor2d.hxx
@@ -35,7 +35,7 @@ namespace drawinglayer
             A processor who extracts the contour of the primtives feeded to it
             in the single local PolyPolygon
          */
-        class DRAWINGLAYER_DLLPUBLIC ContourExtractor2D : public BaseProcessor2D
+        class DRAWINGLAYER_DLLPUBLIC ContourExtractor2D final : public BaseProcessor2D
         {
         private:
             /// the extracted contour
diff --git a/include/drawinglayer/processor2d/hittestprocessor2d.hxx b/include/drawinglayer/processor2d/hittestprocessor2d.hxx
index 452873e66c09..af0042a7805a 100644
--- a/include/drawinglayer/processor2d/hittestprocessor2d.hxx
+++ b/include/drawinglayer/processor2d/hittestprocessor2d.hxx
@@ -37,7 +37,7 @@ namespace drawinglayer
             This processor implements a HitTest with the feeded primitives,
             given tolerance and extras
          */
-        class DRAWINGLAYER_DLLPUBLIC HitTestProcessor2D : public BaseProcessor2D
+        class DRAWINGLAYER_DLLPUBLIC HitTestProcessor2D final : public BaseProcessor2D
         {
         private:
             /// discrete HitTest position
diff --git a/include/drawinglayer/processor2d/linegeometryextractor2d.hxx b/include/drawinglayer/processor2d/linegeometryextractor2d.hxx
index b19293045316..1b2da32d30ac 100644
--- a/include/drawinglayer/processor2d/linegeometryextractor2d.hxx
+++ b/include/drawinglayer/processor2d/linegeometryextractor2d.hxx
@@ -36,7 +36,7 @@ namespace drawinglayer
             This processor can extract the line geometry from feeded primitives. The
             hairlines and the fill geometry from fat lines are separated.
          */
-        class DRAWINGLAYER_DLLPUBLIC LineGeometryExtractor2D : public BaseProcessor2D
+        class DRAWINGLAYER_DLLPUBLIC LineGeometryExtractor2D final : public BaseProcessor2D
         {
         private:
             basegfx::B2DPolygonVector               maExtractedHairlines;
diff --git a/include/drawinglayer/processor2d/objectinfoextractor2d.hxx b/include/drawinglayer/processor2d/objectinfoextractor2d.hxx
index 293fdd0ca3a6..38612dbaf8a5 100644
--- a/include/drawinglayer/processor2d/objectinfoextractor2d.hxx
+++ b/include/drawinglayer/processor2d/objectinfoextractor2d.hxx
@@ -33,7 +33,7 @@ namespace drawinglayer
             A processor to find the first incarnation of ObjectInfoPrimitive2D
             in a given hierarchy
          */
-        class DRAWINGLAYER_DLLPUBLIC ObjectInfoPrimitiveExtractor2D : public BaseProcessor2D
+        class DRAWINGLAYER_DLLPUBLIC ObjectInfoPrimitiveExtractor2D final : public BaseProcessor2D
         {
         private:
             /// the target
diff --git a/include/drawinglayer/processor2d/textaspolygonextractor2d.hxx b/include/drawinglayer/processor2d/textaspolygonextractor2d.hxx
index cdd3e854b78e..b41587497b44 100644
--- a/include/drawinglayer/processor2d/textaspolygonextractor2d.hxx
+++ b/include/drawinglayer/processor2d/textaspolygonextractor2d.hxx
@@ -65,7 +65,7 @@ namespace drawinglayer
 
             This processor extracts text in the feeded primitives to filled polygons
          */
-        class DRAWINGLAYER_DLLPUBLIC TextAsPolygonExtractor2D : public BaseProcessor2D
+        class DRAWINGLAYER_DLLPUBLIC TextAsPolygonExtractor2D final : public BaseProcessor2D
         {
         private:
             // extraction target
diff --git a/include/drawinglayer/processor3d/cutfindprocessor3d.hxx b/include/drawinglayer/processor3d/cutfindprocessor3d.hxx
index a22afc122e0c..7d415fae4ec8 100644
--- a/include/drawinglayer/processor3d/cutfindprocessor3d.hxx
+++ b/include/drawinglayer/processor3d/cutfindprocessor3d.hxx
@@ -34,7 +34,7 @@ namespace drawinglayer
             This processor extracts all cuts of 3D plane geometries in the feeded primitives
             with the given cut vector, based on the ViewInformation3D given.
          */
-        class DRAWINGLAYER_DLLPUBLIC CutFindProcessor : public BaseProcessor3D
+        class DRAWINGLAYER_DLLPUBLIC CutFindProcessor final : public BaseProcessor3D
         {
         private:
             /// the start and stop point for the cut vector
diff --git a/include/drawinglayer/processor3d/geometry2dextractor.hxx b/include/drawinglayer/processor3d/geometry2dextractor.hxx
index 98233dd009b7..13cb8828598d 100644
--- a/include/drawinglayer/processor3d/geometry2dextractor.hxx
+++ b/include/drawinglayer/processor3d/geometry2dextractor.hxx
@@ -38,7 +38,7 @@ namespace drawinglayer
             It is e.g. used as sub-processor for contour extraction where 3D geometry is only
             useful as 2D projected geometry.
          */
-        class DRAWINGLAYER_DLLPUBLIC Geometry2DExtractingProcessor : public BaseProcessor3D
+        class DRAWINGLAYER_DLLPUBLIC Geometry2DExtractingProcessor final : public BaseProcessor3D
         {
         private:
             /// result holding vector (2D)
diff --git a/include/drawinglayer/processor3d/shadow3dextractor.hxx b/include/drawinglayer/processor3d/shadow3dextractor.hxx
index 8d92f84c503d..da51d65faeac 100644
--- a/include/drawinglayer/processor3d/shadow3dextractor.hxx
+++ b/include/drawinglayer/processor3d/shadow3dextractor.hxx
@@ -44,7 +44,7 @@ namespace drawinglayer
             some data to do so since we do not only offer flat projected 2D shadow, but also projections
             dependent on the light source
          */
-        class DRAWINGLAYER_DLLPUBLIC Shadow3DExtractingProcessor : public BaseProcessor3D
+        class DRAWINGLAYER_DLLPUBLIC Shadow3DExtractingProcessor final : public BaseProcessor3D
         {
         private:
             /// result holding vector (2D) and target vector for stacking (inited to &maPrimitive2DSequence)
diff --git a/include/drawinglayer/processor3d/zbufferprocessor3d.hxx b/include/drawinglayer/processor3d/zbufferprocessor3d.hxx
index eb537537cf11..94b4ae4cb837 100644
--- a/include/drawinglayer/processor3d/zbufferprocessor3d.hxx
+++ b/include/drawinglayer/processor3d/zbufferprocessor3d.hxx
@@ -48,7 +48,7 @@ namespace drawinglayer
             raster bitmap using a Z-Buffer based approach. It is able to supersample and to handle
             transparent content.
          */
-        class ZBufferProcessor3D : public DefaultProcessor3D
+        class ZBufferProcessor3D final : public DefaultProcessor3D
         {
         private:
             /// inverse of EyeToView for rasterconversion with evtl. Phong shading
diff --git a/include/drawinglayer/texture/texture.hxx b/include/drawinglayer/texture/texture.hxx
index ed7b6ac594e2..b194a73dd4d7 100644
--- a/include/drawinglayer/texture/texture.hxx
+++ b/include/drawinglayer/texture/texture.hxx
@@ -162,7 +162,7 @@ namespace drawinglayer
 {
     namespace texture
     {
-        class DRAWINGLAYER_DLLPUBLIC GeoTexSvxGradientRadial : public GeoTexSvxGradient
+        class DRAWINGLAYER_DLLPUBLIC GeoTexSvxGradientRadial final : public GeoTexSvxGradient
         {
         public:
             GeoTexSvxGradientRadial(
@@ -188,7 +188,7 @@ namespace drawinglayer
 {
     namespace texture
     {
-        class DRAWINGLAYER_DLLPUBLIC GeoTexSvxGradientElliptical : public GeoTexSvxGradient
+        class DRAWINGLAYER_DLLPUBLIC GeoTexSvxGradientElliptical final : public GeoTexSvxGradient
         {
         public:
             GeoTexSvxGradientElliptical(
@@ -215,7 +215,7 @@ namespace drawinglayer
 {
     namespace texture
     {
-        class DRAWINGLAYER_DLLPUBLIC GeoTexSvxGradientSquare : public GeoTexSvxGradient
+        class DRAWINGLAYER_DLLPUBLIC GeoTexSvxGradientSquare final : public GeoTexSvxGradient
         {
         public:
             GeoTexSvxGradientSquare(
@@ -242,7 +242,7 @@ namespace drawinglayer
 {
     namespace texture
     {
-        class DRAWINGLAYER_DLLPUBLIC GeoTexSvxGradientRect : public GeoTexSvxGradient
+        class DRAWINGLAYER_DLLPUBLIC GeoTexSvxGradientRect final : public GeoTexSvxGradient
         {
         public:
             GeoTexSvxGradientRect(


More information about the Libreoffice-commits mailing list