[Libreoffice-commits] core.git: include/svx svx/inc svx/source

Noel Grandin noel.grandin at collabora.co.uk
Tue Oct 24 05:59:28 UTC 2017


 include/svx/AccessibleControlShape.hxx                       |   14 -
 include/svx/camera3d.hxx                                     |    5 
 include/svx/colrctrl.hxx                                     |    7 
 include/svx/ctredlin.hxx                                     |    6 
 include/svx/cube3d.hxx                                       |    4 
 include/svx/dataaccessdescriptor.hxx                         |    3 
 include/svx/dbaexchange.hxx                                  |   22 +--
 include/svx/dbaobjectex.hxx                                  |    9 -
 include/svx/dialcontrol.hxx                                  |    8 -
 include/svx/dlgctl3d.hxx                                     |    5 
 include/svx/dlgctrl.hxx                                      |    7 
 include/svx/extrud3d.hxx                                     |    3 
 include/svx/galmisc.hxx                                      |    6 
 include/svx/gridctrl.hxx                                     |    3 
 include/svx/lathe3d.hxx                                      |    6 
 include/svx/numvset.hxx                                      |    6 
 include/svx/obj3d.hxx                                        |    8 -
 include/svx/paraprev.hxx                                     |    7 
 include/svx/rubydialog.hxx                                   |    3 
 include/svx/sdr/animation/animationstate.hxx                 |    3 
 include/svx/sdr/contact/objectcontactofobjlistpainter.hxx    |    3 
 include/svx/sdr/contact/viewcontactofe3dscene.hxx            |   33 ++--
 include/svx/sdr/overlay/overlayanimatedbitmapex.hxx          |    3 
 include/svx/sdr/overlay/overlaybitmapex.hxx                  |    3 
 include/svx/sdr/overlay/overlayobjectlist.hxx                |    3 
 include/svx/sdr/overlay/overlaypolypolygon.hxx               |    3 
 include/svx/sdr/overlay/overlayprimitive2dsequenceobject.hxx |    3 
 include/svx/sdr/overlay/overlayselection.hxx                 |    3 
 include/svx/sdr/overlay/overlaytriangle.hxx                  |    3 
 include/svx/sphere3d.hxx                                     |    3 
 include/svx/svddrag.hxx                                      |    6 
 include/svx/svdhdl.hxx                                       |   32 ++--
 include/svx/svdmark.hxx                                      |   13 -
 include/svx/svdocirc.hxx                                     |   10 -
 include/svx/svdoedge.hxx                                     |    3 
 include/svx/svdogrp.hxx                                      |    3 
 include/svx/svdomedia.hxx                                    |    5 
 include/svx/svdopath.hxx                                     |    5 
 include/svx/svdpage.hxx                                      |    7 
 include/svx/svdsob.hxx                                       |    3 
 include/svx/svdundo.hxx                                      |   32 +---
 include/svx/xdash.hxx                                        |    3 
 include/svx/xgrad.hxx                                        |    3 
 include/svx/xhatch.hxx                                       |    3 
 include/svx/xmleohlp.hxx                                     |    4 
 include/svx/xmlexchg.hxx                                     |    4 
 include/svx/xmlgrhlp.hxx                                     |    7 
 include/svx/xpoly.hxx                                        |    6 
 svx/inc/AccessibleTableShape.hxx                             |    7 
 svx/inc/sdr/contact/objectcontactofpageview.hxx              |    3 
 svx/inc/sdr/contact/viewcontactofgroup.hxx                   |   15 --
 svx/inc/sdr/contact/viewcontactofmasterpagedescriptor.hxx    |    3 
 svx/inc/sdr/contact/viewcontactofsdrcircobj.hxx              |   15 --
 svx/inc/sdr/contact/viewcontactofsdredgeobj.hxx              |   15 --
 svx/inc/sdr/contact/viewcontactofsdrmeasureobj.hxx           |   15 --
 svx/inc/sdr/contact/viewcontactofsdrobjcustomshape.hxx       |   15 --
 svx/inc/sdr/contact/viewcontactofsdrpage.hxx                 |    6 
 svx/inc/sdr/contact/viewcontactofsdrpathobj.hxx              |   15 --
 svx/inc/sdr/contact/viewobjectcontactofe3d.hxx               |    3 
 svx/inc/sdr/contact/viewobjectcontactofgraphic.hxx           |    4 
 svx/inc/sdr/overlay/overlayhandle.hxx                        |    3 
 svx/inc/sdr/overlay/overlayhelpline.hxx                      |    3 
 svx/inc/sdr/overlay/overlayline.hxx                          |    3 
 svx/inc/sdr/overlay/overlaymanagerbuffered.hxx               |    3 
 svx/inc/sdr/overlay/overlayrollingrectangle.hxx              |    3 
 svx/inc/svdibrow.hxx                                         |    5 
 svx/source/accessibility/ChildrenManagerImpl.hxx             |    7 
 svx/source/customshapes/EnhancedCustomShape3d.hxx            |    9 -
 svx/source/dialog/imapwnd.hxx                                |    4 
 svx/source/gallery2/galbrws1.hxx                             |    4 
 svx/source/inc/AccessibleFrameSelector.hxx                   |    5 
 svx/source/inc/GraphCtlAccessibleContext.hxx                 |   19 --
 svx/source/inc/filtnav.hxx                                   |    9 -
 svx/source/inc/fmPropBrw.hxx                                 |    6 
 svx/source/inc/fmexpl.hxx                                    |    4 
 svx/source/inc/fmpgeimp.hxx                                  |    5 
 svx/source/inc/fmshimp.hxx                                   |    9 -
 svx/source/inc/fmundo.hxx                                    |   68 ++++-----
 svx/source/inc/fmvwimp.hxx                                   |    9 -
 svx/source/inc/formcontroller.hxx                            |    5 
 svx/source/inc/formcontrolling.hxx                           |    3 
 svx/source/inc/formdispatchinterceptor.hxx                   |   39 ++---
 svx/source/inc/formfeaturedispatcher.hxx                     |   27 +--
 svx/source/inc/gridcell.hxx                                  |   80 ++++-------
 svx/source/inc/svxrectctaccessiblecontext.hxx                |   35 ++--
 svx/source/inc/tbxform.hxx                                   |    9 -
 svx/source/inc/xfm_addcondition.hxx                          |   22 +--
 svx/source/sidebar/line/LineWidthValueSet.hxx                |    5 
 svx/source/svdraw/svdfmtf.hxx                                |    5 
 svx/source/table/cellcursor.hxx                              |    4 
 svx/source/unogallery/unogalitem.hxx                         |   14 -
 91 files changed, 363 insertions(+), 523 deletions(-)

New commits:
commit ac45764b05385a51d469fda2e4bf9233904ca5a9
Author: Noel Grandin <noel.grandin at collabora.co.uk>
Date:   Mon Oct 23 13:07:58 2017 +0200

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

diff --git a/include/svx/AccessibleControlShape.hxx b/include/svx/AccessibleControlShape.hxx
index a3c28a5da164..5b20b105ef1e 100644
--- a/include/svx/AccessibleControlShape.hxx
+++ b/include/svx/AccessibleControlShape.hxx
@@ -72,7 +72,7 @@ namespace accessibility {
                                 >   AccessibleControlShape_Base;
 /** @descr
 */
-class AccessibleControlShape
+class AccessibleControlShape final
         :public AccessibleShape
         ,public AccessibleControlShape_Base
 {
@@ -85,8 +85,8 @@ public:
 
     const css::uno::Reference< css::beans::XPropertySet >& SAL_CALL  GetControlModel( ) { return m_xControlModel;} ;
     AccessibleControlShape* SAL_CALL GetLabeledByControlShape();
-protected:
 
+private:
     //---  XAccessibleComponent  -------------------------------
     /// forward the focus to the contained control(in alive mode)
     virtual void SAL_CALL grabFocus( ) override;
@@ -128,7 +128,6 @@ protected:
     virtual void SAL_CALL elementRemoved( const css::container::ContainerEvent& Event ) override;
     virtual void SAL_CALL elementReplaced( const css::container::ContainerEvent& Event ) override;
 
-protected:
     /** Initialize a new shape.  See the documentation of the base' constructor
         for the reason of this method's existence.
     */
@@ -182,7 +181,9 @@ protected:
     */
     void        initializeComposedState( );
 
-private:
+    AccessibleControlShape(const AccessibleControlShape&) = delete;
+    AccessibleControlShape& operator= (const AccessibleControlShape&) = delete;
+
     css::uno::Reference< css::beans::XPropertySet >
                     m_xControlModel;
     css::uno::Reference< css::beans::XPropertySetInfo >
@@ -207,11 +208,6 @@ private:
     bool        m_bMultiplexingStates   : 1;    // are we currently multiplexing state changes of the native context?
     bool        m_bDisposeNativeContext : 1;    // do we need to dispose mxNativeContextComponent?
     bool        m_bWaitingForControl    : 1;    // if we are created before our control exists, we need to wait for it to appear ...
-
-private:
-    AccessibleControlShape(const AccessibleControlShape&) = delete;
-
-    AccessibleControlShape& operator= (const AccessibleControlShape&) = delete;
 };
 
 } // end of namespace accessibility
diff --git a/include/svx/camera3d.hxx b/include/svx/camera3d.hxx
index e5cf1537f13f..857ba33973b0 100644
--- a/include/svx/camera3d.hxx
+++ b/include/svx/camera3d.hxx
@@ -31,9 +31,8 @@
 |*
 \************************************************************************/
 
-class SAL_WARN_UNUSED SVX_DLLPUBLIC Camera3D : public Viewport3D
+class SAL_WARN_UNUSED SVX_DLLPUBLIC Camera3D final : public Viewport3D
 {
- protected:
     basegfx::B3DPoint   aResetPos;
     basegfx::B3DPoint   aResetLookAt;
 
@@ -44,7 +43,7 @@ class SAL_WARN_UNUSED SVX_DLLPUBLIC Camera3D : public Viewport3D
 
     bool bAutoAdjustProjection;
 
- public:
+public:
     Camera3D(const basegfx::B3DPoint& rPos, const basegfx::B3DPoint& rLookAt,
              double fFocalLen = 35.0);
     Camera3D();
diff --git a/include/svx/colrctrl.hxx b/include/svx/colrctrl.hxx
index 752bdd1065aa..3637ed81d2a2 100644
--- a/include/svx/colrctrl.hxx
+++ b/include/svx/colrctrl.hxx
@@ -46,15 +46,12 @@ class SfxHint;
 |*
 \************************************************************************/
 
-class SAL_WARN_UNUSED SvxColorValueSet_docking : public SvxColorValueSet, public DragSourceHelper
+class SAL_WARN_UNUSED SvxColorValueSet_docking final : public SvxColorValueSet, public DragSourceHelper
 {
-private:
-    using SvxColorValueSet::StartDrag;
-
     bool            mbLeftButton;
     Point           aDragPosPixel;
 
-protected:
+    using SvxColorValueSet::StartDrag;
 
     void            DoDrag();
 
diff --git a/include/svx/ctredlin.hxx b/include/svx/ctredlin.hxx
index 8d115784e9e0..7ab194dece4a 100644
--- a/include/svx/ctredlin.hxx
+++ b/include/svx/ctredlin.hxx
@@ -189,10 +189,8 @@ public:
 };
 
 /// Tabpage with the filter text entries etc.
-class SAL_WARN_UNUSED SVX_DLLPUBLIC SvxTPFilter: public TabPage
+class SAL_WARN_UNUSED SVX_DLLPUBLIC SvxTPFilter final : public TabPage
 {
-private:
-
     Link<SvxTPFilter*,void>  aReadyLink;
     Link<SvxTPFilter*,void>  aRefLink;
 
@@ -225,8 +223,6 @@ private:
     DECL_LINK( ModifyDate, Edit&, void );
     DECL_LINK( RefHandle, Button*, void );
 
-protected:
-
     void            EnableDateLine1(bool bFlag);
     void            EnableDateLine2(bool bFlag);
 
diff --git a/include/svx/cube3d.hxx b/include/svx/cube3d.hxx
index 4a467c1bb3cc..a627be2a1261 100644
--- a/include/svx/cube3d.hxx
+++ b/include/svx/cube3d.hxx
@@ -61,9 +61,8 @@ namespace o3tl
     template<> struct typed_flags<CubeFaces> : is_typed_flags<CubeFaces, 0x003f> {};
 }
 
-class SAL_WARN_UNUSED SVX_DLLPUBLIC E3dCubeObj : public E3dCompoundObject
+class SAL_WARN_UNUSED SVX_DLLPUBLIC E3dCubeObj final : public E3dCompoundObject
 {
-private:
     // Parameter
     basegfx::B3DPoint                   aCubePos;
     basegfx::B3DVector                  aCubeSize;
@@ -71,7 +70,6 @@ private:
     // BOOLeans
     bool                                bPosIsCenter : 1;
 
-protected:
     void SetDefaultAttributes(E3dDefaultAttributes& rDefault);
     virtual sdr::contact::ViewContact* CreateObjectSpecificViewContact() override;
 
diff --git a/include/svx/dataaccessdescriptor.hxx b/include/svx/dataaccessdescriptor.hxx
index 9449d8fbd051..4a810a5950f2 100644
--- a/include/svx/dataaccessdescriptor.hxx
+++ b/include/svx/dataaccessdescriptor.hxx
@@ -56,9 +56,8 @@ namespace svx
 
     /** class encapsulating the css::sdb::DataAccessDescriptor service.
     */
-    class SAL_WARN_UNUSED SVX_DLLPUBLIC ODataAccessDescriptor
+    class SAL_WARN_UNUSED SVX_DLLPUBLIC ODataAccessDescriptor final
     {
-    protected:
         std::unique_ptr<ODADescriptorImpl>      m_pImpl;
 
     public:
diff --git a/include/svx/dbaexchange.hxx b/include/svx/dbaexchange.hxx
index c0c7df578471..a8b0bedf1454 100644
--- a/include/svx/dbaexchange.hxx
+++ b/include/svx/dbaexchange.hxx
@@ -50,13 +50,8 @@ namespace svx
 
     //= OColumnTransferable
 
-    class SAL_WARN_UNUSED SVX_DLLPUBLIC OColumnTransferable : public TransferableHelper
+    class SAL_WARN_UNUSED SVX_DLLPUBLIC OColumnTransferable final : public TransferableHelper
     {
-    protected:
-        ODataAccessDescriptor      m_aDescriptor;
-        OUString                   m_sCompatibleFormat;
-        ColumnTransferFormatFlags  m_nFormatFlags;
-
     public:
         /** construct the transferable
         */
@@ -152,14 +147,13 @@ namespace svx
         */
         void addDataToContainer( TransferDataContainer* _pContainer );
 
-    protected:
+    private:
         // TransferableHelper overridables
         virtual void        AddSupportedFormats() override;
         virtual bool GetData( const css::datatransfer::DataFlavor& rFlavor, const OUString& rDestDoc ) override;
 
         static SotClipboardFormatId  getDescriptorFormatId();
 
-    private:
         SVX_DLLPRIVATE void implConstruct(
             const OUString&  _rDatasource
             ,const OUString& _rConnectionResource
@@ -167,6 +161,10 @@ namespace svx
             ,const OUString& _rCommand
             ,const OUString& _rFieldName
         );
+
+        ODataAccessDescriptor      m_aDescriptor;
+        OUString                   m_sCompatibleFormat;
+        ColumnTransferFormatFlags  m_nFormatFlags;
     };
 
 
@@ -260,10 +258,8 @@ namespace svx
 
     /** class for transferring multiple columns
     */
-    class SAL_WARN_UNUSED SVX_DLLPUBLIC OMultiColumnTransferable : public TransferableHelper
+    class SAL_WARN_UNUSED SVX_DLLPUBLIC OMultiColumnTransferable final : public TransferableHelper
     {
-        css::uno::Sequence< css::beans::PropertyValue >   m_aDescriptors;
-
     public:
         OMultiColumnTransferable(const css::uno::Sequence< css::beans::PropertyValue >& _aDescriptors);
 
@@ -279,11 +275,13 @@ namespace svx
         */
         static css::uno::Sequence< css::beans::PropertyValue > extractDescriptor(const TransferableDataHelper& _rData);
 
-    protected:
+    private:
         virtual void        AddSupportedFormats() override;
         virtual bool GetData( const css::datatransfer::DataFlavor& rFlavor, const OUString& rDestDoc ) override;
         virtual void        ObjectReleased() override;
         static SotClipboardFormatId  getDescriptorFormatId();
+
+        css::uno::Sequence< css::beans::PropertyValue >   m_aDescriptors;
     };
 
 
diff --git a/include/svx/dbaobjectex.hxx b/include/svx/dbaobjectex.hxx
index 777c0e6e6831..533b53624f96 100644
--- a/include/svx/dbaobjectex.hxx
+++ b/include/svx/dbaobjectex.hxx
@@ -34,11 +34,8 @@ namespace svx
 
     //= OComponentTransferable
 
-    class SAL_WARN_UNUSED SVX_DLLPUBLIC OComponentTransferable : public TransferableHelper
+    class SAL_WARN_UNUSED SVX_DLLPUBLIC OComponentTransferable final : public TransferableHelper
     {
-    protected:
-        ODataAccessDescriptor   m_aDescriptor;
-
     public:
         /** construct the transferable
         */
@@ -58,12 +55,14 @@ namespace svx
         static ODataAccessDescriptor
                         extractComponentDescriptor(const TransferableDataHelper& _rData);
 
-    protected:
+    private:
         // TransferableHelper overridables
         virtual void        AddSupportedFormats() override;
         virtual bool GetData( const css::datatransfer::DataFlavor& rFlavor, const OUString& rDestDoc ) override;
 
         static SotClipboardFormatId getDescriptorFormatId(bool _bExtractForm);
+
+        ODataAccessDescriptor   m_aDescriptor;
     };
 
 
diff --git a/include/svx/dialcontrol.hxx b/include/svx/dialcontrol.hxx
index dd485efb50a1..a62377f8251a 100644
--- a/include/svx/dialcontrol.hxx
+++ b/include/svx/dialcontrol.hxx
@@ -30,7 +30,7 @@ class NumericField;
 namespace svx {
 
 
-class SAL_WARN_UNUSED DialControlBmp : public VirtualDevice
+class SAL_WARN_UNUSED DialControlBmp final : public VirtualDevice
 {
 public:
     explicit            DialControlBmp( vcl::Window& rParent );
@@ -42,10 +42,6 @@ public:
     void                DrawBackground();
     void                DrawElements( const OUString& rText, sal_Int32 nAngle );
 
-protected:
-    tools::Rectangle           maRect;
-    bool                mbEnabled;
-
 private:
     const Color&        GetBackgroundColor() const;
     const Color&        GetTextColor() const;
@@ -55,6 +51,8 @@ private:
 
     void                Init();
 
+    tools::Rectangle    maRect;
+    bool                mbEnabled;
     vcl::Window&        mrParent;
     long                mnCenterX;
     long                mnCenterY;
diff --git a/include/svx/dlgctl3d.hxx b/include/svx/dlgctl3d.hxx
index 589bd33b9ac2..7e78d6e33d78 100644
--- a/include/svx/dlgctl3d.hxx
+++ b/include/svx/dlgctl3d.hxx
@@ -133,9 +133,8 @@ public:
     basegfx::B3DVector GetLightDirection(sal_uInt32 nNum) const;
 };
 
-class SAL_WARN_UNUSED SVX_DLLPUBLIC SvxLightCtl3D : public Control
+class SAL_WARN_UNUSED SVX_DLLPUBLIC SvxLightCtl3D final : public Control
 {
-private:
     // local controls
     VclPtr<Svx3DLightControl>  maLightControl;
     VclPtr<ScrollBar>          maHorScroller;
@@ -171,7 +170,7 @@ public:
 
     virtual Size GetOptimalSize() const override;
 
-protected:
+private:
 
     DECL_LINK( InternalInteractiveChange, Svx3DLightControl*, void);
     DECL_LINK( InternalSelectionChange, Svx3DLightControl*, void);
diff --git a/include/svx/dlgctrl.hxx b/include/svx/dlgctrl.hxx
index 13387f123317..26cfb511700c 100644
--- a/include/svx/dlgctrl.hxx
+++ b/include/svx/dlgctrl.hxx
@@ -144,12 +144,9 @@ public:
 |* Control for editing bitmaps
 \************************************************************************/
 
-class SAL_WARN_UNUSED SVX_DLLPUBLIC SvxPixelCtl : public Control
+class SAL_WARN_UNUSED SVX_DLLPUBLIC SvxPixelCtl final : public Control
 {
 private:
-    using OutputDevice::SetLineColor;
-
-protected:
     sal_uInt16      nLines, nSquares;
     Color       aPixelColor;
     Color       aBackgroundColor;
@@ -160,6 +157,8 @@ protected:
     Point       aFocusPosition;
     rtl::Reference<SvxPixelCtlAccessible>  m_xAccess;
 
+    using OutputDevice::SetLineColor;
+
     tools::Rectangle   implCalFocusRect( const Point& aPosition );
     void    ChangePixel( sal_uInt16 nPixel );
 
diff --git a/include/svx/extrud3d.hxx b/include/svx/extrud3d.hxx
index 2c2d9d9e1b9e..5ce35f7080d0 100644
--- a/include/svx/extrud3d.hxx
+++ b/include/svx/extrud3d.hxx
@@ -29,7 +29,7 @@
 |*
 \************************************************************************/
 
-class SAL_WARN_UNUSED SVX_DLLPUBLIC E3dExtrudeObj : public E3dCompoundObject
+class SAL_WARN_UNUSED SVX_DLLPUBLIC E3dExtrudeObj final : public E3dCompoundObject
 {
 private:
     // to allow sdr::properties::E3dExtrudeProperties access to SetGeometryValid()
@@ -38,7 +38,6 @@ private:
     // geometry, which determines the object
     basegfx::B2DPolyPolygon         maExtrudePolygon;
 
-protected:
     virtual sdr::contact::ViewContact* CreateObjectSpecificViewContact() override;
     virtual sdr::properties::BaseProperties* CreateObjectSpecificProperties() override;
     void SetDefaultAttributes(E3dDefaultAttributes const & rDefault);
diff --git a/include/svx/galmisc.hxx b/include/svx/galmisc.hxx
index e3a8f86fbb10..82deef1c70c0 100644
--- a/include/svx/galmisc.hxx
+++ b/include/svx/galmisc.hxx
@@ -134,13 +134,11 @@ class Gallery;
 class GalleryTheme;
 class GraphicObject;
 
-class GalleryTransferable : public TransferableHelper
+class GalleryTransferable final : public TransferableHelper
 {
 friend class GalleryTheme;
 using TransferableHelper::CopyToClipboard;
 
-private:
-
     GalleryTheme*                   mpTheme;
     SgaObjKind                      meObjectKind;
     sal_uInt32                      mnObjectPos;
@@ -149,8 +147,6 @@ private:
     ImageMap*                       mpImageMap;
     INetURLObject*                  mpURL;
 
-protected:
-
                                     GalleryTransferable( GalleryTheme* pTheme, sal_uIntPtr nObjectPos, bool bLazy );
                                     virtual ~GalleryTransferable() override;
 
diff --git a/include/svx/gridctrl.hxx b/include/svx/gridctrl.hxx
index 319b5d97c896..17755af8f086 100644
--- a/include/svx/gridctrl.hxx
+++ b/include/svx/gridctrl.hxx
@@ -512,11 +512,10 @@ public:
     void                        setGridListener( FmGridListener* _pListener ) { m_pGridListener = _pListener; }
 
     // helper class to grant access to selected methods from within the DbCellControl class
-    struct GrantControlAccess
+    struct GrantControlAccess final
     {
         friend class DbCellControl;
         friend class RowSetEventListener;
-    protected:
         GrantControlAccess() { }
     };
 
diff --git a/include/svx/lathe3d.hxx b/include/svx/lathe3d.hxx
index d2dc16a76c54..5a7608999181 100644
--- a/include/svx/lathe3d.hxx
+++ b/include/svx/lathe3d.hxx
@@ -33,17 +33,15 @@
 |*
 \************************************************************************/
 
-class SVX_DLLPUBLIC E3dLatheObj : public E3dCompoundObject
+class SVX_DLLPUBLIC E3dLatheObj final : public E3dCompoundObject
 {
-private:
     basegfx::B2DPolyPolygon maPolyPoly2D;
 
- protected:
     virtual sdr::contact::ViewContact* CreateObjectSpecificViewContact() override;
     virtual sdr::properties::BaseProperties* CreateObjectSpecificProperties() override;
     void SetDefaultAttributes(E3dDefaultAttributes const & rDefault);
 
- public:
+public:
     E3dLatheObj(E3dDefaultAttributes& rDefault, const basegfx::B2DPolyPolygon& rPoly2D);
     E3dLatheObj();
 
diff --git a/include/svx/numvset.hxx b/include/svx/numvset.hxx
index 299ed15a0e6b..2485a1476a38 100644
--- a/include/svx/numvset.hxx
+++ b/include/svx/numvset.hxx
@@ -93,15 +93,14 @@ public:
             const css::lang::Locale& rLocale);
 };
 
-class SVX_DLLPUBLIC SvxBmpNumValueSet : public SvxNumValueSet
+class SVX_DLLPUBLIC SvxBmpNumValueSet final : public SvxNumValueSet
 {
     Idle        aFormatIdle;
     bool        bGrfNotFound;
 
     void init();
 
-protected:
-        DECL_LINK(FormatHdl_Impl, Timer *, void);
+    DECL_LINK(FormatHdl_Impl, Timer *, void);
 
 public:
     SvxBmpNumValueSet(vcl::Window* pParent, WinBits nWinBits);
@@ -109,7 +108,6 @@ public:
     virtual void dispose() override;
 
     virtual void    UserDraw( const UserDrawEvent& rUDEvt ) override;
-
 };
 
 #endif
diff --git a/include/svx/obj3d.hxx b/include/svx/obj3d.hxx
index bb3ee1a50a67..34a9dab81010 100644
--- a/include/svx/obj3d.hxx
+++ b/include/svx/obj3d.hxx
@@ -75,10 +75,8 @@ public:
 |*
 \************************************************************************/
 
-class E3dObjList : public SdrObjList
+class E3dObjList final : public SdrObjList
 {
-    E3dObjList &operator=(const E3dObjList& rSrcList) = delete;
-
 public:
     E3dObjList();
     SVX_DLLPUBLIC virtual ~E3dObjList() override;
@@ -90,7 +88,9 @@ public:
     virtual SdrObject* NbcRemoveObject(size_t nObjNum) override;
     virtual SdrObject* RemoveObject(size_t nObjNum) override;
 
-protected:
+private:
+    E3dObjList &operator=(const E3dObjList& rSrcList) = delete;
+
     SVX_DLLPUBLIC E3dObjList(const E3dObjList& rSrcList);
 };
 
diff --git a/include/svx/paraprev.hxx b/include/svx/paraprev.hxx
index e604ffbd867f..49c513af7e4c 100644
--- a/include/svx/paraprev.hxx
+++ b/include/svx/paraprev.hxx
@@ -33,10 +33,8 @@ enum class SvxPrevLineSpace
     Leading
 };
 
-class SVX_DLLPUBLIC SvxParaPrevWindow : public vcl::Window
+class SVX_DLLPUBLIC SvxParaPrevWindow final : public vcl::Window
 {
-    using Window::Draw;
-private:
     Size                aSize;
 
     // indentation
@@ -56,7 +54,8 @@ private:
     OUString            aText;
     tools::Rectangle    Lines[9];
 
-protected:
+    using Window::Draw;
+
     virtual void Paint(vcl::RenderContext& rRenderContext, const tools::Rectangle& rRect) override;
     virtual Size GetOptimalSize() const override;
 
diff --git a/include/svx/rubydialog.hxx b/include/svx/rubydialog.hxx
index d509c18b62d8..3b546f655313 100644
--- a/include/svx/rubydialog.hxx
+++ b/include/svx/rubydialog.hxx
@@ -34,9 +34,8 @@
 
 
 class SvxRubyDialog;
-class RubyPreview : public vcl::Window
+class RubyPreview final : public vcl::Window
 {
-protected:
     virtual void Paint(vcl::RenderContext& rRenderContext, const tools::Rectangle& rRect) override;
     VclPtr<SvxRubyDialog> m_pParentDlg;
 
diff --git a/include/svx/sdr/animation/animationstate.hxx b/include/svx/sdr/animation/animationstate.hxx
index 85c5b1159cbb..368583820d6f 100644
--- a/include/svx/sdr/animation/animationstate.hxx
+++ b/include/svx/sdr/animation/animationstate.hxx
@@ -37,9 +37,8 @@ namespace sdr
 {
     namespace animation
     {
-        class PrimitiveAnimation : public Event
+        class PrimitiveAnimation final : public Event
         {
-        protected:
             // the animated VOC
             sdr::contact::ViewObjectContact&                    mrVOContact;
 
diff --git a/include/svx/sdr/contact/objectcontactofobjlistpainter.hxx b/include/svx/sdr/contact/objectcontactofobjlistpainter.hxx
index 63f1247466ab..380e927ca568 100644
--- a/include/svx/sdr/contact/objectcontactofobjlistpainter.hxx
+++ b/include/svx/sdr/contact/objectcontactofobjlistpainter.hxx
@@ -45,9 +45,8 @@ public:
 // typedef for transferring SdrObject
 typedef ::std::vector< SdrObject* > SdrObjectVector;
 
-class SVX_DLLPUBLIC ObjectContactOfObjListPainter : public ObjectContactPainter
+class SVX_DLLPUBLIC ObjectContactOfObjListPainter final : public ObjectContactPainter
 {
-protected:
     // Target OutputDevice
     OutputDevice&                                   mrTargetOutputDevice;
 
diff --git a/include/svx/sdr/contact/viewcontactofe3dscene.hxx b/include/svx/sdr/contact/viewcontactofe3dscene.hxx
index 5e0b8ec91d0d..0d8dc2a6d424 100644
--- a/include/svx/sdr/contact/viewcontactofe3dscene.hxx
+++ b/include/svx/sdr/contact/viewcontactofe3dscene.hxx
@@ -34,14 +34,8 @@ namespace basegfx {
 
 namespace sdr { namespace contact {
 
-class SVX_DLLPUBLIC ViewContactOfE3dScene : public ViewContactOfSdrObj
+class SVX_DLLPUBLIC ViewContactOfE3dScene final : public ViewContactOfSdrObj
 {
-protected:
-    // Create a Object-Specific ViewObjectContact, set ViewContact and
-    // ObjectContact. Always needs to return something. Default is to create
-    // a standard ViewObjectContact containing the given ObjectContact and *this
-    virtual ViewObjectContact& CreateObjectSpecificViewObjectContact(ObjectContact& rObjectContact) override;
-
 public:
     // basic constructor, used from SdrObject.
     explicit ViewContactOfE3dScene(E3dScene& rScene);
@@ -73,16 +67,11 @@ public:
     drawinglayer::primitive3d::Primitive3DContainer getAllPrimitive3DContainer() const;
     basegfx::B3DRange getAllContentRange3D() const;
 
-protected:
-    // the 3d transformation stack
-    drawinglayer::geometry::ViewInformation3D           maViewInformation3D;
-
-    // the object transformation
-    basegfx::B2DHomMatrix                               maObjectTransformation;
-
-    // attributes
-    drawinglayer::attribute::SdrSceneAttribute          maSdrSceneAttribute;
-    drawinglayer::attribute::SdrLightingAttribute       maSdrLightingAttribute;
+private:
+    // Create a Object-Specific ViewObjectContact, set ViewContact and
+    // ObjectContact. Always needs to return something. Default is to create
+    // a standard ViewObjectContact containing the given ObjectContact and *this
+    virtual ViewObjectContact& CreateObjectSpecificViewObjectContact(ObjectContact& rObjectContact) override;
 
     // create methods for ViewInformation3D and ObjectTransformation
     void createViewInformation3D(const ::basegfx::B3DRange& rContentRange);
@@ -95,6 +84,16 @@ protected:
     // This method is responsible for creating the graphical visualisation data
     // ONLY based on model data
     virtual drawinglayer::primitive2d::Primitive2DContainer createViewIndependentPrimitive2DSequence() const override;
+
+    // the 3d transformation stack
+    drawinglayer::geometry::ViewInformation3D           maViewInformation3D;
+
+    // the object transformation
+    basegfx::B2DHomMatrix                               maObjectTransformation;
+
+    // attributes
+    drawinglayer::attribute::SdrSceneAttribute          maSdrSceneAttribute;
+    drawinglayer::attribute::SdrLightingAttribute       maSdrLightingAttribute;
 };
 
 }}
diff --git a/include/svx/sdr/overlay/overlayanimatedbitmapex.hxx b/include/svx/sdr/overlay/overlayanimatedbitmapex.hxx
index 85a1c012289f..e906b0126328 100644
--- a/include/svx/sdr/overlay/overlayanimatedbitmapex.hxx
+++ b/include/svx/sdr/overlay/overlayanimatedbitmapex.hxx
@@ -28,9 +28,8 @@ namespace sdr
 {
     namespace overlay
     {
-        class SVX_DLLPUBLIC OverlayAnimatedBitmapEx : public OverlayObjectWithBasePosition
+        class SVX_DLLPUBLIC OverlayAnimatedBitmapEx final : public OverlayObjectWithBasePosition
         {
-        protected:
             // the Bitmaps
             BitmapEx                                maBitmapEx1;
             BitmapEx                                maBitmapEx2;
diff --git a/include/svx/sdr/overlay/overlaybitmapex.hxx b/include/svx/sdr/overlay/overlaybitmapex.hxx
index 41dccb233e49..41f2ce1c6c2d 100644
--- a/include/svx/sdr/overlay/overlaybitmapex.hxx
+++ b/include/svx/sdr/overlay/overlaybitmapex.hxx
@@ -28,9 +28,8 @@ namespace sdr
 {
     namespace overlay
     {
-        class SVX_DLLPUBLIC OverlayBitmapEx : public OverlayObjectWithBasePosition
+        class SVX_DLLPUBLIC OverlayBitmapEx final : public OverlayObjectWithBasePosition
         {
-        protected:
             // the Bitmap itself
             BitmapEx                                maBitmapEx;
 
diff --git a/include/svx/sdr/overlay/overlayobjectlist.hxx b/include/svx/sdr/overlay/overlayobjectlist.hxx
index b348b3cf3380..0774ac16e436 100644
--- a/include/svx/sdr/overlay/overlayobjectlist.hxx
+++ b/include/svx/sdr/overlay/overlayobjectlist.hxx
@@ -31,9 +31,8 @@ namespace sdr
 {
     namespace overlay
     {
-        class SVX_DLLPUBLIC OverlayObjectList
+        class SVX_DLLPUBLIC OverlayObjectList final
         {
-        protected:
             // the vector of OverlayObjects
             OverlayObjectVector                     maVector;
 
diff --git a/include/svx/sdr/overlay/overlaypolypolygon.hxx b/include/svx/sdr/overlay/overlaypolypolygon.hxx
index bcdf90f8e5f2..599bd5298317 100644
--- a/include/svx/sdr/overlay/overlaypolypolygon.hxx
+++ b/include/svx/sdr/overlay/overlaypolypolygon.hxx
@@ -29,9 +29,8 @@ namespace sdr
 {
     namespace overlay
     {
-        class SVX_DLLPUBLIC OverlayPolyPolygonStripedAndFilled : public OverlayObject
+        class SVX_DLLPUBLIC OverlayPolyPolygonStripedAndFilled final : public OverlayObject
         {
-        protected:
             // geometry
             basegfx::B2DPolyPolygon             maLinePolyPolygon;
 
diff --git a/include/svx/sdr/overlay/overlayprimitive2dsequenceobject.hxx b/include/svx/sdr/overlay/overlayprimitive2dsequenceobject.hxx
index 8963c6cca123..4189d70620d2 100644
--- a/include/svx/sdr/overlay/overlayprimitive2dsequenceobject.hxx
+++ b/include/svx/sdr/overlay/overlayprimitive2dsequenceobject.hxx
@@ -29,9 +29,8 @@ namespace sdr
 {
     namespace overlay
     {
-        class SVX_DLLPUBLIC OverlayPrimitive2DSequenceObject : public OverlayObjectWithBasePosition
+        class SVX_DLLPUBLIC OverlayPrimitive2DSequenceObject final : public OverlayObjectWithBasePosition
         {
-        protected:
             // the sequence of primitives to show
             const drawinglayer::primitive2d::Primitive2DContainer    maSequence;
 
diff --git a/include/svx/sdr/overlay/overlayselection.hxx b/include/svx/sdr/overlay/overlayselection.hxx
index f92874301fc1..f849c1568af7 100644
--- a/include/svx/sdr/overlay/overlayselection.hxx
+++ b/include/svx/sdr/overlay/overlayselection.hxx
@@ -36,9 +36,8 @@ namespace sdr
             Transparent
         };
 
-        class SVX_DLLPUBLIC OverlaySelection : public OverlayObject
+        class SVX_DLLPUBLIC OverlaySelection final : public OverlayObject
         {
-        protected:
             // type of overlay
             OverlayType                         meOverlayType;
 
diff --git a/include/svx/sdr/overlay/overlaytriangle.hxx b/include/svx/sdr/overlay/overlaytriangle.hxx
index 5ef25d56426d..b5b68b8ce766 100644
--- a/include/svx/sdr/overlay/overlaytriangle.hxx
+++ b/include/svx/sdr/overlay/overlaytriangle.hxx
@@ -26,9 +26,8 @@ namespace sdr
 {
     namespace overlay
     {
-        class SVX_DLLPUBLIC OverlayTriangle : public OverlayObjectWithBasePosition
+        class SVX_DLLPUBLIC OverlayTriangle final : public OverlayObjectWithBasePosition
         {
-        protected:
             // second and third position in pixel
             basegfx::B2DPoint                       maSecondPosition;
             basegfx::B2DPoint                       maThirdPosition;
diff --git a/include/svx/sphere3d.hxx b/include/svx/sphere3d.hxx
index c612080185bc..b6742c0e6ecb 100644
--- a/include/svx/sphere3d.hxx
+++ b/include/svx/sphere3d.hxx
@@ -27,13 +27,12 @@
  * SphereObject with diameter r3DSize.
  * The count of planes depends on the horizontal and vertical segment count.
  */
-class SVX_DLLPUBLIC E3dSphereObj : public E3dCompoundObject
+class SVX_DLLPUBLIC E3dSphereObj final : public E3dCompoundObject
 {
 private:
     basegfx::B3DPoint               aCenter;
     basegfx::B3DVector              aSize;
 
-protected:
     virtual sdr::contact::ViewContact* CreateObjectSpecificViewContact() override;
     virtual sdr::properties::BaseProperties* CreateObjectSpecificProperties() override;
     void SetDefaultAttributes(E3dDefaultAttributes& rDefault);
diff --git a/include/svx/svddrag.hxx b/include/svx/svddrag.hxx
index 4766863a045d..278bbc0a621c 100644
--- a/include/svx/svddrag.hxx
+++ b/include/svx/svddrag.hxx
@@ -43,8 +43,8 @@ struct SVX_DLLPUBLIC SdrDragStatUserData
     virtual ~SdrDragStatUserData() = 0;
 };
 
-class SVX_DLLPUBLIC SdrDragStat {
-protected:
+class SVX_DLLPUBLIC SdrDragStat final
+{
     SdrHdl*  pHdl;      // The Handle for the User
     SdrView* pView;
     SdrPageView* pPageView;
@@ -76,8 +76,8 @@ protected:
     std::unique_ptr<SdrDragStatUserData>  mpUserData;     // Userdata
 
     void Clear(bool bLeaveOne);
-protected:
     Point&       Pnt(sal_uIntPtr nNum)               { return mvPnts[nNum]; }
+
 public:
     SdrDragStat()                                    { Reset(); }
     ~SdrDragStat();
diff --git a/include/svx/svdhdl.hxx b/include/svx/svdhdl.hxx
index 1c83e09aac5d..bec106d71635 100644
--- a/include/svx/svdhdl.hxx
+++ b/include/svx/svdhdl.hxx
@@ -322,12 +322,11 @@ public:
 
 
 // Spiegelachse
-class SdrHdlLine: public SdrHdl
+class SdrHdlLine final : public SdrHdl
 {
     // create marker for this kind
     virtual void CreateB2dIAObject() override;
 
-protected:
     SdrHdl*                     pHdl1;
     SdrHdl*                     pHdl2;
 
@@ -341,18 +340,18 @@ public:
 // a SdrHdlBezWgt knows about its "base handle". Its draw method
 // draws additionally a line from its position to the position
 // of the base handle
-class SdrHdlBezWgt: public SdrHdl
+class SdrHdlBezWgt final : public SdrHdl
 {
-    // create marker for this kind
-    virtual void CreateB2dIAObject() override;
-
-protected:
-    const SdrHdl* pHdl1;
-
 public:
     // this is not a Copy-Ctor!!!
     SdrHdlBezWgt(const SdrHdl* pRefHdl1, SdrHdlKind eNewKind=SdrHdlKind::BezierWeight) { eKind=eNewKind; pHdl1=pRefHdl1; }
     virtual ~SdrHdlBezWgt() override;
+
+private:
+    // create marker for this kind
+    virtual void CreateB2dIAObject() override;
+
+    const SdrHdl* pHdl1;
 };
 
 
@@ -468,14 +467,8 @@ public:
 };
 
 
-class SVX_DLLPUBLIC SdrCropHdl : public SdrHdl
+class SVX_DLLPUBLIC SdrCropHdl final : public SdrHdl
 {
-private:
-    // evtl. shear and rotation, equal to the object's one to allow adaption of
-    // the visualization handles
-    double          mfShearX;
-    double          mfRotation;
-
 public:
     SdrCropHdl(
         const Point& rPnt,
@@ -483,11 +476,16 @@ public:
         double fShearX,
         double fRotation);
 
-protected:
+private:
     // create marker for this kind
     virtual void CreateB2dIAObject() override;
 
     BitmapEx GetBitmapForHandle( const BitmapEx& rBitmap, int nSize );
+
+    // evtl. shear and rotation, equal to the object's one to allow adaption of
+    // the visualization handles
+    double          mfShearX;
+    double          mfRotation;
 };
 
 
diff --git a/include/svx/svdmark.hxx b/include/svx/svdmark.hxx
index 1ad4b7e937aa..071f1ce568cb 100644
--- a/include/svx/svdmark.hxx
+++ b/include/svx/svdmark.hxx
@@ -40,11 +40,8 @@ typedef std::set<sal_uInt16> SdrUShortCont;
 /**
  * Everything a View needs to know about a selected object
  */
-class SVX_DLLPUBLIC SdrMark : public sdr::ObjectUser
+class SVX_DLLPUBLIC SdrMark final : public sdr::ObjectUser
 {
-private:
-    void setTime();
-protected:
     sal_Int64                                           mnTimeStamp;
     SdrObject*                                          mpSelectedSdrObject; // the selected object
     SdrPageView*                                        mpPageView;
@@ -54,6 +51,8 @@ protected:
     bool                                                mbCon2;       // for Connectors
     sal_uInt16                                          mnUser;       // E.g. for CopyObjects, also copy Edges
 
+    void setTime();
+
 public:
     explicit SdrMark(SdrObject* pNewObj = nullptr, SdrPageView* pNewPageView = nullptr);
     SdrMark(const SdrMark& rMark);
@@ -133,9 +132,8 @@ public:
     }
 };
 
-class SVX_DLLPUBLIC SdrMarkList
+class SVX_DLLPUBLIC SdrMarkList final
 {
-protected:
     std::vector<SdrMark*>                               maList;
 
     OUString                                            maMarkName;
@@ -147,10 +145,7 @@ protected:
     bool                                                mbNameOk;
     bool                                                mbSorted;
 
-private:
     SVX_DLLPRIVATE void ImpForceSort();
-
-private:
     SVX_DLLPRIVATE const OUString& GetPointMarkDescription(bool bGlue) const;
 
 public:
diff --git a/include/svx/svdocirc.hxx b/include/svx/svdocirc.hxx
index 8385cd96ca97..d3bc9c2116f5 100644
--- a/include/svx/svdocirc.hxx
+++ b/include/svx/svdocirc.hxx
@@ -38,7 +38,7 @@ public:
 
 // class SdrCircObj
 
-class SVX_DLLPUBLIC SdrCircObj : public SdrRectObj
+class SVX_DLLPUBLIC SdrCircObj final : public SdrRectObj
 {
 private:
     // to allow sdr::properties::CircleProperties access to ImpSetAttrToCircInfo()
@@ -47,15 +47,14 @@ private:
     // only for SdrCircleAttributes
     SdrObjKind GetCircleKind() const { return meCircleKind; }
 
-protected:
     virtual sdr::contact::ViewContact* CreateObjectSpecificViewContact() override;
     virtual sdr::properties::BaseProperties* CreateObjectSpecificProperties() override;
 
     SdrObjKind                  meCircleKind;
     long                        nStartAngle;
     long                        nEndAngle;
-private:
-     SVX_DLLPRIVATE basegfx::B2DPolygon ImpCalcXPolyCirc(const SdrObjKind eKind, const tools::Rectangle& rRect1, long nStart, long nEnd) const;
+
+    SVX_DLLPRIVATE basegfx::B2DPolygon ImpCalcXPolyCirc(const SdrObjKind eKind, const tools::Rectangle& rRect1, long nStart, long nEnd) const;
     SVX_DLLPRIVATE static void ImpSetCreateParams(SdrDragStat& rStat);
     SVX_DLLPRIVATE void ImpSetAttrToCircInfo(); // copy values from pool
     SVX_DLLPRIVATE void ImpSetCircInfoToAttr(); // copy values into pool
@@ -64,7 +63,6 @@ private:
     SVX_DLLPRIVATE bool PaintNeedsXPolyCirc() const; // PaintNeedsXPoly-> PaintNeedsXPolyCirc
     SVX_DLLPRIVATE virtual void RecalcXPoly() override;
 
-protected:
     virtual void Notify(SfxBroadcaster& rBC, const SfxHint& rHint) override;
 
 public:
@@ -115,7 +113,7 @@ public:
     virtual void NbcShear (const Point& rRef, long nAngle, double tn, bool bVShear) override;
     virtual SdrObject* DoConvertToPolyObj(bool bBezier, bool bAddText) const override;
 
-protected:
+private:
     virtual SdrObjGeoData* NewGeoData() const override;
     virtual void SaveGeoData(SdrObjGeoData& rGeo) const override;
     virtual void RestGeoData(const SdrObjGeoData& rGeo) override;
diff --git a/include/svx/svdoedge.hxx b/include/svx/svdoedge.hxx
index 7246c9ff3134..0ff4cba37068 100644
--- a/include/svx/svdoedge.hxx
+++ b/include/svx/svdoedge.hxx
@@ -35,13 +35,12 @@ namespace sdr { namespace properties {
 
 
 /// Utility class SdrObjConnection
-class SdrObjConnection
+class SdrObjConnection final
 {
     friend class                SdrEdgeObj;
     friend class                ImpEdgeHdl;
     friend class                SdrCreateView;
 
-protected:
     Point                       aObjOfs;       // set during dragging of a node
     SdrObject*                  pObj;          // referenced object
     sal_uInt16                  nConId;        // connector number
diff --git a/include/svx/svdogrp.hxx b/include/svx/svdogrp.hxx
index 99e0a696b980..f15a9b92fb47 100644
--- a/include/svx/svdogrp.hxx
+++ b/include/svx/svdogrp.hxx
@@ -36,10 +36,9 @@ class SfxItemSet;
 //   SdrObjGroup
 
 
-class SVX_DLLPUBLIC SdrObjGroup : public SdrObject
+class SVX_DLLPUBLIC SdrObjGroup final : public SdrObject
 {
 private:
-protected:
     virtual sdr::contact::ViewContact* CreateObjectSpecificViewContact() override;
     virtual sdr::properties::BaseProperties* CreateObjectSpecificProperties() override;
 
diff --git a/include/svx/svdomedia.hxx b/include/svx/svdomedia.hxx
index 793055aa1491..27d113cf9ee9 100644
--- a/include/svx/svdomedia.hxx
+++ b/include/svx/svdomedia.hxx
@@ -30,7 +30,7 @@ class Graphic;
 namespace sdr { namespace contact { class ViewContactOfSdrMediaObj; } }
 
 
-class SVX_DLLPUBLIC SdrMediaObj : public SdrRectObj
+class SVX_DLLPUBLIC SdrMediaObj final : public SdrRectObj
 {
     friend class sdr::contact::ViewContactOfSdrMediaObj;
 
@@ -69,12 +69,11 @@ public:
                                     GetInputStream();
         void                        SetInputStream(css::uno::Reference<css::io::XInputStream> const&);
 
-protected:
+private:
 
         void                mediaPropertiesChanged( const ::avmedia::MediaItem& rNewState );
         virtual sdr::contact::ViewContact* CreateObjectSpecificViewContact() override;
 
-private:
         struct Impl;
         std::unique_ptr<Impl> m_xImpl;
 };
diff --git a/include/svx/svdopath.hxx b/include/svx/svdopath.hxx
index aa93f3cfca91..465ef0c6a702 100644
--- a/include/svx/svdopath.hxx
+++ b/include/svx/svdopath.hxx
@@ -42,12 +42,11 @@ public:
 };
 
 
-class SVX_DLLPUBLIC SdrPathObj : public SdrTextObj
+class SVX_DLLPUBLIC SdrPathObj final : public SdrTextObj
 {
 private:
     friend class ImpPathForDragAndCreate;
 
-protected:
     virtual sdr::contact::ViewContact* CreateObjectSpecificViewContact() override;
 
     basegfx::B2DPolyPolygon maPathPolygon;
@@ -129,7 +128,7 @@ public:
     // rip at given point
     SdrObject* RipPoint(sal_uInt32 nHdlNum, sal_uInt32& rNewPt0Index);
 
-protected:
+private:
     virtual SdrObjGeoData* NewGeoData() const override;
     virtual void SaveGeoData(SdrObjGeoData& rGeo) const override;
     virtual void RestGeoData(const SdrObjGeoData& rGeo) override;
diff --git a/include/svx/svdpage.hxx b/include/svx/svdpage.hxx
index 54b8a6ede4d9..060274eaa683 100644
--- a/include/svx/svdpage.hxx
+++ b/include/svx/svdpage.hxx
@@ -287,13 +287,14 @@ public:
     const tools::Rectangle& GetUserArea() const                   { return aUserArea; }
 };
 
-class SVX_DLLPUBLIC SdrPageGridFrameList {
+class SVX_DLLPUBLIC SdrPageGridFrameList final
+{
     std::vector<SdrPageGridFrame*> aList;
-private:
+
     SdrPageGridFrameList(const SdrPageGridFrameList& rSrcList) = delete;
     void           operator=(const SdrPageGridFrameList& rSrcList) = delete;
-protected:
     SdrPageGridFrame* GetObject(sal_uInt16 i) const { return aList[i]; }
+
 public:
     SdrPageGridFrameList(): aList()                                    {}
     ~SdrPageGridFrameList()                                            { Clear(); }
diff --git a/include/svx/svdsob.hxx b/include/svx/svdsob.hxx
index ac84a9bada1b..21ef323040ff 100644
--- a/include/svx/svdsob.hxx
+++ b/include/svx/svdsob.hxx
@@ -30,9 +30,8 @@
  Stores a bitfield of the layer values that have been set.
 */
 
-class SVX_DLLPUBLIC SdrLayerIDSet
+class SVX_DLLPUBLIC SdrLayerIDSet final
 {
-protected:
     sal_uInt8 aData[32];
 
 public:
diff --git a/include/svx/svdundo.hxx b/include/svx/svdundo.hxx
index f46b0b3c0d80..d14eb77d9e36 100644
--- a/include/svx/svdundo.hxx
+++ b/include/svx/svdundo.hxx
@@ -83,9 +83,8 @@ public:
  * added (FIFO).
  */
 
-class SVX_DLLPUBLIC SdrUndoGroup : public SdrUndoAction
+class SVX_DLLPUBLIC SdrUndoGroup final : public SdrUndoAction
 {
-protected:
     std::vector<SdrUndoAction*> aBuf;
 
     // No expanded description of the Action (contains %O)
@@ -181,9 +180,8 @@ public:
  * Create Action right before moving.
  */
 
-class SVX_DLLPUBLIC SdrUndoMoveObj : public SdrUndoObj
+class SVX_DLLPUBLIC SdrUndoMoveObj final : public SdrUndoObj
 {
-protected:
     Size                        aDistance;     // Distance by which we move
 
 public:
@@ -368,9 +366,8 @@ public:
     virtual OUString GetComment() const override;
 };
 
-class SdrUndoObjOrdNum : public SdrUndoObj
+class SdrUndoObjOrdNum final : public SdrUndoObj
 {
-protected:
     sal_uInt32                      nOldOrdNum;
     sal_uInt32                      nNewOrdNum;
 
@@ -386,9 +383,8 @@ public:
 
 // #i11702#
 
-class SVX_DLLPUBLIC SdrUndoObjectLayerChange : public SdrUndoObj
+class SVX_DLLPUBLIC SdrUndoObjectLayerChange final : public SdrUndoObj
 {
-protected:
     SdrLayerID                  maOldLayer;
     SdrLayerID                  maNewLayer;
 
@@ -429,7 +425,7 @@ public:
  * Implement Title/Description Elements UI for Writer
  * text frames, graphics and embedded objects (#i73249#)
  */
-class SdrUndoObjStrAttr : public SdrUndoObj
+class SdrUndoObjStrAttr final : public SdrUndoObj
 {
 public:
     enum class ObjStrAttrType
@@ -439,12 +435,6 @@ public:
         Description
     };
 
-protected:
-    const ObjStrAttrType meObjStrAttr;
-    const OUString msOldStr;
-    const OUString msNewStr;
-
-public:
     SdrUndoObjStrAttr( SdrObject& rNewObj,
                        const ObjStrAttrType eObjStrAttr,
                        const OUString& sOldStr,
@@ -454,6 +444,12 @@ public:
     virtual void Redo() override;
 
     virtual OUString GetComment() const override;
+
+private:
+    const ObjStrAttrType meObjStrAttr;
+    const OUString msOldStr;
+    const OUString msNewStr;
+
 };
 
 
@@ -644,9 +640,8 @@ public:
  * Create Action before moving the Page.
  */
 
-class SVX_DLLPUBLIC SdrUndoSetPageNum : public SdrUndoPage
+class SVX_DLLPUBLIC SdrUndoSetPageNum final : public SdrUndoPage
 {
-protected:
     sal_uInt16                      nOldPageNum;
     sal_uInt16                      nNewPageNum;
 
@@ -705,9 +700,8 @@ public:
  * Create Action before changing the MasterPageDescriptors.
  */
 
-class SVX_DLLPUBLIC SdrUndoPageChangeMasterPage : public SdrUndoPageMasterPage
+class SVX_DLLPUBLIC SdrUndoPageChangeMasterPage final : public SdrUndoPageMasterPage
 {
-protected:
     bool                        mbNewHadMasterPage;
     SdrLayerIDSet                   maNewSet;
     sal_uInt16                  maNewMasterPageNumber;
diff --git a/include/svx/xdash.hxx b/include/svx/xdash.hxx
index f7e20e9a386f..e415e8b4dc19 100644
--- a/include/svx/xdash.hxx
+++ b/include/svx/xdash.hxx
@@ -30,9 +30,8 @@
 
 #include <vector>
 
-class SVX_DLLPUBLIC XDash
+class SVX_DLLPUBLIC XDash final
 {
-protected:
     css::drawing::DashStyle  eDash;
     sal_uInt16               nDots;
     sal_uInt32               nDotLen;
diff --git a/include/svx/xgrad.hxx b/include/svx/xgrad.hxx
index c9dc407c11ef..554746d8139a 100644
--- a/include/svx/xgrad.hxx
+++ b/include/svx/xgrad.hxx
@@ -27,9 +27,8 @@
 
 class Gradient;
 
-class SAL_WARN_UNUSED SVX_DLLPUBLIC XGradient
+class SAL_WARN_UNUSED SVX_DLLPUBLIC XGradient final
 {
-protected:
     css::awt::GradientStyle  eStyle;
     Color               aStartColor;
     Color               aEndColor;
diff --git a/include/svx/xhatch.hxx b/include/svx/xhatch.hxx
index cf97801b0787..ffcd8fbeff0f 100644
--- a/include/svx/xhatch.hxx
+++ b/include/svx/xhatch.hxx
@@ -28,9 +28,8 @@
 // class XHatch
 
 
-class SVX_DLLPUBLIC XHatch
+class SVX_DLLPUBLIC XHatch final
 {
-protected:
     css::drawing::HatchStyle     eStyle;
     Color           aColor;
     long            nDistance;
diff --git a/include/svx/xmleohlp.hxx b/include/svx/xmleohlp.hxx
index b2aafdac31f3..833db1690784 100644
--- a/include/svx/xmleohlp.hxx
+++ b/include/svx/xmleohlp.hxx
@@ -41,7 +41,7 @@ class SvGlobalName;
 class OutputStorageWrapper_Impl;
 
 
-class SVX_DLLPUBLIC SvXMLEmbeddedObjectHelper :
+class SVX_DLLPUBLIC SvXMLEmbeddedObjectHelper final :
     public cppu::WeakComponentImplHelper< css::document::XEmbeddedObjectResolver, css::container::XNameAccess >
 {
     ::osl::Mutex                maMutex;
@@ -83,8 +83,6 @@ class SVX_DLLPUBLIC SvXMLEmbeddedObjectHelper :
     SVX_DLLPRIVATE css::uno::Reference< css::io::XInputStream > ImplGetReplacementImage(
                                 const css::uno::Reference< css::embed::XEmbeddedObject >& xObj );
 
-protected:
-
                                 SvXMLEmbeddedObjectHelper();
                                 virtual ~SvXMLEmbeddedObjectHelper() override;
     void                        Init( const css::uno::Reference < css::embed::XStorage >&,
diff --git a/include/svx/xmlexchg.hxx b/include/svx/xmlexchg.hxx
index 6d2c0bfc1bae..6aade2cb58b1 100644
--- a/include/svx/xmlexchg.hxx
+++ b/include/svx/xmlexchg.hxx
@@ -61,9 +61,7 @@ namespace svx
 
     //= OXFormsTransferable
 
-    class SVX_DLLPUBLIC OXFormsTransferable : public TransferableHelper {
-
-        protected:
+    class SVX_DLLPUBLIC OXFormsTransferable final : public TransferableHelper {
 
             // TransferableHelper overridables
             virtual void        AddSupportedFormats() override;
diff --git a/include/svx/xmlgrhlp.hxx b/include/svx/xmlgrhlp.hxx
index 787cc0e4f95f..0c6eaa1d2124 100644
--- a/include/svx/xmlgrhlp.hxx
+++ b/include/svx/xmlgrhlp.hxx
@@ -42,11 +42,9 @@ struct SvxGraphicHelperStream_Impl
     css::uno::Reference < css::io::XStream > xStream;
 };
 
-class SVX_DLLPUBLIC SvXMLGraphicHelper : public cppu::WeakComponentImplHelper< css::document::XGraphicObjectResolver,
+class SVX_DLLPUBLIC SvXMLGraphicHelper final : public cppu::WeakComponentImplHelper< css::document::XGraphicObjectResolver,
                                                                     css::document::XBinaryStreamResolver >
 {
-private:
-
     typedef ::std::pair< OUString, OUString >                                             URLPair;
     typedef ::std::vector< URLPair >                                                                    URLPairVector;
     typedef ::std::vector< GraphicObject >                                                              GraphicObjectVector;
@@ -80,7 +78,6 @@ private:
                                                   bool bUseGfxLink );
     SVX_DLLPRIVATE void                     ImplInsertGraphicURL( const OUString& rURLStr, sal_uInt32 nInsertPos, OUString const & rRequestedFileName );
 
-protected:
                                 SvXMLGraphicHelper();
                                 virtual ~SvXMLGraphicHelper() override;
     void                        Init( const css::uno::Reference < css::embed::XStorage >& xXMLStorage,
@@ -97,8 +94,6 @@ public:
                                         bool bDirect = true );
     static rtl::Reference<SvXMLGraphicHelper> Create( SvXMLGraphicHelperMode eCreateMode );
 
-public:
-
     // XGraphicObjectResolver
     virtual OUString SAL_CALL resolveGraphicObjectURL( const OUString& aURL ) override;
 
diff --git a/include/svx/xpoly.hxx b/include/svx/xpoly.hxx
index a9d53f57e42e..2c6f848d00be 100644
--- a/include/svx/xpoly.hxx
+++ b/include/svx/xpoly.hxx
@@ -41,9 +41,8 @@ class OutputDevice;
 
 class ImpXPolygon;
 
-class SVX_DLLPUBLIC XPolygon
+class SVX_DLLPUBLIC XPolygon final
 {
-protected:
     o3tl::cow_wrapper< ImpXPolygon > pImpXPolygon;
 
     // auxiliary functions for Bezier conversion
@@ -111,9 +110,8 @@ public:
 
 class ImpXPolyPolygon;
 
-class SVX_DLLPUBLIC XPolyPolygon
+class SVX_DLLPUBLIC XPolyPolygon final
 {
-protected:
     o3tl::cow_wrapper< ImpXPolyPolygon > pImpXPolyPolygon;
 
 public:
diff --git a/svx/inc/AccessibleTableShape.hxx b/svx/inc/AccessibleTableShape.hxx
index 041457f3a6ba..7f119bcb27a8 100644
--- a/svx/inc/AccessibleTableShape.hxx
+++ b/svx/inc/AccessibleTableShape.hxx
@@ -47,9 +47,7 @@ namespace accessibility
                                             css::accessibility::XAccessibleTable,
                                             css::view::XSelectionChangeListener
                                           > AccessibleTableShape_Base;
-/** @descr
-*/
-class AccessibleTableShape : public AccessibleTableShape_Base, public css::accessibility::XAccessibleTableSelection
+class AccessibleTableShape final : public AccessibleTableShape_Base, public css::accessibility::XAccessibleTableSelection
 {
 public:
     AccessibleTableShape( const AccessibleShapeInfo& rShapeInfo, const AccessibleShapeTreeInfo& rShapeTreeInfo );
@@ -130,7 +128,7 @@ public:
     // Get the currently active cell which is text editing
     AccessibleCell* GetActiveAccessibleCell();
 
-protected:
+private:
     virtual OUString CreateAccessibleBaseName() override;
 
     sdr::table::SvxTableController* getTableController();
@@ -138,7 +136,6 @@ protected:
     /// @throws css::lang::IndexOutOfBoundsException
     void checkCellPosition( sal_Int32 nCol, sal_Int32 nRow );
 
-private:
     rtl::Reference< AccessibleTableShapeImpl > mxImpl;
     sal_Int32 GetIndexOfSelectedChild( sal_Int32 nSelectedChildIndex ) const;
 };
diff --git a/svx/inc/sdr/contact/objectcontactofpageview.hxx b/svx/inc/sdr/contact/objectcontactofpageview.hxx
index 043fed599065..3f081299e926 100644
--- a/svx/inc/sdr/contact/objectcontactofpageview.hxx
+++ b/svx/inc/sdr/contact/objectcontactofpageview.hxx
@@ -30,9 +30,8 @@ namespace sdr
 {
     namespace contact
     {
-        class ObjectContactOfPageView : public ObjectContact, public Idle
+        class ObjectContactOfPageView final : public ObjectContact, public Idle
         {
-        protected:
             // the owner of this ObjectContactOfPageView. Set from constructor and not
             // to be changed in any way.
             SdrPageWindow&                                      mrPageWindow;
diff --git a/svx/inc/sdr/contact/viewcontactofgroup.hxx b/svx/inc/sdr/contact/viewcontactofgroup.hxx
index 48c113dbaf20..2dafa4ae9a47 100644
--- a/svx/inc/sdr/contact/viewcontactofgroup.hxx
+++ b/svx/inc/sdr/contact/viewcontactofgroup.hxx
@@ -28,9 +28,14 @@ namespace sdr
 {
     namespace contact
     {
-        class ViewContactOfGroup : public ViewContactOfSdrObj
+        class ViewContactOfGroup final : public ViewContactOfSdrObj
         {
-        protected:
+        public:
+            // basic constructor, used from SdrObject.
+            explicit ViewContactOfGroup(SdrObjGroup& rGroup);
+            virtual ~ViewContactOfGroup() override;
+
+        private:
             // Create a Object-Specific ViewObjectContact, set ViewContact and
             // ObjectContact. Always needs to return something. Default is to create
             // a standard ViewObjectContact containing the given ObjectContact and *this
@@ -42,12 +47,6 @@ namespace sdr
                 return static_cast<const SdrObjGroup&>(GetSdrObject());
             }
 
-        public:
-            // basic constructor, used from SdrObject.
-            explicit ViewContactOfGroup(SdrObjGroup& rGroup);
-            virtual ~ViewContactOfGroup() override;
-
-        protected:
             // This method is responsible for creating the graphical visualisation data
             // ONLY based on model data
             virtual drawinglayer::primitive2d::Primitive2DContainer createViewIndependentPrimitive2DSequence() const override;
diff --git a/svx/inc/sdr/contact/viewcontactofmasterpagedescriptor.hxx b/svx/inc/sdr/contact/viewcontactofmasterpagedescriptor.hxx
index fec21ed720d6..488fe4812ca4 100644
--- a/svx/inc/sdr/contact/viewcontactofmasterpagedescriptor.hxx
+++ b/svx/inc/sdr/contact/viewcontactofmasterpagedescriptor.hxx
@@ -32,9 +32,8 @@ namespace sdr
 {
     namespace contact
     {
-        class ViewContactOfMasterPageDescriptor : public ViewContact
+        class ViewContactOfMasterPageDescriptor final : public ViewContact
         {
-        protected:
             // the owner of this ViewContact. Set from constructor and not
             // to be changed in any way.
             sdr::MasterPageDescriptor&                      mrMasterPageDescriptor;
diff --git a/svx/inc/sdr/contact/viewcontactofsdrcircobj.hxx b/svx/inc/sdr/contact/viewcontactofsdrcircobj.hxx
index d48ba3b172bb..d5b42b7e5bdd 100644
--- a/svx/inc/sdr/contact/viewcontactofsdrcircobj.hxx
+++ b/svx/inc/sdr/contact/viewcontactofsdrcircobj.hxx
@@ -28,21 +28,20 @@ namespace sdr
 {
     namespace contact
     {
-        class ViewContactOfSdrCircObj : public ViewContactOfSdrRectObj
+        class ViewContactOfSdrCircObj final : public ViewContactOfSdrRectObj
         {
-        protected:
+        public:
+            // basic constructor, used from SdrObject.
+            explicit ViewContactOfSdrCircObj(SdrCircObj& rCircObj);
+            virtual ~ViewContactOfSdrCircObj() override;
+
+        private:
             // internal access to SdrCircObj
             const SdrCircObj& GetCircObj() const
             {
                 return static_cast<const SdrCircObj&>(GetSdrObject());
             }
 
-        public:
-            // basic constructor, used from SdrObject.
-            explicit ViewContactOfSdrCircObj(SdrCircObj& rCircObj);
-            virtual ~ViewContactOfSdrCircObj() override;
-
-        protected:
             // This method is responsible for creating the graphical visualisation data
             // ONLY based on model data
             virtual drawinglayer::primitive2d::Primitive2DContainer createViewIndependentPrimitive2DSequence() const override;
diff --git a/svx/inc/sdr/contact/viewcontactofsdredgeobj.hxx b/svx/inc/sdr/contact/viewcontactofsdredgeobj.hxx
index 89b72ef1f3b6..a8ad594019ab 100644
--- a/svx/inc/sdr/contact/viewcontactofsdredgeobj.hxx
+++ b/svx/inc/sdr/contact/viewcontactofsdredgeobj.hxx
@@ -28,21 +28,20 @@ namespace sdr
 {
     namespace contact
     {
-        class ViewContactOfSdrEdgeObj : public ViewContactOfTextObj
+        class ViewContactOfSdrEdgeObj final : public ViewContactOfTextObj
         {
-        protected:
+        public:
+            // basic constructor, used from SdrObject.
+            explicit ViewContactOfSdrEdgeObj(SdrEdgeObj& rEdgeObj);
+            virtual ~ViewContactOfSdrEdgeObj() override;
+
+        private:
             // internal access to SdrEdgeObj
             const SdrEdgeObj& GetEdgeObj() const
             {
                 return static_cast<const SdrEdgeObj&>(GetSdrObject());
             }
 
-        public:
-            // basic constructor, used from SdrObject.
-            explicit ViewContactOfSdrEdgeObj(SdrEdgeObj& rEdgeObj);
-            virtual ~ViewContactOfSdrEdgeObj() override;
-
-        protected:
             // This method is responsible for creating the graphical visualisation data
             // ONLY based on model data
             virtual drawinglayer::primitive2d::Primitive2DContainer createViewIndependentPrimitive2DSequence() const override;
diff --git a/svx/inc/sdr/contact/viewcontactofsdrmeasureobj.hxx b/svx/inc/sdr/contact/viewcontactofsdrmeasureobj.hxx
index 2b5dd31c2eac..f0c351c45672 100644
--- a/svx/inc/sdr/contact/viewcontactofsdrmeasureobj.hxx
+++ b/svx/inc/sdr/contact/viewcontactofsdrmeasureobj.hxx
@@ -28,21 +28,20 @@ namespace sdr
 {
     namespace contact
     {
-        class ViewContactOfSdrMeasureObj : public ViewContactOfTextObj
+        class ViewContactOfSdrMeasureObj final : public ViewContactOfTextObj
         {
-        protected:
+        public:
+            // basic constructor, used from SdrObject.
+            explicit ViewContactOfSdrMeasureObj(SdrMeasureObj& rMeasureObj);
+            virtual ~ViewContactOfSdrMeasureObj() override;
+
+        private:
             // internal access to SdrMeasureObj
             const SdrMeasureObj& GetMeasureObj() const
             {
                 return static_cast<const SdrMeasureObj&>(GetSdrObject());
             }
 
-        public:
-            // basic constructor, used from SdrObject.
-            explicit ViewContactOfSdrMeasureObj(SdrMeasureObj& rMeasureObj);
-            virtual ~ViewContactOfSdrMeasureObj() override;
-
-        protected:
             // This method is responsible for creating the graphical visualisation data
             // ONLY based on model data
             virtual drawinglayer::primitive2d::Primitive2DContainer createViewIndependentPrimitive2DSequence() const override;
diff --git a/svx/inc/sdr/contact/viewcontactofsdrobjcustomshape.hxx b/svx/inc/sdr/contact/viewcontactofsdrobjcustomshape.hxx
index 35d9db98b340..acaf4c1b8fce 100644
--- a/svx/inc/sdr/contact/viewcontactofsdrobjcustomshape.hxx
+++ b/svx/inc/sdr/contact/viewcontactofsdrobjcustomshape.hxx
@@ -28,9 +28,14 @@ namespace sdr
 {
     namespace contact
     {
-        class ViewContactOfSdrObjCustomShape : public ViewContactOfTextObj
+        class ViewContactOfSdrObjCustomShape final : public ViewContactOfTextObj
         {
-        protected:
+        public:
+            // basic constructor, used from SdrObject.
+            explicit ViewContactOfSdrObjCustomShape(SdrObjCustomShape& rCustomShape);
+            virtual ~ViewContactOfSdrObjCustomShape() override;
+
+        private:
             // internal access to SdrObjCustomShape
             const SdrObjCustomShape& GetCustomShapeObj() const
             {
@@ -40,12 +45,6 @@ namespace sdr
             // #i101684# internal tooling
             basegfx::B2DRange getCorrectedTextBoundRect() const;
 
-        public:
-            // basic constructor, used from SdrObject.
-            explicit ViewContactOfSdrObjCustomShape(SdrObjCustomShape& rCustomShape);
-            virtual ~ViewContactOfSdrObjCustomShape() override;
-
-        protected:
             // This method is responsible for creating the graphical visualisation data
             // ONLY based on model data
             virtual drawinglayer::primitive2d::Primitive2DContainer createViewIndependentPrimitive2DSequence() const override;
diff --git a/svx/inc/sdr/contact/viewcontactofsdrpage.hxx b/svx/inc/sdr/contact/viewcontactofsdrpage.hxx
index 2342b78aae84..0021148bc56c 100644
--- a/svx/inc/sdr/contact/viewcontactofsdrpage.hxx
+++ b/svx/inc/sdr/contact/viewcontactofsdrpage.hxx
@@ -129,9 +129,8 @@ public:
     virtual ViewContact& GetViewContact(sal_uInt32 nIndex) const override;
 };
 
-class ViewContactOfGrid : public ViewContactOfPageSubObject
+class ViewContactOfGrid final : public ViewContactOfPageSubObject
 {
-protected:
     bool                                        mbFront : 1;
 
     virtual ViewObjectContact& CreateObjectSpecificViewObjectContact(ObjectContact& rObjectContact) override;
@@ -144,9 +143,8 @@ public:
     bool getFront() const { return mbFront; }
 };
 
-class ViewContactOfHelplines : public ViewContactOfPageSubObject
+class ViewContactOfHelplines final : public ViewContactOfPageSubObject
 {
-protected:
     bool                                        mbFront : 1;
 
     virtual ViewObjectContact& CreateObjectSpecificViewObjectContact(ObjectContact& rObjectContact) override;
diff --git a/svx/inc/sdr/contact/viewcontactofsdrpathobj.hxx b/svx/inc/sdr/contact/viewcontactofsdrpathobj.hxx
index bda545795f76..bbb7d264704f 100644
--- a/svx/inc/sdr/contact/viewcontactofsdrpathobj.hxx
+++ b/svx/inc/sdr/contact/viewcontactofsdrpathobj.hxx
@@ -28,21 +28,20 @@ namespace sdr
 {
     namespace contact
     {
-        class ViewContactOfSdrPathObj : public ViewContactOfTextObj
+        class ViewContactOfSdrPathObj final : public ViewContactOfTextObj
         {
-        protected:
+        public:
+            // basic constructor, used from SdrObject.
+            explicit ViewContactOfSdrPathObj(SdrPathObj& rTextObj);
+            virtual ~ViewContactOfSdrPathObj() override;
+
+        private:
             // internal access to SdrPathObj
             const SdrPathObj& GetPathObj() const
             {
                 return static_cast<const SdrPathObj&>(GetSdrObject());
             }
 
-        public:
-            // basic constructor, used from SdrObject.
-            explicit ViewContactOfSdrPathObj(SdrPathObj& rTextObj);
-            virtual ~ViewContactOfSdrPathObj() override;
-
-        protected:
             // This method is responsible for creating the graphical visualisation data
             // ONLY based on model data
             virtual drawinglayer::primitive2d::Primitive2DContainer createViewIndependentPrimitive2DSequence() const override;
diff --git a/svx/inc/sdr/contact/viewobjectcontactofe3d.hxx b/svx/inc/sdr/contact/viewobjectcontactofe3d.hxx
index 957b2665b2a7..9a50c59fa7d1 100644
--- a/svx/inc/sdr/contact/viewobjectcontactofe3d.hxx
+++ b/svx/inc/sdr/contact/viewobjectcontactofe3d.hxx
@@ -31,9 +31,8 @@ namespace sdr
 {
     namespace contact
     {
-        class ViewObjectContactOfE3d : public ViewObjectContactOfSdrObj
+        class ViewObjectContactOfE3d final : public ViewObjectContactOfSdrObj
         {
-        protected:
             // Primitive3D sequence of the ViewContact. This contains all necessary information
             // for the graphical visualisation and needs to be supported by all VCs which
             // can be visualized.
diff --git a/svx/inc/sdr/contact/viewobjectcontactofgraphic.hxx b/svx/inc/sdr/contact/viewobjectcontactofgraphic.hxx
index 4ea4ed8e82c3..40c57cb0eacd 100644
--- a/svx/inc/sdr/contact/viewobjectcontactofgraphic.hxx
+++ b/svx/inc/sdr/contact/viewobjectcontactofgraphic.hxx
@@ -33,9 +33,8 @@ namespace sdr
 {
     namespace contact
     {
-        class ViewObjectContactOfGraphic : public ViewObjectContactOfSdrObj
+        class ViewObjectContactOfGraphic final : public ViewObjectContactOfSdrObj
         {
-        private:
             // allow async loading event helper to call tooling methods
             friend class sdr::event::AsynchGraphicLoadingEvent;
 
@@ -50,7 +49,6 @@ namespace sdr
             void doAsynchGraphicLoading();
             void forgetAsynchGraphicLoadingEvent(sdr::event::AsynchGraphicLoadingEvent const * pEvent);
 
-        protected:
             const SdrGrafObj& getSdrGrafObj() const;
             SdrGrafObj& getSdrGrafObj();
 
diff --git a/svx/inc/sdr/overlay/overlayhandle.hxx b/svx/inc/sdr/overlay/overlayhandle.hxx
index 3f76836f8577..ec7f89b47785 100644
--- a/svx/inc/sdr/overlay/overlayhandle.hxx
+++ b/svx/inc/sdr/overlay/overlayhandle.hxx
@@ -17,9 +17,8 @@
 namespace sdr { namespace overlay {
 
 
-class SVX_DLLPUBLIC OverlayHandle : public OverlayObjectWithBasePosition
+class SVX_DLLPUBLIC OverlayHandle final : public OverlayObjectWithBasePosition
 {
-protected:
     basegfx::B2DSize maSize;
     Color maStrokeColor;
 
diff --git a/svx/inc/sdr/overlay/overlayhelpline.hxx b/svx/inc/sdr/overlay/overlayhelpline.hxx
index 47783121f142..84077f10367d 100644
--- a/svx/inc/sdr/overlay/overlayhelpline.hxx
+++ b/svx/inc/sdr/overlay/overlayhelpline.hxx
@@ -28,9 +28,8 @@ namespace sdr
 {
     namespace overlay
     {
-        class OverlayHelplineStriped : public OverlayObjectWithBasePosition
+        class OverlayHelplineStriped final : public OverlayObjectWithBasePosition
         {
-        protected:
             // remember HelpLineKind
             SdrHelpLineKind                             meKind;
 
diff --git a/svx/inc/sdr/overlay/overlayline.hxx b/svx/inc/sdr/overlay/overlayline.hxx
index ba5acb35504d..33ec22c0e25d 100644
--- a/svx/inc/sdr/overlay/overlayline.hxx
+++ b/svx/inc/sdr/overlay/overlayline.hxx
@@ -27,9 +27,8 @@ namespace sdr
 {
     namespace overlay
     {
-        class OverlayLineStriped : public OverlayObjectWithBasePosition
+        class OverlayLineStriped final : public OverlayObjectWithBasePosition
         {
-        protected:
             // second position in pixel
             basegfx::B2DPoint                       maSecondPosition;
 
diff --git a/svx/inc/sdr/overlay/overlaymanagerbuffered.hxx b/svx/inc/sdr/overlay/overlaymanagerbuffered.hxx
index 0ca7953f0810..0810927a965e 100644
--- a/svx/inc/sdr/overlay/overlaymanagerbuffered.hxx
+++ b/svx/inc/sdr/overlay/overlaymanagerbuffered.hxx
@@ -30,9 +30,8 @@ namespace sdr
 {
     namespace overlay
     {
-        class OverlayManagerBuffered : public OverlayManager
+        class OverlayManagerBuffered final : public OverlayManager
         {
-        protected:
             // The VirtualDevice for draw window content buffering, this
             // is the view content without overlay
             ScopedVclPtr<VirtualDevice>             mpBufferDevice;
diff --git a/svx/inc/sdr/overlay/overlayrollingrectangle.hxx b/svx/inc/sdr/overlay/overlayrollingrectangle.hxx
index d00598f30a02..7a18f1cb4b8f 100644
--- a/svx/inc/sdr/overlay/overlayrollingrectangle.hxx
+++ b/svx/inc/sdr/overlay/overlayrollingrectangle.hxx
@@ -27,9 +27,8 @@ namespace sdr
 {
     namespace overlay
     {
-        class OverlayRollingRectangleStriped : public OverlayObjectWithBasePosition
+        class OverlayRollingRectangleStriped final : public OverlayObjectWithBasePosition
         {
-        protected:
             // second position in pixel
             basegfx::B2DPoint                       maSecondPosition;
 
diff --git a/svx/inc/svdibrow.hxx b/svx/inc/svdibrow.hxx
index c97671e2ffbe..a9cea4f085a9 100644
--- a/svx/inc/svdibrow.hxx
+++ b/svx/inc/svdibrow.hxx
@@ -30,7 +30,7 @@ class SfxItemSet;
 class ImpItemListRow;
 class BrowserMouseEvent;
 
-class SdrItemBrowserControl: public BrowseBox
+class SdrItemBrowserControl final : public BrowseBox
 {
 friend class ImpItemEdit;
     std::vector<std::unique_ptr<ImpItemListRow>> aList;
@@ -46,7 +46,6 @@ friend class ImpItemEdit;
     bool bDontHideIneffectiveItems;
     bool bDontSortItems;
 
-private:
     void ImpCtor();
     void ImpSetEntry(const ImpItemListRow& rEntry, std::size_t nEntryNum);
     void ImpSaveWhich();
@@ -54,7 +53,6 @@ private:
     std::size_t GetCurrentPos() const;
     bool BeginChangeEntry(std::size_t nPos);
 
-protected:
     virtual long GetRowCount() const override;
     virtual bool SeekRow(long nRow) override;
     virtual void PaintField(OutputDevice& rDev, const tools::Rectangle& rRect, sal_uInt16 nColumnId) const override;
@@ -64,6 +62,7 @@ protected:
     void SetDirty(); // is called for example in mode switches
     virtual tools::Rectangle GetFieldCharacterBounds(sal_Int32 _nRow,sal_Int32 _nColumnPos,sal_Int32 nIndex) override;
     virtual sal_Int32 GetFieldIndexAtPoint(sal_Int32 _nRow,sal_Int32 _nColumnPos,const Point& _rPoint) override;
+
 public:
     SdrItemBrowserControl(vcl::Window* pParent);
     virtual ~SdrItemBrowserControl() override;
diff --git a/svx/source/accessibility/ChildrenManagerImpl.hxx b/svx/source/accessibility/ChildrenManagerImpl.hxx
index 896bf00ae4fc..5998486e7cf9 100644
--- a/svx/source/accessibility/ChildrenManagerImpl.hxx
+++ b/svx/source/accessibility/ChildrenManagerImpl.hxx
@@ -71,7 +71,7 @@ typedef ::std::vector<ChildDescriptor> ChildDescriptorListType;
 
     @see ChildrenManager
 */
-class ChildrenManagerImpl
+class ChildrenManagerImpl final
     :   public MutexOwner,
         public cppu::WeakComponentImplHelper<
             css::document::XEventListener,
@@ -281,7 +281,8 @@ public:
         (css::beans::XPropertySet* pSet) override;
     virtual css::uno::Reference<css::accessibility::XAccessible>
         GetAccessibleCaption (const css::uno::Reference<css::drawing::XShape>& xShape) override;
-protected:
+
+private:
     /** This list holds the descriptors of all currently visible shapes and
         associated accessible object.
 
@@ -335,8 +336,6 @@ protected:
 
     void impl_dispose();
 
-private:
-
     ChildrenManagerImpl (const ChildrenManagerImpl&) = delete;
     ChildrenManagerImpl& operator= (const ChildrenManagerImpl&) = delete;
 
diff --git a/svx/source/customshapes/EnhancedCustomShape3d.hxx b/svx/source/customshapes/EnhancedCustomShape3d.hxx
index 8d774e3edf92..011d92ccc639 100644
--- a/svx/source/customshapes/EnhancedCustomShape3d.hxx
+++ b/svx/source/customshapes/EnhancedCustomShape3d.hxx
@@ -29,7 +29,7 @@
 
 class SdrObject;
 
-class EnhancedCustomShape3d
+class EnhancedCustomShape3d final
 {
     class Transformation2D
     {
@@ -59,11 +59,10 @@ class EnhancedCustomShape3d
 
     friend class Transformation2D;
 
-    protected:
-        static tools::Rectangle CalculateNewSnapRect( const SdrObject* pCustomShape, const tools::Rectangle& rSnapRect, const tools::Rectangle& rBoundRect, const double* pMap );
+    static tools::Rectangle CalculateNewSnapRect( const SdrObject* pCustomShape, const tools::Rectangle& rSnapRect, const tools::Rectangle& rBoundRect, const double* pMap );
 
-    public:
-        static SdrObject* Create3DObject( const SdrObject* pShape2d, const SdrObject* pCustomShape );
+public:
+    static SdrObject* Create3DObject( const SdrObject* pShape2d, const SdrObject* pCustomShape );
 };
 
 #endif
diff --git a/svx/source/dialog/imapwnd.hxx b/svx/source/dialog/imapwnd.hxx
index 27e62a763ddb..f97fd4b60ffa 100644
--- a/svx/source/dialog/imapwnd.hxx
+++ b/svx/source/dialog/imapwnd.hxx
@@ -69,7 +69,7 @@ public:
     void                    ReplaceObject( const IMapObjectPtr& pNewIMapObject ) { mpObj = pNewIMapObject; }
 };
 
-class IMapWindow : public GraphCtrl, public DropTargetHelper
+class IMapWindow final : public GraphCtrl, public DropTargetHelper
 {
     NotifyInfo          aInfo;
     ImageMap            aIMap;
@@ -82,8 +82,6 @@ class IMapWindow : public GraphCtrl, public DropTargetHelper
 
                         DECL_LINK( MenuSelectHdl, Menu*, bool );
 
-protected:
-
     // GraphCtrl
     virtual void        MouseButtonUp(const MouseEvent& rMEvt) override;
     virtual Size        GetOptimalSize() const override;
diff --git a/svx/source/gallery2/galbrws1.hxx b/svx/source/gallery2/galbrws1.hxx
index 531e92edc472..858a9559c17a 100644
--- a/svx/source/gallery2/galbrws1.hxx
+++ b/svx/source/gallery2/galbrws1.hxx
@@ -43,10 +43,8 @@ public:
 };
 
 
-class GalleryThemeListBox : public ListBox
+class GalleryThemeListBox final : public ListBox
 {
-protected:
-
     void            InitSettings();
 
     virtual void    DataChanged( const DataChangedEvent& rDCEvt ) override;
diff --git a/svx/source/inc/AccessibleFrameSelector.hxx b/svx/source/inc/AccessibleFrameSelector.hxx
index 42c870b04a06..e7482b9e1c87 100644
--- a/svx/source/inc/AccessibleFrameSelector.hxx
+++ b/svx/source/inc/AccessibleFrameSelector.hxx
@@ -44,7 +44,7 @@ class FrameSelector;
 namespace a11y {
 
 
-class AccFrameSelector :
+class AccFrameSelector final :
     public ::cppu::WeakImplHelper<
                 css::accessibility::XAccessible,
                 css::accessibility::XAccessibleContext,
@@ -97,10 +97,9 @@ public:
     void    NotifyFocusListeners(bool bGetFocus);
     void    NotifyAccessibleEvent( const sal_Int16 _nEventId, const css::uno::Any& _rOldValue, const css::uno::Any& _rNewValue );
 
-protected:
+private:
     DECL_LINK( WindowEventListener, VclWindowEvent&, void );
 
-private:
     /// @throws css::uno::RuntimeException
     void                IsValid();
     void                RemoveFrameSelEventListener();
diff --git a/svx/source/inc/GraphCtlAccessibleContext.hxx b/svx/source/inc/GraphCtlAccessibleContext.hxx
index 1deeeee4c3bf..8e18fb30f47a 100644
--- a/svx/source/inc/GraphCtlAccessibleContext.hxx
+++ b/svx/source/inc/GraphCtlAccessibleContext.hxx
@@ -76,7 +76,7 @@ typedef ::cppu::WeakAggComponentImplHelper7<
                 css::lang::XServiceName >
                 SvxGraphCtrlAccessibleContext_Base;
 
-class SvxGraphCtrlAccessibleContext:
+class SvxGraphCtrlAccessibleContext final :
     private cppu::BaseMutex, public SvxGraphCtrlAccessibleContext_Base,
     public SfxListener, public ::accessibility::IAccessibleViewForwarder
 {
@@ -90,9 +90,6 @@ public:
 
     void Notify( SfxBroadcaster& aBC, const SfxHint& aHint ) override;
 
-protected:
-    virtual ~SvxGraphCtrlAccessibleContext() override;
-public:
     // XAccessible
     /// Return the XAccessibleContext.
     virtual css::uno::Reference< css::accessibility::XAccessibleContext> SAL_CALL
@@ -122,8 +119,6 @@ public:
     virtual css::uno::Reference< css::accessibility::XAccessibleRelationSet> SAL_CALL getAccessibleRelationSet() override;
     virtual css::uno::Reference< css::accessibility::XAccessibleStateSet> SAL_CALL getAccessibleStateSet() override;
     virtual css::lang::Locale SAL_CALL getLocale() override;
-//  virtual void SAL_CALL addPropertyChangeListener( const css::uno::Reference< css::beans::XPropertyChangeListener >& xListener ) throw (css::uno::RuntimeException) {}
-//  virtual void SAL_CALL removePropertyChangeListener( const css::uno::Reference< css::beans::XPropertyChangeListener >& xListener ) throw (css::uno::RuntimeException) {}
 
     // XAccessibleEventBroadcaster
     virtual void SAL_CALL addAccessibleEventListener( const css::uno::Reference< css::accessibility::XAccessibleEventListener>& xListener) override;
@@ -154,18 +149,15 @@ public:
     virtual Point LogicToPixel (const Point& rPoint) const override;
     virtual Size LogicToPixel (const Size& rSize) const override;
 
-protected:
-    /// @throws css::lang::IndexOutOfBoundsException
-    void checkChildIndexOnSelection( long nIndexOfChild );
-
-public:
-
     /** This method is used by the graph control to tell the
         accessibility object about a new model and view.
     */
     void setModelAndView (SdrModel* pModel, SdrView* pView);
 
-protected:
+private:
+    virtual ~SvxGraphCtrlAccessibleContext() override;
+    /// @throws css::lang::IndexOutOfBoundsException
+    void checkChildIndexOnSelection( long nIndexOfChild );
 
     /** Return the object's current bounding box relative to the desktop,
         i.e in absolute pixel coordinates.
@@ -185,7 +177,6 @@ protected:
 
     virtual void SAL_CALL disposing() final override;
 
-private:
     /// @throws css::uno::RuntimeException
     /// @throws css::lang::IndexOutOfBoundsException
     SdrObject* getSdrObject( sal_Int32 nIndex );
diff --git a/svx/source/inc/filtnav.hxx b/svx/source/inc/filtnav.hxx
index f018c1f25ef6..c5b71cdab159 100644
--- a/svx/source/inc/filtnav.hxx
+++ b/svx/source/inc/filtnav.hxx
@@ -148,7 +148,7 @@ public:
 };
 
 
-class FmFilterModel : public FmParentData
+class FmFilterModel final : public FmParentData
                      ,public SfxBroadcaster
                      ,public ::svxform::OSQLParserClient
 {
@@ -180,7 +180,7 @@ public:
     static void AppendFilterItems( FmFormItem& _rItem );
     void EnsureEmptyFilterRows( FmParentData& _rItem );
 
-protected:
+private:
     void Insert(const ::std::vector<FmFilterData*>::iterator& rPos, FmFilterData* pFilterItem);
     void Remove( const ::std::vector<FmFilterData*>::iterator& rPos );
     FmFormItem* Find(const ::std::vector<FmFilterData*>& rItems, const css::uno::Reference< css::form::runtime::XFormController > & xController) const;
@@ -227,7 +227,7 @@ protected:
 };
 
 
-class FmFilterNavigator : public SvTreeListBox, public SfxListener
+class FmFilterNavigator final : public SvTreeListBox, public SfxListener
 {
     enum DROP_ACTION{ DA_SCROLLUP, DA_SCROLLDOWN, DA_EXPANDNODE };
 
@@ -252,7 +252,7 @@ public:
         );
     const FmFilterModel* GetFilterModel() const {return m_pModel;}
 
-protected:
+private:
 
     virtual void KeyInput( const KeyEvent& rKEvt ) override;
     virtual void Command( const CommandEvent& rEvt ) override;
@@ -274,7 +274,6 @@ protected:
     DECL_LINK(OnRemove, void*, void);
     DECL_LINK(OnDropActionTimer, Timer*, void);
 
-private:
     /** returns the first form item and the selected FilterItems in the vector
         @param  _rItemList
             Is filled inside. <OUT/>
diff --git a/svx/source/inc/fmPropBrw.hxx b/svx/source/inc/fmPropBrw.hxx
index c78294a6dbdc..34315d9c7a49 100644
--- a/svx/source/inc/fmPropBrw.hxx
+++ b/svx/source/inc/fmPropBrw.hxx
@@ -40,7 +40,7 @@ public:
 class SfxBindings;
 class FmFormShell;
 
-class FmPropBrw : public SfxFloatingWindow, public SfxControllerItem
+class FmPropBrw final : public SfxFloatingWindow, public SfxControllerItem
 {
     bool            m_bInitialStateChange;
     OUString        m_sLastActivePage;
@@ -61,7 +61,6 @@ class FmPropBrw : public SfxFloatingWindow, public SfxControllerItem
     css::uno::Reference< css::awt::XWindow >
                     m_xFrameContainerWindow;
 
-protected:
     virtual void StateChanged(sal_uInt16 nSID, SfxItemState eState, const SfxPoolItem* pState) override;
     virtual void FillInfo( SfxChildWinInfo& rInfo ) const override;
     virtual bool Close() override;
@@ -86,10 +85,9 @@ public:
 
     using SfxFloatingWindow::StateChanged;
 
-protected:
+private:
     virtual void        Resize() override;
 
-private:
     /** creates the PropertyBrowser (aka ObjectInspector) and plugs it into our frame
 
         This method ensures that a new component is created every time the XModel which
diff --git a/svx/source/inc/fmexpl.hxx b/svx/source/inc/fmexpl.hxx
index 5012bd3f4900..57e5655424fe 100644
--- a/svx/source/inc/fmexpl.hxx
+++ b/svx/source/inc/fmexpl.hxx
@@ -277,7 +277,7 @@ namespace svxform
 
     class NavigatorTreeModel;
 
-    class OFormComponentObserver
+    class OFormComponentObserver final
         :public ::cppu::WeakImplHelper <   css::beans::XPropertyChangeListener
                                         ,   css::container::XContainerListener
                                         >
@@ -306,7 +306,7 @@ namespace svxform
         bool IsLocked() const { return m_nLocks != 0; }
         bool CanUndo() const { return m_bCanUndo; }
         void ReleaseModel() { m_pNavModel = nullptr; }
-    protected:
+    private:
         void Insert(const css::uno::Reference< css::uno::XInterface >& xIface, sal_Int32 nIndex);
         void Remove( const css::uno::Reference< css::uno::XInterface >& _rxElement );
     };
diff --git a/svx/source/inc/fmpgeimp.hxx b/svx/source/inc/fmpgeimp.hxx
index 1237019f01b1..26a17f84fba6 100644
--- a/svx/source/inc/fmpgeimp.hxx
+++ b/svx/source/inc/fmpgeimp.hxx
@@ -45,7 +45,7 @@ class SdrObject;
 // and when they have been removed
 
 
-class FmFormPageImpl
+class FmFormPageImpl final
 {
     css::uno::Reference< css::form::XForm >               xCurrentForm;
     css::uno::Reference< css::form::XForms >              m_xForms;
@@ -89,7 +89,7 @@ public:
 
     void        SetFormsCreationHdl( const Link<FmFormPageImpl&,void>& _rFormsCreationHdl ) { m_aFormsCreationHdl = _rFormsCreationHdl; }
 
-protected:
+private:
     /** finds a form with a given data source signature
         @param rForm
             the form to start the search with. This form, including all possible sub forms,
@@ -138,7 +138,6 @@ private:
     css::uno::Reference< css::container::XMap >
         impl_createControlShapeMap_nothrow();
 
-private:
     FmFormPageImpl( const FmFormPageImpl& ) = delete;
     FmFormPageImpl& operator=( const FmFormPageImpl& ) = delete;
 };
diff --git a/svx/source/inc/fmshimp.hxx b/svx/source/inc/fmshimp.hxx
index 0b07b6f063b2..5c02d45e8992 100644
--- a/svx/source/inc/fmshimp.hxx
+++ b/svx/source/inc/fmshimp.hxx
@@ -151,7 +151,7 @@ struct SdrViewEvent;
 class FmFormShell;
 class FmFormView;
 class FmFormObj;
-class SVX_DLLPUBLIC FmXFormShell   : public FmXFormShell_BASE
+class SVX_DLLPUBLIC FmXFormShell final : public FmXFormShell_BASE
                                     ,public FmXFormShell_CFGBASE
                                     ,public svx::IControllerFeatureInvalidation
 {
@@ -256,10 +256,9 @@ public:
     SAL_DLLPRIVATE void
                 didPrepareClose_Lock(bool bDid) { m_bPreparedClose = bDid; }
 
-public:
     SAL_DLLPRIVATE FmXFormShell(FmFormShell& _rShell, SfxViewFrame* _pViewFrame);
 
-protected:
+private:
     SAL_DLLPRIVATE virtual ~FmXFormShell() override;
 
 // EventListener
@@ -313,7 +312,7 @@ public:
     SAL_DLLPRIVATE bool GetY2KState_Lock(sal_uInt16 & n);
     SAL_DLLPRIVATE void SetY2KState_Lock(sal_uInt16 n);
 
-protected:
+private:
     // form handling
     /// load or unload the forms on a page
     SAL_DLLPRIVATE void loadForms_Lock( FmFormPage* _pPage, const LoadFormsFlags _nBehaviour );
@@ -522,7 +521,7 @@ public:
 
     SAL_DLLPRIVATE static OString SlotToIdent(sal_uInt16 nSlot);
 
-protected:
+private:
     DECL_DLLPRIVATE_LINK( OnLoadForms_Lock, void*, void );
 };
 
diff --git a/svx/source/inc/fmundo.hxx b/svx/source/inc/fmundo.hxx
index c92c5dfbb387..3763cf113525 100644
--- a/svx/source/inc/fmundo.hxx
+++ b/svx/source/inc/fmundo.hxx
@@ -62,18 +62,8 @@ public:
 
 };
 
-class FmUndoContainerAction: public SdrUndoAction
+class FmUndoContainerAction final : public SdrUndoAction
 {
-    css::uno::Reference< css::container::XIndexContainer >
-                    m_xContainer;   // container which the action applies to
-    css::uno::Reference< css::uno::XInterface >
-                    m_xElement;     // object not owned by the action
-    css::uno::Reference< css::uno::XInterface >
-                    m_xOwnElement;  // object owned by the action
-    sal_Int32       m_nIndex;       // index of the object within it's container
-    css::uno::Sequence< css::script::ScriptEventDescriptor >
-                    m_aEvents;      // events of the object
-
 public:
     enum Action
     {
@@ -81,10 +71,6 @@ public:
         Removed  = 2
     };
 
-private:
-    Action              m_eAction;
-
-public:
     FmUndoContainerAction(FmFormModel& rMod,
                           Action _eAction,
                           const css::uno::Reference< css::container::XIndexContainer >& xCont,
@@ -97,9 +83,20 @@ public:
 
     static void DisposeElement( const css::uno::Reference< css::uno::XInterface >& xElem );
 
-protected:
+private:
     void    implReInsert( );
     void    implReRemove( );
+
+    css::uno::Reference< css::container::XIndexContainer >
+                    m_xContainer;   // container which the action applies to
+    css::uno::Reference< css::uno::XInterface >
+                    m_xElement;     // object not owned by the action
+    css::uno::Reference< css::uno::XInterface >
+                    m_xOwnElement;  // object owned by the action
+    sal_Int32       m_nIndex;       // index of the object within it's container
+    css::uno::Sequence< css::script::ScriptEventDescriptor >
+                    m_aEvents;      // events of the object
+    Action          m_eAction;
 };
 
 class FmUndoModelReplaceAction : public SdrUndoAction
@@ -120,23 +117,13 @@ public:
 };
 
 
-class FmXUndoEnvironment
+class FmXUndoEnvironment final
     : public ::cppu::WeakImplHelper<   css::beans::XPropertyChangeListener
                                     ,   css::container::XContainerListener
                                     ,   css::util::XModifyListener
                                     >
     , public SfxListener
-                           //   public ::cppu::OWeakObject
 {
-    FmFormModel& rModel;
-
-    void*                                   m_pPropertySetCache;
-    ::svxform::PFormScriptingEnvironment    m_pScriptingEnv;
-    oslInterlockedCount                     m_Locks;
-    ::osl::Mutex                            m_aMutex;
-    bool                                    bReadOnly;
-    bool                                    m_bDisposed;
-
 public:
     FmXUndoEnvironment(FmFormModel& _rModel);
     virtual ~FmXUndoEnvironment() override;
@@ -161,7 +148,15 @@ public:
     void SetReadOnly( bool bRead, const Accessor& ) { bReadOnly = bRead; }
     bool IsReadOnly() const {return bReadOnly;}
 
-protected:
+    // Methods for assigning controls to forms,
+    // used by the page and the undo environment
+    void Inserted(SdrObject* pObj);
+    void Removed(SdrObject* pObj);
+
+    static void Inserted(FmFormObj* pObj);
+    static void Removed(FmFormObj* pObj);
+
+private:
     // XEventListener
     virtual void SAL_CALL disposing(const css::lang::EventObject& Source) override;
 
@@ -181,7 +176,6 @@ protected:
 
     virtual void Notify( SfxBroadcaster& rBC, const SfxHint& rHint ) override;
 
-private:
     void AddElement(const css::uno::Reference< css::uno::XInterface>& Element);
     void RemoveElement(const css::uno::Reference< css::uno::XInterface>& Element);
     void TogglePropertyListening(const css::uno::Reference< css::uno::XInterface>& Element);
@@ -190,15 +184,15 @@ private:
 
     void    switchListening( const css::uno::Reference< css::container::XIndexContainer >& _rxContainer, bool _bStartListening );
     void    switchListening( const css::uno::Reference< css::uno::XInterface >& _rxObject, bool _bStartListening );
-    css::uno::Reference< css::script::XScriptListener > m_vbaListener;
-public:
-    // Methods for assigning controls to forms,
-    // used by the page and the undo environment
-    void Inserted(SdrObject* pObj);
-    void Removed(SdrObject* pObj);
 
-    static void Inserted(FmFormObj* pObj);
-    static void Removed(FmFormObj* pObj);
+    FmFormModel&                            rModel;
+    void*                                   m_pPropertySetCache;
+    ::svxform::PFormScriptingEnvironment    m_pScriptingEnv;
+    oslInterlockedCount                     m_Locks;
+    ::osl::Mutex                            m_aMutex;
+    bool                                    bReadOnly;
+    bool                                    m_bDisposed;
+    css::uno::Reference< css::script::XScriptListener > m_vbaListener;
 };
 
 
diff --git a/svx/source/inc/fmvwimp.hxx b/svx/source/inc/fmvwimp.hxx
index b47db7c0e57c..7f4c8ce594bc 100644
--- a/svx/source/inc/fmvwimp.hxx
+++ b/svx/source/inc/fmvwimp.hxx
@@ -87,7 +87,7 @@ typedef ::cppu::WeakImplHelper <   css::container::XIndexAccess
                                 ,   css::form::runtime::XFormControllerContext
                                 >   FormViewPageWindowAdapter_Base;
 
-class FormViewPageWindowAdapter : public FormViewPageWindowAdapter_Base
+class FormViewPageWindowAdapter final : public FormViewPageWindowAdapter_Base
 {
     friend class FmXFormView;
 
@@ -97,9 +97,6 @@ class FormViewPageWindowAdapter : public FormViewPageWindowAdapter_Base
     FmXFormView*                m_pViewImpl;
     VclPtr<vcl::Window>         m_pWindow;
 
-protected:
-    virtual ~FormViewPageWindowAdapter() override;
-
 public:
     FormViewPageWindowAdapter(  const css::uno::Reference<css::uno::XComponentContext>& _rContext,
         const SdrPageWindow&, FmXFormView* pView);
@@ -118,7 +115,9 @@ public:
 
     const ::std::vector< css::uno::Reference< css::form::runtime::XFormController > >& GetList() {return m_aControllerList;}
 
-protected:
+private:
+    virtual ~FormViewPageWindowAdapter() override;
+
     css::uno::Reference< css::form::runtime::XFormController >  getController( const css::uno::Reference< css::form::XForm >& xForm ) const;
     void setController(
             const css::uno::Reference< css::form::XForm >& xForm,
diff --git a/svx/source/inc/formcontroller.hxx b/svx/source/inc/formcontroller.hxx
index 3de25a068d94..7722cccbd8d4 100644
--- a/svx/source/inc/formcontroller.hxx
+++ b/svx/source/inc/formcontroller.hxx
@@ -124,7 +124,7 @@ namespace svxform
                                                     >   FormController_BASE;
 
     class ColumnInfoCache;
-    class FormController :public ::cppu::BaseMutex
+    class FormController final : public ::cppu::BaseMutex
                                         ,public FormController_BASE
                                         ,public ::cppu::OPropertySetHelper
                                         ,public DispatchInterceptor
@@ -207,7 +207,7 @@ namespace svxform
     public:
         FormController( const css::uno::Reference< css::uno::XComponentContext > & _rxORB );
 
-    protected:
+    private:
         virtual ~FormController() override;
 
     // XInterface
@@ -411,7 +411,6 @@ namespace svxform
             css::uno::Sequence< css::beans::Property >& /* [out] */ _rAggregateProps
             ) const override;
 
-    protected:
         // DispatchInterceptor
         virtual css::uno::Reference< css::frame::XDispatch>
             interceptedQueryDispatch(
diff --git a/svx/source/inc/formcontrolling.hxx b/svx/source/inc/formcontrolling.hxx
index f733e5a31ffa..f2379758c0af 100644
--- a/svx/source/inc/formcontrolling.hxx
+++ b/svx/source/inc/formcontrolling.hxx
@@ -69,9 +69,8 @@ namespace svx
     class FormControllerHelper;
     /** easier access to an FormControllerHelper instance
     */
-    class ControllerFeatures
+    class ControllerFeatures final
     {
-    protected:
         IControllerFeatureInvalidation* m_pInvalidationCallback;    // necessary as long as m_pImpl is not yet constructed
         rtl::Reference<FormControllerHelper>  m_pImpl;
 
diff --git a/svx/source/inc/formdispatchinterceptor.hxx b/svx/source/inc/formdispatchinterceptor.hxx
index f6ecd37a1aff..3935a5ac9849 100644
--- a/svx/source/inc/formdispatchinterceptor.hxx
+++ b/svx/source/inc/formdispatchinterceptor.hxx
@@ -52,29 +52,11 @@ namespace svxform
                                             ,   css::lang::XEventListener
                                             >   DispatchInterceptionMultiplexer_BASE;
 
-    class DispatchInterceptionMultiplexer : public DispatchInterceptionMultiplexer_BASE
+    class DispatchInterceptionMultiplexer final : public DispatchInterceptionMultiplexer_BASE
     {
-        ::osl::Mutex    m_aFallback;
-        ::osl::Mutex*   m_pMutex;
-
-        // the component which's dispatches we're intercepting
-        css::uno::WeakReference< css::frame::XDispatchProviderInterception >
-                        m_xIntercepted;
-        bool            m_bListening;
-
-        // the real interceptor
-        DispatchInterceptor*            m_pMaster;
-
-        // chaining
-        css::uno::Reference< css::frame::XDispatchProvider>           m_xSlaveDispatcher;
-        css::uno::Reference< css::frame::XDispatchProvider>           m_xMasterDispatcher;
-
-        virtual ~DispatchInterceptionMultiplexer() override;
-
     public:
         css::uno::Reference< css::frame::XDispatchProviderInterception> getIntercepted() const { return m_xIntercepted; }
 
-    public:
         DispatchInterceptionMultiplexer(
             const css::uno::Reference< css::frame::XDispatchProviderInterception>& _rToIntercept,
             DispatchInterceptor* _pMaster
@@ -96,8 +78,25 @@ namespace svxform
         // OComponentHelper
         virtual void SAL_CALL disposing() override;
 
-    protected:
+    private:
+        virtual ~DispatchInterceptionMultiplexer() override;
+
         void ImplDetach();
+
+        ::osl::Mutex    m_aFallback;
+        ::osl::Mutex*   m_pMutex;
+
+        // the component which's dispatches we're intercepting
+        css::uno::WeakReference< css::frame::XDispatchProviderInterception >
+                        m_xIntercepted;
+        bool            m_bListening;
+
+        // the real interceptor
+        DispatchInterceptor*            m_pMaster;
+
+        // chaining
+        css::uno::Reference< css::frame::XDispatchProvider>           m_xSlaveDispatcher;
+        css::uno::Reference< css::frame::XDispatchProvider>           m_xMasterDispatcher;
     };
 
 
diff --git a/svx/source/inc/formfeaturedispatcher.hxx b/svx/source/inc/formfeaturedispatcher.hxx
index 00bd404bd86e..b0d683ab6827 100644
--- a/svx/source/inc/formfeaturedispatcher.hxx
+++ b/svx/source/inc/formfeaturedispatcher.hxx
@@ -34,18 +34,8 @@ namespace svx
     typedef ::cppu::WeakImplHelper <   css::frame::XDispatch
                                     >   OSingleFeatureDispatcher_Base;
 
-    class OSingleFeatureDispatcher : public OSingleFeatureDispatcher_Base
+    class OSingleFeatureDispatcher final : public OSingleFeatureDispatcher_Base
     {
-    private:
-        ::osl::Mutex&                       m_rMutex;
-        ::comphelper::OInterfaceContainerHelper2   m_aStatusListeners;
-        css::uno::Reference< css::form::runtime::XFormOperations >
-                                            m_xFormOperations;
-        const css::util::URL                m_aFeatureURL;
-        css::uno::Any                       m_aLastKnownState;
-        const sal_Int16                     m_nFormFeature;
-        bool                                m_bLastKnownEnabled;
-
     public:
         /** constructs the dispatcher
 
@@ -73,13 +63,12 @@ namespace svx
         */
         void    updateAllListeners();
 
-    protected:
+    private:
         // XDispatch
         virtual void SAL_CALL dispatch( const css::util::URL& _rURL, const css::uno::Sequence< css::beans::PropertyValue >& _rArguments ) override;
         virtual void SAL_CALL addStatusListener( const css::uno::Reference< css::frame::XStatusListener >& _rxControl, const css::util::URL& _rURL ) override;
         virtual void SAL_CALL removeStatusListener( const css::uno::Reference< css::frame::XStatusListener >& _rxControl, const css::util::URL& _rURL ) override;
 
-    protected:
         /** notifies our current state to one or all listeners
 
             @param _rxListener
@@ -95,8 +84,6 @@ namespace svx
                     ::osl::ClearableMutexGuard& _rFreeForNotification
                 );
 
-    private:
-
         /** retrieves the current status of our feature, in a format which can be used
             for UNO notifications
 
@@ -104,6 +91,16 @@ namespace svx
                 our mutex is locked
         */
         void    getUnoState( css::frame::FeatureStateEvent& /* [out] */ _rState ) const;
+
+        ::osl::Mutex&                       m_rMutex;
+        ::comphelper::OInterfaceContainerHelper2   m_aStatusListeners;
+        css::uno::Reference< css::form::runtime::XFormOperations >
+                                            m_xFormOperations;
+        const css::util::URL                m_aFeatureURL;
+        css::uno::Any                       m_aLastKnownState;
+        const sal_Int16                     m_nFormFeature;
+        bool                                m_bLastKnownEnabled;
+
     };
 
 
diff --git a/svx/source/inc/gridcell.hxx b/svx/source/inc/gridcell.hxx
index 2a9d33ea0903..3852c8b8fc65 100644
--- a/svx/source/inc/gridcell.hxx
+++ b/svx/source/inc/gridcell.hxx
@@ -407,29 +407,26 @@ protected:
 };
 
 
-class DbFormattedField : public DbLimitedLengthField
+class DbFormattedField final : public DbLimitedLengthField
 {
-protected:
-    css::uno::Reference< css::util::XNumberFormatsSupplier >  m_xSupplier;
-
-
 public:
     DbFormattedField(DbGridColumn& _rColumn);
     virtual ~DbFormattedField() override;
 
-
     virtual void Init( vcl::Window& rParent, const css::uno::Reference< css::sdbc::XRowSet >& xCursor ) override;
     virtual OUString GetFormatText(const css::uno::Reference< css::sdb::XColumn >& _rxField, const css::uno::Reference< css::util::XNumberFormatter >& xFormatter, Color** ppColor = nullptr) override;
     virtual void UpdateFromField(const css::uno::Reference< css::sdb::XColumn >& _rxField, const css::uno::Reference< css::util::XNumberFormatter >& xFormatter) override;
     virtual ::svt::CellControllerRef CreateController() const override;
 
-protected:
+private:
     // DbCellControl
     virtual bool        commitControl( ) override;
     virtual void        updateFromModel( css::uno::Reference< css::beans::XPropertySet > _rxModel ) override;
 
     // OPropertyChangeListener
     virtual void _propertyChanged(const css::beans::PropertyChangeEvent& evt) override;
+
+    css::uno::Reference< css::util::XNumberFormatsSupplier >  m_xSupplier;
 };
 
 
@@ -654,17 +651,10 @@ protected:
 };
 
 
-class DbFilterField
+class DbFilterField final
         :public DbCellControl
         ,public ::svxform::OSQLParserClient
 {
-    css::uno::Sequence< OUString >  m_aValueList;
-    OUString    m_aText;
-    Link<DbFilterField&,void> m_aCommitLink;
-    sal_Int16   m_nControlClass;
-    bool        m_bFilterList : 1;
-    bool        m_bFilterListFilled : 1;
-
 public:
     DbFilterField(const css::uno::Reference< css::uno::XComponentContext >& rxContext, DbGridColumn& _rColumn);
     virtual ~DbFilterField() override;
@@ -681,16 +671,21 @@ public:
 
     void SetCommitHdl( const Link<DbFilterField&,void>& rLink ) { m_aCommitLink = rLink; }
 
-protected:
-
+private:
     // DbCellControl
     virtual bool        commitControl( ) override;
     virtual void        updateFromModel( css::uno::Reference< css::beans::XPropertySet > _rxModel ) override;
 
-protected:
     void SetList(const css::uno::Any& rItems, bool bComboBox);
     void CreateControl(vcl::Window* pParent, const css::uno::Reference< css::beans::XPropertySet >& xModel);
     DECL_LINK( OnClick, VclPtr<CheckBox>, void );
+
+    css::uno::Sequence< OUString >  m_aValueList;
+    OUString    m_aText;
+    Link<DbFilterField&,void> m_aCommitLink;
+    sal_Int16   m_nControlClass;
+    bool        m_bFilterList : 1;
+    bool        m_bFilterListFilled : 1;
 };
 
 
@@ -857,19 +852,9 @@ public:
 typedef ::cppu::ImplHelper2 <   css::awt::XTextComponent
                             ,   css::form::XChangeBroadcaster
                             >   FmXEditCell_Base;
-class FmXEditCell : public FmXTextCell,
+class FmXEditCell final : public FmXTextCell,
                     public FmXEditCell_Base
 {
-private:
-    OUString                     m_sValueOnEnter;
-
-protected:
-    ::comphelper::OInterfaceContainerHelper2   m_aTextListeners;
-    ::comphelper::OInterfaceContainerHelper2   m_aChangeListeners;
-    ::svt::IEditImplementation*         m_pEditImplementation;
-    bool                                m_bOwnEditImplementation;
-
-    virtual ~FmXEditCell() override;
 public:
     FmXEditCell( DbGridColumn* pColumn, DbCellControl& _rControl );
 
@@ -901,14 +886,21 @@ public:
     virtual void SAL_CALL addChangeListener( const css::uno::Reference< css::form::XChangeListener >& aListener ) override;
     virtual void SAL_CALL removeChangeListener( const css::uno::Reference< css::form::XChangeListener >& aListener ) override;
 
-protected:
+private:
+    virtual ~FmXEditCell() override;
+
     virtual void onWindowEvent( const VclEventId _nEventId, const vcl::Window& _rWindow, const void* _pEventData ) override;
 
     virtual void onFocusGained( const css::awt::FocusEvent& _rEvent ) override;
     virtual void onFocusLost( const css::awt::FocusEvent& _rEvent ) override;
 
-private:
     void onTextChanged();
+
+    OUString                            m_sValueOnEnter;
+    ::comphelper::OInterfaceContainerHelper2   m_aTextListeners;
+    ::comphelper::OInterfaceContainerHelper2   m_aChangeListeners;
+    ::svt::IEditImplementation*         m_pEditImplementation;
+    bool                                m_bOwnEditImplementation;
 };
 
 
@@ -960,16 +952,9 @@ protected:
 
 typedef ::cppu::ImplHelper1 <   css::awt::XListBox
                             >   FmXListBoxCell_Base;
-class FmXListBoxCell    :public FmXTextCell
+class FmXListBoxCell final :public FmXTextCell
                         ,public FmXListBoxCell_Base
 {
-    ::comphelper::OInterfaceContainerHelper2   m_aItemListeners,
-                                        m_aActionListeners;
-    VclPtr<ListBox>                     m_pBox;
-
-protected:
-    virtual ~FmXListBoxCell() override;
-
 public:
     FmXListBoxCell( DbGridColumn* pColumn, DbCellControl& _rControl );
 
@@ -1005,10 +990,15 @@ public:
     virtual void SAL_CALL SAL_CALL setDropDownLineCount(sal_Int16 nLines) override;
     virtual void SAL_CALL SAL_CALL makeVisible(sal_Int16 nEntry) override;
 
-protected:
+private:
     virtual void onWindowEvent( const VclEventId _nEventId, const vcl::Window& _rWindow, const void* _pEventData ) override;
+    virtual ~FmXListBoxCell() override;
 
     DECL_LINK( OnDoubleClick, ListBox&, void );
+
+    ::comphelper::OInterfaceContainerHelper2   m_aItemListeners,
+                                        m_aActionListeners;
+    VclPtr<ListBox>                     m_pBox;
 };
 
 
@@ -1058,12 +1048,9 @@ protected:
 typedef ::cppu::ImplHelper2 <   css::awt::XTextComponent
                             ,   css::lang::XUnoTunnel
                             >   FmXFilterCell_Base;
-class FmXFilterCell :public FmXGridCell
+class FmXFilterCell final : public FmXGridCell
                     ,public FmXFilterCell_Base
 {
-    ::comphelper::OInterfaceContainerHelper2 m_aTextListeners;
-protected:
-    virtual ~FmXFilterCell() override;
 public:
     FmXFilterCell(DbGridColumn* pColumn, DbCellControl* pControl = nullptr);
 
@@ -1100,8 +1087,11 @@ public:

... etc. - the rest is truncated


More information about the Libreoffice-commits mailing list