[Libreoffice-commits] core.git: 18 commits - sw/inc sw/source

Bjoern Michaelsen bjoern.michaelsen at canonical.com
Fri Dec 25 04:32:56 PST 2015


 sw/inc/unostyle.hxx                 |  187 -------
 sw/source/core/inc/unoevent.hxx     |    5 
 sw/source/core/unocore/unocoll.cxx  |   13 
 sw/source/core/unocore/unoevent.cxx |   40 -
 sw/source/core/unocore/unostyle.cxx |  856 +++++++++++++++++++-----------------
 sw/source/filter/xml/xmlfmt.cxx     |   30 -
 sw/source/filter/xml/xmltexte.cxx   |  148 +++---
 7 files changed, 580 insertions(+), 699 deletions(-)

New commits:
commit e6c14e281e2f4e9c5d7cbc3d69da11cd86770adf
Author: Bjoern Michaelsen <bjoern.michaelsen at canonical.com>
Date:   Wed Dec 23 23:21:59 2015 +0100

    remove (now) unused function
    
    Change-Id: Iddf0fce5343abeb199cb5d0c37d933d68c0e4c6a

diff --git a/sw/source/core/unocore/unostyle.cxx b/sw/source/core/unocore/unostyle.cxx
index d6d6018..9a55dee 100644
--- a/sw/source/core/unocore/unostyle.cxx
+++ b/sw/source/core/unocore/unostyle.cxx
@@ -1001,8 +1001,6 @@ public:
     {
         rAny = rxPropertySet->getPropertyValue( rPropertyName );
     }
-    const PropertyEntryVector_t& GetPropertyVector() const
-            { return aPropertyEntries; }
 };
 
 static SwGetPoolIdFromName lcl_GetSwEnumFromSfxEnum(SfxStyleFamily eFamily)
commit ae83b3e95748e9b9c05d57127b0ee4fa4e8e5749
Author: Bjoern Michaelsen <bjoern.michaelsen at canonical.com>
Date:   Wed Dec 23 22:10:29 2015 +0100

    refactor SwXStyle::ApplyDescriptorProperties
    
    Change-Id: I219e75082c655a0895c75932863e596fcfccc656

diff --git a/sw/source/core/unocore/unostyle.cxx b/sw/source/core/unocore/unostyle.cxx
index 457f804..d6d6018 100644
--- a/sw/source/core/unocore/unostyle.cxx
+++ b/sw/source/core/unocore/unostyle.cxx
@@ -989,6 +989,14 @@ public:
     }
     void ClearAllProperties( )
             { m_vPropertyValues.clear(); }
+    void Apply(SwXStyle& rStyle)
+    {
+        for(auto pPropertyPair : m_vPropertyValues)
+        {
+            if(pPropertyPair.second.hasValue())
+                rStyle.setPropertyValue(pPropertyPair.first, pPropertyPair.second);
+        }
+    }
     static void GetProperty(const OUString &rPropertyName, const uno::Reference < beans::XPropertySet > &rxPropertySet, uno::Any& rAny )
     {
         rAny = rxPropertySet->getPropertyValue( rPropertyName );
@@ -1300,22 +1308,12 @@ uno::Reference<beans::XPropertySetInfo> SwXStyle::getPropertySetInfo() throw( un
     return m_rEntry.m_xPSInfo;
 }
 
-void    SwXStyle::ApplyDescriptorProperties()
+void SwXStyle::ApplyDescriptorProperties()
 {
     m_bIsDescriptor = false;
     m_xStyleData.clear();
     m_xStyleFamily.clear();
-
-    const PropertyEntryVector_t& rPropertyVector = m_pPropertiesImpl->GetPropertyVector();
-    PropertyEntryVector_t::const_iterator aIt = rPropertyVector.begin();
-    while(aIt != rPropertyVector.end())
-    {
-        const uno::Any* pAny(nullptr);
-        m_pPropertiesImpl->GetProperty(aIt->sName, pAny);
-        if(pAny->hasValue())
-            setPropertyValue(aIt->sName, *pAny);
-        ++aIt;
-    }
+    m_pPropertiesImpl->Apply(*this);
 }
 
 class SwStyleBase_Impl
commit ddee7414f4859f02af26fdddd068f1d34c0ddeeb
Author: Bjoern Michaelsen <bjoern.michaelsen at canonical.com>
Date:   Wed Dec 23 20:43:46 2015 +0100

    refactor SwXStyle::getPropertySetInfo
    
    Change-Id: If2ecee5c0e97c3955cffe4eb23d2bf651ec4ef2a

diff --git a/sw/source/core/unocore/unostyle.cxx b/sw/source/core/unocore/unostyle.cxx
index c66a434..457f804 100644
--- a/sw/source/core/unocore/unostyle.cxx
+++ b/sw/source/core/unocore/unostyle.cxx
@@ -99,6 +99,7 @@ namespace
         using TranslateIndex_t = std::function<sal_uInt16(const sal_uInt16)>;
         SfxStyleFamily m_eFamily;
         sal_uInt16 m_nPropMapType;
+        uno::Reference<beans::XPropertySetInfo> m_xPSInfo;
         SwGetPoolIdFromName m_aPoolId;
         OUString m_sName;
         sal_uInt32 m_nResId;
@@ -108,13 +109,14 @@ namespace
         StyleFamilyEntry(SfxStyleFamily eFamily, sal_uInt16 nPropMapType, SwGetPoolIdFromName aPoolId, OUString const& sName, sal_uInt32 nResId, GetCountOrName_t fGetCountOrName, CreateStyle_t fCreateStyle, TranslateIndex_t fTranslateIndex)
                 : m_eFamily(eFamily)
                 , m_nPropMapType(nPropMapType)
+                , m_xPSInfo(aSwMapProvider.GetPropertySet(nPropMapType)->getPropertySetInfo())
                 , m_aPoolId(aPoolId)
                 , m_sName(sName)
                 , m_nResId(nResId)
                 , m_fGetCountOrName(fGetCountOrName)
                 , m_fCreateStyle(fCreateStyle)
                 , m_fTranslateIndex(fTranslateIndex)
-            {}
+            { }
     };
     static const std::vector<StyleFamilyEntry>* our_pStyleFamilyEntries;
     // these should really be constexprs, but MSVC still is apparently too stupid for them
@@ -1286,76 +1288,16 @@ void SwXStyle::setParentStyle(const OUString& rParentStyle) throw( container::No
     }
 }
 
-static uno::Reference< beans::XPropertySetInfo > lcl_getPropertySetInfo( SfxStyleFamily eFamily, bool bIsConditional )
+uno::Reference<beans::XPropertySetInfo> SwXStyle::getPropertySetInfo() throw( uno::RuntimeException, std::exception )
 {
-    uno::Reference< beans::XPropertySetInfo >  xRet;
-    switch( eFamily )
+    if(m_bIsConditional)
     {
-        case SFX_STYLE_FAMILY_CHAR:
-        {
-            static uno::Reference< beans::XPropertySetInfo >  xCharRef;
-            if(!xCharRef.is())
-            {
-                xCharRef = aSwMapProvider.GetPropertySet(PROPERTY_MAP_CHAR_STYLE)->getPropertySetInfo();
-            }
-            xRet = xCharRef;
-        }
-        break;
-        case SFX_STYLE_FAMILY_PARA:
-        {
-            static uno::Reference< beans::XPropertySetInfo > xCondParaRef;
-            static uno::Reference< beans::XPropertySetInfo >  xParaRef;
-            if(!xParaRef.is())
-            {
-                xCondParaRef = aSwMapProvider.GetPropertySet(
-                    PROPERTY_MAP_CONDITIONAL_PARA_STYLE)->getPropertySetInfo();
-                xParaRef = aSwMapProvider.GetPropertySet(
-                    PROPERTY_MAP_PARA_STYLE)->getPropertySetInfo();
-            }
-            xRet = bIsConditional ? xCondParaRef : xParaRef;
-        }
-        break;
-        case SFX_STYLE_FAMILY_PAGE     :
-        {
-            static uno::Reference< beans::XPropertySetInfo >  xPageRef;
-            if(!xPageRef.is())
-            {
-                xPageRef = aSwMapProvider.GetPropertySet(PROPERTY_MAP_PAGE_STYLE)->getPropertySetInfo();
-            }
-            xRet = xPageRef;
-        }
-        break;
-        case SFX_STYLE_FAMILY_FRAME    :
-        {
-            static uno::Reference< beans::XPropertySetInfo >  xFrameRef;
-            if(!xFrameRef.is())
-            {
-                xFrameRef = aSwMapProvider.GetPropertySet(PROPERTY_MAP_FRAME_STYLE)->getPropertySetInfo();
-            }
-            xRet = xFrameRef;
-        }
-        break;
-        case SFX_STYLE_FAMILY_PSEUDO:
-        {
-            static uno::Reference< beans::XPropertySetInfo >  xNumRef;
-            if(!xNumRef.is())
-            {
-                xNumRef = aSwMapProvider.GetPropertySet(PROPERTY_MAP_NUM_STYLE)->getPropertySetInfo();
-            }
-            xRet = xNumRef;
-        }
-        break;
-
-        default:
-            ;
+        assert(m_rEntry.m_eFamily == SFX_STYLE_FAMILY_PARA);
+        static uno::Reference<beans::XPropertySetInfo> xCondParaRef;
+        xCondParaRef = aSwMapProvider.GetPropertySet(PROPERTY_MAP_CONDITIONAL_PARA_STYLE)->getPropertySetInfo();
+        return xCondParaRef;
     }
-    return xRet;
-}
-
-uno::Reference< beans::XPropertySetInfo >  SwXStyle::getPropertySetInfo()
-    throw( uno::RuntimeException, std::exception )
-{
-    return lcl_getPropertySetInfo( m_rEntry.m_eFamily, m_bIsConditional );
+    return m_rEntry.m_xPSInfo;
 }
 
 void    SwXStyle::ApplyDescriptorProperties()
commit 15b11c8389c3fd1a5241fc5b37e3d7eaa79234db
Author: Bjoern Michaelsen <bjoern.michaelsen at canonical.com>
Date:   Wed Dec 23 20:29:24 2015 +0100

    refactor SwXStyle::get/setParentStyle
    
    Change-Id: Ifb578244d511af153484d14ee92c5c22c2db0a3f

diff --git a/sw/source/core/unocore/unostyle.cxx b/sw/source/core/unocore/unostyle.cxx
index 9b8d860..c66a434 100644
--- a/sw/source/core/unocore/unostyle.cxx
+++ b/sw/source/core/unocore/unostyle.cxx
@@ -1238,68 +1238,52 @@ sal_Bool SwXStyle::isInUse() throw( uno::RuntimeException, std::exception )
 OUString SwXStyle::getParentStyle() throw( uno::RuntimeException, std::exception )
 {
     SolarMutexGuard aGuard;
-    OUString aString;
-    if(m_pBasePool)
+    if(!m_pBasePool)
     {
-        m_pBasePool->SetSearchMask(m_rEntry.m_eFamily);
-        SfxStyleSheetBase* pBase = m_pBasePool->Find(m_sStyleName);
-        if(pBase)
-            aString = pBase->GetParent();
+        if(!m_bIsDescriptor)
+            throw uno::RuntimeException();
+        return m_sParentStyleName;
     }
-    else if(m_bIsDescriptor)
-        aString = m_sParentStyleName;
-    else
-        throw uno::RuntimeException();
-    SwStyleNameMapper::FillProgName(aString, aString, lcl_GetSwEnumFromSfxEnum ( m_rEntry.m_eFamily ), true );
+    m_pBasePool->SetSearchMask(m_rEntry.m_eFamily);
+    SfxStyleSheetBase* pBase = m_pBasePool->Find(m_sStyleName);
+    OUString aString;
+    if(pBase)
+        aString = pBase->GetParent();
+    SwStyleNameMapper::FillProgName(aString, aString, lcl_GetSwEnumFromSfxEnum(m_rEntry.m_eFamily), true);
     return aString;
 }
 
-void SwXStyle::setParentStyle(const OUString& rParentStyle)
-            throw( container::NoSuchElementException, uno::RuntimeException, std::exception )
+void SwXStyle::setParentStyle(const OUString& rParentStyle) throw( container::NoSuchElementException, uno::RuntimeException, std::exception )
 {
     SolarMutexGuard aGuard;
     OUString sParentStyle;
     SwStyleNameMapper::FillUIName(rParentStyle, sParentStyle, lcl_GetSwEnumFromSfxEnum ( m_rEntry.m_eFamily ), true );
-    if(m_pBasePool)
+    if(!m_pBasePool)
     {
-        m_pBasePool->SetSearchMask(m_rEntry.m_eFamily);
-        bool bExcept = false;
-        SfxStyleSheetBase* pBase = m_pBasePool->Find(m_sStyleName);
-        if(pBase)
-        {
-            rtl::Reference< SwDocStyleSheet > xBase( new SwDocStyleSheet(*static_cast<SwDocStyleSheet*>(pBase)) );
-            //make it a 'real' style - necessary for pooled styles
-            xBase->GetItemSet();
-            if(xBase->GetParent() != sParentStyle)
-            {
-                bExcept = !xBase->SetParent(sParentStyle);
-            }
-        }
-        else
-            bExcept = true;
-        if(bExcept)
+        if(!m_bIsDescriptor)
             throw uno::RuntimeException();
-    }
-    else if(m_bIsDescriptor)
-    {
         m_sParentStyleName = sParentStyle;
         try
         {
-            uno::Any aAny = m_xStyleFamily->getByName ( sParentStyle );
-            aAny >>= m_xStyleData;
-        }
-        catch ( container::NoSuchElementException& )
-        {
-        }
-        catch ( lang::WrappedTargetException& )
-        {
-        }
-        catch ( uno::RuntimeException& )
-        {
+            const auto aAny = m_xStyleFamily->getByName(sParentStyle);
+            m_xStyleData = aAny.get<decltype(m_xStyleData)>();
         }
+        catch(...)
+        { }
+        return;
     }
-    else
+    m_pBasePool->SetSearchMask(m_rEntry.m_eFamily);
+    SfxStyleSheetBase* pBase = m_pBasePool->Find(m_sStyleName);
+    if(!pBase)
         throw uno::RuntimeException();
+    rtl::Reference<SwDocStyleSheet> xBase(new SwDocStyleSheet(*static_cast<SwDocStyleSheet*>(pBase)));
+    //make it a 'real' style - necessary for pooled styles
+    xBase->GetItemSet();
+    if(xBase->GetParent() != sParentStyle)
+    {
+        if(!xBase->SetParent(sParentStyle))
+            throw uno::RuntimeException();
+    }
 }
 
 static uno::Reference< beans::XPropertySetInfo > lcl_getPropertySetInfo( SfxStyleFamily eFamily, bool bIsConditional )
commit b025e60b8d00b0d8fbb694285eafb2c95b7b129e
Author: Bjoern Michaelsen <bjoern.michaelsen at canonical.com>
Date:   Wed Dec 23 19:57:53 2015 +0100

    refactor SwXStyle::isUserDefined/isInUse
    
    Change-Id: I67d8408d410698f0f31738fcc30321c627307c73

diff --git a/sw/source/core/unocore/unostyle.cxx b/sw/source/core/unocore/unostyle.cxx
index 16313af..9b8d860 100644
--- a/sw/source/core/unocore/unostyle.cxx
+++ b/sw/source/core/unocore/unostyle.cxx
@@ -1217,34 +1217,22 @@ void SwXStyle::setName(const OUString& rName) throw( uno::RuntimeException, std:
 sal_Bool SwXStyle::isUserDefined() throw( uno::RuntimeException, std::exception )
 {
     SolarMutexGuard aGuard;
-    bool bRet = false;
-    if(m_pBasePool)
-    {
-        m_pBasePool->SetSearchMask(m_rEntry.m_eFamily);
-        SfxStyleSheetBase* pBase = m_pBasePool->Find(m_sStyleName);
-        //if it is not found it must be non user defined
-        if(pBase)
-            bRet = pBase->IsUserDefined();
-    }
-    else
+    if(!m_pBasePool)
         throw uno::RuntimeException();
-    return bRet;
+    m_pBasePool->SetSearchMask(m_rEntry.m_eFamily);
+    SfxStyleSheetBase* pBase = m_pBasePool->Find(m_sStyleName);
+    //if it is not found it must be non user defined
+    return pBase && pBase->IsUserDefined();
 }
 
 sal_Bool SwXStyle::isInUse() throw( uno::RuntimeException, std::exception )
 {
     SolarMutexGuard aGuard;
-    bool bRet = false;
-    if(m_pBasePool)
-    {
-        m_pBasePool->SetSearchMask(m_rEntry.m_eFamily, SFXSTYLEBIT_USED);
-        SfxStyleSheetBase* pBase = m_pBasePool->Find(m_sStyleName);
-        if(pBase)
-            bRet = pBase->IsUsed();
-    }
-    else
+    if(!m_pBasePool)
         throw uno::RuntimeException();
-    return bRet;
+    m_pBasePool->SetSearchMask(m_rEntry.m_eFamily, SFXSTYLEBIT_USED);
+    SfxStyleSheetBase* pBase = m_pBasePool->Find(m_sStyleName);
+    return pBase && pBase->IsUsed();
 }
 
 OUString SwXStyle::getParentStyle() throw( uno::RuntimeException, std::exception )
commit dc7879fe51f1db089a2be9b42548e7bc6d99c0b4
Author: Bjoern Michaelsen <bjoern.michaelsen at canonical.com>
Date:   Wed Dec 23 19:48:42 2015 +0100

    refactor SwXStyle::get/setName
    
    Change-Id: If814b6873796fcfa4cc7a2f62711a8b20f2f7d6b

diff --git a/sw/source/core/unocore/unostyle.cxx b/sw/source/core/unocore/unostyle.cxx
index f1bcd9b..16313af 100644
--- a/sw/source/core/unocore/unostyle.cxx
+++ b/sw/source/core/unocore/unostyle.cxx
@@ -1183,41 +1183,35 @@ void SwXStyle::Modify( const SfxPoolItem* pOld, const SfxPoolItem *pNew)
 OUString SwXStyle::getName() throw( uno::RuntimeException, std::exception )
 {
     SolarMutexGuard aGuard;
-    if(m_pBasePool)
-    {
-        m_pBasePool->SetSearchMask(m_rEntry.m_eFamily);
-        SfxStyleSheetBase* pBase = m_pBasePool->Find(m_sStyleName);
-        OSL_ENSURE(pBase, "where is the style?" );
-        if(!pBase)
-            throw uno::RuntimeException();
-        OUString aString;
-        SwStyleNameMapper::FillProgName(pBase->GetName(), aString, lcl_GetSwEnumFromSfxEnum ( m_rEntry.m_eFamily ), true);
-        return aString;
-    }
-    return m_sStyleName;
+    if(!m_pBasePool)
+        return m_sStyleName;
+    m_pBasePool->SetSearchMask(m_rEntry.m_eFamily);
+    SfxStyleSheetBase* pBase = m_pBasePool->Find(m_sStyleName);
+    SAL_WARN_IF(!pBase, "sw.uno", "where is the style?");
+    if(!pBase)
+        throw uno::RuntimeException();
+    OUString aString;
+    SwStyleNameMapper::FillProgName(pBase->GetName(), aString, lcl_GetSwEnumFromSfxEnum ( m_rEntry.m_eFamily ), true);
+    return aString;
 }
 
 void SwXStyle::setName(const OUString& rName) throw( uno::RuntimeException, std::exception )
 {
     SolarMutexGuard aGuard;
-    if(m_pBasePool)
+    if(!m_pBasePool)
     {
-        m_pBasePool->SetSearchMask(m_rEntry.m_eFamily);
-        SfxStyleSheetBase* pBase = m_pBasePool->Find(m_sStyleName);
-        OSL_ENSURE(pBase, "where is the style?" );
-        bool bExcept = true;
-        if(pBase && pBase->IsUserDefined())
-        {
-            rtl::Reference< SwDocStyleSheet > xTmp( new SwDocStyleSheet( *static_cast<SwDocStyleSheet*>(pBase) ) );
-            bExcept = !xTmp->SetName(rName);
-            if(!bExcept)
-                m_sStyleName = rName;
-        }
-        if(bExcept)
-            throw uno::RuntimeException();
-    }
-    else
         m_sStyleName = rName;
+        return;
+    }
+    m_pBasePool->SetSearchMask(m_rEntry.m_eFamily);
+    SfxStyleSheetBase* pBase = m_pBasePool->Find(m_sStyleName);
+    SAL_WARN_IF(!pBase, "sw.uno", "where is the style?");
+    if(!pBase || !pBase->IsUserDefined())
+        throw uno::RuntimeException();
+    rtl::Reference<SwDocStyleSheet> xTmp(new SwDocStyleSheet(*static_cast<SwDocStyleSheet*>(pBase)));
+    if(!xTmp->SetName(rName))
+        throw uno::RuntimeException();
+    m_sStyleName = rName;
 }
 
 sal_Bool SwXStyle::isUserDefined() throw( uno::RuntimeException, std::exception )
commit 0046562f916dcf808be18a315c3be534a2aaaa9c
Author: Bjoern Michaelsen <bjoern.michaelsen at canonical.com>
Date:   Wed Dec 23 19:32:20 2015 +0100

    use local init function for conditional too
    
    Change-Id: I687161aa9295a1b815d11dd10fa83d23b010764a

diff --git a/sw/source/core/unocore/unostyle.cxx b/sw/source/core/unocore/unostyle.cxx
index 7779062..f1bcd9b 100644
--- a/sw/source/core/unocore/unostyle.cxx
+++ b/sw/source/core/unocore/unostyle.cxx
@@ -278,10 +278,7 @@ protected:
    virtual void Modify( const SfxPoolItem* pOld, const SfxPoolItem *pNew) override;
 public:
     SwXStyle(SwDoc* pDoc, SfxStyleFamily eFam = SFX_STYLE_FAMILY_PARA, bool bConditional = false);
-    SwXStyle(SfxStyleSheetBasePool& rPool, SfxStyleFamily eFam,
-                                SwDoc*  pDoc,
-                                const OUString& rStyleName);
-
+    SwXStyle(SfxStyleSheetBasePool* pPool, SfxStyleFamily eFamily, SwDoc* pDoc, const OUString& rStyleName);
     virtual ~SwXStyle();
 
 
@@ -375,7 +372,7 @@ public:
     SwXFrameStyle(SfxStyleSheetBasePool& rPool,
                                 SwDoc*  pDoc,
                                 const OUString& rStyleName) :
-        SwXStyle(rPool, SFX_STYLE_FAMILY_FRAME, pDoc, rStyleName){}
+        SwXStyle(&rPool, SFX_STYLE_FAMILY_FRAME, pDoc, rStyleName){}
     SwXFrameStyle( SwDoc *pDoc );
     virtual ~SwXFrameStyle();
 
@@ -690,11 +687,11 @@ sal_Int32 lcl_GetCountOrName<SFX_STYLE_FAMILY_PSEUDO>(const SwDoc& rDoc, OUStrin
 
 template<enum SfxStyleFamily eFamily>
 static uno::Reference< css::style::XStyle> lcl_CreateStyle(SfxStyleSheetBasePool* pBasePool, SwDocShell* pDocShell, const OUString& sStyleName)
-    { return pBasePool ? new SwXStyle(*pBasePool, eFamily, pDocShell->GetDoc(), sStyleName) : new SwXStyle(pDocShell->GetDoc(), eFamily, false); };
+    { return pBasePool ? new SwXStyle(pBasePool, eFamily, pDocShell->GetDoc(), sStyleName) : new SwXStyle(pDocShell->GetDoc(), eFamily, false); };
 
 template<>
 uno::Reference< css::style::XStyle> lcl_CreateStyle<SFX_STYLE_FAMILY_PARA>(SfxStyleSheetBasePool* pBasePool, SwDocShell* pDocShell, const OUString& sStyleName)
-    { return pBasePool ? new SwXStyle(*pBasePool, SFX_STYLE_FAMILY_PARA, pDocShell->GetDoc(), sStyleName) : new SwXStyle(pDocShell->GetDoc(), SFX_STYLE_FAMILY_PARA, false); };
+    { return pBasePool ? new SwXStyle(pBasePool, SFX_STYLE_FAMILY_PARA, pDocShell->GetDoc(), sStyleName) : new SwXStyle(pDocShell->GetDoc(), SFX_STYLE_FAMILY_PARA, false); };
 template<>
 uno::Reference< css::style::XStyle> lcl_CreateStyle<SFX_STYLE_FAMILY_FRAME>(SfxStyleSheetBasePool* pBasePool, SwDocShell* pDocShell, const OUString& sStyleName)
     { return pBasePool ? new SwXFrameStyle(*pBasePool, pDocShell->GetDoc(), sStyleName) : new SwXFrameStyle(pDocShell->GetDoc()); };
@@ -1112,6 +1109,21 @@ static uno::Reference<container::XNameAccess> lcl_InitStyleFamily(SwDoc* pDoc, c
     return aResult.get<return_t>();
 }
 
+static bool lcl_InitConditional(SfxStyleSheetBasePool* pBasePool, const SfxStyleFamily eFamily, const OUString& rStyleName)
+{
+    if(!pBasePool || eFamily != SFX_STYLE_FAMILY_PARA)
+        return false;
+    pBasePool->SetSearchMask(eFamily);
+    SfxStyleSheetBase* pBase = pBasePool->Find(rStyleName);
+    SAL_WARN_IF(!pBase, "sw.uno", "where is the style?" );
+    if(!pBase)
+        return false;
+    const sal_uInt16 nId(SwStyleNameMapper::GetPoolIdFromUIName(rStyleName, nsSwGetPoolIdFromName::GET_POOLID_TXTCOLL));
+    if(nId != USHRT_MAX)
+        return ::IsConditionalByPoolId(nId);
+    return RES_CONDTXTFMTCOLL == static_cast<SwDocStyleSheet*>(pBase)->GetCollection()->Which();
+}
+
 static const StyleFamilyEntry& lcl_GetStyleEntry(const SfxStyleFamily eFamily)
 {
     auto pEntries = lcl_GetStyleFamilyEntries();
@@ -1137,33 +1149,15 @@ SwXStyle::SwXStyle(SwDoc* pDoc, SfxStyleFamily eFamily, bool bConditional)
             new SwStyleProperties_Impl(aSwMapProvider.GetPropertySet(m_bIsConditional ? PROPERTY_MAP_CONDITIONAL_PARA_STYLE :  m_rEntry.m_nPropMapType)->getPropertyMap()));
 }
 
-SwXStyle::SwXStyle(SfxStyleSheetBasePool& rPool, SfxStyleFamily eFam,
-        SwDoc* pDoc, const OUString& rStyleName) :
-    m_pDoc(pDoc),
-    m_sStyleName(rStyleName),
-    m_rEntry(lcl_GetStyleEntry(eFam)),
-    m_bIsDescriptor(false),
-    m_bIsConditional(false),
-    m_pBasePool(&rPool),
-    m_pPropertiesImpl(nullptr)
-{
-    if(!m_pBasePool)
-        return;
-    if(eFam == SFX_STYLE_FAMILY_PARA)
-    {
-        m_pBasePool->SetSearchMask(m_rEntry.m_eFamily);
-        SfxStyleSheetBase* pBase = m_pBasePool->Find(m_sStyleName);
-        OSL_ENSURE(pBase, "where is the style?" );
-        if(pBase)
-        {
-            const sal_uInt16 nId = SwStyleNameMapper::GetPoolIdFromUIName(m_sStyleName, nsSwGetPoolIdFromName::GET_POOLID_TXTCOLL);
-            if(nId != USHRT_MAX)
-                m_bIsConditional = ::IsConditionalByPoolId( nId );
-            else
-                m_bIsConditional = RES_CONDTXTFMTCOLL == static_cast<SwDocStyleSheet*>(pBase)->GetCollection()->Which();
-        }
-    }
-}
+SwXStyle::SwXStyle(SfxStyleSheetBasePool* pPool, SfxStyleFamily eFamily, SwDoc* pDoc, const OUString& rStyleName)
+    : m_pDoc(pDoc)
+    , m_sStyleName(rStyleName)
+    , m_rEntry(lcl_GetStyleEntry(eFamily))
+    , m_bIsDescriptor(false)
+    , m_bIsConditional(lcl_InitConditional(pPool, eFamily, rStyleName))
+    , m_pBasePool(pPool)
+    , m_pPropertiesImpl(nullptr)
+{ }
 
 SwXStyle::~SwXStyle()
 {
@@ -3160,7 +3154,7 @@ void SwXStyle::Invalidate()
 SwXPageStyle::SwXPageStyle(SfxStyleSheetBasePool& rPool,
         SwDocShell* pDocSh, SfxStyleFamily eFam,
         const OUString& rStyleName):
-    SwXStyle(rPool, eFam, pDocSh->GetDoc(), rStyleName)
+    SwXStyle(&rPool, eFam, pDocSh->GetDoc(), rStyleName)
 {
 
 }
commit 15da424506dfdd1fc9b794346914e170638133c0
Author: Bjoern Michaelsen <bjoern.michaelsen at canonical.com>
Date:   Wed Dec 23 19:06:11 2015 +0100

    use init helpers in ctor
    
    Change-Id: If06321f5b353a09985d071290ece612fb98b34a1

diff --git a/sw/source/core/unocore/unostyle.cxx b/sw/source/core/unocore/unostyle.cxx
index a6e7bd5..7779062 100644
--- a/sw/source/core/unocore/unostyle.cxx
+++ b/sw/source/core/unocore/unostyle.cxx
@@ -263,8 +263,8 @@ class SwXStyle : public cppu::WeakImplHelper
 protected:
     SfxStyleSheetBasePool* m_pBasePool;
     std::unique_ptr<SwStyleProperties_Impl> m_pPropertiesImpl;
-    css::uno::Reference< css::beans::XPropertySet > mxStyleData;
-    css::uno::Reference< css::container::XNameAccess >  mxStyleFamily;
+    css::uno::Reference<css::container::XNameAccess> m_xStyleFamily;
+    css::uno::Reference<css::beans::XPropertySet> m_xStyleData;
 
     void SAL_CALL SetPropertyValues_Impl( const css::uno::Sequence< OUString >& aPropertyNames, const css::uno::Sequence< css::uno::Any >& aValues )
         throw (css::beans::UnknownPropertyException,
@@ -1085,17 +1085,24 @@ uno::Sequence< OUString > SwXStyle::getSupportedServiceNames() throw( uno::Runti
     return aRet;
 }
 
-static uno::Reference<beans::XPropertySet> lcl_GetStandardStyle(uno::Reference<container::XNameAccess>& rxStyleFamily)
+static uno::Reference<beans::XPropertySet> lcl_InitStandardStyle(const SfxStyleFamily eFamily,  uno::Reference<container::XNameAccess>& rxStyleFamily)
 {
-    using return_t = decltype(lcl_GetStandardStyle(rxStyleFamily));
+    using return_t = decltype(lcl_InitStandardStyle(eFamily, rxStyleFamily));
+    if(eFamily != SFX_STYLE_FAMILY_PARA && eFamily != SFX_STYLE_FAMILY_PAGE)
+        return {};
     auto aResult(rxStyleFamily->getByName("Standard"));
     if(!aResult.isExtractableTo(cppu::UnoType<return_t>::get()))
         return {};
     return aResult.get<return_t>();
 }
-static uno::Reference<container::XNameAccess> lcl_GetStyleFamily(SwDoc* pDoc, const StyleFamilyEntry& rEntry)
+
+static uno::Reference<container::XNameAccess> lcl_InitStyleFamily(SwDoc* pDoc, const StyleFamilyEntry& rEntry)
 {
-    using return_t = decltype(lcl_GetStyleFamily(pDoc, rEntry));
+    using return_t = decltype(lcl_InitStyleFamily(pDoc, rEntry));
+    if(rEntry.m_eFamily != SFX_STYLE_FAMILY_CHAR
+            && rEntry.m_eFamily != SFX_STYLE_FAMILY_PARA
+            && rEntry.m_eFamily != SFX_STYLE_FAMILY_PAGE)
+        return {};
     auto xModel(pDoc->GetDocShell()->GetBaseModel());
     uno::Reference<style::XStyleFamiliesSupplier> xFamilySupplier(xModel, uno::UNO_QUERY);
     auto xFamilies = xFamilySupplier->getStyleFamilies();
@@ -1113,28 +1120,19 @@ static const StyleFamilyEntry& lcl_GetStyleEntry(const SfxStyleFamily eFamily)
     assert(pEntry != pEntries->end());
     return *pEntry;
 }
-SwXStyle::SwXStyle(SwDoc *pDoc, SfxStyleFamily eFamily, bool bConditional) :
-    m_pDoc(pDoc),
-    m_rEntry(lcl_GetStyleEntry(eFamily)),
-    m_bIsDescriptor(true),
-    m_bIsConditional(bConditional),
-    m_pBasePool(nullptr)
+
+SwXStyle::SwXStyle(SwDoc* pDoc, SfxStyleFamily eFamily, bool bConditional)
+    : m_pDoc(pDoc)
+    , m_rEntry(lcl_GetStyleEntry(eFamily))
+    , m_bIsDescriptor(true)
+    , m_bIsConditional(bConditional)
+    , m_pBasePool(nullptr)
+    , m_xStyleFamily(lcl_InitStyleFamily(pDoc, m_rEntry))
+    , m_xStyleData(lcl_InitStandardStyle(eFamily, m_xStyleFamily))
 {
     assert(!m_bIsConditional || m_rEntry.m_eFamily == SFX_STYLE_FAMILY_PARA); // only paragraph styles are conditional
     // Register ourselves as a listener to the document (via the page descriptor)
     pDoc->getIDocumentStylePoolAccess().GetPageDescFromPool(RES_POOLPAGE_STANDARD)->Add(this);
-    switch(m_rEntry.m_eFamily)
-    {
-        case SFX_STYLE_FAMILY_CHAR:
-        case SFX_STYLE_FAMILY_PARA:
-        case SFX_STYLE_FAMILY_PAGE:
-            mxStyleFamily = lcl_GetStyleFamily(pDoc, m_rEntry);
-        break;
-        default:
-            ;
-    }
-    if(m_rEntry.m_eFamily == SFX_STYLE_FAMILY_PARA || m_rEntry.m_eFamily == SFX_STYLE_FAMILY_PAGE)
-        mxStyleData = lcl_GetStandardStyle(mxStyleFamily);
     m_pPropertiesImpl = std::unique_ptr<SwStyleProperties_Impl>(
             new SwStyleProperties_Impl(aSwMapProvider.GetPropertySet(m_bIsConditional ? PROPERTY_MAP_CONDITIONAL_PARA_STYLE :  m_rEntry.m_nPropMapType)->getPropertyMap()));
 }
@@ -1183,8 +1181,8 @@ void SwXStyle::Modify( const SfxPoolItem* pOld, const SfxPoolItem *pNew)
     if(!GetRegisteredIn())
     {
         m_pDoc = nullptr;
-        mxStyleData.clear();
-        mxStyleFamily.clear();
+        m_xStyleData.clear();
+        m_xStyleFamily.clear();
     }
 }
 
@@ -1311,8 +1309,8 @@ void SwXStyle::setParentStyle(const OUString& rParentStyle)
         m_sParentStyleName = sParentStyle;
         try
         {
-            uno::Any aAny = mxStyleFamily->getByName ( sParentStyle );
-            aAny >>= mxStyleData;
+            uno::Any aAny = m_xStyleFamily->getByName ( sParentStyle );
+            aAny >>= m_xStyleData;
         }
         catch ( container::NoSuchElementException& )
         {
@@ -1403,8 +1401,8 @@ uno::Reference< beans::XPropertySetInfo >  SwXStyle::getPropertySetInfo()
 void    SwXStyle::ApplyDescriptorProperties()
 {
     m_bIsDescriptor = false;
-    mxStyleData.clear();
-    mxStyleFamily.clear();
+    m_xStyleData.clear();
+    m_xStyleFamily.clear();
 
     const PropertyEntryVector_t& rPropertyVector = m_pPropertiesImpl->GetPropertyVector();
     PropertyEntryVector_t::const_iterator aIt = rPropertyVector.begin();
@@ -2558,7 +2556,7 @@ uno::Sequence< uno::Any > SAL_CALL SwXStyle::GetPropertyValues_Impl(
                     break;
                     case SFX_STYLE_FAMILY_PARA:
                     case SFX_STYLE_FAMILY_PAGE:
-                        SwStyleProperties_Impl::GetProperty ( pNames[nProp], mxStyleData, pRet[ nProp ] );
+                        SwStyleProperties_Impl::GetProperty ( pNames[nProp], m_xStyleData, pRet[ nProp ] );
                     break;
                     case SFX_STYLE_FAMILY_CHAR:
                     case SFX_STYLE_FAMILY_FRAME :
@@ -3155,8 +3153,8 @@ void SwXStyle::Invalidate()
     m_sStyleName.clear();
     m_pBasePool = nullptr;
     m_pDoc = nullptr;
-    mxStyleData.clear();
-    mxStyleFamily.clear();
+    m_xStyleData.clear();
+    m_xStyleFamily.clear();
 }
 
 SwXPageStyle::SwXPageStyle(SfxStyleSheetBasePool& rPool,
@@ -3747,7 +3745,7 @@ uno::Sequence< uno::Any > SAL_CALL SwXPageStyle::GetPropertyValues_Impl(
             m_pPropertiesImpl->GetProperty(rPropName, pAny);
             if (!pAny->hasValue())
             {
-                SwStyleProperties_Impl::GetProperty(rPropName, mxStyleData, pRet[nProp]);
+                SwStyleProperties_Impl::GetProperty(rPropName, m_xStyleData, pRet[nProp]);
             }
             else
             {
commit a7d3ab3e79fceef8dfa3181129d0e1d7d678e807
Author: Bjoern Michaelsen <bjoern.michaelsen at canonical.com>
Date:   Wed Dec 23 18:45:40 2015 +0100

    have PROPERTY_MAP values in entries ...
    
    Change-Id: I478eb10315ee0709c43943945d500b82a8d9c8c9

diff --git a/sw/source/core/unocore/unostyle.cxx b/sw/source/core/unocore/unostyle.cxx
index e2cc7a3..a6e7bd5 100644
--- a/sw/source/core/unocore/unostyle.cxx
+++ b/sw/source/core/unocore/unostyle.cxx
@@ -98,14 +98,16 @@ namespace
         using CreateStyle_t = std::function<uno::Reference<css::style::XStyle>(SfxStyleSheetBasePool*, SwDocShell*, const OUString&)>;
         using TranslateIndex_t = std::function<sal_uInt16(const sal_uInt16)>;
         SfxStyleFamily m_eFamily;
+        sal_uInt16 m_nPropMapType;
         SwGetPoolIdFromName m_aPoolId;
         OUString m_sName;
         sal_uInt32 m_nResId;
         GetCountOrName_t m_fGetCountOrName;
         CreateStyle_t m_fCreateStyle;
         TranslateIndex_t m_fTranslateIndex;
-        StyleFamilyEntry(SfxStyleFamily eFamily, SwGetPoolIdFromName aPoolId, OUString const& sName, sal_uInt32 nResId, GetCountOrName_t fGetCountOrName, CreateStyle_t fCreateStyle, TranslateIndex_t fTranslateIndex)
+        StyleFamilyEntry(SfxStyleFamily eFamily, sal_uInt16 nPropMapType, SwGetPoolIdFromName aPoolId, OUString const& sName, sal_uInt32 nResId, GetCountOrName_t fGetCountOrName, CreateStyle_t fCreateStyle, TranslateIndex_t fTranslateIndex)
                 : m_eFamily(eFamily)
+                , m_nPropMapType(nPropMapType)
                 , m_aPoolId(aPoolId)
                 , m_sName(sName)
                 , m_nResId(nResId)
@@ -936,11 +938,11 @@ static const std::vector<StyleFamilyEntry>* lcl_GetStyleFamilyEntries()
     if(!our_pStyleFamilyEntries)
     {
         our_pStyleFamilyEntries = new std::vector<StyleFamilyEntry>{
-            { SFX_STYLE_FAMILY_CHAR,   nsSwGetPoolIdFromName::GET_POOLID_CHRFMT,   "CharacterStyles", STR_STYLE_FAMILY_CHARACTER, &lcl_GetCountOrName<SFX_STYLE_FAMILY_CHAR>,   &lcl_CreateStyle<SFX_STYLE_FAMILY_CHAR>,   &lcl_TranslateIndex<SFX_STYLE_FAMILY_CHAR>                       },
-            { SFX_STYLE_FAMILY_PARA,   nsSwGetPoolIdFromName::GET_POOLID_TXTCOLL,  "ParagraphStyles", STR_STYLE_FAMILY_PARAGRAPH, &lcl_GetCountOrName<SFX_STYLE_FAMILY_PARA>,   &lcl_CreateStyle<SFX_STYLE_FAMILY_PARA>,   &lcl_TranslateIndex<SFX_STYLE_FAMILY_PARA>                       },
-            { SFX_STYLE_FAMILY_PAGE,   nsSwGetPoolIdFromName::GET_POOLID_PAGEDESC, "PageStyles",      STR_STYLE_FAMILY_PAGE,      &lcl_GetCountOrName<SFX_STYLE_FAMILY_PAGE>,   &lcl_CreateStyle<SFX_STYLE_FAMILY_PAGE>,   &lcl_TranslateIndexRange<RES_POOLPAGE_BEGIN,    nPoolPageRange>  },
-            { SFX_STYLE_FAMILY_FRAME,  nsSwGetPoolIdFromName::GET_POOLID_FRMFMT,   "FrameStyles",     STR_STYLE_FAMILY_FRAME,     &lcl_GetCountOrName<SFX_STYLE_FAMILY_FRAME>,  &lcl_CreateStyle<SFX_STYLE_FAMILY_FRAME>,  &lcl_TranslateIndexRange<RES_POOLFRM_BEGIN,     nPoolFrameRange> },
-            { SFX_STYLE_FAMILY_PSEUDO, nsSwGetPoolIdFromName::GET_POOLID_NUMRULE,  "NumberingStyles", STR_STYLE_FAMILY_NUMBERING, &lcl_GetCountOrName<SFX_STYLE_FAMILY_PSEUDO>, &lcl_CreateStyle<SFX_STYLE_FAMILY_PSEUDO>, &lcl_TranslateIndexRange<RES_POOLNUMRULE_BEGIN, nPoolNumRange>   }
+            { SFX_STYLE_FAMILY_CHAR,   PROPERTY_MAP_CHAR_STYLE,  nsSwGetPoolIdFromName::GET_POOLID_CHRFMT,   "CharacterStyles", STR_STYLE_FAMILY_CHARACTER, &lcl_GetCountOrName<SFX_STYLE_FAMILY_CHAR>,   &lcl_CreateStyle<SFX_STYLE_FAMILY_CHAR>,   &lcl_TranslateIndex<SFX_STYLE_FAMILY_CHAR>                       },
+            { SFX_STYLE_FAMILY_PARA,   PROPERTY_MAP_PARA_STYLE,  nsSwGetPoolIdFromName::GET_POOLID_TXTCOLL,  "ParagraphStyles", STR_STYLE_FAMILY_PARAGRAPH, &lcl_GetCountOrName<SFX_STYLE_FAMILY_PARA>,   &lcl_CreateStyle<SFX_STYLE_FAMILY_PARA>,   &lcl_TranslateIndex<SFX_STYLE_FAMILY_PARA>                       },
+            { SFX_STYLE_FAMILY_PAGE,   PROPERTY_MAP_PAGE_STYLE,  nsSwGetPoolIdFromName::GET_POOLID_PAGEDESC, "PageStyles",      STR_STYLE_FAMILY_PAGE,      &lcl_GetCountOrName<SFX_STYLE_FAMILY_PAGE>,   &lcl_CreateStyle<SFX_STYLE_FAMILY_PAGE>,   &lcl_TranslateIndexRange<RES_POOLPAGE_BEGIN,    nPoolPageRange>  },
+            { SFX_STYLE_FAMILY_FRAME,  PROPERTY_MAP_FRAME_STYLE, nsSwGetPoolIdFromName::GET_POOLID_FRMFMT,   "FrameStyles",     STR_STYLE_FAMILY_FRAME,     &lcl_GetCountOrName<SFX_STYLE_FAMILY_FRAME>,  &lcl_CreateStyle<SFX_STYLE_FAMILY_FRAME>,  &lcl_TranslateIndexRange<RES_POOLFRM_BEGIN,     nPoolFrameRange> },
+            { SFX_STYLE_FAMILY_PSEUDO, PROPERTY_MAP_NUM_STYLE, nsSwGetPoolIdFromName::GET_POOLID_NUMRULE,  "NumberingStyles", STR_STYLE_FAMILY_NUMBERING, &lcl_GetCountOrName<SFX_STYLE_FAMILY_PSEUDO>, &lcl_CreateStyle<SFX_STYLE_FAMILY_PSEUDO>, &lcl_TranslateIndexRange<RES_POOLNUMRULE_BEGIN, nPoolNumRange>   }
        };
     }
     return our_pStyleFamilyEntries;
@@ -1111,53 +1113,30 @@ static const StyleFamilyEntry& lcl_GetStyleEntry(const SfxStyleFamily eFamily)
     assert(pEntry != pEntries->end());
     return *pEntry;
 }
-SwXStyle::SwXStyle( SwDoc *pDoc, SfxStyleFamily eFamily, bool bConditional) :
+SwXStyle::SwXStyle(SwDoc *pDoc, SfxStyleFamily eFamily, bool bConditional) :
     m_pDoc(pDoc),
     m_rEntry(lcl_GetStyleEntry(eFamily)),
     m_bIsDescriptor(true),
     m_bIsConditional(bConditional),
     m_pBasePool(nullptr)
 {
+    assert(!m_bIsConditional || m_rEntry.m_eFamily == SFX_STYLE_FAMILY_PARA); // only paragraph styles are conditional
     // Register ourselves as a listener to the document (via the page descriptor)
     pDoc->getIDocumentStylePoolAccess().GetPageDescFromPool(RES_POOLPAGE_STANDARD)->Add(this);
-    sal_uInt16 nMapId = PROPERTY_MAP_NUM_STYLE;
     switch(m_rEntry.m_eFamily)
     {
         case SFX_STYLE_FAMILY_CHAR:
-        {
-            nMapId = PROPERTY_MAP_CHAR_STYLE;
-            mxStyleFamily = lcl_GetStyleFamily(pDoc, m_rEntry);
-        }
-        break;
         case SFX_STYLE_FAMILY_PARA:
-        {
-            nMapId = m_bIsConditional ? PROPERTY_MAP_CONDITIONAL_PARA_STYLE : PROPERTY_MAP_PARA_STYLE;
-            mxStyleFamily = lcl_GetStyleFamily(pDoc, m_rEntry);
-            mxStyleData = lcl_GetStandardStyle(mxStyleFamily);
-        }
-        break;
         case SFX_STYLE_FAMILY_PAGE:
-        {
-            nMapId = PROPERTY_MAP_PAGE_STYLE;
             mxStyleFamily = lcl_GetStyleFamily(pDoc, m_rEntry);
-            mxStyleData = lcl_GetStandardStyle(mxStyleFamily);
-        }
         break;
-        case SFX_STYLE_FAMILY_FRAME :
-        {
-            nMapId = PROPERTY_MAP_FRAME_STYLE;
-        }
-        break;
-        case SFX_STYLE_FAMILY_PSEUDO:
-        {
-            nMapId = PROPERTY_MAP_NUM_STYLE;
-        }
-        break;
-
         default:
             ;
     }
-    m_pPropertiesImpl = std::unique_ptr<SwStyleProperties_Impl>(new SwStyleProperties_Impl(aSwMapProvider.GetPropertySet(nMapId)->getPropertyMap()));
+    if(m_rEntry.m_eFamily == SFX_STYLE_FAMILY_PARA || m_rEntry.m_eFamily == SFX_STYLE_FAMILY_PAGE)
+        mxStyleData = lcl_GetStandardStyle(mxStyleFamily);
+    m_pPropertiesImpl = std::unique_ptr<SwStyleProperties_Impl>(
+            new SwStyleProperties_Impl(aSwMapProvider.GetPropertySet(m_bIsConditional ? PROPERTY_MAP_CONDITIONAL_PARA_STYLE :  m_rEntry.m_nPropMapType)->getPropertyMap()));
 }
 
 SwXStyle::SwXStyle(SfxStyleSheetBasePool& rPool, SfxStyleFamily eFam,
commit 31cb29eb50afdca4c02de33ff9d88275c18f8f57
Author: Bjoern Michaelsen <bjoern.michaelsen at canonical.com>
Date:   Wed Dec 23 18:14:20 2015 +0100

    lets have a ref to a StyleEntry from a SwXStyle too
    
    Change-Id: I368b2a6a6b5c54a962fed637c7e8cd472414be5c

diff --git a/sw/source/core/unocore/unostyle.cxx b/sw/source/core/unocore/unostyle.cxx
index cc9a0e8..e2cc7a3 100644
--- a/sw/source/core/unocore/unostyle.cxx
+++ b/sw/source/core/unocore/unostyle.cxx
@@ -253,7 +253,7 @@ class SwXStyle : public cppu::WeakImplHelper
 {
     SwDoc* m_pDoc;
     OUString m_sStyleName;
-    SfxStyleFamily m_eFamily; // for Notify
+    const StyleFamilyEntry& m_rEntry;
     bool m_bIsDescriptor;
     bool m_bIsConditional;
     OUString m_sParentStyleName;
@@ -342,7 +342,7 @@ public:
     //SfxListener
     virtual void        Notify( SfxBroadcaster& rBC, const SfxHint& rHint ) override;
     OUString            GetStyleName() const { return m_sStyleName;}
-    SfxStyleFamily      GetFamily() const {return m_eFamily;}
+    SfxStyleFamily      GetFamily() const {return m_rEntry.m_eFamily;}
 
     bool                IsDescriptor() const {return m_bIsDescriptor;}
     bool                IsConditional() const { return m_bIsConditional;}
@@ -359,7 +359,7 @@ public:
     void SetStyleName(const OUString& rSet){ m_sStyleName = rSet;}
     virtual const SwTextFormatColl* GetFormatColl() const
     {
-        assert(m_eFamily == SFX_STYLE_FAMILY_PARA);
+        assert(m_rEntry.m_eFamily == SFX_STYLE_FAMILY_PARA);
         return m_pDoc->FindTextFormatCollByName(GetStyleName());
     }
 };
@@ -1043,20 +1043,20 @@ sal_Int64 SAL_CALL SwXStyle::getSomething(const uno::Sequence<sal_Int8>& rId)
 uno::Sequence< OUString > SwXStyle::getSupportedServiceNames() throw( uno::RuntimeException, std::exception )
 {
     long nCount = 1;
-    if(SFX_STYLE_FAMILY_PARA == m_eFamily)
+    if(SFX_STYLE_FAMILY_PARA == m_rEntry.m_eFamily)
     {
         nCount = 5;
         if(m_bIsConditional)
             nCount++;
     }
-    else if(SFX_STYLE_FAMILY_CHAR == m_eFamily)
+    else if(SFX_STYLE_FAMILY_CHAR == m_rEntry.m_eFamily)
         nCount = 5;
-    else if(SFX_STYLE_FAMILY_PAGE == m_eFamily)
+    else if(SFX_STYLE_FAMILY_PAGE == m_rEntry.m_eFamily)
         nCount = 3;
     uno::Sequence< OUString > aRet(nCount);
     OUString* pArray = aRet.getArray();
     pArray[0] = "com.sun.star.style.Style";
-    switch(m_eFamily)
+    switch(m_rEntry.m_eFamily)
     {
         case SFX_STYLE_FAMILY_CHAR:
             pArray[1] = "com.sun.star.style.CharacterStyle";
@@ -1091,24 +1091,29 @@ static uno::Reference<beans::XPropertySet> lcl_GetStandardStyle(uno::Reference<c
         return {};
     return aResult.get<return_t>();
 }
-static uno::Reference<container::XNameAccess> lcl_GetStyleFamily(SwDoc* pDoc, const SfxStyleFamily eFamily)
+static uno::Reference<container::XNameAccess> lcl_GetStyleFamily(SwDoc* pDoc, const StyleFamilyEntry& rEntry)
 {
-    using return_t = decltype(lcl_GetStyleFamily(pDoc, eFamily));
-    auto pEntries = lcl_GetStyleFamilyEntries();
-    const auto pEntry = std::find_if(pEntries->begin(), pEntries->end(),
-            [eFamily] (const StyleFamilyEntry& e) { return e.m_eFamily == eFamily; });
+    using return_t = decltype(lcl_GetStyleFamily(pDoc, rEntry));
     auto xModel(pDoc->GetDocShell()->GetBaseModel());
     uno::Reference<style::XStyleFamiliesSupplier> xFamilySupplier(xModel, uno::UNO_QUERY);
     auto xFamilies = xFamilySupplier->getStyleFamilies();
-    auto aResult(xFamilies->getByName(pEntry->m_sName));
+    auto aResult(xFamilies->getByName(rEntry.m_sName));
     if(!aResult.isExtractableTo(cppu::UnoType<return_t>::get()))
         return {};
     return aResult.get<return_t>();
 }
 
+static const StyleFamilyEntry& lcl_GetStyleEntry(const SfxStyleFamily eFamily)
+{
+    auto pEntries = lcl_GetStyleFamilyEntries();
+    const auto pEntry = std::find_if(pEntries->begin(), pEntries->end(),
+            [eFamily] (const StyleFamilyEntry& e) { return e.m_eFamily == eFamily; });
+    assert(pEntry != pEntries->end());
+    return *pEntry;
+}
 SwXStyle::SwXStyle( SwDoc *pDoc, SfxStyleFamily eFamily, bool bConditional) :
     m_pDoc(pDoc),
-    m_eFamily(eFamily),
+    m_rEntry(lcl_GetStyleEntry(eFamily)),
     m_bIsDescriptor(true),
     m_bIsConditional(bConditional),
     m_pBasePool(nullptr)
@@ -1116,25 +1121,25 @@ SwXStyle::SwXStyle( SwDoc *pDoc, SfxStyleFamily eFamily, bool bConditional) :
     // Register ourselves as a listener to the document (via the page descriptor)
     pDoc->getIDocumentStylePoolAccess().GetPageDescFromPool(RES_POOLPAGE_STANDARD)->Add(this);
     sal_uInt16 nMapId = PROPERTY_MAP_NUM_STYLE;
-    switch( m_eFamily )
+    switch(m_rEntry.m_eFamily)
     {
         case SFX_STYLE_FAMILY_CHAR:
         {
             nMapId = PROPERTY_MAP_CHAR_STYLE;
-            mxStyleFamily = lcl_GetStyleFamily(pDoc, eFamily);
+            mxStyleFamily = lcl_GetStyleFamily(pDoc, m_rEntry);
         }
         break;
         case SFX_STYLE_FAMILY_PARA:
         {
             nMapId = m_bIsConditional ? PROPERTY_MAP_CONDITIONAL_PARA_STYLE : PROPERTY_MAP_PARA_STYLE;
-            mxStyleFamily = lcl_GetStyleFamily(pDoc, eFamily);
+            mxStyleFamily = lcl_GetStyleFamily(pDoc, m_rEntry);
             mxStyleData = lcl_GetStandardStyle(mxStyleFamily);
         }
         break;
         case SFX_STYLE_FAMILY_PAGE:
         {
             nMapId = PROPERTY_MAP_PAGE_STYLE;
-            mxStyleFamily = lcl_GetStyleFamily(pDoc, eFamily);
+            mxStyleFamily = lcl_GetStyleFamily(pDoc, m_rEntry);
             mxStyleData = lcl_GetStandardStyle(mxStyleFamily);
         }
         break;
@@ -1159,7 +1164,7 @@ SwXStyle::SwXStyle(SfxStyleSheetBasePool& rPool, SfxStyleFamily eFam,
         SwDoc* pDoc, const OUString& rStyleName) :
     m_pDoc(pDoc),
     m_sStyleName(rStyleName),
-    m_eFamily(eFam),
+    m_rEntry(lcl_GetStyleEntry(eFam)),
     m_bIsDescriptor(false),
     m_bIsConditional(false),
     m_pBasePool(&rPool),
@@ -1169,7 +1174,7 @@ SwXStyle::SwXStyle(SfxStyleSheetBasePool& rPool, SfxStyleFamily eFam,
         return;
     if(eFam == SFX_STYLE_FAMILY_PARA)
     {
-        m_pBasePool->SetSearchMask(m_eFamily);
+        m_pBasePool->SetSearchMask(m_rEntry.m_eFamily);
         SfxStyleSheetBase* pBase = m_pBasePool->Find(m_sStyleName);
         OSL_ENSURE(pBase, "where is the style?" );
         if(pBase)
@@ -1209,13 +1214,13 @@ OUString SwXStyle::getName() throw( uno::RuntimeException, std::exception )
     SolarMutexGuard aGuard;
     if(m_pBasePool)
     {
-        m_pBasePool->SetSearchMask(m_eFamily);
+        m_pBasePool->SetSearchMask(m_rEntry.m_eFamily);
         SfxStyleSheetBase* pBase = m_pBasePool->Find(m_sStyleName);
         OSL_ENSURE(pBase, "where is the style?" );
         if(!pBase)
             throw uno::RuntimeException();
         OUString aString;
-        SwStyleNameMapper::FillProgName(pBase->GetName(), aString, lcl_GetSwEnumFromSfxEnum ( m_eFamily ), true);
+        SwStyleNameMapper::FillProgName(pBase->GetName(), aString, lcl_GetSwEnumFromSfxEnum ( m_rEntry.m_eFamily ), true);
         return aString;
     }
     return m_sStyleName;
@@ -1226,7 +1231,7 @@ void SwXStyle::setName(const OUString& rName) throw( uno::RuntimeException, std:
     SolarMutexGuard aGuard;
     if(m_pBasePool)
     {
-        m_pBasePool->SetSearchMask(m_eFamily);
+        m_pBasePool->SetSearchMask(m_rEntry.m_eFamily);
         SfxStyleSheetBase* pBase = m_pBasePool->Find(m_sStyleName);
         OSL_ENSURE(pBase, "where is the style?" );
         bool bExcept = true;
@@ -1250,7 +1255,7 @@ sal_Bool SwXStyle::isUserDefined() throw( uno::RuntimeException, std::exception
     bool bRet = false;
     if(m_pBasePool)
     {
-        m_pBasePool->SetSearchMask(m_eFamily);
+        m_pBasePool->SetSearchMask(m_rEntry.m_eFamily);
         SfxStyleSheetBase* pBase = m_pBasePool->Find(m_sStyleName);
         //if it is not found it must be non user defined
         if(pBase)
@@ -1267,7 +1272,7 @@ sal_Bool SwXStyle::isInUse() throw( uno::RuntimeException, std::exception )
     bool bRet = false;
     if(m_pBasePool)
     {
-        m_pBasePool->SetSearchMask(m_eFamily, SFXSTYLEBIT_USED);
+        m_pBasePool->SetSearchMask(m_rEntry.m_eFamily, SFXSTYLEBIT_USED);
         SfxStyleSheetBase* pBase = m_pBasePool->Find(m_sStyleName);
         if(pBase)
             bRet = pBase->IsUsed();
@@ -1283,7 +1288,7 @@ OUString SwXStyle::getParentStyle() throw( uno::RuntimeException, std::exception
     OUString aString;
     if(m_pBasePool)
     {
-        m_pBasePool->SetSearchMask(m_eFamily);
+        m_pBasePool->SetSearchMask(m_rEntry.m_eFamily);
         SfxStyleSheetBase* pBase = m_pBasePool->Find(m_sStyleName);
         if(pBase)
             aString = pBase->GetParent();
@@ -1292,7 +1297,7 @@ OUString SwXStyle::getParentStyle() throw( uno::RuntimeException, std::exception
         aString = m_sParentStyleName;
     else
         throw uno::RuntimeException();
-    SwStyleNameMapper::FillProgName(aString, aString, lcl_GetSwEnumFromSfxEnum ( m_eFamily ), true );
+    SwStyleNameMapper::FillProgName(aString, aString, lcl_GetSwEnumFromSfxEnum ( m_rEntry.m_eFamily ), true );
     return aString;
 }
 
@@ -1301,10 +1306,10 @@ void SwXStyle::setParentStyle(const OUString& rParentStyle)
 {
     SolarMutexGuard aGuard;
     OUString sParentStyle;
-    SwStyleNameMapper::FillUIName(rParentStyle, sParentStyle, lcl_GetSwEnumFromSfxEnum ( m_eFamily ), true );
+    SwStyleNameMapper::FillUIName(rParentStyle, sParentStyle, lcl_GetSwEnumFromSfxEnum ( m_rEntry.m_eFamily ), true );
     if(m_pBasePool)
     {
-        m_pBasePool->SetSearchMask(m_eFamily);
+        m_pBasePool->SetSearchMask(m_rEntry.m_eFamily);
         bool bExcept = false;
         SfxStyleSheetBase* pBase = m_pBasePool->Find(m_sStyleName);
         if(pBase)
@@ -1413,7 +1418,7 @@ static uno::Reference< beans::XPropertySetInfo > lcl_getPropertySetInfo( SfxStyl
 uno::Reference< beans::XPropertySetInfo >  SwXStyle::getPropertySetInfo()
     throw( uno::RuntimeException, std::exception )
 {
-    return lcl_getPropertySetInfo( m_eFamily, m_bIsConditional );
+    return lcl_getPropertySetInfo( m_rEntry.m_eFamily, m_bIsConditional );
 }
 
 void    SwXStyle::ApplyDescriptorProperties()
@@ -2111,7 +2116,7 @@ void SAL_CALL SwXStyle::SetPropertyValues_Impl(
 
     sal_Int8 nPropSetId = PROPERTY_MAP_CHAR_STYLE;
 
-    switch(m_eFamily)
+    switch(m_rEntry.m_eFamily)
     {
         case SFX_STYLE_FAMILY_PARA  : nPropSetId = m_bIsConditional ? PROPERTY_MAP_CONDITIONAL_PARA_STYLE : PROPERTY_MAP_PARA_STYLE; break;
         case SFX_STYLE_FAMILY_FRAME : nPropSetId = PROPERTY_MAP_FRAME_STYLE ;break;
@@ -2134,9 +2139,9 @@ void SAL_CALL SwXStyle::SetPropertyValues_Impl(
     if(m_pBasePool)
     {
         const sal_uInt16 nSaveMask = m_pBasePool->GetSearchMask();
-        m_pBasePool->SetSearchMask(m_eFamily);
+        m_pBasePool->SetSearchMask(m_rEntry.m_eFamily);
         SfxStyleSheetBase* pBase = m_pBasePool->Find(m_sStyleName);
-        m_pBasePool->SetSearchMask(m_eFamily, nSaveMask );
+        m_pBasePool->SetSearchMask(m_rEntry.m_eFamily, nSaveMask );
         OSL_ENSURE(pBase, "where is the style?" );
         if(pBase)
             aBaseImpl.setNewBase(new SwDocStyleSheet(*static_cast<SwDocStyleSheet*>(pBase)));
@@ -2155,7 +2160,7 @@ void SAL_CALL SwXStyle::SetPropertyValues_Impl(
             throw beans::PropertyVetoException ("Property is read-only: " + pNames[nProp], static_cast < cppu::OWeakObject * > ( this ) );
         if(aBaseImpl.getNewBase().is())
         {
-            lcl_SetStyleProperty(*pEntry, *pPropSet, pValues[nProp], aBaseImpl, m_pBasePool, m_pDoc, m_eFamily);
+            lcl_SetStyleProperty(*pEntry, *pPropSet, pValues[nProp], aBaseImpl, m_pBasePool, m_pDoc, m_rEntry.m_eFamily);
         }
         else if(m_bIsDescriptor)
         {
@@ -2524,7 +2529,7 @@ uno::Sequence< uno::Any > SAL_CALL SwXStyle::GetPropertyValues_Impl(
 
     sal_Int8 nPropSetId = PROPERTY_MAP_CHAR_STYLE;
 
-    switch(m_eFamily)
+    switch(m_rEntry.m_eFamily)
     {
         case SFX_STYLE_FAMILY_PARA  : nPropSetId = m_bIsConditional ? PROPERTY_MAP_CONDITIONAL_PARA_STYLE : PROPERTY_MAP_PARA_STYLE; break;
         case SFX_STYLE_FAMILY_FRAME : nPropSetId = PROPERTY_MAP_FRAME_STYLE ;break;
@@ -2553,12 +2558,12 @@ uno::Sequence< uno::Any > SAL_CALL SwXStyle::GetPropertyValues_Impl(
             if(!pBase)
             {
                 const sal_uInt16 nSaveMask = m_pBasePool->GetSearchMask();
-                m_pBasePool->SetSearchMask(m_eFamily);
+                m_pBasePool->SetSearchMask(m_rEntry.m_eFamily);
                 pBase = m_pBasePool->Find(m_sStyleName);
-                m_pBasePool->SetSearchMask(m_eFamily, nSaveMask );
+                m_pBasePool->SetSearchMask(m_rEntry.m_eFamily, nSaveMask );
             }
 
-            pRet[nProp] = lcl_GetStyleProperty(*pEntry, *pPropSet, aBase, pBase, m_eFamily, GetDoc() );
+            pRet[nProp] = lcl_GetStyleProperty(*pEntry, *pPropSet, aBase, pBase, m_rEntry.m_eFamily, GetDoc() );
         }
         else if(m_bIsDescriptor)
         {
@@ -2567,7 +2572,7 @@ uno::Sequence< uno::Any > SAL_CALL SwXStyle::GetPropertyValues_Impl(
             if(!pAny->hasValue())
             {
                 bool bExcept = false;
-                switch( m_eFamily )
+                switch( m_rEntry.m_eFamily )
                 {
                     case SFX_STYLE_FAMILY_PSEUDO:
                         bExcept = true;
@@ -2582,7 +2587,7 @@ uno::Sequence< uno::Any > SAL_CALL SwXStyle::GetPropertyValues_Impl(
                         if (pEntry->nWID >= POOLATTR_BEGIN && pEntry->nWID < RES_UNKNOWNATR_END )
                         {
                             SwFormat * pFormat;
-                            if ( m_eFamily == SFX_STYLE_FAMILY_CHAR )
+                            if ( m_rEntry.m_eFamily == SFX_STYLE_FAMILY_CHAR )
                                 pFormat = m_pDoc->GetDfltCharFormat();
                             else
                                 pFormat = m_pDoc->GetDfltFrameFormat();
@@ -2679,7 +2684,7 @@ uno::Sequence< beans::PropertyState > SwXStyle::getPropertyStates(
 
     if(m_pBasePool)
     {
-        m_pBasePool->SetSearchMask(m_eFamily );
+        m_pBasePool->SetSearchMask(m_rEntry.m_eFamily );
         SfxStyleSheetBase* pBase = m_pBasePool->Find(m_sStyleName);
         OSL_ENSURE(pBase, "where is the style?" );
 
@@ -2689,7 +2694,7 @@ uno::Sequence< beans::PropertyState > SwXStyle::getPropertyStates(
             rtl::Reference< SwDocStyleSheet > xStyle( new SwDocStyleSheet( *static_cast<SwDocStyleSheet*>(pBase) ) );
             sal_Int8 nPropSetId = PROPERTY_MAP_CHAR_STYLE;
 
-            switch(m_eFamily)
+            switch(m_rEntry.m_eFamily)
             {
                 case SFX_STYLE_FAMILY_PARA  : nPropSetId = m_bIsConditional ? PROPERTY_MAP_CONDITIONAL_PARA_STYLE : PROPERTY_MAP_PARA_STYLE; break;
                 case SFX_STYLE_FAMILY_FRAME : nPropSetId = PROPERTY_MAP_FRAME_STYLE ;break;
@@ -2727,8 +2732,8 @@ uno::Sequence< beans::PropertyState > SwXStyle::getPropertyStates(
                 if(!bDone)
                 {
                     // check for Header/Footer entry
-                    const bool bHeader(SFX_STYLE_FAMILY_PAGE == m_eFamily && sPropName.startsWith("Header"));
-                    const bool bFooter(SFX_STYLE_FAMILY_PAGE == m_eFamily && sPropName.startsWith("Footer"));
+                    const bool bHeader(SFX_STYLE_FAMILY_PAGE == m_rEntry.m_eFamily && sPropName.startsWith("Header"));
+                    const bool bFooter(SFX_STYLE_FAMILY_PAGE == m_rEntry.m_eFamily && sPropName.startsWith("Footer"));
 
                     if(bHeader || bFooter || sPropName == UNO_NAME_FIRST_IS_SHARED)
                     {
@@ -2785,7 +2790,7 @@ uno::Sequence< beans::PropertyState > SwXStyle::getPropertyStates(
                 {
                     pStates[i] = pPropSet->getPropertyState(*pEntry, *pSourceSet);
 
-                    if(SFX_STYLE_FAMILY_PAGE == m_eFamily && SID_ATTR_PAGE_SIZE == pEntry->nWID && beans::PropertyState_DIRECT_VALUE == pStates[i])
+                    if(SFX_STYLE_FAMILY_PAGE == m_rEntry.m_eFamily && SID_ATTR_PAGE_SIZE == pEntry->nWID && beans::PropertyState_DIRECT_VALUE == pStates[i])
                     {
                         const SvxSizeItem& rSize = static_cast <const SvxSizeItem&>( rSet.Get(SID_ATTR_PAGE_SIZE));
                         sal_uInt8 nMemberId = pEntry->nMemberId & 0x7f;
@@ -2830,14 +2835,14 @@ void SAL_CALL SwXStyle::setPropertiesToDefault( const uno::Sequence< OUString >&
 
     if(m_pBasePool)
     {
-        m_pBasePool->SetSearchMask(m_eFamily);
+        m_pBasePool->SetSearchMask(m_rEntry.m_eFamily);
         SfxStyleSheetBase* pBase = m_pBasePool->Find(m_sStyleName);
         OSL_ENSURE(pBase, "Where is the style?");
 
         if(pBase)
         {
             rtl::Reference< SwDocStyleSheet > xStyle( new SwDocStyleSheet( *static_cast<SwDocStyleSheet*>(pBase) ) );
-            switch(m_eFamily)
+            switch(m_rEntry.m_eFamily)
             {
                 case SFX_STYLE_FAMILY_CHAR:
                     pTargetFormat = xStyle->GetCharFormat();
@@ -2867,7 +2872,7 @@ void SAL_CALL SwXStyle::setPropertiesToDefault( const uno::Sequence< OUString >&
 
     sal_Int8 nPropSetId = PROPERTY_MAP_CHAR_STYLE;
 
-    switch(m_eFamily)
+    switch(m_rEntry.m_eFamily)
     {
         case SFX_STYLE_FAMILY_PARA  : nPropSetId = m_bIsConditional ? PROPERTY_MAP_CONDITIONAL_PARA_STYLE : PROPERTY_MAP_PARA_STYLE; break;
         case SFX_STYLE_FAMILY_FRAME : nPropSetId = PROPERTY_MAP_FRAME_STYLE; break;
@@ -2940,7 +2945,7 @@ void SAL_CALL SwXStyle::setAllPropertiesToDefault(  )
 
     if(m_pBasePool)
     {
-        m_pBasePool->SetSearchMask(m_eFamily);
+        m_pBasePool->SetSearchMask(m_rEntry.m_eFamily);
         SfxStyleSheetBase* pBase = m_pBasePool->Find(m_sStyleName);
         OSL_ENSURE(pBase, "Where is the style?");
 
@@ -2949,7 +2954,7 @@ void SAL_CALL SwXStyle::setAllPropertiesToDefault(  )
             rtl::Reference< SwDocStyleSheet > xStyle( new SwDocStyleSheet( *static_cast<SwDocStyleSheet*>(pBase) ) );
             SwFormat *pTargetFormat = nullptr;
             size_t nPgDscPos = SIZE_MAX;
-            switch(m_eFamily)
+            switch(m_rEntry.m_eFamily)
             {
                 case SFX_STYLE_FAMILY_CHAR:
                     pTargetFormat = xStyle->GetCharFormat();
@@ -3071,7 +3076,7 @@ uno::Sequence< uno::Any > SAL_CALL SwXStyle::getPropertyDefaults( const uno::Seq
     {
         if(m_pBasePool)
         {
-            m_pBasePool->SetSearchMask(m_eFamily);
+            m_pBasePool->SetSearchMask(m_rEntry.m_eFamily);
             SfxStyleSheetBase* pBase = m_pBasePool->Find(m_sStyleName);
             OSL_ENSURE(pBase, "Doesn't seem to be a style!");
 
@@ -3079,7 +3084,7 @@ uno::Sequence< uno::Any > SAL_CALL SwXStyle::getPropertyDefaults( const uno::Seq
             {
                 rtl::Reference< SwDocStyleSheet > xStyle(new SwDocStyleSheet(*static_cast<SwDocStyleSheet*>(pBase)));
                 sal_Int8 nPropSetId = PROPERTY_MAP_CHAR_STYLE;
-                switch(m_eFamily)
+                switch(m_rEntry.m_eFamily)
                 {
                     case SFX_STYLE_FAMILY_PARA  : nPropSetId = m_bIsConditional ? PROPERTY_MAP_CONDITIONAL_PARA_STYLE : PROPERTY_MAP_PARA_STYLE; break;
                     case SFX_STYLE_FAMILY_FRAME : nPropSetId = PROPERTY_MAP_FRAME_STYLE; break;
@@ -3154,7 +3159,7 @@ void SwXStyle::Notify( SfxBroadcaster& rBC, const SfxHint& rHint )
         }
         else if( pHint->GetId() &(SfxStyleSheetHintId::CHANGED|SfxStyleSheetHintId::ERASED) )
         {
-            static_cast<SfxStyleSheetBasePool&>(rBC).SetSearchMask(m_eFamily);
+            static_cast<SfxStyleSheetBasePool&>(rBC).SetSearchMask(m_rEntry.m_eFamily);
             SfxStyleSheetBase* pOwnBase = static_cast<SfxStyleSheetBasePool&>(rBC).Find(m_sStyleName);
             if(!pOwnBase)
             {
commit 29c01a1695b473f35cbc2b333f68f60691db1581
Author: Bjoern Michaelsen <bjoern.michaelsen at canonical.com>
Date:   Wed Dec 23 17:50:59 2015 +0100

    refactor SwXStyle ctor
    
    Change-Id: I306ca1b20af83519f81ca0867eb73cbbaa1874d2

diff --git a/sw/source/core/unocore/unostyle.cxx b/sw/source/core/unocore/unostyle.cxx
index 0009d8f..cc9a0e8 100644
--- a/sw/source/core/unocore/unostyle.cxx
+++ b/sw/source/core/unocore/unostyle.cxx
@@ -254,7 +254,6 @@ class SwXStyle : public cppu::WeakImplHelper
     SwDoc* m_pDoc;
     OUString m_sStyleName;
     SfxStyleFamily m_eFamily; // for Notify
-
     bool m_bIsDescriptor;
     bool m_bIsConditional;
     OUString m_sParentStyleName;
@@ -1084,53 +1083,59 @@ uno::Sequence< OUString > SwXStyle::getSupportedServiceNames() throw( uno::Runti
     return aRet;
 }
 
-SwXStyle::SwXStyle( SwDoc *pDoc, SfxStyleFamily eFam, bool bConditional) :
-    m_pDoc( pDoc ),
-    m_eFamily(eFam),
+static uno::Reference<beans::XPropertySet> lcl_GetStandardStyle(uno::Reference<container::XNameAccess>& rxStyleFamily)
+{
+    using return_t = decltype(lcl_GetStandardStyle(rxStyleFamily));
+    auto aResult(rxStyleFamily->getByName("Standard"));
+    if(!aResult.isExtractableTo(cppu::UnoType<return_t>::get()))
+        return {};
+    return aResult.get<return_t>();
+}
+static uno::Reference<container::XNameAccess> lcl_GetStyleFamily(SwDoc* pDoc, const SfxStyleFamily eFamily)
+{
+    using return_t = decltype(lcl_GetStyleFamily(pDoc, eFamily));
+    auto pEntries = lcl_GetStyleFamilyEntries();
+    const auto pEntry = std::find_if(pEntries->begin(), pEntries->end(),
+            [eFamily] (const StyleFamilyEntry& e) { return e.m_eFamily == eFamily; });
+    auto xModel(pDoc->GetDocShell()->GetBaseModel());
+    uno::Reference<style::XStyleFamiliesSupplier> xFamilySupplier(xModel, uno::UNO_QUERY);
+    auto xFamilies = xFamilySupplier->getStyleFamilies();
+    auto aResult(xFamilies->getByName(pEntry->m_sName));
+    if(!aResult.isExtractableTo(cppu::UnoType<return_t>::get()))
+        return {};
+    return aResult.get<return_t>();
+}
+
+SwXStyle::SwXStyle( SwDoc *pDoc, SfxStyleFamily eFamily, bool bConditional) :
+    m_pDoc(pDoc),
+    m_eFamily(eFamily),
     m_bIsDescriptor(true),
     m_bIsConditional(bConditional),
     m_pBasePool(nullptr)
 {
     // Register ourselves as a listener to the document (via the page descriptor)
     pDoc->getIDocumentStylePoolAccess().GetPageDescFromPool(RES_POOLPAGE_STANDARD)->Add(this);
-    // get the property set for the default style data
-    // First get the model
-    uno::Reference < frame::XModel > xModel = pDoc->GetDocShell()->GetBaseModel();
-    // Ask the model for it's family supplier interface
-    uno::Reference < style::XStyleFamiliesSupplier > xFamilySupplier ( xModel, uno::UNO_QUERY );
-    // Get the style families
-    uno::Reference < container::XNameAccess > xFamilies = xFamilySupplier->getStyleFamilies();
-
-    uno::Any aAny;
     sal_uInt16 nMapId = PROPERTY_MAP_NUM_STYLE;
     switch( m_eFamily )
     {
         case SFX_STYLE_FAMILY_CHAR:
         {
             nMapId = PROPERTY_MAP_CHAR_STYLE;
-            aAny = xFamilies->getByName ("CharacterStyles");
-            // Get the Frame family (and keep it for later)
-            aAny >>= mxStyleFamily;
+            mxStyleFamily = lcl_GetStyleFamily(pDoc, eFamily);
         }
         break;
         case SFX_STYLE_FAMILY_PARA:
         {
             nMapId = m_bIsConditional ? PROPERTY_MAP_CONDITIONAL_PARA_STYLE : PROPERTY_MAP_PARA_STYLE;
-            aAny = xFamilies->getByName ("ParagraphStyles");
-            // Get the Frame family (and keep it for later)
-            aAny >>= mxStyleFamily;
-            aAny = mxStyleFamily->getByName ("Standard");
-            aAny >>= mxStyleData;
+            mxStyleFamily = lcl_GetStyleFamily(pDoc, eFamily);
+            mxStyleData = lcl_GetStandardStyle(mxStyleFamily);
         }
         break;
         case SFX_STYLE_FAMILY_PAGE:
         {
             nMapId = PROPERTY_MAP_PAGE_STYLE;
-            aAny = xFamilies->getByName ("PageStyles");
-            // Get the Frame family (and keep it for later)
-            aAny >>= mxStyleFamily;
-            aAny = mxStyleFamily->getByName ("Standard");
-            aAny >>= mxStyleData;
+            mxStyleFamily = lcl_GetStyleFamily(pDoc, eFamily);
+            mxStyleData = lcl_GetStandardStyle(mxStyleFamily);
         }
         break;
         case SFX_STYLE_FAMILY_FRAME :
commit 09d90f8c4e2bf188ebc06862302084869fecc557
Author: Bjoern Michaelsen <bjoern.michaelsen at canonical.com>
Date:   Wed Dec 23 00:53:35 2015 +0100

    remove GetPropImpl wrapper
    
    Change-Id: I53c3f97d35621af9b6c5c0336b8c998d3fe0b270

diff --git a/sw/source/core/unocore/unostyle.cxx b/sw/source/core/unocore/unostyle.cxx
index 0e38301..0009d8f 100644
--- a/sw/source/core/unocore/unostyle.cxx
+++ b/sw/source/core/unocore/unostyle.cxx
@@ -258,11 +258,10 @@ class SwXStyle : public cppu::WeakImplHelper
     bool m_bIsDescriptor;
     bool m_bIsConditional;
     OUString m_sParentStyleName;
-    std::unique_ptr<SwStyleProperties_Impl> m_pPropertiesImpl;
 
 protected:
     SfxStyleSheetBasePool* m_pBasePool;
-    SwStyleProperties_Impl& GetPropImpl(){return *m_pPropertiesImpl;}
+    std::unique_ptr<SwStyleProperties_Impl> m_pPropertiesImpl;
     css::uno::Reference< css::beans::XPropertySet > mxStyleData;
     css::uno::Reference< css::container::XNameAccess >  mxStyleFamily;
 
@@ -1158,8 +1157,8 @@ SwXStyle::SwXStyle(SfxStyleSheetBasePool& rPool, SfxStyleFamily eFam,
     m_eFamily(eFam),
     m_bIsDescriptor(false),
     m_bIsConditional(false),
-    m_pPropertiesImpl(nullptr),
-    m_pBasePool(&rPool)
+    m_pBasePool(&rPool),
+    m_pPropertiesImpl(nullptr)
 {
     if(!m_pBasePool)
         return;
@@ -3455,7 +3454,7 @@ void SAL_CALL SwXPageStyle::SetPropertyValues_Impl(
         }
         else if(IsDescriptor())
         {
-            if(!GetPropImpl().SetProperty(rPropName, pValues[nProp]))
+            if(!m_pPropertiesImpl->SetProperty(rPropName, pValues[nProp]))
                 throw lang::IllegalArgumentException();
         }
         else
@@ -3756,7 +3755,7 @@ uno::Sequence< uno::Any > SAL_CALL SwXPageStyle::GetPropertyValues_Impl(
         else if(IsDescriptor())
         {
             const uno::Any* pAny = nullptr;
-            GetPropImpl().GetProperty(rPropName, pAny);
+            m_pPropertiesImpl->GetProperty(rPropName, pAny);
             if (!pAny->hasValue())
             {
                 SwStyleProperties_Impl::GetProperty(rPropName, mxStyleData, pRet[nProp]);
commit dc9d9ff650c135e9a9d84af3480d992c7b6d47e7
Author: Bjoern Michaelsen <bjoern.michaelsen at canonical.com>
Date:   Wed Dec 23 00:41:32 2015 +0100

    remove GetBasePool wrappers
    
    Change-Id: I0e7e8309c5d8873b9bde738a00579989d7b105fb

diff --git a/sw/source/core/unocore/unostyle.cxx b/sw/source/core/unocore/unostyle.cxx
index 22fd71e..0e38301 100644
--- a/sw/source/core/unocore/unostyle.cxx
+++ b/sw/source/core/unocore/unostyle.cxx
@@ -262,9 +262,6 @@ class SwXStyle : public cppu::WeakImplHelper
 
 protected:
     SfxStyleSheetBasePool* m_pBasePool;
-    const SfxStyleSheetBasePool*    GetBasePool() const {return m_pBasePool;}
-    SfxStyleSheetBasePool*  GetBasePool() {return m_pBasePool;}
-
     SwStyleProperties_Impl& GetPropImpl(){return *m_pPropertiesImpl;}
     css::uno::Reference< css::beans::XPropertySet > mxStyleData;
     css::uno::Reference< css::container::XNameAccess >  mxStyleFamily;
@@ -3233,12 +3230,12 @@ void SAL_CALL SwXPageStyle::SetPropertyValues_Impl(
     const SfxItemPropertySet* pPropSet = aSwMapProvider.GetPropertySet(PROPERTY_MAP_PAGE_STYLE);
     const SfxItemPropertyMap& rMap = pPropSet->getPropertyMap();
     SwStyleBase_Impl aBaseImpl(*GetDoc(), GetStyleName(), &GetDoc()->GetDfltFrameFormat()->GetAttrSet()); //UUUU add pDfltFrameFormat as parent
-    if(GetBasePool())
+    if(m_pBasePool)
     {
-        const sal_uInt16 nSaveMask = GetBasePool()->GetSearchMask();
-        GetBasePool()->SetSearchMask(GetFamily());
-        SfxStyleSheetBase* pBase = GetBasePool()->Find(GetStyleName());
-        GetBasePool()->SetSearchMask(GetFamily(), nSaveMask );
+        const sal_uInt16 nSaveMask = m_pBasePool->GetSearchMask();
+        m_pBasePool->SetSearchMask(GetFamily());
+        SfxStyleSheetBase* pBase = m_pBasePool->Find(GetStyleName());
+        m_pBasePool->SetSearchMask(GetFamily(), nSaveMask );
         OSL_ENSURE(pBase, "where is the style?" );
         if(pBase)
         {
@@ -3265,7 +3262,7 @@ void SAL_CALL SwXPageStyle::SetPropertyValues_Impl(
             throw beans::PropertyVetoException ("Property is read-only: " + pNames[nProp], static_cast < cppu::OWeakObject * > ( this ) );
         }
 
-        if(GetBasePool())
+        if(m_pBasePool)
         {
             switch(pEntry->nWID)
             {
@@ -3293,7 +3290,7 @@ void SAL_CALL SwXPageStyle::SetPropertyValues_Impl(
                         if (lcl_GetHeaderFooterItem(aBaseImpl.GetItemSet(),
                                     rPropName, bFooter, pSetItem))
                         {
-                            lcl_putItemToSet(pSetItem, *pPropSet, *pEntry, pValues[nProp], aBaseImpl, GetBasePool(), GetDoc(), GetFamily());
+                            lcl_putItemToSet(pSetItem, *pPropSet, *pEntry, pValues[nProp], aBaseImpl, m_pBasePool, GetDoc(), GetFamily());
 
                             if (pEntry->nWID == SID_ATTR_PAGE_SHARED_FIRST)
                             {
@@ -3302,7 +3299,7 @@ void SAL_CALL SwXPageStyle::SetPropertyValues_Impl(
                                             bFooter ? SID_ATTR_PAGE_HEADERSET : SID_ATTR_PAGE_FOOTERSET,
                                             false, reinterpret_cast<const SfxPoolItem**>(&pSetItem)))
                                 {
-                                    lcl_putItemToSet(pSetItem, *pPropSet, *pEntry, pValues[nProp], aBaseImpl, GetBasePool(), GetDoc(), GetFamily());
+                                    lcl_putItemToSet(pSetItem, *pPropSet, *pEntry, pValues[nProp], aBaseImpl, m_pBasePool, GetDoc(), GetFamily());
                                 }
                             }
                         }
@@ -3357,7 +3354,7 @@ void SAL_CALL SwXPageStyle::SetPropertyValues_Impl(
                             default:
                             {
                                 // part of PageStyle, fallback to default
-                                lcl_SetStyleProperty(*pEntry, *pPropSet, pValues[nProp], aBaseImpl, GetBasePool(), GetDoc(), GetFamily());
+                                lcl_SetStyleProperty(*pEntry, *pPropSet, pValues[nProp], aBaseImpl, m_pBasePool, GetDoc(), GetFamily());
                             }
                         }
                     }
@@ -3407,7 +3404,7 @@ void SAL_CALL SwXPageStyle::SetPropertyValues_Impl(
                             // replace the used SfxItemSet at the SwStyleBase_Impl temporarily and use the
                             // default method to set the property
                             SfxItemSet* pRememberItemSet = aBaseImpl.replaceItemSet(&rSetSet);
-                            lcl_SetStyleProperty(*pEntry, *pPropSet, pValues[nProp], aBaseImpl, GetBasePool(), GetDoc(), GetFamily());
+                            lcl_SetStyleProperty(*pEntry, *pPropSet, pValues[nProp], aBaseImpl, m_pBasePool, GetDoc(), GetFamily());
                             aBaseImpl.replaceItemSet(pRememberItemSet);
 
                             // reset paret at ItemSet from SetItem
@@ -3421,7 +3418,7 @@ void SAL_CALL SwXPageStyle::SetPropertyValues_Impl(
                     else
                     {
                         // part of PageStyle, fallback to default
-                        lcl_SetStyleProperty(*pEntry, *pPropSet, pValues[nProp], aBaseImpl, GetBasePool(), GetDoc(), GetFamily());
+                        lcl_SetStyleProperty(*pEntry, *pPropSet, pValues[nProp], aBaseImpl, m_pBasePool, GetDoc(), GetFamily());
                     }
 
                     break;
@@ -3451,7 +3448,7 @@ void SAL_CALL SwXPageStyle::SetPropertyValues_Impl(
                 default:
                 {
                     //UUUU
-                    lcl_SetStyleProperty(*pEntry, *pPropSet, pValues[nProp], aBaseImpl, GetBasePool(), GetDoc(), GetFamily());
+                    lcl_SetStyleProperty(*pEntry, *pPropSet, pValues[nProp], aBaseImpl, m_pBasePool, GetDoc(), GetFamily());
                     break;
                 }
             }
@@ -3554,14 +3551,14 @@ uno::Sequence< uno::Any > SAL_CALL SwXPageStyle::GetPropertyValues_Impl(
             throw beans::UnknownPropertyException("Unknown property: " + rPropName, static_cast < cppu::OWeakObject * > ( this ) );
         }
 
-        if(GetBasePool())
+        if(m_pBasePool)
         {
             if(!pBase)
             {
-                const sal_uInt16 nSaveMask = GetBasePool()->GetSearchMask();
-                GetBasePool()->SetSearchMask(GetFamily());
-                pBase = GetBasePool()->Find(GetStyleName());
-                GetBasePool()->SetSearchMask(GetFamily(), nSaveMask );
+                const sal_uInt16 nSaveMask = m_pBasePool->GetSearchMask();
+                m_pBasePool->SetSearchMask(GetFamily());
+                pBase = m_pBasePool->Find(GetStyleName());
+                m_pBasePool->SetSearchMask(GetFamily(), nSaveMask );
             }
 
             sal_uInt16 nRes = 0;
@@ -3835,7 +3832,7 @@ void SwXFrameStyle::SetItem(enum RES_FRMATR eAtr, const SfxPoolItem& rItem)
 {
     // As I was told, for some entirely unobvious reason getting an
     // item from a style has to look as follows:
-    SfxStyleSheetBasePool* pBasePool = GetBasePool();
+    SfxStyleSheetBasePool* pBasePool = m_pBasePool;
     if (pBasePool)
     {
         SfxStyleSheetBase* pBase = pBasePool->Find(GetStyleName());
@@ -3854,7 +3851,7 @@ const SfxPoolItem* SwXFrameStyle::GetItem(enum RES_FRMATR eAtr)
 {
     // As I was told, for some entirely unobvious reason getting an
     // item from a style has to look as follows:
-    SfxStyleSheetBasePool* pBasePool = GetBasePool();
+    SfxStyleSheetBasePool* pBasePool = m_pBasePool;
     if(!pBasePool)
         return nullptr;
     SfxStyleSheetBase* pBase = pBasePool->Find(GetStyleName());
commit b23f6841b2e67958336c6ffadd6522dc0abbf1dc
Author: Bjoern Michaelsen <bjoern.michaelsen at canonical.com>
Date:   Tue Dec 22 14:35:50 2015 +0100

    instead of lying with friendship, lets be honest
    
    Change-Id: I0582734a0995638f45888e32c108e56ab3f28e80

diff --git a/sw/source/core/unocore/unostyle.cxx b/sw/source/core/unocore/unostyle.cxx
index 8a07481..22fd71e 100644
--- a/sw/source/core/unocore/unostyle.cxx
+++ b/sw/source/core/unocore/unostyle.cxx
@@ -251,25 +251,20 @@ class SwXStyle : public cppu::WeakImplHelper
     , public SfxListener
     , public SwClient
 {
-    friend class sw::XStyleFamily;
-    SwDoc*                  m_pDoc;
-    OUString                m_sStyleName;
-    SfxStyleSheetBasePool*  m_pBasePool;
-    SfxStyleFamily          m_eFamily;    // for Notify
-
-    bool                    m_bIsDescriptor  : 1;
-    bool                    m_bIsConditional : 1;
-    OUString                m_sParentStyleName;
+    SwDoc* m_pDoc;
+    OUString m_sStyleName;
+    SfxStyleFamily m_eFamily; // for Notify
+
+    bool m_bIsDescriptor;
+    bool m_bIsConditional;
+    OUString m_sParentStyleName;
     std::unique_ptr<SwStyleProperties_Impl> m_pPropertiesImpl;
 
-    void    ApplyDescriptorProperties();
 protected:
-    void    Invalidate();
-
+    SfxStyleSheetBasePool* m_pBasePool;
     const SfxStyleSheetBasePool*    GetBasePool() const {return m_pBasePool;}
     SfxStyleSheetBasePool*  GetBasePool() {return m_pBasePool;}
 
-    void SetStyleName(const OUString& rSet){ m_sStyleName = rSet;}
     SwStyleProperties_Impl& GetPropImpl(){return *m_pPropertiesImpl;}
     css::uno::Reference< css::beans::XPropertySet > mxStyleData;
     css::uno::Reference< css::container::XNameAccess >  mxStyleFamily;
@@ -364,6 +359,9 @@ public:
                                 StartListening(*m_pBasePool);
                             }
     SwDoc*                GetDoc() const { return m_pDoc; }
+    void Invalidate();
+    void ApplyDescriptorProperties();
+    void SetStyleName(const OUString& rSet){ m_sStyleName = rSet;}
     virtual const SwTextFormatColl* GetFormatColl() const
     {
         assert(m_eFamily == SFX_STYLE_FAMILY_PARA);
@@ -389,11 +387,8 @@ public:
 
     virtual css::uno::Sequence< css::uno::Type > SAL_CALL getTypes(  ) throw(css::uno::RuntimeException, std::exception) override;
     virtual css::uno::Any SAL_CALL queryInterface( const css::uno::Type& aType ) throw(css::uno::RuntimeException, std::exception) override;
-
     virtual css::uno::Reference< css::container::XNameReplace > SAL_CALL getEvents(  ) throw(css::uno::RuntimeException, std::exception) override;
 
-    friend class SwFrameStyleEventDescriptor;
-
     //ICoreStyle
     virtual void SetItem(enum RES_FRMATR eAtr, const SfxPoolItem& rItem);
     virtual const SfxPoolItem* GetItem(enum RES_FRMATR eAtr);
@@ -1095,10 +1090,10 @@ uno::Sequence< OUString > SwXStyle::getSupportedServiceNames() throw( uno::Runti
 
 SwXStyle::SwXStyle( SwDoc *pDoc, SfxStyleFamily eFam, bool bConditional) :
     m_pDoc( pDoc ),
-    m_pBasePool(nullptr),
     m_eFamily(eFam),
     m_bIsDescriptor(true),
-    m_bIsConditional(bConditional)
+    m_bIsConditional(bConditional),
+    m_pBasePool(nullptr)
 {
     // Register ourselves as a listener to the document (via the page descriptor)
     pDoc->getIDocumentStylePoolAccess().GetPageDescFromPool(RES_POOLPAGE_STANDARD)->Add(this);
@@ -1163,11 +1158,11 @@ SwXStyle::SwXStyle(SfxStyleSheetBasePool& rPool, SfxStyleFamily eFam,
         SwDoc* pDoc, const OUString& rStyleName) :
     m_pDoc(pDoc),
     m_sStyleName(rStyleName),
-    m_pBasePool(&rPool),
     m_eFamily(eFam),
     m_bIsDescriptor(false),
     m_bIsConditional(false),
-    m_pPropertiesImpl(nullptr)
+    m_pPropertiesImpl(nullptr),
+    m_pBasePool(&rPool)
 {
     if(!m_pBasePool)
         return;
commit 0afe84d168b925f0f24139e1f595e3ac27a5df00
Author: Bjoern Michaelsen <bjoern.michaelsen at canonical.com>
Date:   Tue Dec 22 14:26:05 2015 +0100

    use a proper smart pointer here
    
    Change-Id: Ic413e08bbaf38a6858926b1309618762a9ed1444

diff --git a/sw/source/core/unocore/unostyle.cxx b/sw/source/core/unocore/unostyle.cxx
index e9d299a..8a07481 100644
--- a/sw/source/core/unocore/unostyle.cxx
+++ b/sw/source/core/unocore/unostyle.cxx
@@ -260,7 +260,7 @@ class SwXStyle : public cppu::WeakImplHelper
     bool                    m_bIsDescriptor  : 1;
     bool                    m_bIsConditional : 1;
     OUString                m_sParentStyleName;
-    SwStyleProperties_Impl* m_pPropertiesImpl;
+    std::unique_ptr<SwStyleProperties_Impl> m_pPropertiesImpl;
 
     void    ApplyDescriptorProperties();
 protected:
@@ -270,7 +270,7 @@ protected:
     SfxStyleSheetBasePool*  GetBasePool() {return m_pBasePool;}
 
     void SetStyleName(const OUString& rSet){ m_sStyleName = rSet;}
-    SwStyleProperties_Impl* GetPropImpl(){return m_pPropertiesImpl;}
+    SwStyleProperties_Impl& GetPropImpl(){return *m_pPropertiesImpl;}
     css::uno::Reference< css::beans::XPropertySet > mxStyleData;
     css::uno::Reference< css::container::XNameAccess >  mxStyleFamily;
 
@@ -1156,7 +1156,7 @@ SwXStyle::SwXStyle( SwDoc *pDoc, SfxStyleFamily eFam, bool bConditional) :
         default:
             ;
     }
-    m_pPropertiesImpl = new SwStyleProperties_Impl(aSwMapProvider.GetPropertySet(nMapId)->getPropertyMap());
+    m_pPropertiesImpl = std::unique_ptr<SwStyleProperties_Impl>(new SwStyleProperties_Impl(aSwMapProvider.GetPropertySet(nMapId)->getPropertyMap()));
 }
 
 SwXStyle::SwXStyle(SfxStyleSheetBasePool& rPool, SfxStyleFamily eFam,
@@ -1192,7 +1192,7 @@ SwXStyle::~SwXStyle()
     SolarMutexGuard aGuard;
     if(m_pBasePool)
         EndListening(*m_pBasePool);
-    delete m_pPropertiesImpl;
+    m_pPropertiesImpl.reset();
     if(GetRegisteredIn())
         GetRegisteredIn()->Remove( this );
 }
@@ -3463,7 +3463,7 @@ void SAL_CALL SwXPageStyle::SetPropertyValues_Impl(
         }
         else if(IsDescriptor())
         {
-            if(!GetPropImpl()->SetProperty(rPropName, pValues[nProp]))
+            if(!GetPropImpl().SetProperty(rPropName, pValues[nProp]))
                 throw lang::IllegalArgumentException();
         }
         else
@@ -3764,7 +3764,7 @@ uno::Sequence< uno::Any > SAL_CALL SwXPageStyle::GetPropertyValues_Impl(
         else if(IsDescriptor())
         {
             const uno::Any* pAny = nullptr;
-            GetPropImpl()->GetProperty(rPropName, pAny);
+            GetPropImpl().GetProperty(rPropName, pAny);
             if (!pAny->hasValue())
             {
                 SwStyleProperties_Impl::GetProperty(rPropName, mxStyleData, pRet[nProp]);
commit 2b03164c0a9e90af2966dbf6252143cfe973d2f1
Author: Bjoern Michaelsen <bjoern.michaelsen at canonical.com>
Date:   Tue Dec 22 14:03:00 2015 +0100

    move trivial functions inline
    
    Change-Id: Icc7c58e847a4087460a86686c790722e6651c85a

diff --git a/sw/source/core/unocore/unostyle.cxx b/sw/source/core/unocore/unostyle.cxx
index 19dc497..e9d299a 100644
--- a/sw/source/core/unocore/unostyle.cxx
+++ b/sw/source/core/unocore/unostyle.cxx
@@ -312,17 +312,24 @@ public:
     virtual css::uno::Reference< css::beans::XPropertySetInfo > SAL_CALL getPropertySetInfo(  ) throw(css::uno::RuntimeException, std::exception) override;
     virtual void SAL_CALL setPropertyValue( const OUString& aPropertyName, const css::uno::Any& aValue ) throw(css::beans::UnknownPropertyException, css::beans::PropertyVetoException, css::lang::IllegalArgumentException, css::lang::WrappedTargetException, css::uno::RuntimeException, std::exception) override;
     virtual css::uno::Any SAL_CALL getPropertyValue( const OUString& PropertyName ) throw(css::beans::UnknownPropertyException, css::lang::WrappedTargetException, css::uno::RuntimeException, std::exception) override;
-    virtual void SAL_CALL addPropertyChangeListener( const OUString& aPropertyName, const css::uno::Reference< css::beans::XPropertyChangeListener >& xListener ) throw(css::beans::UnknownPropertyException, css::lang::WrappedTargetException, css::uno::RuntimeException, std::exception) override;
-    virtual void SAL_CALL removePropertyChangeListener( const OUString& aPropertyName, const css::uno::Reference< css::beans::XPropertyChangeListener >& aListener ) throw(css::beans::UnknownPropertyException, css::lang::WrappedTargetException, css::uno::RuntimeException, std::exception) override;
-    virtual void SAL_CALL addVetoableChangeListener( const OUString& PropertyName, const css::uno::Reference< css::beans::XVetoableChangeListener >& aListener ) throw(css::beans::UnknownPropertyException, css::lang::WrappedTargetException, css::uno::RuntimeException, std::exception) override;
-    virtual void SAL_CALL removeVetoableChangeListener( const OUString& PropertyName, const css::uno::Reference< css::beans::XVetoableChangeListener >& aListener ) throw(css::beans::UnknownPropertyException, css::lang::WrappedTargetException, css::uno::RuntimeException, std::exception) override;
+    virtual void SAL_CALL addPropertyChangeListener( const OUString&, const css::uno::Reference< css::beans::XPropertyChangeListener >& ) throw(css::beans::UnknownPropertyException, css::lang::WrappedTargetException, css::uno::RuntimeException, std::exception) override
+            { OSL_FAIL("not implemented"); };
+    virtual void SAL_CALL removePropertyChangeListener( const OUString&, const css::uno::Reference< css::beans::XPropertyChangeListener >& ) throw(css::beans::UnknownPropertyException, css::lang::WrappedTargetException, css::uno::RuntimeException, std::exception) override
+            { OSL_FAIL("not implemented"); };
+    virtual void SAL_CALL addVetoableChangeListener( const OUString&, const css::uno::Reference< css::beans::XVetoableChangeListener >& ) throw(css::beans::UnknownPropertyException, css::lang::WrappedTargetException, css::uno::RuntimeException, std::exception) override
+            { OSL_FAIL("not implemented"); };
+    virtual void SAL_CALL removeVetoableChangeListener( const OUString&, const css::uno::Reference< css::beans::XVetoableChangeListener >& ) throw(css::beans::UnknownPropertyException, css::lang::WrappedTargetException, css::uno::RuntimeException, std::exception) override
+            { OSL_FAIL("not implemented"); };
 
     //XMultiPropertySet
     virtual void SAL_CALL setPropertyValues( const css::uno::Sequence< OUString >& aPropertyNames, const css::uno::Sequence< css::uno::Any >& aValues ) throw(css::beans::PropertyVetoException, css::lang::IllegalArgumentException, css::lang::WrappedTargetException, css::uno::RuntimeException, std::exception) override;
     virtual css::uno::Sequence< css::uno::Any > SAL_CALL getPropertyValues( const css::uno::Sequence< OUString >& aPropertyNames ) throw(css::uno::RuntimeException, std::exception) override;
-    virtual void SAL_CALL addPropertiesChangeListener( const css::uno::Sequence< OUString >& aPropertyNames, const css::uno::Reference< css::beans::XPropertiesChangeListener >& xListener ) throw(css::uno::RuntimeException, std::exception) override;
-    virtual void SAL_CALL removePropertiesChangeListener( const css::uno::Reference< css::beans::XPropertiesChangeListener >& xListener ) throw(css::uno::RuntimeException, std::exception) override;
-    virtual void SAL_CALL firePropertiesChangeEvent( const css::uno::Sequence< OUString >& aPropertyNames, const css::uno::Reference< css::beans::XPropertiesChangeListener >& xListener ) throw(css::uno::RuntimeException, std::exception) override;
+    virtual void SAL_CALL addPropertiesChangeListener( const css::uno::Sequence< OUString >&, const css::uno::Reference< css::beans::XPropertiesChangeListener >& ) throw(css::uno::RuntimeException, std::exception) override
+            {};
+    virtual void SAL_CALL removePropertiesChangeListener( const css::uno::Reference< css::beans::XPropertiesChangeListener >& ) throw(css::uno::RuntimeException, std::exception) override
+            {};
+    virtual void SAL_CALL firePropertiesChangeEvent( const css::uno::Sequence< OUString >&, const css::uno::Reference< css::beans::XPropertiesChangeListener >& ) throw(css::uno::RuntimeException, std::exception) override
+            {};
 
     //XPropertyState
     virtual css::beans::PropertyState SAL_CALL getPropertyState( const OUString& PropertyName ) throw(css::beans::UnknownPropertyException, css::uno::RuntimeException, std::exception) override;
@@ -336,8 +343,10 @@ public:
     virtual css::uno::Sequence< css::uno::Any > SAL_CALL getPropertyDefaults( const css::uno::Sequence< OUString >& aPropertyNames ) throw (css::beans::UnknownPropertyException, css::lang::WrappedTargetException, css::uno::RuntimeException, std::exception) override;
 
     //XServiceInfo
-    virtual OUString SAL_CALL getImplementationName() throw( css::uno::RuntimeException, std::exception ) override;
-    virtual sal_Bool SAL_CALL supportsService(const OUString& ServiceName) throw( css::uno::RuntimeException, std::exception ) override;
+    virtual OUString SAL_CALL getImplementationName() throw( css::uno::RuntimeException, std::exception ) override
+            { return {"SwXStyle"}; };
+    virtual sal_Bool SAL_CALL supportsService(const OUString& rServiceName) throw( css::uno::RuntimeException, std::exception ) override
+            { return cppu::supportsService(this, rServiceName); };
     virtual css::uno::Sequence< OUString > SAL_CALL getSupportedServiceNames() throw( css::uno::RuntimeException, std::exception ) override;
 
     //SfxListener
@@ -1041,16 +1050,6 @@ sal_Int64 SAL_CALL SwXStyle::getSomething(const uno::Sequence<sal_Int8>& rId)
 }
 
 
-OUString SwXStyle::getImplementationName() throw( uno::RuntimeException, std::exception )
-{
-    return OUString("SwXStyle");
-}
-
-sal_Bool SwXStyle::supportsService(const OUString& rServiceName) throw( uno::RuntimeException, std::exception )
-{
-    return cppu::supportsService(this, rServiceName);
-}
-
 uno::Sequence< OUString > SwXStyle::getSupportedServiceNames() throw( uno::RuntimeException, std::exception )
 {
     long nCount = 1;
@@ -2642,26 +2641,6 @@ uno::Sequence< uno::Any > SwXStyle::getPropertyValues(
     return aValues;
 }
 
-void SwXStyle::addPropertiesChangeListener(
-    const uno::Sequence< OUString >& /*aPropertyNames*/,
-    const uno::Reference< beans::XPropertiesChangeListener >& /*xListener*/ )
-        throw(uno::RuntimeException, std::exception)
-{
-}
-
-void SwXStyle::removePropertiesChangeListener(
-    const uno::Reference< beans::XPropertiesChangeListener >& /*xListener*/ )
-        throw(uno::RuntimeException, std::exception)
-{
-}
-
-void SwXStyle::firePropertiesChangeEvent(
-    const uno::Sequence< OUString >& /*aPropertyNames*/,
-    const uno::Reference< beans::XPropertiesChangeListener >& /*xListener*/ )
-        throw(uno::RuntimeException, std::exception)
-{
-}
-
 void SwXStyle::setPropertyValue(const OUString& rPropertyName, const uno::Any& rValue)
     throw( beans::UnknownPropertyException,
         beans::PropertyVetoException,
@@ -2685,34 +2664,6 @@ uno::Any SwXStyle::getPropertyValue(const OUString& rPropertyName)
 
 }
 
-void SwXStyle::addPropertyChangeListener(const OUString& /*rPropertyName*/,
-    const uno::Reference< beans::XPropertyChangeListener > & /*xListener*/)
-    throw( beans::UnknownPropertyException, lang::WrappedTargetException, uno::RuntimeException, std::exception )
-{
-    OSL_FAIL("not implemented");
-}
-
-void SwXStyle::removePropertyChangeListener(const OUString& /*rPropertyName*/,
-    const uno::Reference< beans::XPropertyChangeListener > & /*xListener*/)
-    throw( beans::UnknownPropertyException, lang::WrappedTargetException, uno::RuntimeException, std::exception )
-{
-    OSL_FAIL("not implemented");
-}
-
-void SwXStyle::addVetoableChangeListener(const OUString& /*rPropertyName*/,
-    const uno::Reference< beans::XVetoableChangeListener > & /*xListener*/)
-    throw( beans::UnknownPropertyException, lang::WrappedTargetException, uno::RuntimeException, std::exception )
-{
-    OSL_FAIL("not implemented");
-}
-
-void SwXStyle::removeVetoableChangeListener(const OUString& /*rPropertyName*/,
-    const uno::Reference< beans::XVetoableChangeListener > & /*xListener*/)
-    throw( beans::UnknownPropertyException, lang::WrappedTargetException, uno::RuntimeException, std::exception )
-{
-    OSL_FAIL("not implemented");
-}
-
 beans::PropertyState SwXStyle::getPropertyState(const OUString& rPropertyName)
         throw( beans::UnknownPropertyException, uno::RuntimeException, std::exception )
 {
commit aef1e2dde5e53ba8416a393bbe155ef0c18511a7
Author: Bjoern Michaelsen <bjoern.michaelsen at canonical.com>
Date:   Mon Dec 21 03:55:14 2015 +0100

    move SwXStyle entirely into compilation unit
    
    Change-Id: Icfcb4320aef9ebe2c5fcc84106de005934d51a3f

diff --git a/sw/inc/unostyle.hxx b/sw/inc/unostyle.hxx
index ea7f723..72b6b04 100644
--- a/sw/inc/unostyle.hxx
+++ b/sw/inc/unostyle.hxx
@@ -103,174 +103,24 @@ public:
     static css::uno::Reference<css::style::XStyle> CreateStyleCondParagraph(SwDoc& rDoc);
 };
 
-
-class SwXStyle : public cppu::WeakImplHelper
-<
-    css::style::XStyle,
-    css::beans::XPropertySet,
-    css::beans::XMultiPropertySet,
-    css::lang::XServiceInfo,
-    css::lang::XUnoTunnel,
-    css::beans::XPropertyState,
-    css::beans::XMultiPropertyStates
->,
-        public SfxListener,
-        public SwClient
-{
-    friend class sw::XStyleFamily;
-    SwDoc*                  m_pDoc;
-    OUString                m_sStyleName;
-    SfxStyleSheetBasePool*  m_pBasePool;
-    SfxStyleFamily          m_eFamily;    // for Notify
-
-    bool                    m_bIsDescriptor  : 1;
-    bool                    m_bIsConditional : 1;
-    OUString                m_sParentStyleName;
-    SwStyleProperties_Impl* m_pPropertiesImpl;
-
-    void    ApplyDescriptorProperties();
-protected:
-    void    Invalidate();
-
-    const SfxStyleSheetBasePool*    GetBasePool() const {return m_pBasePool;}
-    SfxStyleSheetBasePool*  GetBasePool() {return m_pBasePool;}
-
-    void SetStyleName(const OUString& rSet){ m_sStyleName = rSet;}
-    SwStyleProperties_Impl* GetPropImpl(){return m_pPropertiesImpl;}
-    css::uno::Reference< css::beans::XPropertySet > mxStyleData;
-    css::uno::Reference< css::container::XNameAccess >  mxStyleFamily;
-
-    void SAL_CALL SetPropertyValues_Impl( const css::uno::Sequence< OUString >& aPropertyNames, const css::uno::Sequence< css::uno::Any >& aValues )
-        throw (css::beans::UnknownPropertyException,
-               css::beans::PropertyVetoException,
-               css::lang::IllegalArgumentException,
-               css::lang::WrappedTargetException,
-               css::uno::RuntimeException,
-               std::exception);
-    css::uno::Sequence< css::uno::Any > SAL_CALL GetPropertyValues_Impl( const css::uno::Sequence< OUString >& aPropertyNames ) throw(css::beans::UnknownPropertyException, css::lang::WrappedTargetException, css::uno::RuntimeException, std::exception);
-
-   virtual void Modify( const SfxPoolItem* pOld, const SfxPoolItem *pNew) override;
-public:
-    SwXStyle(SwDoc* pDoc, SfxStyleFamily eFam = SFX_STYLE_FAMILY_PARA, bool bConditional = false);
-    SwXStyle(SfxStyleSheetBasePool& rPool, SfxStyleFamily eFam,
-                                SwDoc*  pDoc,
-                                const OUString& rStyleName);
-
-    virtual ~SwXStyle();
-
-
-    static const css::uno::Sequence< sal_Int8 > & getUnoTunnelId();
-
-    //XUnoTunnel
-    virtual sal_Int64 SAL_CALL getSomething( const css::uno::Sequence< sal_Int8 >& aIdentifier ) throw(css::uno::RuntimeException, std::exception) override;
-
-    //XNamed
-    virtual OUString SAL_CALL getName() throw( css::uno::RuntimeException, std::exception ) override;
-    virtual void SAL_CALL setName(const OUString& Name_) throw( css::uno::RuntimeException, std::exception ) override;
-
-    //XStyle
-    virtual sal_Bool SAL_CALL isUserDefined() throw( css::uno::RuntimeException, std::exception ) override;
-    virtual sal_Bool SAL_CALL isInUse() throw( css::uno::RuntimeException, std::exception ) override;
-    virtual OUString SAL_CALL getParentStyle() throw( css::uno::RuntimeException, std::exception ) override;
-    virtual void SAL_CALL setParentStyle(const OUString& aParentStyle) throw( css::container::NoSuchElementException, css::uno::RuntimeException, std::exception ) override;
-
-    //XPropertySet
-    virtual css::uno::Reference< css::beans::XPropertySetInfo > SAL_CALL getPropertySetInfo(  ) throw(css::uno::RuntimeException, std::exception) override;
-    virtual void SAL_CALL setPropertyValue( const OUString& aPropertyName, const css::uno::Any& aValue ) throw(css::beans::UnknownPropertyException, css::beans::PropertyVetoException, css::lang::IllegalArgumentException, css::lang::WrappedTargetException, css::uno::RuntimeException, std::exception) override;
-    virtual css::uno::Any SAL_CALL getPropertyValue( const OUString& PropertyName ) throw(css::beans::UnknownPropertyException, css::lang::WrappedTargetException, css::uno::RuntimeException, std::exception) override;
-    virtual void SAL_CALL addPropertyChangeListener( const OUString& aPropertyName, const css::uno::Reference< css::beans::XPropertyChangeListener >& xListener ) throw(css::beans::UnknownPropertyException, css::lang::WrappedTargetException, css::uno::RuntimeException, std::exception) override;
-    virtual void SAL_CALL removePropertyChangeListener( const OUString& aPropertyName, const css::uno::Reference< css::beans::XPropertyChangeListener >& aListener ) throw(css::beans::UnknownPropertyException, css::lang::WrappedTargetException, css::uno::RuntimeException, std::exception) override;
-    virtual void SAL_CALL addVetoableChangeListener( const OUString& PropertyName, const css::uno::Reference< css::beans::XVetoableChangeListener >& aListener ) throw(css::beans::UnknownPropertyException, css::lang::WrappedTargetException, css::uno::RuntimeException, std::exception) override;
-    virtual void SAL_CALL removeVetoableChangeListener( const OUString& PropertyName, const css::uno::Reference< css::beans::XVetoableChangeListener >& aListener ) throw(css::beans::UnknownPropertyException, css::lang::WrappedTargetException, css::uno::RuntimeException, std::exception) override;
-
-    //XMultiPropertySet
-    virtual void SAL_CALL setPropertyValues( const css::uno::Sequence< OUString >& aPropertyNames, const css::uno::Sequence< css::uno::Any >& aValues ) throw(css::beans::PropertyVetoException, css::lang::IllegalArgumentException, css::lang::WrappedTargetException, css::uno::RuntimeException, std::exception) override;
-    virtual css::uno::Sequence< css::uno::Any > SAL_CALL getPropertyValues( const css::uno::Sequence< OUString >& aPropertyNames ) throw(css::uno::RuntimeException, std::exception) override;
-    virtual void SAL_CALL addPropertiesChangeListener( const css::uno::Sequence< OUString >& aPropertyNames, const css::uno::Reference< css::beans::XPropertiesChangeListener >& xListener ) throw(css::uno::RuntimeException, std::exception) override;
-    virtual void SAL_CALL removePropertiesChangeListener( const css::uno::Reference< css::beans::XPropertiesChangeListener >& xListener ) throw(css::uno::RuntimeException, std::exception) override;
-    virtual void SAL_CALL firePropertiesChangeEvent( const css::uno::Sequence< OUString >& aPropertyNames, const css::uno::Reference< css::beans::XPropertiesChangeListener >& xListener ) throw(css::uno::RuntimeException, std::exception) override;
-
-    //XPropertyState
-    virtual css::beans::PropertyState SAL_CALL getPropertyState( const OUString& PropertyName ) throw(css::beans::UnknownPropertyException, css::uno::RuntimeException, std::exception) override;
-    virtual css::uno::Sequence< css::beans::PropertyState > SAL_CALL getPropertyStates( const css::uno::Sequence< OUString >& aPropertyName ) throw(css::beans::UnknownPropertyException, css::uno::RuntimeException, std::exception) override;
-    virtual void SAL_CALL setPropertyToDefault( const OUString& PropertyName ) throw(css::beans::UnknownPropertyException, css::uno::RuntimeException, std::exception) override;
-    virtual css::uno::Any SAL_CALL getPropertyDefault( const OUString& aPropertyName ) throw(css::beans::UnknownPropertyException, css::lang::WrappedTargetException, css::uno::RuntimeException, std::exception) override;
-
-    //XMultiPropertyStates
-    virtual void SAL_CALL setAllPropertiesToDefault(  ) throw (css::uno::RuntimeException, std::exception) override;
-    virtual void SAL_CALL setPropertiesToDefault( const css::uno::Sequence< OUString >& aPropertyNames ) throw (css::beans::UnknownPropertyException, css::uno::RuntimeException, std::exception) override;
-    virtual css::uno::Sequence< css::uno::Any > SAL_CALL getPropertyDefaults( const css::uno::Sequence< OUString >& aPropertyNames ) throw (css::beans::UnknownPropertyException, css::lang::WrappedTargetException, css::uno::RuntimeException, std::exception) override;
-
-    //XServiceInfo
-    virtual OUString SAL_CALL getImplementationName() throw( css::uno::RuntimeException, std::exception ) override;
-    virtual sal_Bool SAL_CALL supportsService(const OUString& ServiceName) throw( css::uno::RuntimeException, std::exception ) override;
-    virtual css::uno::Sequence< OUString > SAL_CALL getSupportedServiceNames() throw( css::uno::RuntimeException, std::exception ) override;
-
-    //SfxListener
-    virtual void        Notify( SfxBroadcaster& rBC, const SfxHint& rHint ) override;
-
-    OUString            GetStyleName() const { return m_sStyleName;}
-    SfxStyleFamily      GetFamily() const {return m_eFamily;}
-
-    bool                IsDescriptor() const {return m_bIsDescriptor;}
-    bool                IsConditional() const { return m_bIsConditional;}
-    OUString            GetParentStyleName() const { return m_sParentStyleName;}
-    void                SetDoc(SwDoc* pDc, SfxStyleSheetBasePool*   pPool)
-                            {
-                                m_bIsDescriptor = false; m_pDoc = pDc;
-                                m_pBasePool = pPool;
-                                StartListening(*m_pBasePool);
-                            }
-    SwDoc*                GetDoc() const { return m_pDoc; }
-};
-
-class SwXFrameStyle : public SwXStyle,
-                        public css::document::XEventsSupplier
-{
-public:
-    SwXFrameStyle(SfxStyleSheetBasePool& rPool,
-                                SwDoc*  pDoc,
-                                const OUString& rStyleName) :
-        SwXStyle(rPool, SFX_STYLE_FAMILY_FRAME, pDoc, rStyleName){}
-    SwXFrameStyle( SwDoc *pDoc );
-    virtual ~SwXFrameStyle();
-
-    virtual void SAL_CALL acquire(  ) throw() override {SwXStyle::acquire();}
-    virtual void SAL_CALL release(  ) throw() override {SwXStyle::release();}
-
-    virtual css::uno::Sequence< css::uno::Type > SAL_CALL getTypes(  ) throw(css::uno::RuntimeException, std::exception) override;
-    virtual css::uno::Any SAL_CALL queryInterface( const css::uno::Type& aType ) throw(css::uno::RuntimeException, std::exception) override;
-
-    virtual css::uno::Reference< css::container::XNameReplace > SAL_CALL getEvents(  ) throw(css::uno::RuntimeException, std::exception) override;
-
-    friend class SwFrameStyleEventDescriptor;
-};
-
-class SwXPageStyle : public SwXStyle
+namespace sw
 {
-protected:
-    void SAL_CALL SetPropertyValues_Impl( const css::uno::Sequence< OUString >& aPropertyNames, const css::uno::Sequence< css::uno::Any >& aValues )
-        throw (css::beans::UnknownPropertyException,
-               css::beans::PropertyVetoException,
-               css::lang::IllegalArgumentException,
-               css::lang::WrappedTargetException,
-               css::uno::RuntimeException,
-               std::exception);
-    css::uno::Sequence< css::uno::Any > SAL_CALL GetPropertyValues_Impl( const css::uno::Sequence< OUString >& aPropertyNames ) throw(css::beans::UnknownPropertyException, css::lang::WrappedTargetException, css::uno::RuntimeException, std::exception);
-
-public:
-    SwXPageStyle(SfxStyleSheetBasePool& rPool, SwDocShell* pDocSh, SfxStyleFamily eFam,
-                                const OUString& rStyleName);
-    SwXPageStyle(SwDocShell* pDocSh);
-    virtual ~SwXPageStyle();
-
-    virtual void SAL_CALL setPropertyValue( const OUString& aPropertyName, const css::uno::Any& aValue ) throw(css::beans::UnknownPropertyException, css::beans::PropertyVetoException, css::lang::IllegalArgumentException, css::lang::WrappedTargetException, css::uno::RuntimeException, std::exception) override;

... etc. - the rest is truncated


More information about the Libreoffice-commits mailing list