loplugin:unusedmethods

Change-Id: I9dc6e81149eae3ba2284fa7fe608dd9252503dce
Reviewed-on: https://gerrit.libreoffice.org/53197
Tested-by: Jenkins <ci@libreoffice.org>
Reviewed-by: Tomaž Vajngerl <quikee@gmail.com>
diff --git a/dbaccess/Library_dbu.mk b/dbaccess/Library_dbu.mk
index d1b5a53..b8ff06e 100644
--- a/dbaccess/Library_dbu.mk
+++ b/dbaccess/Library_dbu.mk
@@ -132,7 +132,6 @@ $(eval $(call gb_Library_add_exception_objects,dbu,\
    dbaccess/source/ui/dlg/dlgattr \
    dbaccess/source/ui/dlg/dlgsave \
    dbaccess/source/ui/dlg/dlgsize \
    dbaccess/source/ui/dlg/DriverSettings \
    dbaccess/source/ui/dlg/dsselect \
    dbaccess/source/ui/dlg/finteraction \
    dbaccess/source/ui/dlg/generalpage \
diff --git a/dbaccess/source/ui/dlg/DriverSettings.cxx b/dbaccess/source/ui/dlg/DriverSettings.cxx
deleted file mode 100644
index ba388a6..0000000
--- a/dbaccess/source/ui/dlg/DriverSettings.cxx
+++ /dev/null
@@ -1,91 +0,0 @@
/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
/*
 * This file is part of the LibreOffice project.
 *
 * This Source Code Form is subject to the terms of the Mozilla Public
 * License, v. 2.0. If a copy of the MPL was not distributed with this
 * file, You can obtain one at http://mozilla.org/MPL/2.0/.
 *
 * This file incorporates work covered by the following license notice:
 *
 *   Licensed to the Apache Software Foundation (ASF) under one or more
 *   contributor license agreements. See the NOTICE file distributed
 *   with this work for additional information regarding copyright
 *   ownership. The ASF licenses this file to you under the Apache
 *   License, Version 2.0 (the "License"); you may not use this file
 *   except in compliance with the License. You may obtain a copy of
 *   the License at http://www.apache.org/licenses/LICENSE-2.0 .
 */


#include "DriverSettings.hxx"
#include <dsmeta.hxx>

#include <com/sun/star/uno/Sequence.hxx>
#include <com/sun/star/beans/NamedValue.hpp>

#include <connectivity/DriversConfig.hxx>

using ::com::sun::star::uno::Sequence;
using ::com::sun::star::beans::NamedValue;

using namespace dbaui;
void ODriversSettings::getSupportedIndirectSettings( const OUString& _sURLPrefix,const css::uno::Reference< css::uno::XComponentContext >& _xContext, std::vector< sal_Int32>& _out_rDetailsIds )
{
    // for a number of settings, we do not need to use hard-coded here, but can ask a
    // central DataSourceUI instance.
    DataSourceMetaData aMeta( _sURLPrefix );
    const FeatureSet& rFeatures( aMeta.getFeatureSet() );
    for (auto const& feature : rFeatures)
    {
        _out_rDetailsIds.push_back(feature);
    }

    // the rest is configuration-based
    // TODO: that's not really true: *everything* is configuration-based nowadays, even the FeatureSet obtained
    // from the DataSourceMetaData has been initialized from the configuration. So in fact, we could consolidate
    // the two blocks.
    // The best approach would be to extend the FeatureSet to contain *all* known data source features, not only
    // the ones from the "Advanced settings" UI.

    ::connectivity::DriversConfig aDriverConfig(_xContext);
    const ::comphelper::NamedValueCollection& aProperties = aDriverConfig.getProperties(_sURLPrefix);
    typedef std::pair<sal_uInt16, OUString> TProperties;
    TProperties aProps[] = { TProperties(DSID_SHOWDELETEDROWS,OUString("ShowDeleted"))
                            ,TProperties(DSID_CHARSET,OUString("CharSet"))
                            ,TProperties(DSID_FIELDDELIMITER,OUString("FieldDelimiter"))
                            ,TProperties(DSID_TEXTDELIMITER,OUString("StringDelimiter"))
                            ,TProperties(DSID_DECIMALDELIMITER,OUString("DecimalDelimiter"))
                            ,TProperties(DSID_THOUSANDSDELIMITER,OUString("ThousandDelimiter"))
                            ,TProperties(DSID_TEXTFILEEXTENSION,OUString("Extension"))
                            ,TProperties(DSID_TEXTFILEHEADER,OUString("HeaderLine"))
                            ,TProperties(DSID_ADDITIONALOPTIONS,OUString("SystemDriverSettings"))
                            ,TProperties(DSID_CONN_SHUTSERVICE,OUString("ShutdownDatabase"))
                            ,TProperties(DSID_CONN_DATAINC,OUString("DataCacheSizeIncrement"))
                            ,TProperties(DSID_CONN_CACHESIZE,OUString("DataCacheSize"))
                            ,TProperties(DSID_CONN_CTRLUSER,OUString("ControlUser"))
                            ,TProperties(DSID_CONN_CTRLPWD,OUString("ControlPassword"))
                            ,TProperties(DSID_USECATALOG,OUString("UseCatalog"))
                            ,TProperties(DSID_CONN_SOCKET,OUString("LocalSocket"))
                            ,TProperties(DSID_NAMED_PIPE,OUString("NamedPipe"))
                            ,TProperties(DSID_JDBCDRIVERCLASS,OUString("JavaDriverClass"))
                            ,TProperties(DSID_CONN_LDAP_BASEDN,OUString("BaseDN"))
                            ,TProperties(DSID_CONN_LDAP_ROWCOUNT,OUString("MaxRowCount"))
                            ,TProperties(DSID_CONN_LDAP_USESSL,OUString("UseSSL"))
                            ,TProperties(DSID_IGNORECURRENCY,OUString("IgnoreCurrency"))
                            ,TProperties(0,OUString())
    };
    // TODO: This mapping between IDs and property names already exists - in ODbDataSourceAdministrationHelper::ODbDataSourceAdministrationHelper.
    // Another mapping (which is also duplicated in ODbDataSourceAdministrationHelper) exists in dsmeta.cxx. We should
    // consolidate those three places into one.
    // However, care has to be taken: We need to distinguish between "features" and "properties" of a data source (resp. driver).
    // That is, a driver can support a certain property, but not allow to change it in the UI, which means it would
    // not have the respective "feature".
    for ( TProperties* pProps = aProps; pProps->first; ++pProps )
    {
        if ( aProperties.has(pProps->second) )
            _out_rDetailsIds.push_back(pProps->first);
    }
}

/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/dbaccess/source/ui/dlg/DriverSettings.hxx b/dbaccess/source/ui/dlg/DriverSettings.hxx
index 1259f3a..8194bfe 100644
--- a/dbaccess/source/ui/dlg/DriverSettings.hxx
+++ b/dbaccess/source/ui/dlg/DriverSettings.hxx
@@ -33,16 +33,6 @@ namespace dbaui
    {
    public:

        /** fills the IDs of the settings which are reflected in indirect data source properties
            (aka properties in the css.sdb.DataSource.Info sequence)

            @param  _eType
                The Type of the data source.
            @param  _out_rDetailsIds
                Will be filled.
        */
        static void getSupportedIndirectSettings( const OUString& _sURLPrefix,const css::uno::Reference< css::uno::XComponentContext >& _xContext,std::vector< sal_Int32>& _out_rDetailsIds );

        /** Creates the detail page for ado
        */
        static  VclPtr<SfxTabPage> CreateDbase( vcl::Window* _pParent, const SfxItemSet* _rAttrSet );
diff --git a/editeng/source/editeng/editundo.hxx b/editeng/source/editeng/editundo.hxx
index dc3423c..a7b45f3 100644
--- a/editeng/source/editeng/editundo.hxx
+++ b/editeng/source/editeng/editundo.hxx
@@ -261,7 +261,6 @@ public:
    virtual ~EditUndoTransliteration() override;

    void                SetText( const OUString& rText ) { aText = rText; }
    void                SetText( EditTextObject* pObj ) { pTxtObj.reset( pObj ); }
    void                SetText( std::unique_ptr<EditTextObject> pObj ) { pTxtObj = std::move( pObj ); }
    void                SetNewSelection( const ESelection& rSel ) { aNewESel = rSel; }

diff --git a/include/svx/svdmodel.hxx b/include/svx/svdmodel.hxx
index 590011c..12636ad 100644
--- a/include/svx/svdmodel.hxx
+++ b/include/svx/svdmodel.hxx
@@ -299,7 +299,6 @@ public:
    void                 RefDeviceChanged(); // not yet implemented
    // default font height in logical units
    void                 SetDefaultFontHeight(sal_Int32 nVal);
    sal_Int32            GetDefaultFontHeight() const           { return mnDefTextHgt; }
    // default tabulator width for the EditEngine
    void                 SetDefaultTabulator(sal_uInt16 nVal);
    sal_uInt16           GetDefaultTabulator() const            { return nDefaultTabulator; }
diff --git a/include/svx/svdpage.hxx b/include/svx/svdpage.hxx
index a6ab2f9..38a994f 100644
--- a/include/svx/svdpage.hxx
+++ b/include/svx/svdpage.hxx
@@ -91,7 +91,6 @@ private:
public:
    SdrObjList(SdrPage* pNewPage = nullptr);
    virtual ~SdrObjList();
    SdrObjList* CloneSdrObjList(SdrModel* pNewModel = nullptr) const;

    void CopyObjects(const SdrObjList& rSrcList, SdrModel* pNewModel = nullptr);
    /// clean up everything (without Undo)
diff --git a/include/svx/txencbox.hxx b/include/svx/txencbox.hxx
index 41e761f..e8e193e 100644
--- a/include/svx/txencbox.hxx
+++ b/include/svx/txencbox.hxx
@@ -120,31 +120,6 @@ public:
                            sal_uInt32 nButIncludeInfoFlags = 0
                            );

    /** Fill with all encodings known to the dbtools::OCharsetMap but exclude
        those matching one or more given flags as defined in rtl/tencinfo.h

         <p> If nButIncludeInfoFlags is given, encodings are included even if they
         match nExcludeInfoFlags. Thus it is possible to exclude 16/32-bit
         Unicode with RTL_TEXTENCODING_INFO_UNICODE but to include UTF7 and UTF8
         with RTL_TEXTENCODING_INFO_MIME </p>

        @param bExcludeImportSubsets
            If <TRUE/>, some specific encodings are not listed, as they are a
            subset of another encoding. This is the case for
            RTL_TEXTENCODING_GB_2312, RTL_TEXTENCODING_GBK,
            RTL_TEXTENCODING_MS_936, which are covered by
            RTL_TEXTENCODING_GB_18030. Normally, this flag should be set to
            <TRUE/> whenever the box is used in import dialogs. */
    void                FillFromDbTextEncodingMap(
                            bool bExcludeImportSubsets,
                            sal_uInt32 nExcludeInfoFlags = 0
                            );

    /** Fill with all known MIME encodings and select the best according to
        <method>GetBestMimeEncoding</method>
     */
    void                FillWithMimeAndSelectBest();

    void                InsertTextEncoding( const rtl_TextEncoding nEnc );

    void                InsertTextEncoding( const rtl_TextEncoding nEnc,
diff --git a/include/vcl/bitmap.hxx b/include/vcl/bitmap.hxx
index ad1efb8..d46dc7d 100644
--- a/include/vcl/bitmap.hxx
+++ b/include/vcl/bitmap.hxx
@@ -653,9 +653,6 @@ public:
    const std::shared_ptr<SalBitmap>& ImplGetSalBitmap() const { return mxSalBmp; }
    SAL_DLLPRIVATE void     ImplSetSalBitmap( const std::shared_ptr<SalBitmap>& xImpBmp );

    SAL_DLLPRIVATE bool     ImplScaleFast( const double& rScaleX, const double& rScaleY );
    SAL_DLLPRIVATE bool     ImplScaleInterpolate( const double& rScaleX, const double& rScaleY );

    SAL_DLLPRIVATE bool     ImplMakeGreyscales( sal_uInt16 nGreyscales );
    SAL_DLLPRIVATE bool     ImplDitherMatrix();
    SAL_DLLPRIVATE bool     ImplDitherFloyd();
diff --git a/include/vcl/bitmapex.hxx b/include/vcl/bitmapex.hxx
index 390a2c0..d7c2560 100644
--- a/include/vcl/bitmapex.hxx
+++ b/include/vcl/bitmapex.hxx
@@ -109,14 +109,6 @@ public:
     */
    bool                Convert( BmpConversion eConversion );

    /** Apply a dither algorithm to the bitmap

        This method dithers the bitmap inplace, i.e. a true color
        bitmap is converted to a paletted bitmap, reducing the color
        deviation by error diffusion.
     */
    bool                Dither();

    /** Crop the bitmap

        @param rRectPixel
diff --git a/include/vcl/slider.hxx b/include/vcl/slider.hxx
index 426727c..cc4919b 100644
--- a/include/vcl/slider.hxx
+++ b/include/vcl/slider.hxx
@@ -107,8 +107,6 @@ public:

    Size            CalcWindowSizePixel();

    void            SetLinkedField(VclPtr<NumericField> const & pField);

    void            SetSlideHdl( const Link<Slider*,void>& rLink ) { maSlideHdl = rLink; }
    void            SetEndSlideHdl( const Link<Slider*,void>& rLink ) { maEndSlideHdl = rLink; }
};
diff --git a/reportdesign/inc/RptPage.hxx b/reportdesign/inc/RptPage.hxx
index 2c45c93..96fb26a 100644
--- a/reportdesign/inc/RptPage.hxx
+++ b/reportdesign/inc/RptPage.hxx
@@ -48,8 +48,6 @@ class REPORTDESIGN_DLLPUBLIC OReportPage : public SdrPage

    virtual ~OReportPage() override;

    OReportModel& getOReportModelFromOReportPage() const { return rModel; }

protected:
    virtual css::uno::Reference< css::uno::XInterface > createUnoPage() override;
public:
diff --git a/sc/inc/chartlis.hxx b/sc/inc/chartlis.hxx
index 3864269..e4562cd 100644
--- a/sc/inc/chartlis.hxx
+++ b/sc/inc/chartlis.hxx
@@ -104,8 +104,6 @@ public:

    void            UpdateChartIntersecting( const ScRange& rRange );

    void            UpdateSeriesRanges();

    ExternalRefListener* GetExtRefListener();
    void            SetUpdateQueue();

diff --git a/sc/source/core/tool/chartlis.cxx b/sc/source/core/tool/chartlis.cxx
index 8ed6bfc..3b2383a 100644
--- a/sc/source/core/tool/chartlis.cxx
+++ b/sc/source/core/tool/chartlis.cxx
@@ -331,13 +331,6 @@ void ScChartListener::UpdateChartIntersecting( const ScRange& rRange )
    }
}

void ScChartListener::UpdateSeriesRanges()
{
    ScRangeListRef pRangeList(new ScRangeList);
    ScRefTokenHelper::getRangeListFromTokens(*pRangeList, *mpTokens, ScAddress());
    mpDoc->SetChartRangeList(GetName(), pRangeList);
}

ScChartListener::ExternalRefListener* ScChartListener::GetExtRefListener()
{
    if (!mpExtRefListener.get())
diff --git a/sd/source/ui/dlg/docprev.cxx b/sd/source/ui/dlg/docprev.cxx
index f0a5a89..8b528ba 100644
--- a/sd/source/ui/dlg/docprev.cxx
+++ b/sd/source/ui/dlg/docprev.cxx
@@ -87,28 +87,6 @@ void SdDocPreviewWin::Resize()
        mxSlideShow->resize( GetSizePixel() );
}

void SdDocPreviewWin::CalcSizeAndPos( Size& rSize, Point& rPoint )
{
    long nWidth = rSize.Width() - 2*FRAME;
    long nHeight = rSize.Height() - 2*FRAME;
    if( nWidth < 0 ) nWidth = 0;
    if( nHeight < 0 ) nHeight = 0;

    double dRatio = 1;
    double dRatioPreV = nHeight ? (static_cast<double>(nWidth) / nHeight) : 0.0;

    if (dRatio > dRatioPreV)
    {
        rSize=Size(nWidth, static_cast<sal_uInt16>(nWidth/dRatio));
        rPoint=Point( 0, static_cast<sal_uInt16>((nHeight-rSize.Height())/2));
    }
    else
    {
        rSize=Size(static_cast<sal_uInt16>(nHeight*dRatio), nHeight);
        rPoint=Point(static_cast<sal_uInt16>((nWidth-rSize.Width())/2),0);
    }
}

void SdDocPreviewWin::ImpPaint( OutputDevice* pVDev )
{
    svtools::ColorConfig aColorConfig;
diff --git a/sd/source/ui/inc/docprev.hxx b/sd/source/ui/inc/docprev.hxx
index 8f0a28d..f5df073 100644
--- a/sd/source/ui/inc/docprev.hxx
+++ b/sd/source/ui/inc/docprev.hxx
@@ -42,7 +42,6 @@ class SD_DLLPUBLIC SdDocPreviewWin final : public Control, public SfxListener

    virtual void    Paint( vcl::RenderContext& rRenderContext, const ::tools::Rectangle& rRect ) override;
    virtual Size    GetOptimalSize() const override;
    static void     CalcSizeAndPos( Size& rSize, Point& rPoint );
    static void     ImpPaint( OutputDevice* pVDev );

    static const int FRAME;
diff --git a/sfx2/source/appl/fileobj.cxx b/sfx2/source/appl/fileobj.cxx
index d785cec..84e2371 100644
--- a/sfx2/source/appl/fileobj.cxx
+++ b/sfx2/source/appl/fileobj.cxx
@@ -194,47 +194,6 @@ bool SvFileObject::LoadFile_Impl()
}


bool SvFileObject::GetGraphic_Impl( Graphic& rGrf, SvStream* pStream )
{
    GraphicFilter& rGF = GraphicFilter::GetGraphicFilter();

    const sal_uInt16 nFilter = !sFilter.isEmpty() && rGF.GetImportFormatCount()
                            ? rGF.GetImportFormatNumber( sFilter )
                            : GRFILTER_FORMAT_DONTKNOW;

    ErrCode nRes;

    // To avoid that a native link is created
    if( !rGrf.IsGfxLink() &&
        !rGrf.GetContext() )
        rGrf.SetGfxLink( GfxLink() );

    if( !pStream )
        nRes = xMed.is() ? ERRCODE_GRFILTER_OPENERROR
                         : rGF.ImportGraphic( rGrf, INetURLObject(sFileNm),
                            nFilter );
    else
    {
        pStream->Seek( STREAM_SEEK_TO_BEGIN );

        // #i123042# for e.g. SVG the path is needed, see same TaskID in svx for more info
        nRes = rGF.ImportGraphic( rGrf, sFileNm, *pStream, nFilter );
    }

    if( pStream && ERRCODE_IO_PENDING == pStream->GetError() )
        pStream->ResetError();

    if( nRes )
    {
        if( xMed.is() && !pStream )
            SAL_WARN( "sfx.appl", "Graphic error [" << nRes << "] - [" << xMed->GetPhysicalName() << "] URL[" << sFileNm << "]" );
        else
            SAL_WARN( "sfx.appl", "Graphic error [" << nRes << "] - [" << sFileNm << "]" );
    }

    return ERRCODE_NONE == nRes;
}

/** detect the filter of the given file

    @param _rURL
diff --git a/sfx2/source/appl/fileobj.hxx b/sfx2/source/appl/fileobj.hxx
index 86219ef..b08cd29 100644
--- a/sfx2/source/appl/fileobj.hxx
+++ b/sfx2/source/appl/fileobj.hxx
@@ -47,7 +47,6 @@ class SvFileObject : public sfx2::SvLinkSource
    bool bClearMedium : 1;
    bool bStateChangeCalled : 1;

    bool GetGraphic_Impl( Graphic&, SvStream* pStream );
    bool LoadFile_Impl();
    void SendStateChg_Impl( sfx2::LinkManager::LinkState nState );

diff --git a/svx/inc/sdr/contact/viewcontactofgraphic.hxx b/svx/inc/sdr/contact/viewcontactofgraphic.hxx
index eee4183..148817b 100644
--- a/svx/inc/sdr/contact/viewcontactofgraphic.hxx
+++ b/svx/inc/sdr/contact/viewcontactofgraphic.hxx
@@ -62,9 +62,6 @@ namespace sdr
            explicit ViewContactOfGraphic(SdrGrafObj& rGrafObj);
            virtual ~ViewContactOfGraphic() override;

            // #i102380#
            void flushGraphicObjects();

            // helpers for visualisation state
            bool visualisationUsesPresObj() const;
            bool visualisationUsesDraft() const;
diff --git a/svx/source/dialog/txencbox.cxx b/svx/source/dialog/txencbox.cxx
index 3dd0de7..4eb656d 100644
--- a/svx/source/dialog/txencbox.cxx
+++ b/svx/source/dialog/txencbox.cxx
@@ -281,69 +281,6 @@ void TextEncodingBox::FillFromTextEncodingTable(
}


void TextEncodingBox::FillFromDbTextEncodingMap(
        bool bExcludeImportSubsets, sal_uInt32 nExcludeInfoFlags )
{
#if !HAVE_FEATURE_DBCONNECTIVITY
    (void)bExcludeImportSubsets;
    (void)nExcludeInfoFlags;
#else
    rtl_TextEncodingInfo aInfo;
    aInfo.StructSize = sizeof(rtl_TextEncodingInfo);
    ::std::vector< rtl_TextEncoding > aEncs;
    sal_Int32 nCount = svxform::charset_helper::getSupportedTextEncodings( aEncs );
    for ( sal_Int32 j=0; j<nCount; j++ )
    {
        bool bInsert = true;
        rtl_TextEncoding nEnc = rtl_TextEncoding( aEncs[j] );
        if ( nExcludeInfoFlags )
        {
            if ( !rtl_getTextEncodingInfo( nEnc, &aInfo ) )
                bInsert = false;
            else
            {
                if ( (aInfo.Flags & nExcludeInfoFlags) == 0 )
                {
                    if ( (nExcludeInfoFlags & RTL_TEXTENCODING_INFO_UNICODE) &&
                            ((nEnc == RTL_TEXTENCODING_UCS2) ||
                            nEnc == RTL_TEXTENCODING_UCS4) )
                        bInsert = false;    // InfoFlags don't work for Unicode :-(
                }
                else
                    bInsert = false;
            }
        }
        if ( bInsert )
        {
            if ( bExcludeImportSubsets )
            {
                switch ( nEnc )
                {
                    // subsets of RTL_TEXTENCODING_GB_18030
                    case RTL_TEXTENCODING_GB_2312 :
                    case RTL_TEXTENCODING_GBK :
                    case RTL_TEXTENCODING_MS_936 :
                        bInsert = false;
                    break;
                }
            }
            // CharsetMap offers a RTL_TEXTENCODING_DONTKNOW for internal use,
            // makes no sense here and would result in an empty string as list
            // entry.
            if ( bInsert && nEnc != RTL_TEXTENCODING_DONTKNOW )
                InsertTextEncoding( nEnc );
        }
    }
#endif
}

void TextEncodingBox::FillWithMimeAndSelectBest()
{
    FillFromTextEncodingTable( false, 0xffffffff, RTL_TEXTENCODING_INFO_MIME );
    rtl_TextEncoding nEnc = SvtSysLocale::GetBestMimeEncoding();
    SelectTextEncoding( nEnc );
}

void TextEncodingBox::InsertTextEncoding( const rtl_TextEncoding nEnc,
            const OUString& rEntry )
{
diff --git a/svx/source/sdr/contact/viewcontactofgraphic.cxx b/svx/source/sdr/contact/viewcontactofgraphic.cxx
index b379757..2f44970 100644
--- a/svx/source/sdr/contact/viewcontactofgraphic.cxx
+++ b/svx/source/sdr/contact/viewcontactofgraphic.cxx
@@ -71,17 +71,6 @@ namespace sdr
        {
        }

        void ViewContactOfGraphic::flushGraphicObjects()
        {
            // #i102380# The graphic is swapped out. To let that have an effect, it is necessary to
            // delete copies of the GraphicObject which are not swapped out and have no SwapHandler set
            // (this is what happens when the GraphicObject gets copied to a SdrGrafPrimitive2D). This
            // is best achieved for the VC by clearing the local decomposition cache. It would be possible
            // to also do this for the VOC cache, but that VOCs exist exactly express that the object
            // gets visualised, so this would be wrong.
            flushViewIndependentPrimitive2DSequence();
        }

        drawinglayer::primitive2d::Primitive2DContainer ViewContactOfGraphic::createVIP2DSForPresObj(
            const basegfx::B2DHomMatrix& rObjectMatrix,
            const drawinglayer::attribute::SdrLineFillShadowTextAttribute& rAttribute) const
diff --git a/svx/source/svdraw/svdpage.cxx b/svx/source/svdraw/svdpage.cxx
index 1532ee4..71207b6 100644
--- a/svx/source/svdraw/svdpage.cxx
+++ b/svx/source/svdraw/svdpage.cxx
@@ -89,13 +89,6 @@ SdrObjList::~SdrObjList()
    Clear(); // delete contents of container
}

SdrObjList* SdrObjList::CloneSdrObjList(SdrModel* pNewModelel) const
{
    SdrObjList* pObjList = new SdrObjList();
    pObjList->copyDataFromSdrObjList(*this, pNewModelel);
    return pObjList;
}

void SdrObjList::copyDataFromSdrObjList(const SdrObjList& rSrcList, SdrModel* pNewModelel)
{
    // this function is only supposed to be called once, right after construction
diff --git a/sw/inc/ndgrf.hxx b/sw/inc/ndgrf.hxx
index 9848025..cadf0ef 100644
--- a/sw/inc/ndgrf.hxx
+++ b/sw/inc/ndgrf.hxx
@@ -68,50 +68,10 @@ class SW_DLLPUBLIC SwGrfNode: public SwNoTextNode
               SwAttrSet const * pAutoAttr );

    void InsertLink( const OUString& rGrfName, const OUString& rFltName );
    bool ImportGraphic( SvStream& rStrm );

    DECL_LINK( SwapGraphic, const GraphicObject*, SvStream* );
    DECL_STATIC_LINK( SwGrfNode, SwapReplacement, const GraphicObject*, SvStream* );

    /** helper method to determine stream for the embedded graphic.

        Important note: caller of this method has to handle the thrown exceptions
        Storage, which should contain the stream of the embedded graphic, is
        provided via parameter. Otherwise the returned stream will be closed
        after the method returns, because its parent stream is closed and deleted.
        Proposed name of embedded graphic stream is also provided by parameter.

        @author OD

        @param _refPics
        input parameter - reference to storage, which should contain the
        embedded graphic stream.

        @param rStrmName
        input parameter - proposed name of the embedded graphic stream.

        @return SvStream*
        new created stream of the embedded graphic, which has to be destroyed
        after its usage. Could be NULL, if the stream isn't found.
    */
    SvStream* GetStreamForEmbedGrf(
            const css::uno::Reference< css::embed::XStorage >& _refPics,
            const OUString& rStreamName ) const;

    /** helper method to get a substorage of the document storage for readonly access.

        A substorage with the specified name will be opened readonly. If the provided
        name is empty the root storage will be returned.

        @param _aStgName
        input parameter - name of substorage. Can be empty.

        @return XStorage
        reference to substorage or the root storage
    */
    css::uno::Reference< css::embed::XStorage > GetDocSubstorageOrRoot(
                                                const OUString& aStgName ) const;

    /// allow reaction on change of content of GraphicObject, so always call
    /// when GraphicObject content changes
    void onGraphicChanged();
@@ -171,9 +131,6 @@ private:
public:
    bool HasEmbeddedStreamName() const { return maGrfObj.HasUserData(); }

    /// Is this node selected by any shell?
    bool IsSelected() const;

    /// Communicate to graphic that node is in Undo-range.
    virtual bool SavePersistentData() override;
    virtual bool RestorePersistentData() override;
diff --git a/sw/source/core/graphic/ndgrf.cxx b/sw/source/core/graphic/ndgrf.cxx
index a046085..030893d 100644
--- a/sw/source/core/graphic/ndgrf.cxx
+++ b/sw/source/core/graphic/ndgrf.cxx
@@ -458,24 +458,6 @@ Size SwGrfNode::GetTwipSize() const
    return nGrfSize;
}

bool SwGrfNode::ImportGraphic( SvStream& rStrm )
{
    Graphic aGraphic;
    const OUString aURL(maGrfObj.GetUserData());

    if(!GraphicFilter::GetGraphicFilter().ImportGraphic(aGraphic, aURL, rStrm))
    {
        delete mpReplacementGraphic;
        mpReplacementGraphic = nullptr;

        maGrfObj.SetGraphic( aGraphic );
        onGraphicChanged();
        return true;
    }

    return false;
}

/**
 * @return true if ReRead or reading successful,
 *         false if not loaded
@@ -745,80 +727,6 @@ void SwGrfNode::ScaleImageMap()
    }
}

/** helper method to get a substorage of the document storage for readonly access.

    OD, MAV 2005-08-17 #i53025#
    A substorage with the specified name will be opened readonly. If the provided
    name is empty the root storage will be returned.
*/
uno::Reference< embed::XStorage > SwGrfNode::GetDocSubstorageOrRoot( const OUString& aStgName ) const
{
    uno::Reference < embed::XStorage > refStor =
        const_cast<SwGrfNode*>(this)->GetDoc()->GetDocStorage();
    OSL_ENSURE( refStor.is(), "No storage in Doc" );

    if ( !aStgName.isEmpty() )
    {
        if( refStor.is() )
            return refStor->openStorageElement( aStgName, embed::ElementModes::READ );
    }

    return refStor;
}

/** helper method to determine stream for the embedded graphic.

    OD 2005-05-04 #i48434#
    Important note: caller of this method has to handle the thrown exceptions
    OD, MAV 2005-08-17 #i53025#
    Storage, which should contain the stream of the embedded graphic, is
    provided via parameter. Otherwise the returned stream will be closed
    after the method returns, because its parent stream is closed and deleted.
    Proposed name of embedded graphic stream is also provided by parameter.
*/
SvStream* SwGrfNode::GetStreamForEmbedGrf(
            const uno::Reference< embed::XStorage >& _refPics,
            const OUString& rStreamName ) const
{
    SvStream* pStrm( nullptr );

    if( _refPics.is() && !rStreamName.isEmpty() )
    {
        OUString sStreamName(rStreamName);
        // If stream doesn't exist in the storage, try access the graphic file by
        // re-generating its name.
        // A save action can have changed the filename of the embedded graphic,
        // because a changed unique ID of the graphic is calculated.
        // --> recursive calls of <GetUniqueID()> have to be avoided.
        // Thus, use local static boolean to assure this.
        if ( !_refPics->hasByName( sStreamName ) ||
             !_refPics->isStreamElement( sStreamName ) )
        {
            if ( GetGrfObj().GetType() != GraphicType::NONE )
            {
                const sal_Int32 nExtPos = sStreamName.indexOf('.');
                const OUString aExtStr = (nExtPos>=0) ? sStreamName.copy( nExtPos ) : OUString();
                sStreamName = OStringToOUString(GetGrfObj().GetUniqueID(),
                    RTL_TEXTENCODING_ASCII_US) + aExtStr;
            }
        }

        // assure that graphic file exist in the storage.
        if ( _refPics->hasByName( sStreamName ) &&
             _refPics->isStreamElement( sStreamName ) )
        {
            uno::Reference < io::XStream > refStrm = _refPics->openStreamElement( sStreamName, embed::ElementModes::READ );
            pStrm = utl::UcbStreamHelper::CreateStream( refStrm );
        }
        else
        {
            OSL_FAIL( "<SwGrfNode::GetStreamForEmbedGrf(..)> - embedded graphic file not found!" );
        }
    }

    return pStrm;
}

SwContentNode* SwGrfNode::MakeCopy( SwDoc* pDoc, const SwNodeIndex& rIdx ) const
{
    // copy formats into the other document
@@ -921,26 +829,6 @@ bool SwGrfNode::IsTransparent() const
        GetSwAttrSet().GetTransparencyGrf().GetValue() != 0;
}

bool SwGrfNode::IsSelected() const
{
    bool bRet = false;
    const SwEditShell* pESh = GetDoc()->GetEditShell();
    if( pESh )
    {
        const SwNode* pN = this;
        for(const SwViewShell& rCurrentShell : pESh->GetRingContainer())
        {
            if( dynamic_cast<const SwEditShell*>( &rCurrentShell) != nullptr && pN == &static_cast<const SwCursorShell*>(&rCurrentShell)
                                ->GetCursor()->GetPoint()->nNode.GetNode() )
            {
                bRet = true;
                break;
            }
        }
    }
    return bRet;
}

void SwGrfNode::TriggerAsyncRetrieveInputStream()
{
    if ( !IsLinkedFile() )
diff --git a/vcl/inc/BitmapFastScaleFilter.hxx b/vcl/inc/BitmapFastScaleFilter.hxx
index c1ee11b..bc0ddfc7 100644
--- a/vcl/inc/BitmapFastScaleFilter.hxx
+++ b/vcl/inc/BitmapFastScaleFilter.hxx
@@ -23,11 +23,6 @@ public:
    {
    }

    explicit BitmapFastScaleFilter(Size aSize)
        : maSize(aSize)
    {
    }

    virtual BitmapEx execute(BitmapEx const& rBitmapEx) override;

private:
diff --git a/vcl/source/control/slider.cxx b/vcl/source/control/slider.cxx
index 6682ceb..ae98f27 100644
--- a/vcl/source/control/slider.cxx
+++ b/vcl/source/control/slider.cxx
@@ -812,15 +812,6 @@ void Slider::Resize()
    Invalidate(InvalidateFlags::NoChildren | InvalidateFlags::NoErase);
}

void Slider::SetLinkedField(VclPtr<NumericField> const & pField)
{
    if (mpLinkedField)
        mpLinkedField->SetModifyHdl(Link<Edit&,void>());
    mpLinkedField = pField;
    if (mpLinkedField)
        mpLinkedField->SetModifyHdl(LINK(this, Slider, LinkedFieldModifyHdl));
}

IMPL_LINK_NOARG(Slider, LinkedFieldModifyHdl, Edit&, void)
{
    if (mpLinkedField)
diff --git a/vcl/source/gdi/bitmapex.cxx b/vcl/source/gdi/bitmapex.cxx
index 2f6f9bf..35ae111 100644
--- a/vcl/source/gdi/bitmapex.cxx
+++ b/vcl/source/gdi/bitmapex.cxx
@@ -583,11 +583,6 @@ bool BitmapEx::Erase( const Color& rFillColor )
    return bRet;
}

bool BitmapEx::Dither()
{
    return !!maBitmap && maBitmap.Dither();
}

void BitmapEx::Replace( const Color& rSearchColor, const Color& rReplaceColor )
{
    if (!!maBitmap)