get rid of long deprecated SwModify::BroadcastModify

Change-Id: I9c65de16bf1f1a604c0045444203a16f30f2833e
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/105318
Tested-by: Jenkins
Reviewed-by: Bjoern Michaelsen <bjoern.michaelsen@libreoffice.org>
This commit is contained in:
Bjoern Michaelsen
2020-11-04 21:55:31 +01:00
parent 0d93ed1ea5
commit 2e32f4ed5a
4 changed files with 19 additions and 30 deletions

View File

@@ -192,10 +192,6 @@ public:
// broadcasting: send notifications to all clients // broadcasting: send notifications to all clients
// DO NOT USE IN NEW CODE! use CallSwClientNotify instead. // DO NOT USE IN NEW CODE! use CallSwClientNotify instead.
void NotifyClients( const SfxPoolItem *pOldValue, const SfxPoolItem *pNewValue ); void NotifyClients( const SfxPoolItem *pOldValue, const SfxPoolItem *pNewValue );
// the same, but without setting m_bModifyLocked or checking for any of the flags
// DO NOT USE IN NEW CODE! use CallSwClientNotify instead.
void ModifyBroadcast( const SfxPoolItem *pOldValue, const SfxPoolItem *pNewValue)
{ CallSwClientNotify( sw::LegacyModifyHint{ pOldValue, pNewValue } ); };
// a more universal broadcasting mechanism // a more universal broadcasting mechanism
virtual void CallSwClientNotify( const SfxHint& rHint ) const; virtual void CallSwClientNotify( const SfxHint& rHint ) const;

View File

@@ -1817,7 +1817,7 @@ void SwDocTest::testIntrusiveRing()
namespace namespace
{ {
struct TestHint final : SfxHint {}; struct TestHint final : SfxHint {};
struct TestModify : SwModify struct TestModify : sw::BroadcastingModify
{ {
}; };
struct TestClient : SwClient struct TestClient : SwClient
@@ -1880,12 +1880,12 @@ void SwDocTest::testClientModify()
CPPUNIT_ASSERT(aMod.HasWriterListeners()); CPPUNIT_ASSERT(aMod.HasWriterListeners());
CPPUNIT_ASSERT(!aMod.HasOnlyOneListener()); CPPUNIT_ASSERT(!aMod.HasOnlyOneListener());
// test broadcast // test broadcast
aMod.ModifyBroadcast(nullptr, nullptr); aMod.CallSwClientNotify(sw::LegacyModifyHint(nullptr, nullptr));
CPPUNIT_ASSERT_EQUAL(1,aClient1.m_nModifyCount); CPPUNIT_ASSERT_EQUAL(1,aClient1.m_nModifyCount);
CPPUNIT_ASSERT_EQUAL(1,aClient2.m_nModifyCount); CPPUNIT_ASSERT_EQUAL(1,aClient2.m_nModifyCount);
CPPUNIT_ASSERT_EQUAL(0,aClient1.m_nNotifyCount); CPPUNIT_ASSERT_EQUAL(0,aClient1.m_nNotifyCount);
CPPUNIT_ASSERT_EQUAL(0,aClient2.m_nNotifyCount); CPPUNIT_ASSERT_EQUAL(0,aClient2.m_nNotifyCount);
aMod.ModifyBroadcast(nullptr, nullptr); aMod.CallSwClientNotify(sw::LegacyModifyHint(nullptr, nullptr));
CPPUNIT_ASSERT_EQUAL(2,aClient1.m_nModifyCount); CPPUNIT_ASSERT_EQUAL(2,aClient1.m_nModifyCount);
CPPUNIT_ASSERT_EQUAL(2,aClient2.m_nModifyCount); CPPUNIT_ASSERT_EQUAL(2,aClient2.m_nModifyCount);
CPPUNIT_ASSERT_EQUAL(0,aClient1.m_nNotifyCount); CPPUNIT_ASSERT_EQUAL(0,aClient1.m_nNotifyCount);
@@ -1953,7 +1953,7 @@ void SwDocTest::testClientModify()
CPPUNIT_ASSERT(false); CPPUNIT_ASSERT(false);
} }
} }
aMod.ModifyBroadcast(nullptr, nullptr); aMod.CallSwClientNotify(sw::LegacyModifyHint(nullptr, nullptr));
CPPUNIT_ASSERT_EQUAL(2,aClient1.m_nModifyCount); CPPUNIT_ASSERT_EQUAL(2,aClient1.m_nModifyCount);
CPPUNIT_ASSERT_EQUAL(2,aClient2.m_nModifyCount); CPPUNIT_ASSERT_EQUAL(2,aClient2.m_nModifyCount);
CPPUNIT_ASSERT_EQUAL(1,aClient1.m_nNotifyCount); CPPUNIT_ASSERT_EQUAL(1,aClient1.m_nNotifyCount);
@@ -1968,7 +1968,7 @@ void SwDocTest::testBroadcastingModify()
aMod.Add(&aClient); aMod.Add(&aClient);
aListener.StartListening(aMod.GetNotifier()); aListener.StartListening(aMod.GetNotifier());
aMod.ModifyBroadcast(nullptr, nullptr); aMod.CallSwClientNotify(sw::LegacyModifyHint(nullptr, nullptr));
CPPUNIT_ASSERT_EQUAL(1,aClient.m_nModifyCount); CPPUNIT_ASSERT_EQUAL(1,aClient.m_nModifyCount);
CPPUNIT_ASSERT_EQUAL(1,aClient.m_nModifyCount); CPPUNIT_ASSERT_EQUAL(1,aClient.m_nModifyCount);
CPPUNIT_ASSERT_EQUAL(1,aListener.m_nNotifyCount); CPPUNIT_ASSERT_EQUAL(1,aListener.m_nNotifyCount);

View File

@@ -181,7 +181,7 @@ void SwModify::NotifyClients( const SfxPoolItem* pOldValue, const SfxPoolItem* p
return; return;
LockModify(); LockModify();
ModifyBroadcast( pOldValue, pNewValue ); CallSwClientNotify( sw::LegacyModifyHint{ pOldValue, pNewValue } );
UnlockModify(); UnlockModify();
} }

View File

@@ -743,7 +743,6 @@ void SwSectionFormat::SwClientNotify(const SwModify&, const SfxHint& rHint)
auto pLegacy = dynamic_cast<const sw::LegacyModifyHint*>(&rHint); auto pLegacy = dynamic_cast<const sw::LegacyModifyHint*>(&rHint);
if(!pLegacy) if(!pLegacy)
return; return;
bool bClients = false;
sal_uInt16 nWhich = pLegacy->GetWhich(); sal_uInt16 nWhich = pLegacy->GetWhich();
auto pOld = pLegacy->m_pOld; auto pOld = pLegacy->m_pOld;
auto pNew = pLegacy->m_pNew; auto pNew = pLegacy->m_pNew;
@@ -758,7 +757,7 @@ void SwSectionFormat::SwClientNotify(const SwModify&, const SfxHint& rHint)
if( SfxItemState::SET == pNewSet->GetItemState( if( SfxItemState::SET == pNewSet->GetItemState(
RES_PROTECT, false, &pItem )) RES_PROTECT, false, &pItem ))
{ {
ModifyBroadcast( pItem, pItem ); GetNotifier().Broadcast(sw::LegacyModifyHint(pItem, pItem));
pNewSet->ClearItem( RES_PROTECT ); pNewSet->ClearItem( RES_PROTECT );
pOldSet->ClearItem( RES_PROTECT ); pOldSet->ClearItem( RES_PROTECT );
} }
@@ -767,7 +766,7 @@ void SwSectionFormat::SwClientNotify(const SwModify&, const SfxHint& rHint)
if( SfxItemState::SET == pNewSet->GetItemState( if( SfxItemState::SET == pNewSet->GetItemState(
RES_EDIT_IN_READONLY, false, &pItem ) ) RES_EDIT_IN_READONLY, false, &pItem ) )
{ {
ModifyBroadcast( pItem, pItem ); GetNotifier().Broadcast(sw::LegacyModifyHint(pItem, pItem));
pNewSet->ClearItem( RES_EDIT_IN_READONLY ); pNewSet->ClearItem( RES_EDIT_IN_READONLY );
pOldSet->ClearItem( RES_EDIT_IN_READONLY ); pOldSet->ClearItem( RES_EDIT_IN_READONLY );
} }
@@ -775,14 +774,14 @@ void SwSectionFormat::SwClientNotify(const SwModify&, const SfxHint& rHint)
if( SfxItemState::SET == pNewSet->GetItemState( if( SfxItemState::SET == pNewSet->GetItemState(
RES_FTN_AT_TXTEND, false, &pItem )) RES_FTN_AT_TXTEND, false, &pItem ))
{ {
ModifyBroadcast( &pOldSet->Get( RES_FTN_AT_TXTEND ), pItem ); GetNotifier().Broadcast(sw::LegacyModifyHint(pItem, pItem));
pNewSet->ClearItem( RES_FTN_AT_TXTEND ); pNewSet->ClearItem( RES_FTN_AT_TXTEND );
pOldSet->ClearItem( RES_FTN_AT_TXTEND ); pOldSet->ClearItem( RES_FTN_AT_TXTEND );
} }
if( SfxItemState::SET == pNewSet->GetItemState( if( SfxItemState::SET == pNewSet->GetItemState(
RES_END_AT_TXTEND, false, &pItem )) RES_END_AT_TXTEND, false, &pItem ))
{ {
ModifyBroadcast( &pOldSet->Get( RES_END_AT_TXTEND ), pItem ); GetNotifier().Broadcast(sw::LegacyModifyHint(pItem, pItem));
pNewSet->ClearItem( RES_END_AT_TXTEND ); pNewSet->ClearItem( RES_END_AT_TXTEND );
pOldSet->ClearItem( RES_END_AT_TXTEND ); pOldSet->ClearItem( RES_END_AT_TXTEND );
} }
@@ -791,28 +790,22 @@ void SwSectionFormat::SwClientNotify(const SwModify&, const SfxHint& rHint)
} }
break; break;
case RES_FTN_AT_TXTEND:
case RES_END_AT_TXTEND : bClients = true;
[[fallthrough]];
case RES_SECTION_HIDDEN: case RES_SECTION_HIDDEN:
case RES_SECTION_NOT_HIDDEN: case RES_SECTION_NOT_HIDDEN:
{ {
SwSection* pSect = GetSection(); auto pSect = GetSection();
if( pSect && ( bClients || ( RES_SECTION_HIDDEN == nWhich ? if(!pSect || (RES_SECTION_HIDDEN == nWhich) == pSect->IsHiddenFlag()) // already at target state, skipping.
!pSect->IsHiddenFlag() : pSect->IsHiddenFlag() ) ) ) return;
{
ModifyBroadcast( pOld, pNew );
}
} }
return ; [[fallthrough]];
case RES_FTN_AT_TXTEND:
case RES_END_AT_TXTEND:
GetNotifier().Broadcast(sw::LegacyModifyHint(pOld, pNew));
return;
case RES_PROTECT: case RES_PROTECT:
case RES_EDIT_IN_READONLY: // edit in readonly sections case RES_EDIT_IN_READONLY: // edit in readonly sections
// Pass through these Messages until the End of the tree! // Pass through these Messages until the End of the tree!
if( HasWriterListeners() ) GetNotifier().Broadcast(sw::LegacyModifyHint(pOld, pNew));
{
ModifyBroadcast( pOld, pNew );
}
return; // That's it! return; // That's it!
case RES_OBJECTDYING: case RES_OBJECTDYING: