sc/inc/AccessibleFilterMenuItem.hxx  |    6 ++----
 sc/inc/AccessibleFilterTopWindow.hxx |    2 +-
 sc/inc/AccessibleGlobal.hxx          |    2 +-
 sc/inc/NumberFormatControl.hxx       |    2 +-
 sc/inc/PivotTableDataProvider.hxx    |    2 +-
 sc/inc/PivotTableDataSequence.hxx    |    2 +-
 sc/inc/PivotTableDataSource.hxx      |    2 +-
 sc/inc/TablePivotChart.hxx           |    2 +-
 sc/inc/TablePivotCharts.hxx          |    2 +-
 sc/inc/addincfg.hxx                  |    2 +-
 sc/inc/addruno.hxx                   |    2 +-
 sc/inc/afmtuno.hxx                   |    2 +-
 sc/inc/appluno.hxx                   |    6 +++---
 sc/inc/arealink.hxx                  |    2 +-
 sc/inc/attrib.hxx                    |   14 +++++++-------
 sc/inc/brdcst.hxx                    |    4 ++--
 sc/inc/bulkdatahint.hxx              |    2 +-
 sc/inc/cellsuno.hxx                  |   25 +++++++++++--------------
 sc/inc/chart2uno.hxx                 |   10 +++++-----
 sc/inc/chartlis.hxx                  |    4 ++--
 sc/inc/chartuno.hxx                  |    2 +-
 sc/inc/chgtrack.hxx                  |    4 ++--
 sc/inc/clipcontext.hxx               |    8 ++++----
 sc/inc/colorscale.hxx                |    6 +++---
 sc/inc/compressedarray.hxx           |    2 +-
 sc/inc/conditio.hxx                  |    8 ++++----
 sc/inc/confuno.hxx                   |    2 +-
 sc/inc/cursuno.hxx                   |    2 +-
 sc/inc/dapiuno.hxx                   |   14 +++++++-------
 sc/inc/datauno.hxx                   |   16 ++++++++--------
 sc/inc/dbdata.hxx                    |    6 +++---
 sc/inc/defaultsoptions.hxx           |    4 ++--
 sc/inc/defltuno.hxx                  |    2 +-
 sc/inc/dispuno.hxx                   |    4 ++--
 sc/inc/dociter.hxx                   |    4 ++--
 sc/inc/docoptio.hxx                  |    2 +-
 sc/inc/docpool.hxx                   |    6 +++---
 sc/inc/docuno.hxx                    |   14 +++++++-------
 sc/inc/dpfilteredcache.hxx           |    4 ++--
 sc/inc/dpgroup.hxx                   |    2 +-
 sc/inc/dpsdbtab.hxx                  |    2 +-
 sc/inc/dpshttab.hxx                  |    2 +-
 sc/inc/dptabsrc.hxx                  |    2 +-
 sc/inc/drawpage.hxx                  |    2 +-
 sc/inc/drdefuno.hxx                  |    2 +-
 sc/inc/drwlayer.hxx                  |   12 ++++++------
 sc/inc/editsrc.hxx                   |   10 +++++-----
 sc/inc/editutil.hxx                  |    6 +++---
 sc/inc/eventuno.hxx                  |    2 +-
 sc/inc/externalrefmgr.hxx            |    4 ++--
 sc/inc/fielduno.hxx                  |    6 +++---
 sc/inc/filtopt.hxx                   |    2 +-
 sc/inc/filtuno.hxx                   |    2 +-
 sc/inc/fmtuno.hxx                    |    4 ++--
 sc/inc/forbiuno.hxx                  |    3 +--
 sc/inc/formulaopt.hxx                |    4 ++--
 sc/inc/funcdesc.hxx                  |    6 +++---
 sc/inc/funcuno.hxx                   |    2 +-
 sc/inc/grouparealistener.hxx         |    2 +-
 sc/inc/hints.hxx                     |   12 ++++++------
 sc/inc/inputopt.hxx                  |    2 +-
 sc/inc/linkuno.hxx                   |   18 +++++++++---------
 sc/inc/listenercontext.hxx           |    2 +-
 sc/inc/listenerquery.hxx             |    4 ++--
 sc/inc/lookupcache.hxx               |    2 +-
 sc/inc/miscuno.hxx                   |    4 ++--
 sc/inc/nameuno.hxx                   |   10 +++++-----
 sc/inc/notesuno.hxx                  |    2 +-
 sc/inc/optuno.hxx                    |    2 +-
 sc/inc/optutil.hxx                   |    2 +-
 sc/inc/pageuno.hxx                   |    2 +-
 sc/inc/patattr.hxx                   |    2 +-
 sc/inc/printopt.hxx                  |    4 ++--
 sc/inc/queryparam.hxx                |    4 ++--
 sc/inc/rangelst.hxx                  |    2 +-
 sc/inc/refhint.hxx                   |    6 +++---
 sc/inc/scmod.hxx                     |    2 +-
 sc/inc/shapeuno.hxx                  |    2 +-
 sc/inc/srchuno.hxx                   |    2 +-
 sc/inc/stlpool.hxx                   |    5 ++---
 sc/inc/styleuno.hxx                  |    2 +-
 sc/inc/tablink.hxx                   |    2 +-
 sc/inc/tabprotection.hxx             |    4 ++--
 sc/inc/targuno.hxx                   |    6 +++---
 sc/inc/textuno.hxx                   |   12 ++++++------
 sc/inc/token.hxx                     |   26 +++++++++++++-------------
 sc/inc/tokenarray.hxx                |    2 +-
 sc/inc/tokenuno.hxx                  |    4 ++--
 sc/inc/undorangename.hxx             |    4 ++--
 sc/inc/unoreflist.hxx                |    2 +-
 sc/inc/validat.hxx                   |    2 +-
 sc/inc/viewopti.hxx                  |    2 +-
 sc/inc/viewuno.hxx                   |    6 +++---
 93 files changed, 220 insertions(+), 227 deletions(-)

New commits:
commit a71edbd296c640fb62b99d057ee0142e2a84a8a9
Author:     Noel Grandin <noel.gran...@collabora.co.uk>
AuthorDate: Thu Oct 31 16:16:24 2019 +0200
Commit:     Noel Grandin <noel.gran...@collabora.co.uk>
CommitDate: Fri Nov 1 08:53:23 2019 +0100

    loplugin:finalclasses in sc/inc
    
    Change-Id: I6a08a86262deae4bed3a05f77d3041a568f23595
    Reviewed-on: https://gerrit.libreoffice.org/81853
    Tested-by: Jenkins
    Reviewed-by: Noel Grandin <noel.gran...@collabora.co.uk>

diff --git a/sc/inc/AccessibleFilterMenuItem.hxx 
b/sc/inc/AccessibleFilterMenuItem.hxx
index 6e8784b8f535..20003ed13444 100644
--- a/sc/inc/AccessibleFilterMenuItem.hxx
+++ b/sc/inc/AccessibleFilterMenuItem.hxx
@@ -31,7 +31,7 @@ class ScMenuFloatingWindow;
 typedef ::cppu::ImplHelper1<
     css::accessibility::XAccessibleAction > ScAccessibleFilterMenuItem_BASE;
 
-class ScAccessibleFilterMenuItem :
+class ScAccessibleFilterMenuItem final :
     public ScAccessibleContextBase,
     public ScAccessibleFilterMenuItem_BASE
 {
@@ -75,17 +75,15 @@ public:
 
     /// Non-UNO Methods
 
-protected:
+private:
 
     virtual tools::Rectangle GetBoundingBoxOnScreen() const override;
 
     virtual tools::Rectangle GetBoundingBox() const override;
 
-private:
     bool isSelected() const;
     void updateStateSet();
 
-private:
     css::uno::Reference< css::accessibility::XAccessibleStateSet > mxStateSet;
 
     VclPtr<ScMenuFloatingWindow> mpWindow;
diff --git a/sc/inc/AccessibleFilterTopWindow.hxx 
b/sc/inc/AccessibleFilterTopWindow.hxx
index 8ef5af28fa81..90dd9bbbfd30 100644
--- a/sc/inc/AccessibleFilterTopWindow.hxx
+++ b/sc/inc/AccessibleFilterTopWindow.hxx
@@ -24,7 +24,7 @@
 
 class ScCheckListMenuWindow;
 
-class ScAccessibleFilterTopWindow : public ScAccessibleFilterMenu
+class ScAccessibleFilterTopWindow final : public ScAccessibleFilterMenu
 {
 public:
     ScAccessibleFilterTopWindow(
diff --git a/sc/inc/AccessibleGlobal.hxx b/sc/inc/AccessibleGlobal.hxx
index 9cc670e4df7c..df699e462937 100644
--- a/sc/inc/AccessibleGlobal.hxx
+++ b/sc/inc/AccessibleGlobal.hxx
@@ -26,7 +26,7 @@
 #include <set>
 
 /// Generic XAccessibleStateSet implementation.
-class ScAccessibleStateSet : public ::cppu::WeakImplHelper< 
css::accessibility::XAccessibleStateSet >
+class ScAccessibleStateSet final : public ::cppu::WeakImplHelper< 
css::accessibility::XAccessibleStateSet >
 {
 public:
     ScAccessibleStateSet();
diff --git a/sc/inc/NumberFormatControl.hxx b/sc/inc/NumberFormatControl.hxx
index a0c1b49adba4..84db53607090 100644
--- a/sc/inc/NumberFormatControl.hxx
+++ b/sc/inc/NumberFormatControl.hxx
@@ -25,7 +25,7 @@
 
 namespace sc {
 
-class SC_DLLPUBLIC ScNumberFormatControl : public SfxToolBoxControl
+class SC_DLLPUBLIC ScNumberFormatControl final : public SfxToolBoxControl
 {
 public:
     SFX_DECL_TOOLBOX_CONTROL();
diff --git a/sc/inc/PivotTableDataProvider.hxx 
b/sc/inc/PivotTableDataProvider.hxx
index 4f803e204e27..90c98fc2f056 100644
--- a/sc/inc/PivotTableDataProvider.hxx
+++ b/sc/inc/PivotTableDataProvider.hxx
@@ -44,7 +44,7 @@ typedef cppu::WeakImplHelper<css::chart2::data::XDataProvider,
                              css::util::XModifyBroadcaster>
             PivotTableDataProvider_Base;
 
-class PivotTableDataProvider : public PivotTableDataProvider_Base, public 
SfxListener
+class PivotTableDataProvider final : public PivotTableDataProvider_Base, 
public SfxListener
 {
 public:
 
diff --git a/sc/inc/PivotTableDataSequence.hxx 
b/sc/inc/PivotTableDataSequence.hxx
index b834e4ae81c5..7d6d04d4c3f1 100644
--- a/sc/inc/PivotTableDataSequence.hxx
+++ b/sc/inc/PivotTableDataSequence.hxx
@@ -79,7 +79,7 @@ typedef cppu::WeakImplHelper<css::chart2::data::XDataSequence,
                              css::lang::XServiceInfo>
         PivotTableDataSequence_Base;
 
-class PivotTableDataSequence : public PivotTableDataSequence_Base, public 
SfxListener
+class PivotTableDataSequence final : public PivotTableDataSequence_Base, 
public SfxListener
 {
 public:
     explicit PivotTableDataSequence(ScDocument* pDocument, OUString const & 
sPivotTableName,
diff --git a/sc/inc/PivotTableDataSource.hxx b/sc/inc/PivotTableDataSource.hxx
index a98f977cc0ec..b5c046683926 100644
--- a/sc/inc/PivotTableDataSource.hxx
+++ b/sc/inc/PivotTableDataSource.hxx
@@ -26,7 +26,7 @@ typedef cppu::WeakImplHelper<css::chart2::data::XDataSource,
                              css::lang::XServiceInfo>
             PivotTableDataSource_Base;
 
-class PivotTableDataSource : public PivotTableDataSource_Base, public 
SfxListener
+class PivotTableDataSource final : public PivotTableDataSource_Base, public 
SfxListener
 {
 public:
     explicit PivotTableDataSource(const 
std::vector<css::uno::Reference<css::chart2::data::XLabeledDataSequence>>& 
xLabeledSequence);
diff --git a/sc/inc/TablePivotChart.hxx b/sc/inc/TablePivotChart.hxx
index c357c6fad230..983aead0317d 100644
--- a/sc/inc/TablePivotChart.hxx
+++ b/sc/inc/TablePivotChart.hxx
@@ -32,7 +32,7 @@ typedef 
cppu::WeakComponentImplHelper<css::table::XTablePivotChart,
                                       css::lang::XServiceInfo>
         TablePivotChart_Base;
 
-class TablePivotChart : public cppu::BaseMutex,
+class TablePivotChart final : public cppu::BaseMutex,
                         public TablePivotChart_Base,
                         public SfxListener
 {
diff --git a/sc/inc/TablePivotCharts.hxx b/sc/inc/TablePivotCharts.hxx
index 2e8d8f4deb8e..b37ae04dd715 100644
--- a/sc/inc/TablePivotCharts.hxx
+++ b/sc/inc/TablePivotCharts.hxx
@@ -28,7 +28,7 @@ typedef cppu::WeakImplHelper<css::table::XTablePivotCharts,
                              css::lang::XServiceInfo>
         TablePivotCharts_Base;
 
-class TablePivotCharts : public TablePivotCharts_Base, public SfxListener
+class TablePivotCharts final : public TablePivotCharts_Base, public SfxListener
 {
 private:
     ScDocShell* m_pDocShell;
diff --git a/sc/inc/addincfg.hxx b/sc/inc/addincfg.hxx
index 9cca48acbf58..0a279c4e8f5d 100644
--- a/sc/inc/addincfg.hxx
+++ b/sc/inc/addincfg.hxx
@@ -22,7 +22,7 @@
 
 #include <unotools/configitem.hxx>
 
-class ScAddInCfg : public utl::ConfigItem
+class ScAddInCfg final : public utl::ConfigItem
 {
 private:
     virtual void    ImplCommit() override;
diff --git a/sc/inc/addruno.hxx b/sc/inc/addruno.hxx
index 7503f865677c..6b7aea7c87b4 100644
--- a/sc/inc/addruno.hxx
+++ b/sc/inc/addruno.hxx
@@ -28,7 +28,7 @@
 
 #include <docsh.hxx>
 
-class ScAddressConversionObj : public ::cppu::WeakImplHelper<
+class ScAddressConversionObj final : public ::cppu::WeakImplHelper<
                                     css::beans::XPropertySet,
                                     css::lang::XServiceInfo >,
                                public SfxListener
diff --git a/sc/inc/afmtuno.hxx b/sc/inc/afmtuno.hxx
index ff997b6e95ca..d8100a1d3bd3 100644
--- a/sc/inc/afmtuno.hxx
+++ b/sc/inc/afmtuno.hxx
@@ -38,7 +38,7 @@ class ScAutoFormatObj;
 
 #define SC_AFMTOBJ_INVALID  USHRT_MAX
 
-class ScAutoFormatsObj : public ::cppu::WeakImplHelper<
+class ScAutoFormatsObj final : public ::cppu::WeakImplHelper<
                             css::container::XNameContainer,
                             css::container::XEnumerationAccess,
                             css::container::XIndexAccess,
diff --git a/sc/inc/appluno.hxx b/sc/inc/appluno.hxx
index 0e923500cb34..3f042c0b507e 100644
--- a/sc/inc/appluno.hxx
+++ b/sc/inc/appluno.hxx
@@ -78,7 +78,7 @@ OUString ScXMLImport_Settings_getImplementationName() throw();
 css::uno::Reference< css::uno::XInterface > 
ScXMLImport_Settings_createInstance(
             const css::uno::Reference< css::lang::XMultiServiceFactory > & 
rSMgr );
 
-class ScSpreadsheetSettings : public cppu::WeakImplHelper<
+class ScSpreadsheetSettings final : public cppu::WeakImplHelper<
                                         css::sheet::XGlobalSheetSettings,
                                         css::beans::XPropertySet,
                                         css::lang::XServiceInfo>
@@ -204,7 +204,7 @@ public:
     virtual css::uno::Sequence< OUString > SAL_CALL getSupportedServiceNames() 
override;
 };
 
-class ScRecentFunctionsObj : public cppu::WeakImplHelper<
+class ScRecentFunctionsObj final : public cppu::WeakImplHelper<
                                         css::sheet::XRecentFunctions,
                                         css::lang::XServiceInfo>
 {
@@ -223,7 +223,7 @@ public:
     virtual css::uno::Sequence< OUString > SAL_CALL getSupportedServiceNames() 
override;
 };
 
-class ScFunctionListObj : public cppu::WeakImplHelper<
+class ScFunctionListObj final : public cppu::WeakImplHelper<
                                         css::sheet::XFunctionDescriptions,
                                         css::container::XEnumerationAccess,
                                         css::container::XNameAccess,
diff --git a/sc/inc/arealink.hxx b/sc/inc/arealink.hxx
index cc98b34c3aba..209bb4a3d0de 100644
--- a/sc/inc/arealink.hxx
+++ b/sc/inc/arealink.hxx
@@ -28,7 +28,7 @@
 class SfxObjectShell;
 class ScDocShell;
 
-class SC_DLLPUBLIC ScAreaLink : public ::sfx2::SvBaseLink, public 
ScRefreshTimer
+class SC_DLLPUBLIC ScAreaLink final : public ::sfx2::SvBaseLink, public 
ScRefreshTimer
 {
 private:
     ScDocShell*     m_pDocSh;
diff --git a/sc/inc/attrib.hxx b/sc/inc/attrib.hxx
index 67325fdb8d43..7b9944094d04 100644
--- a/sc/inc/attrib.hxx
+++ b/sc/inc/attrib.hxx
@@ -52,7 +52,7 @@ namespace editeng { class SvxBorderLine; }
 
 bool SC_DLLPUBLIC ScHasPriority( const ::editeng::SvxBorderLine* pThis, const 
::editeng::SvxBorderLine* pOther );
 
-class SC_DLLPUBLIC ScMergeAttr: public SfxPoolItem
+class SC_DLLPUBLIC ScMergeAttr final : public SfxPoolItem
 {
     SCCOL       nColMerge;
     SCROW       nRowMerge;
@@ -80,7 +80,7 @@ public:
     virtual void dumpAsXml(xmlTextWriterPtr pWriter) const override;
 };
 
-class SC_DLLPUBLIC ScMergeFlagAttr: public SfxInt16Item
+class SC_DLLPUBLIC ScMergeFlagAttr final : public SfxInt16Item
 {
 public:
             ScMergeFlagAttr();
@@ -110,7 +110,7 @@ public:
     virtual void dumpAsXml(xmlTextWriterPtr pWriter) const override;
 };
 
-class SC_DLLPUBLIC ScProtectionAttr: public SfxPoolItem
+class SC_DLLPUBLIC ScProtectionAttr final : public SfxPoolItem
 {
     bool        bProtection;    ///< protect cell
     bool        bHideFormula;   ///< hide formula
@@ -164,7 +164,7 @@ public:
 #define SC_HF_CENTERAREA 2
 #define SC_HF_RIGHTAREA  3
 
-class SC_DLLPUBLIC ScPageHFItem : public SfxPoolItem
+class SC_DLLPUBLIC ScPageHFItem final : public SfxPoolItem
 {
     std::unique_ptr<EditTextObject> pLeftArea;
     std::unique_ptr<EditTextObject> pCenterArea;
@@ -192,7 +192,7 @@ public:
 
 // page format item: contents of header and footer
 
-class SC_DLLPUBLIC ScViewObjectModeItem: public SfxEnumItem<ScVObjMode>
+class SC_DLLPUBLIC ScViewObjectModeItem final : public SfxEnumItem<ScVObjMode>
 {
 public:
                 ScViewObjectModeItem( sal_uInt16 nWhich );
@@ -219,7 +219,7 @@ const sal_uInt8 SC_MID_PAGE_SCALETO_WIDTH    = 1;
 const sal_uInt8 SC_MID_PAGE_SCALETO_HEIGHT   = 2;
 
 /** Contains the "scale to width/height" attribute in page styles. */
-class SC_DLLPUBLIC ScPageScaleToItem : public SfxPoolItem
+class SC_DLLPUBLIC ScPageScaleToItem final : public SfxPoolItem
 {
 public:
     /** Default c'tor sets the width and height to 0. */
@@ -261,7 +261,7 @@ private:
 
 typedef o3tl::sorted_vector<sal_uInt32> ScCondFormatIndexes;
 
-class ScCondFormatItem : public SfxPoolItem
+class ScCondFormatItem final : public SfxPoolItem
 {
 public:
     explicit ScCondFormatItem();
diff --git a/sc/inc/brdcst.hxx b/sc/inc/brdcst.hxx
index 34d7d0394a7c..c8ccdb36f1a4 100644
--- a/sc/inc/brdcst.hxx
+++ b/sc/inc/brdcst.hxx
@@ -22,7 +22,7 @@
 #include "address.hxx"
 #include <svl/hint.hxx>
 
-class ScHint : public SfxHint
+class ScHint final : public SfxHint
 {
     ScAddress   aAddress;
 
@@ -32,7 +32,7 @@ public:
           ScAddress&    GetAddress()       { return aAddress; }
 };
 
-class ScAreaChangedHint : public SfxHint
+class ScAreaChangedHint final : public SfxHint
 {
 private:
     ScRange const aNewRange;
diff --git a/sc/inc/bulkdatahint.hxx b/sc/inc/bulkdatahint.hxx
index 913019edf3f9..6ff94227484a 100644
--- a/sc/inc/bulkdatahint.hxx
+++ b/sc/inc/bulkdatahint.hxx
@@ -19,7 +19,7 @@ namespace sc {
 
 class ColumnSpanSet;
 
-class BulkDataHint : public SfxHint
+class BulkDataHint final : public SfxHint
 {
     struct Impl;
     std::unique_ptr<Impl> mpImpl;
diff --git a/sc/inc/cellsuno.hxx b/sc/inc/cellsuno.hxx
index 0c6790f39eb1..96d7000cef67 100644
--- a/sc/inc/cellsuno.hxx
+++ b/sc/inc/cellsuno.hxx
@@ -117,7 +117,7 @@ struct SfxItemPropertySimpleEntry;
 
 namespace editeng { class SvxBorderLine; }
 
-class ScLinkListener : public SvtListener
+class ScLinkListener final : public SvtListener
 {
     Link<const SfxHint&,void> const  aLink;
 public:
@@ -382,7 +382,7 @@ public:
     UNO3_GETIMPLEMENTATION_DECL(ScCellRangesBase)
 };
 
-class SC_DLLPUBLIC ScCellRangesObj : public ScCellRangesBase,
+class SC_DLLPUBLIC ScCellRangesObj final : public ScCellRangesBase,
                         public css::sheet::XSheetCellRangeContainer,
                         public css::container::XNameContainer,
                         public css::container::XEnumerationAccess
@@ -629,7 +629,7 @@ public:
 
 //! really derive cell from range?
 
-class SC_DLLPUBLIC ScCellObj : public ScCellRangeObj,
+class SC_DLLPUBLIC ScCellObj final : public ScCellRangeObj,
                     public css::text::XText,
                     public css::container::XEnumerationAccess,
                     public css::table::XCell2,
@@ -654,7 +654,6 @@ private:
     css::table::CellContentType GetContentType_Impl();
     sal_Int32 GetResultType_Impl() const;
 
-protected:
     virtual const SfxItemPropertyMap& GetItemPropertyMap() override;
     virtual void GetOnePropertyValue( const SfxItemPropertySimpleEntry* pEntry,
                                 css::uno::Any& ) override;
@@ -965,13 +964,12 @@ public:
     virtual css::uno::Sequence< sal_Int8 > SAL_CALL getImplementationId() 
override;
 };
 
-class ScTableColumnObj : public ScCellRangeObj,
+class ScTableColumnObj final : public ScCellRangeObj,
                          public css::container::XNamed
 {
 private:
     const SfxItemPropertySet*       pColPropSet;
 
-protected:
     virtual const SfxItemPropertyMap& GetItemPropertyMap() override;
     virtual void GetOnePropertyValue( const SfxItemPropertySimpleEntry* pEntry,
                                 css::uno::Any& ) override;
@@ -1005,12 +1003,11 @@ public:
     virtual css::uno::Sequence< sal_Int8 > SAL_CALL getImplementationId() 
override;
 };
 
-class ScTableRowObj : public ScCellRangeObj
+class ScTableRowObj final : public ScCellRangeObj
 {
 private:
     const SfxItemPropertySet*       pRowPropSet;
 
-protected:
     virtual const SfxItemPropertyMap& GetItemPropertyMap() override;
     virtual void GetOnePropertyValue( const SfxItemPropertySimpleEntry* pEntry,
                                 css::uno::Any& ) override;
@@ -1031,7 +1028,7 @@ public:
     virtual css::uno::Sequence< OUString > SAL_CALL getSupportedServiceNames() 
override;
 };
 
-class ScCellsObj : public cppu::WeakImplHelper<
+class ScCellsObj final : public cppu::WeakImplHelper<
                             css::container::XEnumerationAccess,
                             css::lang::XServiceInfo >,
                         public SfxListener
@@ -1060,7 +1057,7 @@ public:
     virtual css::uno::Sequence< OUString > SAL_CALL getSupportedServiceNames() 
override;
 };
 
-class ScCellsEnumeration : public cppu::WeakImplHelper<
+class ScCellsEnumeration final : public cppu::WeakImplHelper<
                                 css::container::XEnumeration,
                                 css::lang::XServiceInfo >,
                             public SfxListener
@@ -1092,7 +1089,7 @@ public:
     virtual css::uno::Sequence< OUString > SAL_CALL getSupportedServiceNames() 
override;
 };
 
-class ScCellFormatsObj : public cppu::WeakImplHelper<
+class ScCellFormatsObj final : public cppu::WeakImplHelper<
                             css::container::XIndexAccess,
                             css::container::XEnumerationAccess,
                             css::lang::XServiceInfo >,
@@ -1129,7 +1126,7 @@ public:
     virtual css::uno::Sequence< OUString > SAL_CALL getSupportedServiceNames() 
override;
 };
 
-class ScCellFormatsEnumeration : public cppu::WeakImplHelper<
+class ScCellFormatsEnumeration final : public cppu::WeakImplHelper<
                                     css::container::XEnumeration,
                                     css::lang::XServiceInfo >,
                                  public SfxListener
@@ -1164,7 +1161,7 @@ public:
 
 typedef std::vector< ScRangeList > ScMyRangeLists;
 
-class ScUniqueCellFormatsObj : public cppu::WeakImplHelper<
+class ScUniqueCellFormatsObj final : public cppu::WeakImplHelper<
                             css::container::XIndexAccess,
                             css::container::XEnumerationAccess,
                             css::lang::XServiceInfo >,
@@ -1199,7 +1196,7 @@ public:
     virtual css::uno::Sequence< OUString > SAL_CALL getSupportedServiceNames() 
override;
 };
 
-class ScUniqueCellFormatsEnumeration : public cppu::WeakImplHelper<
+class ScUniqueCellFormatsEnumeration final : public cppu::WeakImplHelper<
                                     css::container::XEnumeration,
                                     css::lang::XServiceInfo >,
                                  public SfxListener
diff --git a/sc/inc/chart2uno.hxx b/sc/inc/chart2uno.hxx
index ae1226c30824..ca5c1f7ffe6d 100644
--- a/sc/inc/chart2uno.hxx
+++ b/sc/inc/chart2uno.hxx
@@ -53,7 +53,7 @@ namespace com { namespace sun { namespace star { namespace 
chart2 { namespace da
 class ScDocument;
 
 // DataProvider
-class SC_DLLPUBLIC ScChart2DataProvider : public
+class SC_DLLPUBLIC ScChart2DataProvider final : public
                 ::cppu::WeakImplHelper<
                     css::chart2::data::XDataProvider,
                     css::chart2::data::XSheetDataProvider,
@@ -149,7 +149,7 @@ private:
 };
 
 // DataSource
-class ScChart2DataSource : public
+class ScChart2DataSource final : public
                 ::cppu::WeakImplHelper<
                     css::chart2::data::XDataSource,
                     css::lang::XServiceInfo>,
@@ -187,7 +187,7 @@ private:
 };
 
 // DataSequence
-class ScChart2DataSequence : public
+class ScChart2DataSequence final : public
                 ::cppu::WeakImplHelper<
                     css::chart2::data::XDataSequence,
                     css::chart2::data::XTextualDataSequence,
@@ -290,7 +290,7 @@ private:
     DECL_LINK( ValueListenerHdl, const SfxHint&, void );
 
 private:
-    class ExternalRefListener : public ScExternalRefManager::LinkListener
+    class ExternalRefListener final : public ScExternalRefManager::LinkListener
     {
     public:
         ExternalRefListener(ScChart2DataSequence& rParent, ScDocument* pDoc);
@@ -338,7 +338,7 @@ private:
         Item();
     };
 
-    class HiddenRangeListener : public ScChartHiddenRangeListener
+    class HiddenRangeListener final : public ScChartHiddenRangeListener
     {
     public:
         HiddenRangeListener(ScChart2DataSequence& rParent);
diff --git a/sc/inc/chartlis.hxx b/sc/inc/chartlis.hxx
index 846259d678fa..1b49d168f826 100644
--- a/sc/inc/chartlis.hxx
+++ b/sc/inc/chartlis.hxx
@@ -38,10 +38,10 @@ class Timer;
 class ScDocument;
 class ScChartUnoData;
 
-class SC_DLLPUBLIC ScChartListener : public SvtListener
+class SC_DLLPUBLIC ScChartListener final : public SvtListener
 {
 public:
-    class ExternalRefListener : public ScExternalRefManager::LinkListener
+    class ExternalRefListener final : public ScExternalRefManager::LinkListener
     {
     public:
         ExternalRefListener(ScChartListener& rParent, ScDocument* pDoc);
diff --git a/sc/inc/chartuno.hxx b/sc/inc/chartuno.hxx
index 3e40ead05d40..63b32afc79bc 100644
--- a/sc/inc/chartuno.hxx
+++ b/sc/inc/chartuno.hxx
@@ -39,7 +39,7 @@
 class ScDocShell;
 class ScChartObj;
 
-class ScChartsObj : public cppu::WeakImplHelper<
+class ScChartsObj final : public cppu::WeakImplHelper<
                             css::table::XTableCharts,
                             css::container::XEnumerationAccess,
                             css::container::XIndexAccess,
diff --git a/sc/inc/chgtrack.hxx b/sc/inc/chgtrack.hxx
index 730cedc20cd0..fcaef910b69c 100644
--- a/sc/inc/chgtrack.hxx
+++ b/sc/inc/chgtrack.hxx
@@ -400,7 +400,7 @@ public:
 //  ScChangeActionDel
 class SAL_DLLPUBLIC_RTTI ScChangeActionMove;
 
-class ScChangeActionDelMoveEntry : public ScChangeActionLinkEntry
+class ScChangeActionDelMoveEntry final : public ScChangeActionLinkEntry
 {
     friend class ScChangeActionDel;
     friend class ScChangeTrack;
@@ -760,7 +760,7 @@ public:
 };
 
 //  ScChangeActionReject
-class ScChangeActionReject : public ScChangeAction
+class ScChangeActionReject final : public ScChangeAction
 {
     friend class ScChangeTrack;
     friend class ScChangeActionContent;
diff --git a/sc/inc/clipcontext.hxx b/sc/inc/clipcontext.hxx
index 6752104fb34c..e2b99ba5bf34 100644
--- a/sc/inc/clipcontext.hxx
+++ b/sc/inc/clipcontext.hxx
@@ -43,7 +43,7 @@ public:
     ColumnBlockPositionSet* getBlockPositionSet() { return mpSet.get(); }
 };
 
-class CopyFromClipContext : public ClipContextBase
+class CopyFromClipContext final : public ClipContextBase
 {
     SCCOL mnDestCol1;
     SCCOL mnDestCol2;
@@ -131,7 +131,7 @@ public:
     bool isDateCell( const ScColumn& rCol, SCROW nRow ) const;
 };
 
-class CopyToClipContext : public ClipContextBase
+class CopyToClipContext final : public ClipContextBase
 {
     bool const mbKeepScenarioFlags:1;
 
@@ -142,7 +142,7 @@ public:
     bool isKeepScenarioFlags() const;
 };
 
-class CopyToDocContext : public ClipContextBase
+class CopyToDocContext final : public ClipContextBase
 {
     bool mbStartListening;
 
@@ -154,7 +154,7 @@ public:
     bool isStartListening() const;
 };
 
-class MixDocContext : public ClipContextBase
+class MixDocContext final : public ClipContextBase
 {
 public:
     MixDocContext(ScDocument& rDoc);
diff --git a/sc/inc/colorscale.hxx b/sc/inc/colorscale.hxx
index 236dac698c54..8a6639de636c 100644
--- a/sc/inc/colorscale.hxx
+++ b/sc/inc/colorscale.hxx
@@ -250,7 +250,7 @@ private:
 
 typedef std::vector<std::unique_ptr<ScColorScaleEntry>> ScColorScaleEntries;
 
-class SC_DLLPUBLIC ScColorScaleFormat : public ScColorFormat
+class SC_DLLPUBLIC ScColorScaleFormat final : public ScColorFormat
 {
 private:
     ScColorScaleEntries maColorScales;
@@ -294,7 +294,7 @@ public:
     void EnsureSize();
 };
 
-class SC_DLLPUBLIC ScDataBarFormat : public ScColorFormat
+class SC_DLLPUBLIC ScDataBarFormat final : public ScColorFormat
 {
 public:
     ScDataBarFormat(ScDocument* pDoc);
@@ -355,7 +355,7 @@ struct ScIconSetFormatData
     ScIconSetFormatData& operator=(ScIconSetFormatData const&) = delete; 
//TODO?
 };
 
-class SC_DLLPUBLIC ScIconSetFormat : public ScColorFormat
+class SC_DLLPUBLIC ScIconSetFormat final : public ScColorFormat
 {
 public:
     ScIconSetFormat(ScDocument* pDoc);
diff --git a/sc/inc/compressedarray.hxx b/sc/inc/compressedarray.hxx
index bfcb07888318..593aeb6e868d 100644
--- a/sc/inc/compressedarray.hxx
+++ b/sc/inc/compressedarray.hxx
@@ -163,7 +163,7 @@ const D& ScCompressedArray<A,D>::GetNextValue( size_t& 
nIndex, A& nEnd ) const
 /** The data type represents bits, manageable by bitwise operations.
  */
 
-template< typename A, typename D > class ScBitMaskCompressedArray : public 
ScCompressedArray<A,D>
+template< typename A, typename D > class ScBitMaskCompressedArray final : 
public ScCompressedArray<A,D>
 {
 public:
                                 ScBitMaskCompressedArray( A nMaxAccessP,
diff --git a/sc/inc/conditio.hxx b/sc/inc/conditio.hxx
index 0ab1d114f8f4..40cfdffc2f21 100644
--- a/sc/inc/conditio.hxx
+++ b/sc/inc/conditio.hxx
@@ -180,7 +180,7 @@ inline std::basic_ostream<charT, traits> & operator 
<<(std::basic_ostream<charT,
     return stream;
 }
 
-class ScFormulaListener : public SvtListener
+class ScFormulaListener final : public SvtListener
 {
 private:
     mutable bool mbDirty;
@@ -446,7 +446,7 @@ private:
 };
 
 //  single condition entry for conditional formatting
-class SC_DLLPUBLIC ScCondFormatEntry : public ScConditionEntry
+class SC_DLLPUBLIC ScCondFormatEntry final : public ScConditionEntry
 {
     OUString aStyleName;
     Type eCondFormatType = Type::Condition;
@@ -476,7 +476,7 @@ public:
     virtual ScFormatEntry* Clone(ScDocument* pDoc) const override;
     virtual Type GetType() const override { return eCondFormatType; }
 
-protected:
+private:
     virtual void    DataChanged() const override;
 };
 
@@ -501,7 +501,7 @@ enum ScCondFormatDateType
 
 }
 
-class SC_DLLPUBLIC ScCondDateFormatEntry : public ScFormatEntry
+class SC_DLLPUBLIC ScCondDateFormatEntry final : public ScFormatEntry
 {
 public:
     ScCondDateFormatEntry(ScDocument* pDoc);
diff --git a/sc/inc/confuno.hxx b/sc/inc/confuno.hxx
index 6aa970e3efcf..7665ddac2497 100644
--- a/sc/inc/confuno.hxx
+++ b/sc/inc/confuno.hxx
@@ -28,7 +28,7 @@
 
 class ScDocShell;
 
-class ScDocumentConfiguration : public cppu::WeakImplHelper<
+class ScDocumentConfiguration final : public cppu::WeakImplHelper<
                                         css::beans::XPropertySet,
                                         css::lang::XServiceInfo>,
                                 public SfxListener
diff --git a/sc/inc/cursuno.hxx b/sc/inc/cursuno.hxx
index 256d7690c66d..861fb075bdd7 100644
--- a/sc/inc/cursuno.hxx
+++ b/sc/inc/cursuno.hxx
@@ -25,7 +25,7 @@
 #include <com/sun/star/sheet/XSheetCellCursor.hpp>
 #include <com/sun/star/sheet/XUsedAreaCursor.hpp>
 
-class ScCellCursorObj : public ScCellRangeObj,
+class ScCellCursorObj final : public ScCellRangeObj,
                         public css::sheet::XSheetCellCursor,
                         public css::sheet::XUsedAreaCursor,
                         public css::table::XCellCursor
diff --git a/sc/inc/dapiuno.hxx b/sc/inc/dapiuno.hxx
index e73e824c309c..12a8e9d4db1c 100644
--- a/sc/inc/dapiuno.hxx
+++ b/sc/inc/dapiuno.hxx
@@ -76,7 +76,7 @@ public:
 };
 
 /** DataPilotTables collection per sheet. */
-class ScDataPilotTablesObj : public cppu::WeakImplHelper<
+class ScDataPilotTablesObj final : public cppu::WeakImplHelper<
                                         css::sheet::XDataPilotTables,
                                         css::container::XEnumerationAccess,
                                         css::container::XIndexAccess,
@@ -202,7 +202,7 @@ public:
                             // XServiceInfo is in derived classes
 };
 
-class ScDataPilotDescriptor : public ScDataPilotDescriptorBase
+class ScDataPilotDescriptor final : public ScDataPilotDescriptorBase
 {
 private:
     std::unique_ptr<ScDPObject>  mpDPObject;
@@ -339,7 +339,7 @@ typedef ::cppu::WeakImplHelper
 ScDataPilotFieldsObjImpl;
 
 /** Collection of all DataPilot fields, or of all fields from a specific 
dimension. */
-class ScDataPilotFieldsObj : public ScDataPilotChildObjBase, public 
ScDataPilotFieldsObjImpl
+class ScDataPilotFieldsObj final : public ScDataPilotChildObjBase, public 
ScDataPilotFieldsObjImpl
 {
 public:
     explicit            ScDataPilotFieldsObj(
@@ -498,7 +498,7 @@ ScDataPilotFieldGroupsObjImpl;
     field. Grouping info has to be written back with the GroupInfo property of
     the DataPilot field after modifying this object.
  */
-class ScDataPilotFieldGroupsObj : public ScDataPilotFieldGroupsObjImpl
+class ScDataPilotFieldGroupsObj final : public ScDataPilotFieldGroupsObjImpl
 {
 public:
     explicit            ScDataPilotFieldGroupsObj( const ScFieldGroups& 
rGroups );
@@ -558,7 +558,7 @@ typedef ::cppu::WeakImplHelper
 >
 ScDataPilotFieldGroupObjImpl;
 
-class ScDataPilotFieldGroupObj : public ScDataPilotFieldGroupObjImpl
+class ScDataPilotFieldGroupObj final : public ScDataPilotFieldGroupObjImpl
 {
 public:
     explicit            ScDataPilotFieldGroupObj( ScDataPilotFieldGroupsObj& 
rParent, const OUString& rGroupName );
@@ -611,7 +611,7 @@ typedef ::cppu::WeakImplHelper
 >
 ScDataPilotFieldGroupItemObjImpl;
 
-class ScDataPilotFieldGroupItemObj : public ScDataPilotFieldGroupItemObjImpl
+class ScDataPilotFieldGroupItemObj final : public 
ScDataPilotFieldGroupItemObjImpl
 {
 public:
     explicit            ScDataPilotFieldGroupItemObj( 
ScDataPilotFieldGroupObj& rParent, const OUString& rName );
@@ -640,7 +640,7 @@ typedef ::cppu::WeakImplHelper
 >
 ScDataPilotItemsObjImpl;
 
-class ScDataPilotItemsObj : public ScDataPilotChildObjBase, public 
ScDataPilotItemsObjImpl
+class ScDataPilotItemsObj final : public ScDataPilotChildObjBase, public 
ScDataPilotItemsObjImpl
 {
 public:
     explicit            ScDataPilotItemsObj( ScDataPilotDescriptorBase& 
rParent, const ScFieldIdentifier& rFieldId );
diff --git a/sc/inc/datauno.hxx b/sc/inc/datauno.hxx
index 92f172532a4c..14c06d4b4848 100644
--- a/sc/inc/datauno.hxx
+++ b/sc/inc/datauno.hxx
@@ -172,7 +172,7 @@ public:
 
 //  ScSubTotalDescriptor - dummy container to use with XImportTarget
 
-class ScSubTotalDescriptor : public ScSubTotalDescriptorBase
+class ScSubTotalDescriptor final : public ScSubTotalDescriptorBase
 {
 private:
     ScSubTotalParam         aStoredParam;
@@ -191,7 +191,7 @@ public:
 
 //  ScRangeSubTotalDescriptor - SubTotalDescriptor of a data base area
 
-class ScRangeSubTotalDescriptor : public ScSubTotalDescriptorBase
+class ScRangeSubTotalDescriptor final : public ScSubTotalDescriptorBase
 {
 private:
     rtl::Reference<ScDatabaseRangeObj>  mxParent;
@@ -231,7 +231,7 @@ public:
     virtual css::uno::Sequence< OUString > SAL_CALL getSupportedServiceNames() 
override;
 };
 
-class ScConsolidationDescriptor : public cppu::WeakImplHelper<
+class ScConsolidationDescriptor final : public cppu::WeakImplHelper<
                                         css::sheet::XConsolidationDescriptor,
                                         css::lang::XServiceInfo >
 {
@@ -341,7 +341,7 @@ public:
 
 //  ScFilterDescriptor - dummy container to use with XFilterable
 
-class ScFilterDescriptor : public ScFilterDescriptorBase
+class ScFilterDescriptor final : public ScFilterDescriptorBase
 {
 private:
     ScQueryParam            aStoredParam;       // nField[] here within the 
area
@@ -361,7 +361,7 @@ public:
 
 //  ScRangeFilterDescriptor - FilterDescriptor of a data base area
 
-class ScRangeFilterDescriptor : public ScFilterDescriptorBase
+class ScRangeFilterDescriptor final : public ScFilterDescriptorBase
 {
 private:
     rtl::Reference<ScDatabaseRangeObj>  mxParent;
@@ -377,7 +377,7 @@ public:
 
 //  ScDataPilotFilterDescriptor - FilterDescriptor of a DataPilotDescriptors
 
-class ScDataPilotFilterDescriptor : public ScFilterDescriptorBase
+class ScDataPilotFilterDescriptor final : public ScFilterDescriptorBase
 {
 private:
     rtl::Reference<ScDataPilotDescriptorBase>  mxParent;
@@ -479,7 +479,7 @@ public:
     virtual css::uno::Sequence< OUString > SAL_CALL getSupportedServiceNames() 
override;
 };
 
-class ScDatabaseRangesObj : public cppu::WeakImplHelper<
+class ScDatabaseRangesObj final : public cppu::WeakImplHelper<
                                 css::sheet::XDatabaseRanges,
                                 css::container::XEnumerationAccess,
                                 css::container::XIndexAccess,
@@ -526,7 +526,7 @@ public:
     virtual css::uno::Sequence< OUString > SAL_CALL getSupportedServiceNames() 
override;
 };
 
-class ScUnnamedDatabaseRangesObj : public cppu::WeakImplHelper<
+class ScUnnamedDatabaseRangesObj final : public cppu::WeakImplHelper<
                                 css::sheet::XUnnamedDatabaseRanges>,
                             public SfxListener
 {
diff --git a/sc/inc/dbdata.hxx b/sc/inc/dbdata.hxx
index 7fd60a530b66..a7dc35c3b61b 100644
--- a/sc/inc/dbdata.hxx
+++ b/sc/inc/dbdata.hxx
@@ -58,7 +58,7 @@ protected:
     ScRangeList maDirtyTableColumnNames;
 };
 
-class SAL_DLLPUBLIC_RTTI ScDBData : public SvtListener, public ScRefreshTimer
+class SAL_DLLPUBLIC_RTTI ScDBData final : public SvtListener, public 
ScRefreshTimer
 {
 private:
     std::unique_ptr<ScSortParam> mpSortParam;
@@ -111,7 +111,7 @@ public:
              bool bByR = true, bool bHasH = true, bool bTotals = false);
     ScDBData(const ScDBData& rData);
     ScDBData(const OUString& rName, const ScDBData& rData);
-    virtual ~ScDBData() override;
+    SC_DLLPUBLIC virtual ~ScDBData() override;
 
     virtual void Notify( const SfxHint& rHint ) override;
 
@@ -232,7 +232,7 @@ public:
     /**
      * Stores global named database ranges.
      */
-    class SC_DLLPUBLIC NamedDBs : public ScDBDataContainerBase
+    class SC_DLLPUBLIC NamedDBs final : public ScDBDataContainerBase
     {
         friend class ScDBCollection;
 
diff --git a/sc/inc/defaultsoptions.hxx b/sc/inc/defaultsoptions.hxx
index 3bfcb0dd593a..dd48dd83d4f9 100644
--- a/sc/inc/defaultsoptions.hxx
+++ b/sc/inc/defaultsoptions.hxx
@@ -37,7 +37,7 @@ public:
 
 // item for the dialog / options page
 
-class SC_DLLPUBLIC ScTpDefaultsItem : public SfxPoolItem
+class SC_DLLPUBLIC ScTpDefaultsItem final : public SfxPoolItem
 {
 public:
     ScTpDefaultsItem( const ScDefaultsOptions& rOpt );
@@ -59,7 +59,7 @@ private:
 
 // config item
 
-class ScDefaultsCfg : public ScDefaultsOptions, public utl::ConfigItem
+class ScDefaultsCfg final : public ScDefaultsOptions, public utl::ConfigItem
 {
 private:
     static css::uno::Sequence<OUString> GetPropertyNames();
diff --git a/sc/inc/defltuno.hxx b/sc/inc/defltuno.hxx
index eaf88b049049..5713afbab7a7 100644
--- a/sc/inc/defltuno.hxx
+++ b/sc/inc/defltuno.hxx
@@ -29,7 +29,7 @@
 
 class ScDocShell;
 
-class ScDocDefaultsObj : public ::cppu::WeakImplHelper<
+class ScDocDefaultsObj final : public ::cppu::WeakImplHelper<
                             css::beans::XPropertySet,
                             css::beans::XPropertyState,
                             css::lang::XServiceInfo >,
diff --git a/sc/inc/dispuno.hxx b/sc/inc/dispuno.hxx
index c6dab173dc44..de458cb59ebf 100644
--- a/sc/inc/dispuno.hxx
+++ b/sc/inc/dispuno.hxx
@@ -32,7 +32,7 @@ namespace com { namespace sun { namespace star { namespace 
frame {
 
 class ScTabViewShell;
 
-class ScDispatchProviderInterceptor : public cppu::WeakImplHelper<
+class ScDispatchProviderInterceptor final : public cppu::WeakImplHelper<
                                         
css::frame::XDispatchProviderInterceptor,
                                         css::lang::XEventListener>,
                                     public SfxListener
@@ -78,7 +78,7 @@ public:
     virtual void SAL_CALL   disposing( const css::lang::EventObject& Source ) 
override;
 };
 
-class ScDispatch : public cppu::WeakImplHelper<
+class ScDispatch final : public cppu::WeakImplHelper<
                                     css::frame::XDispatch,
                                     css::view::XSelectionChangeListener >,
                                 public SfxListener
diff --git a/sc/inc/dociter.hxx b/sc/inc/dociter.hxx
index 1f57be4856c7..a6a8d370270b 100644
--- a/sc/inc/dociter.hxx
+++ b/sc/inc/dociter.hxx
@@ -127,7 +127,7 @@ private:
         virtual bool getNext(Value& rValue) = 0;
     };
 
-    class DataAccessInternal : public DataAccess
+    class DataAccessInternal final : public DataAccess
     {
         typedef std::pair<sc::CellStoreType::const_iterator,size_t> 
PositionType;
     public:
@@ -157,7 +157,7 @@ private:
         bool const          bCalcAsShown;
     };
 
-    class DataAccessMatrix : public DataAccess
+    class DataAccessMatrix final : public DataAccess
     {
     public:
         DataAccessMatrix(ScDBQueryParamMatrix* pParam);
diff --git a/sc/inc/docoptio.hxx b/sc/inc/docoptio.hxx
index 1a488abcaf0a..215ba4ee29a3 100644
--- a/sc/inc/docoptio.hxx
+++ b/sc/inc/docoptio.hxx
@@ -133,7 +133,7 @@ inline bool ScDocOptions::operator!=( const ScDocOptions& 
rOpt ) const
 
 // Item for preferences dialog - calculation
 
-class SC_DLLPUBLIC ScTpCalcItem : public SfxPoolItem
+class SC_DLLPUBLIC ScTpCalcItem final : public SfxPoolItem
 {
 public:
                 ScTpCalcItem( sal_uInt16 nWhich,
diff --git a/sc/inc/docpool.hxx b/sc/inc/docpool.hxx
index 0b91a5494526..75989a1beb77 100644
--- a/sc/inc/docpool.hxx
+++ b/sc/inc/docpool.hxx
@@ -27,14 +27,14 @@
 class ScStyleSheet;
 class ScDocument;
 
-class SC_DLLPUBLIC ScDocumentPool: public SfxItemPool
+class SC_DLLPUBLIC ScDocumentPool final : public SfxItemPool
 {
     std::vector<SfxPoolItem*> mvPoolDefaults;
     sal_uInt64 mnCurrentMaxKey;
 
 public:
             ScDocumentPool();
-protected:
+private:
             virtual ~ScDocumentPool() override;
 public:
 
@@ -47,7 +47,7 @@ public:
                                   MapUnit          ePresentationMetric,
                                   OUString&           rText,
                                   const IntlWrapper& rIntl ) const override;
-protected:
+private:
     virtual const SfxPoolItem&  PutImpl( const SfxPoolItem&, sal_uInt16 nWhich 
= 0, bool bPassingOwnership = false ) override;
 };
 
diff --git a/sc/inc/docuno.hxx b/sc/inc/docuno.hxx
index b5a5e71b1a60..e7cf7f1d3263 100644
--- a/sc/inc/docuno.hxx
+++ b/sc/inc/docuno.hxx
@@ -388,7 +388,7 @@ public:
     OUString getPostItsPos() override;
 };
 
-class ScDrawPagesObj : public cppu::WeakImplHelper<
+class ScDrawPagesObj final : public cppu::WeakImplHelper<
                                 css::drawing::XDrawPages,
                                 css::lang::XServiceInfo>,
                         public SfxListener
@@ -424,7 +424,7 @@ public:
     virtual css::uno::Sequence< OUString > SAL_CALL getSupportedServiceNames() 
override;
 };
 
-class ScTableSheetsObj : public cppu::WeakImplHelper<
+class ScTableSheetsObj final : public cppu::WeakImplHelper<
                                 css::sheet::XSpreadsheets2,
                                 css::sheet::XCellRangesAccess,
                                 css::container::XEnumerationAccess,
@@ -499,7 +499,7 @@ public:
     virtual css::uno::Sequence< OUString > SAL_CALL getSupportedServiceNames() 
override;
 };
 
-class ScTableColumnsObj : public cppu::WeakImplHelper<
+class ScTableColumnsObj final : public cppu::WeakImplHelper<
                                 css::table::XTableColumns,
                                 css::container::XEnumerationAccess,
                                 css::container::XNameAccess,
@@ -566,7 +566,7 @@ public:
     virtual css::uno::Sequence< OUString > SAL_CALL getSupportedServiceNames() 
override;
 };
 
-class ScTableRowsObj : public cppu::WeakImplHelper<
+class ScTableRowsObj final : public cppu::WeakImplHelper<
                                 css::table::XTableRows,
                                 css::container::XEnumerationAccess,
                                 css::beans::XPropertySet,
@@ -625,7 +625,7 @@ public:
     virtual css::uno::Sequence< OUString > SAL_CALL getSupportedServiceNames() 
override;
 };
 
-class ScSpreadsheetSettingsObj : public cppu::WeakImplHelper<
+class ScSpreadsheetSettingsObj final : public cppu::WeakImplHelper<
                                     css::beans::XPropertySet,
                                     css::lang::XServiceInfo>,
                                  public SfxListener
@@ -654,7 +654,7 @@ public:
     virtual css::uno::Sequence< OUString > SAL_CALL getSupportedServiceNames() 
override;
 };
 
-class ScAnnotationsObj : public cppu::WeakImplHelper<
+class ScAnnotationsObj final : public cppu::WeakImplHelper<
                                 css::sheet::XSheetAnnotations,
                                 css::container::XEnumerationAccess,
                                 css::lang::XServiceInfo>,
@@ -696,7 +696,7 @@ public:
     virtual css::uno::Sequence< OUString > SAL_CALL getSupportedServiceNames() 
override;
 };
 
-class ScScenariosObj : public cppu::WeakImplHelper<
+class ScScenariosObj final : public cppu::WeakImplHelper<
                                 css::sheet::XScenarios,
                                 css::container::XEnumerationAccess,
                                 css::container::XIndexAccess,
diff --git a/sc/inc/dpfilteredcache.hxx b/sc/inc/dpfilteredcache.hxx
index c88d8df716d1..f110131180c5 100644
--- a/sc/inc/dpfilteredcache.hxx
+++ b/sc/inc/dpfilteredcache.hxx
@@ -60,7 +60,7 @@ public:
     };
 
     /** ordinary single-item filter. */
-    class SingleFilter : public FilterBase
+    class SingleFilter final : public FilterBase
     {
     public:
         explicit SingleFilter(const ScDPItemData &rItem);
@@ -73,7 +73,7 @@ public:
     };
 
     /** multi-item (group) filter. */
-    class GroupFilter : public FilterBase
+    class GroupFilter final : public FilterBase
     {
     public:
         GroupFilter();
diff --git a/sc/inc/dpgroup.hxx b/sc/inc/dpgroup.hxx
index 9952b7bf3639..f109dd7bfd12 100644
--- a/sc/inc/dpgroup.hxx
+++ b/sc/inc/dpgroup.hxx
@@ -117,7 +117,7 @@ public:
 
 //  proxy implementation of ScDPTableData to add grouped items
 
-class ScDPGroupTableData : public ScDPTableData
+class ScDPGroupTableData final : public ScDPTableData
 {
     std::shared_ptr<ScDPTableData> pSourceData;
     long                    nSourceCount;
diff --git a/sc/inc/dpsdbtab.hxx b/sc/inc/dpsdbtab.hxx
index 8c11160cf141..c1e602121482 100644
--- a/sc/inc/dpsdbtab.hxx
+++ b/sc/inc/dpsdbtab.hxx
@@ -55,7 +55,7 @@ struct ScImportSourceDesc
 /**
  * This class represents source data from database source.
  */
-class ScDatabaseDPData : public ScDPTableData
+class ScDatabaseDPData final : public ScDPTableData
 {
 private:
     ScDPFilteredCache aCacheTable;
diff --git a/sc/inc/dpshttab.hxx b/sc/inc/dpshttab.hxx
index 3b15cefd117e..3e2ec432e5f7 100644
--- a/sc/inc/dpshttab.hxx
+++ b/sc/inc/dpshttab.hxx
@@ -83,7 +83,7 @@ private:
 /**
  * Implementation of ScDPTableData with sheet data.
  */
-class SC_DLLPUBLIC ScSheetDPData : public ScDPTableData
+class SC_DLLPUBLIC ScSheetDPData final : public ScDPTableData
 {
 private:
     ScQueryParam    aQuery;
diff --git a/sc/inc/dptabsrc.hxx b/sc/inc/dptabsrc.hxx
index c175600c9cd6..609f3e848e0d 100644
--- a/sc/inc/dptabsrc.hxx
+++ b/sc/inc/dptabsrc.hxx
@@ -72,7 +72,7 @@ enum class ScGeneralFunction;
 
 //  implementation of DataPilotSource using ScDPTableData
 
-class ScDPSource : public cppu::WeakImplHelper<
+class ScDPSource final : public cppu::WeakImplHelper<
                             css::sheet::XDimensionsSupplier,
                             css::sheet::XDataPilotResults,
                             css::util::XRefreshable,
diff --git a/sc/inc/drawpage.hxx b/sc/inc/drawpage.hxx
index fa7806a94ccf..b8edefe25acf 100644
--- a/sc/inc/drawpage.hxx
+++ b/sc/inc/drawpage.hxx
@@ -24,7 +24,7 @@
 
 class ScDrawLayer;
 
-class ScDrawPage : public FmFormPage
+class ScDrawPage final : public FmFormPage
 {
     ScDrawPage& operator=(const ScDrawPage&) = delete;
     ScDrawPage(const ScDrawPage&) = delete;
diff --git a/sc/inc/drdefuno.hxx b/sc/inc/drdefuno.hxx
index 1207aecf3614..6d21599e55d7 100644
--- a/sc/inc/drdefuno.hxx
+++ b/sc/inc/drdefuno.hxx
@@ -25,7 +25,7 @@
 
 class ScDocShell;
 
-class ScDrawDefaultsObj : public SvxUnoDrawPool, public SfxListener
+class ScDrawDefaultsObj final : public SvxUnoDrawPool, public SfxListener
 {
 private:
     ScDocShell*             pDocShell;
diff --git a/sc/inc/drwlayer.hxx b/sc/inc/drwlayer.hxx
index a2f9cadbc25d..3fa25a13f2ff 100644
--- a/sc/inc/drwlayer.hxx
+++ b/sc/inc/drwlayer.hxx
@@ -30,7 +30,7 @@ class ScDrawObjData;
 class ScMacroInfo;
 class ScMarkData;
 
-class ScTabDeletedHint : public SfxHint
+class ScTabDeletedHint final : public SfxHint
 {
 private:
     SCTAB const   nTab;
@@ -41,7 +41,7 @@ public:
     SCTAB   GetTab() const { return nTab; }
 };
 
-class ScTabSizeChangedHint : public SfxHint
+class ScTabSizeChangedHint final : public SfxHint
 {
 private:
     SCTAB const   nTab;
@@ -55,7 +55,7 @@ public:
 //  Adjusting of detective UserData and draw undo's both have to be in 
SdrUndoGroup;
 //  therefore derived from SdrUndoAction
 
-class ScUndoObjData : public SdrUndoObj
+class ScUndoObjData final : public SdrUndoObj
 {
 private:
     ScAddress const   aOldStt;
@@ -71,7 +71,7 @@ public:
     virtual void     Redo() override;
 };
 
-class ScUndoAnchorData : public SdrUndoObj
+class ScUndoAnchorData final : public SdrUndoObj
 {
 private:
     bool                    mbWasCellAnchored;
@@ -86,7 +86,7 @@ public:
     virtual void     Redo() override;
 };
 
-class SC_DLLPUBLIC ScDrawLayer : public FmFormModel
+class SC_DLLPUBLIC ScDrawLayer final : public FmFormModel
 {
 private:
     OUString const  aName;
@@ -212,7 +212,7 @@ private:
     static SfxObjectShell* pGlobalDrawPersist;          // for AllocModel
 public:
     static void     SetGlobalDrawPersist(SfxObjectShell* pPersist);
-protected:
+private:
     virtual css::uno::Reference< css::uno::XInterface > createUnoModel() 
override;
 };
 
diff --git a/sc/inc/editsrc.hxx b/sc/inc/editsrc.hxx
index 11af8707dc0d..9257b935bc3a 100644
--- a/sc/inc/editsrc.hxx
+++ b/sc/inc/editsrc.hxx
@@ -47,7 +47,7 @@ public:
  * reference instead of a copy to avoid broadcasting changes to the
  * authoritative copy.
  */
-class ScHeaderFooterEditSource : public ScEditSource
+class ScHeaderFooterEditSource final : public ScEditSource
 {
 private:
     ScHeaderFooterTextData& mrTextData;
@@ -71,7 +71,7 @@ public:
  * ScCellEditSource with local copy of ScCellTextData is used by
  * ScCellFieldsObj, ScCellFieldObj.
  */
-class ScCellEditSource : public ScEditSource
+class ScCellEditSource final : public ScEditSource
 {
 private:
     std::unique_ptr<ScCellTextData> pCellTextData;
@@ -92,7 +92,7 @@ public:
     bool IsDirty() const;
 };
 
-class ScAnnotationEditSource : public SvxEditSource, public SfxListener
+class ScAnnotationEditSource final : public SvxEditSource, public SfxListener
 {
 private:
     ScDocShell*             pDocShell;
@@ -115,7 +115,7 @@ public:
 
 //  EditSource with a shared forwarder for all children of one text object
 
-class ScSimpleEditSource : public SvxEditSource
+class ScSimpleEditSource final : public SvxEditSource
 {
 private:
     SvxTextForwarder* const   pForwarder;
@@ -130,7 +130,7 @@ public:
 
 };
 
-class ScAccessibilityEditSource : public SvxEditSource
+class ScAccessibilityEditSource final : public SvxEditSource
 {
 private:
     ::std::unique_ptr < ScAccessibleTextData > mpAccessibleTextData;
diff --git a/sc/inc/editutil.hxx b/sc/inc/editutil.hxx
index af189f759f4f..86d579bd1016 100644
--- a/sc/inc/editutil.hxx
+++ b/sc/inc/editutil.hxx
@@ -190,7 +190,7 @@ public:
 };
 
 // 1/100 mm
-class SC_DLLPUBLIC ScTabEditEngine : public ScFieldEditEngine
+class SC_DLLPUBLIC ScTabEditEngine final : public ScFieldEditEngine
 {
 private:
     void    Init(const ScPatternAttr& rPattern);
@@ -216,7 +216,7 @@ struct ScHeaderFieldData
 };
 
 // for headers/footers with fields
-class SC_DLLPUBLIC ScHeaderEditEngine : public ScEditEngineDefaulter
+class SC_DLLPUBLIC ScHeaderEditEngine final : public ScEditEngineDefaulter
 {
 private:
     ScHeaderFieldData   aData;
@@ -230,7 +230,7 @@ public:
 };
 
 // for Note text objects.
-class ScNoteEditEngine : public ScEditEngineDefaulter
+class ScNoteEditEngine final : public ScEditEngineDefaulter
 {
 
 public:
diff --git a/sc/inc/eventuno.hxx b/sc/inc/eventuno.hxx
index 2c420f8501e5..5230a823da5e 100644
--- a/sc/inc/eventuno.hxx
+++ b/sc/inc/eventuno.hxx
@@ -29,7 +29,7 @@
 
 class ScDocShell;
 
-class ScSheetEventsObj : public cppu::WeakImplHelper<
+class ScSheetEventsObj final : public cppu::WeakImplHelper<
                                         css::container::XNameReplace,
                                         css::lang::XServiceInfo>,
                                     public SfxListener
diff --git a/sc/inc/externalrefmgr.hxx b/sc/inc/externalrefmgr.hxx
index c041983c3ea4..71fba923d446 100644
--- a/sc/inc/externalrefmgr.hxx
+++ b/sc/inc/externalrefmgr.hxx
@@ -52,7 +52,7 @@ class ColumnSpanSet;
 
 }
 
-class ScExternalRefLink : public ::sfx2::SvBaseLink
+class ScExternalRefLink final : public ::sfx2::SvBaseLink
 {
 public:
     ScExternalRefLink(ScDocument* pDoc, sal_uInt16 nFileId);
@@ -357,7 +357,7 @@ private:
     mutable DocDataType maDocs;
 };
 
-class SC_DLLPUBLIC ScExternalRefManager : public 
formula::ExternalReferenceHelper, public SfxListener
+class SC_DLLPUBLIC ScExternalRefManager final : public 
formula::ExternalReferenceHelper, public SfxListener
 {
 public:
 
diff --git a/sc/inc/fielduno.hxx b/sc/inc/fielduno.hxx
index f5e4f45a2fbe..1b71791eb8f4 100644
--- a/sc/inc/fielduno.hxx
+++ b/sc/inc/fielduno.hxx
@@ -50,7 +50,7 @@ class ScDocShell;
 class ScHeaderFooterTextData;
 class SfxItemPropertySet;
 
-class ScCellFieldsObj : public cppu::WeakImplHelper<
+class ScCellFieldsObj final : public cppu::WeakImplHelper<
                             css::container::XEnumerationAccess,
                             css::container::XIndexAccess,
                             css::container::XContainer,
@@ -106,7 +106,7 @@ public:
     virtual css::uno::Sequence< OUString > SAL_CALL getSupportedServiceNames() 
override;
 };
 
-class ScHeaderFieldsObj : public cppu::WeakImplHelper<
+class ScHeaderFieldsObj final : public cppu::WeakImplHelper<
                             css::container::XEnumerationAccess,
                             css::container::XIndexAccess,
                             css::container::XContainer,
@@ -160,7 +160,7 @@ public:
  * Generic UNO wrapper for edit engine's field item in cells, headers, and
  * footers.
  */
-class ScEditFieldObj : public cppu::WeakImplHelper<
+class ScEditFieldObj final : public cppu::WeakImplHelper<
                             css::text::XTextField,
                             css::beans::XPropertySet,
                             css::lang::XUnoTunnel,
diff --git a/sc/inc/filtopt.hxx b/sc/inc/filtopt.hxx
index 9c1a81e66281..212fca328232 100644
--- a/sc/inc/filtopt.hxx
+++ b/sc/inc/filtopt.hxx
@@ -25,7 +25,7 @@
 
 // filter options
 
-class SC_DLLPUBLIC ScFilterOptions : public utl::ConfigItem
+class SC_DLLPUBLIC ScFilterOptions final : public utl::ConfigItem
 {
 private:
     bool        bWK3Flag;
diff --git a/sc/inc/filtuno.hxx b/sc/inc/filtuno.hxx
index 9231c8b3b16a..8fa870a4ac13 100644
--- a/sc/inc/filtuno.hxx
+++ b/sc/inc/filtuno.hxx
@@ -34,7 +34,7 @@ namespace com { namespace sun { namespace star { namespace io 
{
 
 namespace com::sun::star::awt { class XWindow; }
 
-class ScFilterOptionsObj : public ::cppu::WeakImplHelper<
+class ScFilterOptionsObj final : public ::cppu::WeakImplHelper<
                             css::beans::XPropertyAccess,
                             css::ui::dialogs::XExecutableDialog,
                             css::document::XImporter,
diff --git a/sc/inc/fmtuno.hxx b/sc/inc/fmtuno.hxx
index a8344bcd4d88..ca259517f9da 100644
--- a/sc/inc/fmtuno.hxx
+++ b/sc/inc/fmtuno.hxx
@@ -65,7 +65,7 @@ struct ScCondFormatEntryItem
     ScCondFormatEntryItem();
 };
 
-class ScTableConditionalFormat : public cppu::WeakImplHelper<
+class ScTableConditionalFormat final : public cppu::WeakImplHelper<
                             css::sheet::XSheetConditionalEntries,
                             css::container::XNameAccess,
                             css::container::XEnumerationAccess,
@@ -154,7 +154,7 @@ public:
     virtual css::uno::Sequence< OUString > SAL_CALL getSupportedServiceNames() 
override;
 };
 
-class ScTableValidationObj : public cppu::WeakImplHelper<
+class ScTableValidationObj final : public cppu::WeakImplHelper<
                             css::sheet::XSheetCondition2,
                             css::sheet::XMultiFormulaTokens,
                             css::beans::XPropertySet,
diff --git a/sc/inc/forbiuno.hxx b/sc/inc/forbiuno.hxx
index 890620c8ecfb..ac599c010a47 100644
--- a/sc/inc/forbiuno.hxx
+++ b/sc/inc/forbiuno.hxx
@@ -27,11 +27,10 @@ class ScDocShell;
 
 //  object to set forbidden characters to document
 
-class ScForbiddenCharsObj : public SvxUnoForbiddenCharsTable, public 
SfxListener
+class ScForbiddenCharsObj final : public SvxUnoForbiddenCharsTable, public 
SfxListener
 {
     ScDocShell*     pDocShell;
 
-protected:
     virtual void    onChange() override;
 
 public:
diff --git a/sc/inc/formulaopt.hxx b/sc/inc/formulaopt.hxx
index 202f50c3e1d2..ba38c8735d4e 100644
--- a/sc/inc/formulaopt.hxx
+++ b/sc/inc/formulaopt.hxx
@@ -75,7 +75,7 @@ public:
 
 // item for the dialog / options page
 
-class SC_DLLPUBLIC ScTpFormulaItem : public SfxPoolItem
+class SC_DLLPUBLIC ScTpFormulaItem final : public SfxPoolItem
 {
 public:
     ScTpFormulaItem( const ScFormulaOptions& rOpt );
@@ -97,7 +97,7 @@ private:
 
 // config item
 
-class ScFormulaCfg : public ScFormulaOptions, public utl::ConfigItem
+class ScFormulaCfg final : public ScFormulaOptions, public utl::ConfigItem
 {
     typedef std::map<OUString,sal_uInt16> PropsToIds;
     static css::uno::Sequence<OUString> GetPropertyNames();
diff --git a/sc/inc/funcdesc.hxx b/sc/inc/funcdesc.hxx
index b98321a80303..cb7f8f759b9e 100644
--- a/sc/inc/funcdesc.hxx
+++ b/sc/inc/funcdesc.hxx
@@ -38,7 +38,7 @@
   Stores and generates human readable descriptions for spreadsheet-functions,
   e.g.\ functions used in formulas in calc
 */
-class ScFuncDesc : public formula::IFunctionDescription
+class ScFuncDesc final : public formula::IFunctionDescription
 {
 public:
     ScFuncDesc();
@@ -257,7 +257,7 @@ private:
   Contains the name, index and function manager of a category,
   as well as a list of functions in the category
 */
-class ScFunctionCategory : public formula::IFunctionCategory
+class ScFunctionCategory final : public formula::IFunctionCategory
 {
 public:
     ScFunctionCategory(::std::vector<const ScFuncDesc*>* _pCategory,sal_uInt32 
_nCategory)
@@ -295,7 +295,7 @@ private:
 /**
   Stores spreadsheet functions in categories, including a cumulative ('All') 
category and makes them accessible.
 */
-class ScFunctionMgr : public formula::IFunctionManager
+class ScFunctionMgr final : public formula::IFunctionManager
 {
 public:
     /**
diff --git a/sc/inc/funcuno.hxx b/sc/inc/funcuno.hxx
index 4e466ced30b7..511fbdfdfa05 100644
--- a/sc/inc/funcuno.hxx
+++ b/sc/inc/funcuno.hxx
@@ -53,7 +53,7 @@ public:
     void        Clear();
 };
 
-class ScFunctionAccess : public cppu::WeakImplHelper<
+class ScFunctionAccess final : public cppu::WeakImplHelper<
                                         css::sheet::XFunctionAccess,
                                         css::beans::XPropertySet,
                                         css::lang::XServiceInfo>,
diff --git a/sc/inc/grouparealistener.hxx b/sc/inc/grouparealistener.hxx
index 283bc3124637..0a044419b243 100644
--- a/sc/inc/grouparealistener.hxx
+++ b/sc/inc/grouparealistener.hxx
@@ -24,7 +24,7 @@ namespace sc {
 
 class BulkDataHint;
 
-class FormulaGroupAreaListener : public SvtListener
+class FormulaGroupAreaListener final : public SvtListener
 {
     ScRange maRange;
     const ScColumn* mpColumn;
diff --git a/sc/inc/hints.hxx b/sc/inc/hints.hxx
index 55fc22c450b7..04d853026c38 100644
--- a/sc/inc/hints.hxx
+++ b/sc/inc/hints.hxx
@@ -25,7 +25,7 @@
 #include <tools/solar.h>
 #include <svl/hint.hxx>
 
-class SC_DLLPUBLIC ScPaintHint : public SfxHint
+class SC_DLLPUBLIC ScPaintHint final : public SfxHint
 {
     ScRange const         aRange;
     PaintPartFlags const  nParts;
@@ -47,7 +47,7 @@ public:
     bool            GetPrintFlag() const    { return bPrint; }
 };
 
-class ScUpdateRefHint : public SfxHint
+class ScUpdateRefHint final : public SfxHint
 {
     UpdateRefMode const   eUpdateRefMode;
     ScRange const         aRange;
@@ -72,7 +72,7 @@ enum class ScLinkRefType {
     NONE, SHEET, AREA, DDE
 };
 
-class ScLinkRefreshedHint : public SfxHint
+class ScLinkRefreshedHint final : public SfxHint
 {
     ScLinkRefType nLinkType;
     OUString    aUrl;       // used for sheet links
@@ -100,7 +100,7 @@ public:
 
 //! move ScAutoStyleHint to a different file?
 
-class ScAutoStyleHint : public SfxHint
+class ScAutoStyleHint final : public SfxHint
 {
     ScRange const     aRange;
     OUString const    aStyle1;
@@ -118,7 +118,7 @@ public:
     const OUString& GetStyle2() const   { return aStyle2; }
 };
 
-class ScDBRangeRefreshedHint : public SfxHint
+class ScDBRangeRefreshedHint final : public SfxHint
 {
     ScImportParam const   aParam;
 
@@ -129,7 +129,7 @@ public:
     const ScImportParam&  GetImportParam() const    { return aParam; }
 };
 
-class ScDataPilotModifiedHint : public SfxHint
+class ScDataPilotModifiedHint final : public SfxHint
 {
     OUString const        maName;
 
diff --git a/sc/inc/inputopt.hxx b/sc/inc/inputopt.hxx
index 94a095704391..8d312a133806 100644
--- a/sc/inc/inputopt.hxx
+++ b/sc/inc/inputopt.hxx
@@ -72,7 +72,7 @@ public:
 
 // CfgItem for input options
 
-class ScInputCfg : public ScInputOptions,
+class ScInputCfg final : public ScInputOptions,
                   public utl::ConfigItem
 {
     static css::uno::Sequence<OUString> GetPropertyNames();
diff --git a/sc/inc/linkuno.hxx b/sc/inc/linkuno.hxx
index 38319c46b644..2ace1d5c85f4 100644
--- a/sc/inc/linkuno.hxx
+++ b/sc/inc/linkuno.hxx
@@ -48,7 +48,7 @@ class ScTableLink;
 
 typedef std::vector< css::uno::Reference< css::util::XRefreshListener > > 
XRefreshListenerArr_Impl;
 
-class ScSheetLinkObj : public cppu::WeakImplHelper<
+class ScSheetLinkObj final : public cppu::WeakImplHelper<
                             css::container::XNamed,
                             css::util::XRefreshable,
                             css::beans::XPropertySet,
@@ -112,7 +112,7 @@ public:
     virtual css::uno::Sequence< OUString > SAL_CALL getSupportedServiceNames() 
override;
 };
 
-class ScSheetLinksObj : public cppu::WeakImplHelper<
+class ScSheetLinksObj final : public cppu::WeakImplHelper<
                             css::container::XNameAccess,
                             css::container::XEnumerationAccess,
                             css::container::XIndexAccess,
@@ -154,7 +154,7 @@ public:
     virtual css::uno::Sequence< OUString > SAL_CALL getSupportedServiceNames() 
override;
 };
 
-class ScAreaLinkObj : public cppu::WeakImplHelper<
+class ScAreaLinkObj final : public cppu::WeakImplHelper<
                             css::sheet::XAreaLink,
                             css::util::XRefreshable,
                             css::beans::XPropertySet,
@@ -221,7 +221,7 @@ public:
     virtual css::uno::Sequence< OUString > SAL_CALL getSupportedServiceNames() 
override;
 };
 
-class ScAreaLinksObj : public cppu::WeakImplHelper<
+class ScAreaLinksObj final : public cppu::WeakImplHelper<
                             css::sheet::XAreaLinks,
                             css::container::XEnumerationAccess,
                             css::lang::XServiceInfo >,
@@ -266,7 +266,7 @@ public:
 
 //! order of XNamed and DDELink changed to avoid "duplicate comdat" symbols
 
-class ScDDELinkObj : public cppu::WeakImplHelper<
+class ScDDELinkObj final : public cppu::WeakImplHelper<
                             css::sheet::XDDELink,
                             css::container::XNamed,
                             css::util::XRefreshable,
@@ -316,7 +316,7 @@ public:
     virtual css::uno::Sequence< OUString > SAL_CALL getSupportedServiceNames() 
override;
 };
 
-class ScDDELinksObj : public cppu::WeakImplHelper<
+class ScDDELinksObj final : public cppu::WeakImplHelper<
                             css::container::XEnumerationAccess,
                             css::container::XIndexAccess,
                             css::sheet::XDDELinks,
@@ -363,7 +363,7 @@ public:
     virtual css::uno::Sequence< OUString > SAL_CALL getSupportedServiceNames() 
override;
 };
 
-class ScExternalSheetCacheObj : public cppu::WeakImplHelper< 
css::sheet::XExternalSheetCache >
+class ScExternalSheetCacheObj final : public cppu::WeakImplHelper< 
css::sheet::XExternalSheetCache >
 {
 public:
     explicit ScExternalSheetCacheObj(ScDocShell* pDocShell, 
ScExternalRefCache::TableTypeRef const & pTable, size_t nIndex);
@@ -391,7 +391,7 @@ private:
     size_t const mnIndex;
 };
 
-class ScExternalDocLinkObj : public cppu::WeakImplHelper< 
css::sheet::XExternalDocLink >
+class ScExternalDocLinkObj final : public cppu::WeakImplHelper< 
css::sheet::XExternalDocLink >
 {
 public:
     ScExternalDocLinkObj(ScDocShell* pDocShell, ScExternalRefManager* pRefMgr, 
sal_uInt16 nFileId);
@@ -428,7 +428,7 @@ private:
 };
 
 /** This is the UNO API equivalent of ScExternalRefManager. */
-class ScExternalDocLinksObj : public cppu::WeakImplHelper< 
css::sheet::XExternalDocLinks >
+class ScExternalDocLinksObj final : public cppu::WeakImplHelper< 
css::sheet::XExternalDocLinks >
 {
 public:
     ScExternalDocLinksObj(ScDocShell* pDocShell);
diff --git a/sc/inc/listenercontext.hxx b/sc/inc/listenercontext.hxx
index 5ac2c4895951..a02d89a375a4 100644
--- a/sc/inc/listenercontext.hxx
+++ b/sc/inc/listenercontext.hxx
@@ -66,7 +66,7 @@ public:
     void purgeEmptyBroadcasters();
 };
 
-class PurgeListenerAction : public ColumnSpanSet::Action
+class PurgeListenerAction final : public ColumnSpanSet::Action
 {
     ScDocument& mrDoc;
     std::unique_ptr<ColumnBlockPosition> mpBlockPos;
diff --git a/sc/inc/listenerquery.hxx b/sc/inc/listenerquery.hxx
index a165332c1601..9148211ed73c 100644
--- a/sc/inc/listenerquery.hxx
+++ b/sc/inc/listenerquery.hxx
@@ -23,7 +23,7 @@ namespace sc {
  * Used to collect positions of formula cells that belong to a formula
  * group.
  */
-class RefQueryFormulaGroup : public SvtListener::QueryBase
+class RefQueryFormulaGroup final : public SvtListener::QueryBase
 {
 public:
     typedef std::vector<SCROW> ColType;
@@ -47,7 +47,7 @@ private:
     TabsType maTabs;
 };
 
-class QueryRange : public SvtListener::QueryBase
+class QueryRange final : public SvtListener::QueryBase
 {
     ScRangeList maRanges;
 
diff --git a/sc/inc/lookupcache.hxx b/sc/inc/lookupcache.hxx
index ea657c67d787..8a4f59d731da 100644
--- a/sc/inc/lookupcache.hxx
+++ b/sc/inc/lookupcache.hxx
@@ -37,7 +37,7 @@ struct ScQueryEntry;
     same query.
  */
 
-class ScLookupCache : public SvtListener
+class ScLookupCache final : public SvtListener
 {
 public:
 
diff --git a/sc/inc/miscuno.hxx b/sc/inc/miscuno.hxx
index fd7466279d0e..37250a6d21e2 100644
--- a/sc/inc/miscuno.hxx
+++ b/sc/inc/miscuno.hxx
@@ -73,7 +73,7 @@ css::uno::Sequence< OUString >                                
   \
     if (rType == cppu::UnoType<x>::get())  \
     { uno::Any aR; aR <<= uno::Reference<x>(static_cast<y*>(this)); return aR; 
}
 
-class ScIndexEnumeration : public cppu::WeakImplHelper<
+class ScIndexEnumeration final : public cppu::WeakImplHelper<
                                 css::container::XEnumeration,
                                 css::lang::XServiceInfo >
 {
@@ -98,7 +98,7 @@ public:
 };
 
 //  new (uno 3) variant
-class ScNameToIndexAccess : public cppu::WeakImplHelper<
+class ScNameToIndexAccess final : public cppu::WeakImplHelper<
                                 css::container::XIndexAccess,
                                 css::lang::XServiceInfo >
 {
diff --git a/sc/inc/nameuno.hxx b/sc/inc/nameuno.hxx
index 15f7a5157856..c1bfb565cf91 100644
--- a/sc/inc/nameuno.hxx
+++ b/sc/inc/nameuno.hxx
@@ -43,7 +43,7 @@ namespace com { namespace sun { namespace star { namespace 
container { class XNa
 class ScDocShell;
 class ScNamedRangesObj;
 
-class SC_DLLPUBLIC ScNamedRangeObj : public ::cppu::WeakImplHelper<
+class SC_DLLPUBLIC ScNamedRangeObj final : public ::cppu::WeakImplHelper<
                             css::sheet::XNamedRange,
                             css::sheet::XFormulaTokens,
                             css::sheet::XCellRangeReferrer,
@@ -215,7 +215,7 @@ public:
     virtual css::uno::Sequence< OUString > SAL_CALL getSupportedServiceNames() 
override;
 };
 
-class ScGlobalNamedRangesObj: public ScNamedRangesObj
+class ScGlobalNamedRangesObj final : public ScNamedRangesObj
 {
 private:
 
@@ -230,7 +230,7 @@ public:
     virtual                 ~ScGlobalNamedRangesObj() override;
 };
 
-class ScLocalNamedRangesObj: public ScNamedRangesObj
+class ScLocalNamedRangesObj final : public ScNamedRangesObj
 {
 private:
 
@@ -246,7 +246,7 @@ public:
     virtual                 ~ScLocalNamedRangesObj() override;
 };
 
-class ScLabelRangeObj : public ::cppu::WeakImplHelper<
+class ScLabelRangeObj final : public ::cppu::WeakImplHelper<
                             css::sheet::XLabelRange,
                             css::lang::XServiceInfo >,
                         public SfxListener
@@ -278,7 +278,7 @@ public:
     virtual css::uno::Sequence< OUString > SAL_CALL getSupportedServiceNames() 
override;
 };
 
-class ScLabelRangesObj : public ::cppu::WeakImplHelper<
+class ScLabelRangesObj final : public ::cppu::WeakImplHelper<
                             css::sheet::XLabelRanges,
                             css::container::XEnumerationAccess,
                             css::lang::XServiceInfo >,
diff --git a/sc/inc/notesuno.hxx b/sc/inc/notesuno.hxx
index 59af4726022a..5e141b5ddea1 100644
--- a/sc/inc/notesuno.hxx
+++ b/sc/inc/notesuno.hxx
@@ -34,7 +34,7 @@ class ScDocShell;
 class SvxUnoText;
 class ScPostIt;
 
-class ScAnnotationObj : public cppu::WeakImplHelper<
+class ScAnnotationObj final : public cppu::WeakImplHelper<
                             css::container::XChild,
                             css::text::XSimpleText,
                             css::sheet::XSheetAnnotation,
diff --git a/sc/inc/optuno.hxx b/sc/inc/optuno.hxx
index 84dbc7665ce8..35e7ad28e3d5 100644
--- a/sc/inc/optuno.hxx
+++ b/sc/inc/optuno.hxx
@@ -54,7 +54,7 @@ public:
 
 //  empty doc object to supply only doc options
 
-class ScDocOptionsObj : public ScModelObj
+class ScDocOptionsObj final : public ScModelObj
 {
 private:
     ScDocOptions    aOptions;
diff --git a/sc/inc/optutil.hxx b/sc/inc/optutil.hxx
index 3403bd1ae549..f635da6e5b9b 100644
--- a/sc/inc/optutil.hxx
+++ b/sc/inc/optutil.hxx
@@ -35,7 +35,7 @@ public:
 
 //  ConfigItem for classes that use items from several sub trees
 
-class SC_DLLPUBLIC ScLinkConfigItem : public utl::ConfigItem
+class SC_DLLPUBLIC ScLinkConfigItem final : public utl::ConfigItem
 {
     Link<ScLinkConfigItem&,void>  aCommitLink;
 
diff --git a/sc/inc/pageuno.hxx b/sc/inc/pageuno.hxx
index 4da521a9359d..25da0d7d2ff5 100644
--- a/sc/inc/pageuno.hxx
+++ b/sc/inc/pageuno.hxx
@@ -24,7 +24,7 @@
 
 //  SvxFmDrawPage subclass to create ScShapeObj for shapes
 
-class ScPageObj : public SvxFmDrawPage
+class ScPageObj final : public SvxFmDrawPage
 {
 public:
     ScPageObj(SdrPage* pPage);
diff --git a/sc/inc/patattr.hxx b/sc/inc/patattr.hxx
index 8004a57c3a26..19c4df01c345 100644
--- a/sc/inc/patattr.hxx
+++ b/sc/inc/patattr.hxx
@@ -49,7 +49,7 @@ enum ScAutoFontColorMode
     SC_AUTOCOL_IGNOREALL    ///< like DISPLAY, but ignore stored font and 
background colors
 };
 
-class SC_DLLPUBLIC ScPatternAttr: public SfxSetItem
+class SC_DLLPUBLIC ScPatternAttr final : public SfxSetItem
 {
     boost::optional<OUString>  pName;
     ScStyleSheet*              pStyle;
diff --git a/sc/inc/printopt.hxx b/sc/inc/printopt.hxx
index 52379bb3f05f..20ed1ede5968 100644
--- a/sc/inc/printopt.hxx
+++ b/sc/inc/printopt.hxx
@@ -48,7 +48,7 @@ public:
 
 // item for the dialog / options page
 
-class SC_DLLPUBLIC ScTpPrintItem : public SfxPoolItem
+class SC_DLLPUBLIC ScTpPrintItem final : public SfxPoolItem
 {
 public:
                 ScTpPrintItem( const ScPrintOptions& rOpt );
@@ -70,7 +70,7 @@ private:
 
 // config item
 
-class ScPrintCfg : public ScPrintOptions, public utl::ConfigItem
+class ScPrintCfg final : public ScPrintOptions, public utl::ConfigItem
 {
 private:
     static css::uno::Sequence<OUString> GetPropertyNames();
diff --git a/sc/inc/queryparam.hxx b/sc/inc/queryparam.hxx
index b06496547d7e..d7b52374e14d 100644
--- a/sc/inc/queryparam.hxx
+++ b/sc/inc/queryparam.hxx
@@ -131,7 +131,7 @@ inline std::basic_ostream<charT, traits> & operator 
<<(std::basic_ostream<charT,
     return stream;
 }
 
-struct SC_DLLPUBLIC ScQueryParam : public ScQueryParamBase, public 
ScQueryParamTable
+struct SC_DLLPUBLIC ScQueryParam final : public ScQueryParamBase, public 
ScQueryParamTable
 {
     bool            bDestPers;          // not saved
     SCTAB           nDestTab;
@@ -193,7 +193,7 @@ struct ScDBQueryParamInternal : public ScDBQueryParamBase, 
public ScQueryParamTa
     virtual bool IsValidFieldIndex() const override;
 };
 
-struct ScDBQueryParamMatrix : public ScDBQueryParamBase
+struct ScDBQueryParamMatrix final : public ScDBQueryParamBase
 {
     ScMatrixRef mpMatrix;
 
diff --git a/sc/inc/rangelst.hxx b/sc/inc/rangelst.hxx
index 15493becf88b..c29284b0359d 100644
--- a/sc/inc/rangelst.hxx
+++ b/sc/inc/rangelst.hxx
@@ -124,7 +124,7 @@ inline std::basic_ostream<charT, traits> & operator 
<<(std::basic_ostream<charT,
 // RangePairList:
 //    aRange[0]: actual range,
 //    aRange[1]: data for that range, e.g. Rows belonging to a ColName
-class SC_DLLPUBLIC ScRangePairList : public SvRefBase
+class SC_DLLPUBLIC ScRangePairList final : public SvRefBase
 {
 public:
     virtual             ~ScRangePairList() override;
diff --git a/sc/inc/refhint.hxx b/sc/inc/refhint.hxx
index 12c804db45ba..7dec98a9e4a0 100644
--- a/sc/inc/refhint.hxx
+++ b/sc/inc/refhint.hxx
@@ -46,7 +46,7 @@ public:
     Type getType() const;
 };
 
-class RefColReorderHint : public RefHint
+class RefColReorderHint final : public RefHint
 {
     const sc::ColRowReorderMapType& mrColMap;
     SCTAB const mnTab;
@@ -92,14 +92,14 @@ public:
     SCCOL getEndColumn() const;
 };
 
-class RefStartListeningHint : public RefHint
+class RefStartListeningHint final : public RefHint
 {
 public:
     RefStartListeningHint();
     virtual ~RefStartListeningHint() override;
 };
 
-class RefStopListeningHint : public RefHint
+class RefStopListeningHint final : public RefHint
 {
 public:
     RefStopListeningHint();
diff --git a/sc/inc/scmod.hxx b/sc/inc/scmod.hxx
index 1f8c0919f773..e214771bd2e4 100644
--- a/sc/inc/scmod.hxx
+++ b/sc/inc/scmod.hxx
@@ -78,7 +78,7 @@ class ScMarkData;
 struct ScDragData;
 class SfxDialogController;
 
-class SAL_DLLPUBLIC_RTTI ScModule: public SfxModule, public SfxListener, 
public utl::ConfigurationListener
+class SAL_DLLPUBLIC_RTTI ScModule final : public SfxModule, public 
SfxListener, public utl::ConfigurationListener
 {
     Timer               m_aIdleTimer;
     Idle                m_aSpellIdle;
diff --git a/sc/inc/shapeuno.hxx b/sc/inc/shapeuno.hxx
index e4678427c762..fb6829f1ada6 100644
--- a/sc/inc/shapeuno.hxx
+++ b/sc/inc/shapeuno.hxx
@@ -57,7 +57,7 @@ typedef ::cppu::ImplHelper1     <   css::text::XText
                                 >   ScShapeObj_TextBase;
 typedef ::cppu::ImplHelper1     <   css::container::XChild
                                 >   ScShapeObj_ChildBase;
-class ScShapeObj    :public ScShapeObj_Base
+class ScShapeObj final : public ScShapeObj_Base
                     ,public ScShapeObj_TextBase
                     ,public ScShapeObj_ChildBase
 {
diff --git a/sc/inc/srchuno.hxx b/sc/inc/srchuno.hxx
index 7d485ba688b4..378d6d4f4ff4 100644
--- a/sc/inc/srchuno.hxx
+++ b/sc/inc/srchuno.hxx
@@ -30,7 +30,7 @@
 
 class SvxSearchItem;
 
-class ScCellSearchObj : public cppu::WeakImplHelper<
+class ScCellSearchObj final : public cppu::WeakImplHelper<
                                 css::util::XReplaceDescriptor,
                                 css::lang::XUnoTunnel,
                                 css::lang::XServiceInfo >
diff --git a/sc/inc/stlpool.hxx b/sc/inc/stlpool.hxx
index 1b8e975d5d3b..0f1a873603c1 100644
--- a/sc/inc/stlpool.hxx
+++ b/sc/inc/stlpool.hxx
@@ -26,7 +26,7 @@
 class ScStyleSheet;
 class ScDocument;
 
-class SC_DLLPUBLIC ScStyleSheetPool : public SfxStyleSheetPool
+class SC_DLLPUBLIC ScStyleSheetPool final : public SfxStyleSheetPool
 {
 public:
                         ScStyleSheetPool( const SfxItemPool& rPool,
@@ -58,7 +58,7 @@ public:
 
     void setAllStandard();
 
-protected:
+private:
     virtual             ~ScStyleSheetPool() override;
 
     using SfxStyleSheetPool::Create;    // calcwarnings: Create(const 
SfxStyleSheet&) - ever used?
@@ -68,7 +68,6 @@ protected:
                                        SfxStyleSearchBits     nMask) override;
     virtual SfxStyleSheetBase* Create( const SfxStyleSheetBase& rStyle ) 
override;
 
-private:
     SfxStyleSheetBase*  pActualStyleSheet;
     ScDocument*         pDoc;
     bool                bHasStandardStyles;
diff --git a/sc/inc/styleuno.hxx b/sc/inc/styleuno.hxx
index 5552ef28c9a8..71f92fc91b81 100644
--- a/sc/inc/styleuno.hxx
+++ b/sc/inc/styleuno.hxx
@@ -46,7 +46,7 @@ class ScStyleFamilyObj;
 class ScStyleObj;
 struct SfxItemPropertySimpleEntry;
 
-class ScStyleFamiliesObj : public ::cppu::WeakImplHelper<
+class ScStyleFamiliesObj final : public ::cppu::WeakImplHelper<
                             css::container::XIndexAccess,
                             css::container::XNameAccess,
                             css::style::XStyleLoader2,
diff --git a/sc/inc/tablink.hxx b/sc/inc/tablink.hxx
index 04c13f0a5580..7038bd345fae 100644
--- a/sc/inc/tablink.hxx
+++ b/sc/inc/tablink.hxx
@@ -32,7 +32,7 @@ struct TableLink_Impl;
 
 namespace weld { class Window; }
 
-class ScTableLink : public ::sfx2::SvBaseLink, public ScRefreshTimer
+class ScTableLink final : public ::sfx2::SvBaseLink, public ScRefreshTimer
 {
 private:
     std::unique_ptr<TableLink_Impl> pImpl;
diff --git a/sc/inc/tabprotection.hxx b/sc/inc/tabprotection.hxx
index b834d841c2a2..fe543075fadd 100644
--- a/sc/inc/tabprotection.hxx
+++ b/sc/inc/tabprotection.hxx
@@ -93,7 +93,7 @@ public:
     virtual bool verifyPassword(const OUString& aPassText) const = 0;
 };
 
-class SC_DLLPUBLIC ScDocProtection : public ScPassHashProtectable
+class SC_DLLPUBLIC ScDocProtection final : public ScPassHashProtectable
 {
 public:
     enum Option
@@ -164,7 +164,7 @@ struct ScEnhancedProtection
  * container for the undo/redo stack, in which case the password, hash and
  * the options need to be preserved even when the protection flag is
  * off. */
-class SC_DLLPUBLIC ScTableProtection : public ScPassHashProtectable
+class SC_DLLPUBLIC ScTableProtection final : public ScPassHashProtectable
 {
 public:
     enum Option
diff --git a/sc/inc/targuno.hxx b/sc/inc/targuno.hxx
index efed914a5a42..5550b71bdbdd 100644
--- a/sc/inc/targuno.hxx
+++ b/sc/inc/targuno.hxx
@@ -43,7 +43,7 @@ class ScDocShell;
 
 //! Graphic / OleObject (need separate collections!)
 
-class ScLinkTargetTypesObj : public ::cppu::WeakImplHelper<
+class ScLinkTargetTypesObj final : public ::cppu::WeakImplHelper<
                                 css::container::XNameAccess,
                                 css::lang::XServiceInfo >,
                             public SfxListener
@@ -73,7 +73,7 @@ public:
     virtual css::uno::Sequence< OUString> SAL_CALL      
getSupportedServiceNames() override;
 };
 
-class ScLinkTargetTypeObj : public ::cppu::WeakImplHelper<
+class ScLinkTargetTypeObj final : public ::cppu::WeakImplHelper<
                                 css::beans::XPropertySet,
                                 css::document::XLinkTargetSupplier,
                                 css::lang::XServiceInfo >,
@@ -115,7 +115,7 @@ public:
     virtual css::uno::Sequence< OUString> SAL_CALL getSupportedServiceNames() 
override;
 };
 
-class ScLinkTargetsObj : public ::cppu::WeakImplHelper<
+class ScLinkTargetsObj final : public ::cppu::WeakImplHelper<
                             css::container::XNameAccess,
                             css::lang::XServiceInfo >
 {
diff --git a/sc/inc/textuno.hxx b/sc/inc/textuno.hxx
index b76cdf6a94fc..44445c8d7527 100644
--- a/sc/inc/textuno.hxx
+++ b/sc/inc/textuno.hxx
@@ -53,7 +53,7 @@ enum class ScHeaderFooterPart{ LEFT, CENTER, RIGHT };
 //  ScHeaderFooterContentObj is a dumb container which must be re-written into
 //  the page template using setPropertyValue
 
-class ScHeaderFooterContentObj : public cppu::WeakImplHelper<
+class ScHeaderFooterContentObj final : public cppu::WeakImplHelper<
                             css::sheet::XHeaderFooterContent,
                             css::lang::XUnoTunnel,
                             css::lang::XServiceInfo >
@@ -213,7 +213,7 @@ public:
 
 //! uno3: SvxUnoTextCursor is not derived from XUnoTunnel, but should be (?)
 
-class ScCellTextCursor : public SvxUnoTextCursor
+class ScCellTextCursor final : public SvxUnoTextCursor
 {
     rtl::Reference<ScCellObj> mxTextObj;
 
@@ -240,7 +240,7 @@ public:
     UNO3_GETIMPLEMENTATION_DECL(ScCellTextCursor)
 };
 
-class ScHeaderFooterTextCursor : public SvxUnoTextCursor
+class ScHeaderFooterTextCursor final : public SvxUnoTextCursor
 {
 private:
     rtl::Reference<ScHeaderFooterTextObj> rTextObj;
@@ -266,7 +266,7 @@ public:
     UNO3_GETIMPLEMENTATION_DECL(ScHeaderFooterTextCursor)
 };
 
-class ScDrawTextCursor : public SvxUnoTextCursor
+class ScDrawTextCursor final : public SvxUnoTextCursor
 {
 private:
     css::uno::Reference< css::text::XText > xParentText;
@@ -312,7 +312,7 @@ public:
     ScEditEngineDefaulter* GetEditEngine() const    { return 
pEditEngine.get(); }
 };
 
-class ScEditEngineTextObj : public ScSimpleEditSourceHelper, public SvxUnoText
+class ScEditEngineTextObj final : public ScSimpleEditSourceHelper, public 
SvxUnoText
 {
 public:
                         ScEditEngineTextObj();
@@ -358,7 +358,7 @@ public:
     void                    SetDoUpdate(bool bValue)    { bDoUpdate = bValue; }
 };
 
-class ScCellTextObj : public ScCellTextData, public SvxUnoText
+class ScCellTextObj final : public ScCellTextData, public SvxUnoText
 {
 public:
                  ScCellTextObj(ScDocShell* pDocSh, const ScAddress& rP);
diff --git a/sc/inc/token.hxx b/sc/inc/token.hxx
index e0507eb93ad9..965d7a81485b 100644
--- a/sc/inc/token.hxx
+++ b/sc/inc/token.hxx
@@ -56,7 +56,7 @@ void DumpToken(formula::FormulaToken const & rToken);
 */
 formula::FormulaTokenRef extendRangeReference( formula::FormulaToken & rTok1, 
formula::FormulaToken & rTok2, const ScAddress & rPos, bool bReuseDoubleRef );
 
-class ScSingleRefToken : public formula::FormulaToken
+class ScSingleRefToken final : public formula::FormulaToken
 {
 private:
             ScSingleRefData       aSingleRef;
@@ -70,7 +70,7 @@ public:
     virtual FormulaToken*       Clone() const override { return new 
ScSingleRefToken(*this); }
 };
 
-class ScDoubleRefToken : public formula::FormulaToken
+class ScDoubleRefToken final : public formula::FormulaToken
 {
 private:
             ScComplexRefData        aDoubleRef;
@@ -88,7 +88,7 @@ public:
     virtual FormulaToken*       Clone() const override { return new 
ScDoubleRefToken(*this); }
 };
 
-class ScMatrixToken : public formula::FormulaToken
+class ScMatrixToken final : public formula::FormulaToken
 {
 private:
             ScMatrixRef const         pMatrix;
@@ -107,7 +107,7 @@ public:
  * both the values in matrix form, and the range address the matrix
  * represents.
  */
-class ScMatrixRangeToken : public formula::FormulaToken
+class ScMatrixRangeToken final : public formula::FormulaToken
 {
     ScMatrixRef const mpMatrix;
     ScComplexRefData maRef;
@@ -124,7 +124,7 @@ public:
     virtual FormulaToken* Clone() const override;
 };
 
-class ScExternalSingleRefToken : public formula::FormulaToken
+class ScExternalSingleRefToken final : public formula::FormulaToken
 {
     sal_uInt16 const            mnFileId;
     svl::SharedString const     maTabName;
@@ -148,7 +148,7 @@ public:
     virtual FormulaToken*       Clone() const override { return new 
ScExternalSingleRefToken(*this); }
 };
 
-class ScExternalDoubleRefToken : public formula::FormulaToken
+class ScExternalDoubleRefToken final : public formula::FormulaToken
 {
     sal_uInt16 const            mnFileId;
     svl::SharedString const     maTabName;  // name of the first sheet
@@ -176,7 +176,7 @@ public:
     virtual FormulaToken*       Clone() const override { return new 
ScExternalDoubleRefToken(*this); }
 };
 
-class ScExternalNameToken : public formula::FormulaToken
+class ScExternalNameToken final : public formula::FormulaToken
 {
     sal_uInt16 const                  mnFileId;
     svl::SharedString const           maName;
@@ -198,7 +198,7 @@ public:
 };
 
 /** Special token to remember details of ocTableRef "structured references". */
-class ScTableRefToken : public formula::FormulaToken
+class ScTableRefToken final : public formula::FormulaToken
 {
 public:
 
@@ -239,7 +239,7 @@ private:
 
 // Only created from within the interpreter, no conversion from ScRawToken,
 // never added to ScTokenArray!
-class ScJumpMatrixToken : public formula::FormulaToken
+class ScJumpMatrixToken final : public formula::FormulaToken
 {
 private:
     std::shared_ptr<ScJumpMatrix> mpJumpMatrix;
@@ -254,7 +254,7 @@ public:
 
 // Only created from within the interpreter, no conversion from ScRawToken,
 // never added to ScTokenArray!
-class ScRefListToken : public formula::FormulaToken
+class ScRefListToken final : public formula::FormulaToken
 {
 private:
             ScRefList           aRefList;
@@ -271,7 +271,7 @@ public:
     virtual FormulaToken*       Clone() const override { return new 
ScRefListToken(*this); }
 };
 
-class SC_DLLPUBLIC ScEmptyCellToken : public formula::FormulaToken
+class SC_DLLPUBLIC ScEmptyCellToken final : public formula::FormulaToken
 {
             bool const          bInherited          :1;
             bool const          bDisplayedAsString  :1;
@@ -319,7 +319,7 @@ public:
 
 /** Stores the matrix result at the formula cell, additionally the range the
     matrix formula occupies. */
-class SC_DLLPUBLIC ScMatrixFormulaCellToken : public ScMatrixCellResultToken
+class SC_DLLPUBLIC ScMatrixFormulaCellToken final : public 
ScMatrixCellResultToken
 {
 private:
             SCROW               nRows;
@@ -373,7 +373,7 @@ private:
     void CloneUpperLeftIfNecessary();
 };
 
-class SC_DLLPUBLIC ScHybridCellToken : public formula::FormulaToken
+class SC_DLLPUBLIC ScHybridCellToken final : public formula::FormulaToken
 {
 private:
     double const mfDouble;
diff --git a/sc/inc/tokenarray.hxx b/sc/inc/tokenarray.hxx
index 151655c3ebc5..867e74df7a91 100644
--- a/sc/inc/tokenarray.hxx
+++ b/sc/inc/tokenarray.hxx
@@ -44,7 +44,7 @@ struct ScRawToken;
 struct ScSingleRefData;
 struct ScComplexRefData;
 
-class SAL_WARN_UNUSED SC_DLLPUBLIC ScTokenArray : public 
formula::FormulaTokenArray
+class SAL_WARN_UNUSED SC_DLLPUBLIC ScTokenArray final : public 
formula::FormulaTokenArray
 {
     friend class ScCompiler;
 
diff --git a/sc/inc/tokenuno.hxx b/sc/inc/tokenuno.hxx
index 4946c5b8a536..3d71fc51f896 100644
--- a/sc/inc/tokenuno.hxx
+++ b/sc/inc/tokenuno.hxx
@@ -48,7 +48,7 @@ public:
                         const ScTokenArray& rTokenArray );
 };
 
-class ScFormulaParserObj : public ::cppu::WeakImplHelper<
+class ScFormulaParserObj final : public ::cppu::WeakImplHelper<
                             css::sheet::XFormulaParser,
                             css::beans::XPropertySet,
                             css::lang::XServiceInfo >,
@@ -100,7 +100,7 @@ public:
     virtual css::uno::Sequence< OUString > SAL_CALL getSupportedServiceNames() 
override;
 };
 
-class ScFormulaOpCodeMapperObj : public formula::FormulaOpCodeMapperObj
+class ScFormulaOpCodeMapperObj final : public formula::FormulaOpCodeMapperObj
 {
 public:
     ScFormulaOpCodeMapperObj(::std::unique_ptr<formula::FormulaCompiler> && 
_pCompiler);
diff --git a/sc/inc/undorangename.hxx b/sc/inc/undorangename.hxx
index 2ab996369aa1..53df4ee63c0a 100644
--- a/sc/inc/undorangename.hxx
+++ b/sc/inc/undorangename.hxx
@@ -20,7 +20,7 @@ class ScDocShell;
 /**
  * Undo object for named ranges, both in global and sheet-local scopes.
  */
-class ScUndoAllRangeNames : public ScSimpleUndo
+class ScUndoAllRangeNames final : public ScSimpleUndo
 {
 public:
     ScUndoAllRangeNames(ScDocShell* pDocSh,
@@ -43,7 +43,7 @@ private:
     std::map<OUString, std::unique_ptr<ScRangeName>> m_NewNames;
 };
 
-class ScUndoAddRangeData : public ScSimpleUndo
+class ScUndoAddRangeData final : public ScSimpleUndo
 {
 public:
     // nTab = -1 for global range names
diff --git a/sc/inc/unoreflist.hxx b/sc/inc/unoreflist.hxx
index 863a04e224d7..3fd70825f070 100644
--- a/sc/inc/unoreflist.hxx
+++ b/sc/inc/unoreflist.hxx
@@ -57,7 +57,7 @@ public:
 /** Hint to restore a UNO object to its old state (used during undo).
 */
 
-class ScUnoRefUndoHint : public SfxHint
+class ScUnoRefUndoHint final : public SfxHint
 {
     ScUnoRefEntry const   aEntry;
 
diff --git a/sc/inc/validat.hxx b/sc/inc/validat.hxx
index f9e24adba552..2852849b0f14 100644
--- a/sc/inc/validat.hxx
+++ b/sc/inc/validat.hxx
@@ -57,7 +57,7 @@ enum ScValidErrorStyle
 
 // Entry for validation (only one condition exists)
 
-class SC_DLLPUBLIC ScValidationData : public ScConditionEntry
+class SC_DLLPUBLIC ScValidationData final : public ScConditionEntry
 {
 private:
     sal_uInt32 nKey;               // index in attributes
diff --git a/sc/inc/viewopti.hxx b/sc/inc/viewopti.hxx
index 99936ee284bb..b3dc9608bdbe 100644
--- a/sc/inc/viewopti.hxx
+++ b/sc/inc/viewopti.hxx
@@ -111,7 +111,7 @@ private:
 
 // Item for the options dialog - View
 
-class SC_DLLPUBLIC ScTpViewItem : public SfxPoolItem
+class SC_DLLPUBLIC ScTpViewItem final : public SfxPoolItem
 {
 public:
                 ScTpViewItem( const ScViewOptions& rOpt );
diff --git a/sc/inc/viewuno.hxx b/sc/inc/viewuno.hxx
index 04f23006e582..65af81246c8e 100644
--- a/sc/inc/viewuno.hxx
+++ b/sc/inc/viewuno.hxx
@@ -112,7 +112,7 @@ public:
 
 //  ScViewPaneObj for direct use (including OWeakObject)
 
-class ScViewPaneObj : public ScViewPaneBase, public cppu::OWeakObject
+class ScViewPaneObj final : public ScViewPaneBase, public cppu::OWeakObject
 {
 public:
                             ScViewPaneObj(ScTabViewShell* pViewSh, sal_uInt16 
nP);
@@ -125,7 +125,7 @@ public:
 
 //  OWeakObject is base of SfxBaseController -> use ScViewPaneBase
 
-class ScTabViewObj : public ScViewPaneBase,
+class ScTabViewObj final : public ScViewPaneBase,
                      public SfxBaseController,
                      public css::sheet::XSpreadsheetView,
                      public css::sheet::XEnhancedMouseClickBroadcaster,
@@ -285,7 +285,7 @@ public:
     virtual css::uno::Sequence<sal_Int32> SAL_CALL getSelectedSheets() 
override;
 };
 
-class ScPreviewObj : public SfxBaseController,
+class ScPreviewObj final : public SfxBaseController,
                      public SfxListener,
                      public css::sheet::XSelectedSheetsSupplier
 {
_______________________________________________
Libreoffice-commits mailing list
libreoffice-comm...@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/libreoffice-commits

Reply via email to