[Libreoffice-commits] core.git: sw/inc sw/source
Bjoern Michaelsen (via logerrit)
logerrit at kemper.freedesktop.org
Thu Oct 29 19:27:14 UTC 2020
sw/inc/calbck.hxx | 3 +++
sw/source/core/attr/calbck.cxx | 8 ++++++++
sw/source/core/attr/format.cxx | 25 ++++++++-----------------
sw/source/core/docnode/node.cxx | 28 +++++-----------------------
4 files changed, 24 insertions(+), 40 deletions(-)
New commits:
commit 9542f3bd21278e3a5a684cf52d58b31d13d9cbc7
Author: Bjoern Michaelsen <bjoern.michaelsen at libreoffice.org>
AuthorDate: Wed Oct 28 23:00:38 2020 +0100
Commit: Bjoern Michaelsen <bjoern.michaelsen at libreoffice.org>
CommitDate: Thu Oct 29 20:26:34 2020 +0100
move ClientNotifyAttrChg to calbck.hxx ...
... and also use it from SwNode.
Change-Id: Icc71eabbc918aa7d61fb0bb4b72c3dd7d91cdbff
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/104981
Tested-by: Jenkins
Reviewed-by: Bjoern Michaelsen <bjoern.michaelsen at libreoffice.org>
diff --git a/sw/inc/calbck.hxx b/sw/inc/calbck.hxx
index 62742cb1cab5..020697b285b8 100644
--- a/sw/inc/calbck.hxx
+++ b/sw/inc/calbck.hxx
@@ -33,6 +33,7 @@
class SwModify;
class SfxPoolItem;
+class SwAttrSet;
/*
SwModify and SwClient cooperate in propagating attribute changes.
@@ -229,6 +230,8 @@ template<typename TElementType, typename TSource, sw::IteratorMode eMode> class
namespace sw
{
+ void ClientNotifyAttrChg(SwModify& rModify, const SwAttrSet& aSet, SwAttrSet& aOld, SwAttrSet& aNew);
+
// this class is part of the migration: it still forwards the "old"
// SwModify events and announces them both to the old SwClients still
// registered and also to the new SvtListeners.
diff --git a/sw/source/core/attr/calbck.cxx b/sw/source/core/attr/calbck.cxx
index 4eb04a5ede98..c3eda1a29e64 100644
--- a/sw/source/core/attr/calbck.cxx
+++ b/sw/source/core/attr/calbck.cxx
@@ -378,4 +378,12 @@ void sw::BroadcastingModify::CallSwClientNotify(const SfxHint& rHint) const
SwModify::CallSwClientNotify(rHint);
const_cast<BroadcastingModify*>(this)->GetNotifier().Broadcast(rHint);
}
+
+void sw::ClientNotifyAttrChg(SwModify& rModify, const SwAttrSet& aSet, SwAttrSet& aOld, SwAttrSet& aNew)
+{
+ const SwAttrSetChg aChgOld(aSet, aOld);
+ const SwAttrSetChg aChgNew(aSet, aNew);
+ const sw::LegacyModifyHint aHint(&aChgOld, &aChgNew);
+ rModify.SwClientNotify(rModify, aHint);
+}
/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/sw/source/core/attr/format.cxx b/sw/source/core/attr/format.cxx
index 3c6cb61ce235..5d23ca14303a 100644
--- a/sw/source/core/attr/format.cxx
+++ b/sw/source/core/attr/format.cxx
@@ -35,15 +35,6 @@
using namespace com::sun::star;
-namespace {
- void lcl_SwClientNotify(SwModify& rModify, const SwAttrSet& aSet, SwAttrSet& aOld, SwAttrSet& aNew)
- {
- const SwAttrSetChg aChgOld(aSet, aOld);
- const SwAttrSetChg aChgNew(aSet, aNew);
- const sw::LegacyModifyHint aHint(&aChgOld, &aChgNew);
- rModify.SwClientNotify(rModify, aHint);
- }
-}
SwFormat::SwFormat( SwAttrPool& rPool, const char* pFormatNm,
const sal_uInt16* pWhichRanges, SwFormat *pDrvdFrame,
@@ -138,7 +129,7 @@ SwFormat &SwFormat::operator=(const SwFormat& rFormat)
// create PoolItem attribute for Modify
if( aOld.Count() )
{
- lcl_SwClientNotify(*this, m_aSet, aOld, aNew);
+ sw::ClientNotifyAttrChg(*this, m_aSet, aOld, aNew);
}
if(GetRegisteredIn() != rFormat.GetRegisteredIn())
@@ -506,7 +497,7 @@ bool SwFormat::SetFormatAttr( const SfxPoolItem& rAttr )
if(bRet)
{
m_aSet.SetModifyAtAttr(this);
- lcl_SwClientNotify(*this, m_aSet, aOld, aNew);
+ sw::ClientNotifyAttrChg(*this, m_aSet, aOld, aNew);
}
}
@@ -542,7 +533,7 @@ bool SwFormat::SetFormatAttr( const SfxPoolItem& rAttr )
// some special treatments for attributes
m_aSet.SetModifyAtAttr( this );
- lcl_SwClientNotify(*this, m_aSet, aOld, aNew);
+ sw::ClientNotifyAttrChg(*this, m_aSet, aOld, aNew);
}
}
return bRet;
@@ -606,7 +597,7 @@ bool SwFormat::SetFormatAttr( const SfxItemSet& rSet )
if(bRet)
{
m_aSet.SetModifyAtAttr(this);
- lcl_SwClientNotify(*this, m_aSet, aOld, aNew);
+ sw::ClientNotifyAttrChg(*this, m_aSet, aOld, aNew);
}
}
@@ -640,7 +631,7 @@ bool SwFormat::SetFormatAttr( const SfxItemSet& rSet )
{
// some special treatments for attributes
m_aSet.SetModifyAtAttr( this );
- lcl_SwClientNotify(*this, m_aSet, aOld, aNew);
+ sw::ClientNotifyAttrChg(*this, m_aSet, aOld, aNew);
}
}
return bRet;
@@ -671,7 +662,7 @@ bool SwFormat::ResetFormatAttr( sal_uInt16 nWhich1, sal_uInt16 nWhich2 )
aNew( *m_aSet.GetPool(), m_aSet.GetRanges() );
bool bRet = 0 != m_aSet.ClearItem_BC( nWhich1, nWhich2, &aOld, &aNew );
if( bRet )
- lcl_SwClientNotify(*this, m_aSet, aOld, aNew);
+ sw::ClientNotifyAttrChg(*this, m_aSet, aOld, aNew);
return bRet;
}
@@ -696,7 +687,7 @@ sal_uInt16 SwFormat::ResetAllFormatAttr()
aNew( *m_aSet.GetPool(), m_aSet.GetRanges() );
bool bRet = 0 != m_aSet.ClearItem_BC( 0, &aOld, &aNew );
if( bRet )
- lcl_SwClientNotify(*this, m_aSet, aOld, aNew);
+ sw::ClientNotifyAttrChg(*this, m_aSet, aOld, aNew);
return aNew.Count();
}
@@ -723,7 +714,7 @@ void SwFormat::DelDiffs( const SfxItemSet& rSet )
aNew( *m_aSet.GetPool(), m_aSet.GetRanges() );
bool bRet = 0 != m_aSet.Intersect_BC( rSet, &aOld, &aNew );
if( bRet )
- lcl_SwClientNotify(*this, m_aSet, aOld, aNew);
+ sw::ClientNotifyAttrChg(*this, m_aSet, aOld, aNew);
}
/** SwFormat::IsBackgroundTransparent
diff --git a/sw/source/core/docnode/node.cxx b/sw/source/core/docnode/node.cxx
index 317c149faeb2..25aeec655363 100644
--- a/sw/source/core/docnode/node.cxx
+++ b/sw/source/core/docnode/node.cxx
@@ -1565,11 +1565,7 @@ bool SwContentNode::SetAttr(const SfxPoolItem& rAttr )
aNew( *GetpSwAttrSet()->GetPool(), GetpSwAttrSet()->GetRanges() );
bRet = AttrSetHandleHelper::Put_BC( mpAttrSet, *this, rAttr, &aOld, &aNew );
if( bRet )
- {
- SwAttrSetChg aChgOld( *GetpSwAttrSet(), aOld );
- SwAttrSetChg aChgNew( *GetpSwAttrSet(), aNew );
- ModifyNotification( &aChgOld, &aChgNew ); // Send all changed ones
- }
+ sw::ClientNotifyAttrChg(*this, *GetpSwAttrSet(), aOld, aNew);
}
return bRet;
}
@@ -1640,12 +1636,7 @@ bool SwContentNode::SetAttr( const SfxItemSet& rSet )
aNew( *GetpSwAttrSet()->GetPool(), GetpSwAttrSet()->GetRanges() );
bRet = AttrSetHandleHelper::Put_BC( mpAttrSet, *this, rSet, &aOld, &aNew );
if( bRet )
- {
- // Some special treatment for Attributes
- SwAttrSetChg aChgOld( *GetpSwAttrSet(), aOld );
- SwAttrSetChg aChgNew( *GetpSwAttrSet(), aNew );
- ModifyNotification( &aChgOld, &aChgNew ); // Send out all changed ones
- }
+ sw::ClientNotifyAttrChg(*this, *GetpSwAttrSet(), aOld, aNew);
}
return bRet;
}
@@ -1690,9 +1681,7 @@ bool SwContentNode::ResetAttr( sal_uInt16 nWhich1, sal_uInt16 nWhich2 )
if( bRet )
{
- SwAttrSetChg aChgOld( *GetpSwAttrSet(), aOld );
- SwAttrSetChg aChgNew( *GetpSwAttrSet(), aNew );
- ModifyNotification( &aChgOld, &aChgNew ); // All changed ones are sent
+ sw::ClientNotifyAttrChg(*this, *GetpSwAttrSet(), aOld, aNew);
if( !GetpSwAttrSet()->Count() ) // Empty?, delete it
mpAttrSet.reset();
@@ -1727,11 +1716,7 @@ bool SwContentNode::ResetAttr( const std::vector<sal_uInt16>& rWhichArr )
++nDel;
if( nDel )
- {
- SwAttrSetChg aChgOld( *GetpSwAttrSet(), aOld );
- SwAttrSetChg aChgNew( *GetpSwAttrSet(), aNew );
- ModifyNotification( &aChgOld, &aChgNew ); // All changed ones are sent
- }
+ sw::ClientNotifyAttrChg(*this, *GetpSwAttrSet(), aOld, aNew);
}
if( !GetpSwAttrSet()->Count() ) // Empty?, delete it
mpAttrSet.reset();
@@ -1766,10 +1751,7 @@ sal_uInt16 SwContentNode::ResetAllAttr()
if( bRet )
{
- SwAttrSetChg aChgOld( *GetpSwAttrSet(), aOld );
- SwAttrSetChg aChgNew( *GetpSwAttrSet(), aNew );
- ModifyNotification( &aChgOld, &aChgNew ); // All changed ones are sent
-
+ sw::ClientNotifyAttrChg(*this, *GetpSwAttrSet(), aOld, aNew);
if( !GetpSwAttrSet()->Count() ) // Empty? Delete
mpAttrSet.reset();
}
More information about the Libreoffice-commits
mailing list