summaryrefslogtreecommitdiff
path: root/sw
diff options
context:
space:
mode:
authorMichael Stahl <Michael.Stahl@cib.de>2018-10-19 15:08:01 +0200
committerMichael Stahl <Michael.Stahl@cib.de>2018-11-15 15:10:00 +0100
commitccac1f179d0f6ed9c5ba5ac2d29070c4e62b7e1e (patch)
tree9ce02e933e3a0135446870b649a048c29326a3cc /sw
parent26ce48bf407b0a027db70022bf95c0f98fe46c17 (diff)
sw_redlinehide_3: add flag to SwNodeNum
Disable the NumRule/DocumentListsItemManager manipulations on the second tree; only the "main" tree does that. Change-Id: I0da8ced53f8d55758e3c02fd24b9253bbf603b38
Diffstat (limited to 'sw')
-rw-r--r--sw/inc/SwNodeNum.hxx7
-rw-r--r--sw/source/core/SwNumberTree/SwNodeNum.cxx23
-rw-r--r--sw/source/core/txtnode/ndtxt.cxx4
3 files changed, 19 insertions, 15 deletions
diff --git a/sw/inc/SwNodeNum.hxx b/sw/inc/SwNodeNum.hxx
index d9e61b115b55..cb277b7e7880 100644
--- a/sw/inc/SwNodeNum.hxx
+++ b/sw/inc/SwNodeNum.hxx
@@ -30,7 +30,9 @@ class SW_DLLPUBLIC SwNodeNum : public SwNumberTreeNode
{
public:
- explicit SwNodeNum( SwTextNode* pTextNode );
+ explicit SwNodeNum( SwTextNode* pTextNode, bool isHiddenRedlines );
+ // note: this is only for creating phantom nodes and root nodes; these
+ // never have a text node
explicit SwNodeNum( SwNumRule* pNumRule );
virtual ~SwNodeNum() override;
@@ -79,8 +81,9 @@ protected:
// method called at a child after this child has been removed from the list tree
virtual void PostRemove() override;
private:
- SwTextNode * mpTextNode;
+ SwTextNode *const mpTextNode;
SwNumRule * mpNumRule;
+ bool m_isHiddenRedlines;
static void UnregisterMeAndChildrenDueToRootDelete( SwNodeNum& rNodeNum );
diff --git a/sw/source/core/SwNumberTree/SwNodeNum.cxx b/sw/source/core/SwNumberTree/SwNodeNum.cxx
index 72d5691e987a..40bf1b2eb0c2 100644
--- a/sw/source/core/SwNumberTree/SwNodeNum.cxx
+++ b/sw/source/core/SwNumberTree/SwNodeNum.cxx
@@ -27,17 +27,17 @@
#include <IDocumentListItems.hxx>
#include <doc.hxx>
-SwNodeNum::SwNodeNum( SwTextNode* pTextNode )
- : SwNumberTreeNode(),
- mpTextNode( pTextNode ),
- mpNumRule( nullptr )
+SwNodeNum::SwNodeNum(SwTextNode* pTextNode, bool const isHiddenRedlines)
+ : mpTextNode( pTextNode )
+ , mpNumRule( nullptr )
+ , m_isHiddenRedlines(isHiddenRedlines)
{
}
SwNodeNum::SwNodeNum( SwNumRule* pNumRule )
- : SwNumberTreeNode(),
- mpTextNode( nullptr ),
- mpNumRule( pNumRule )
+ : mpTextNode( nullptr )
+ , mpNumRule( pNumRule )
+ , m_isHiddenRedlines(false)
{
}
@@ -87,11 +87,12 @@ void SwNodeNum::PreAdd()
}
OSL_ENSURE( GetNumRule(),
"<SwNodeNum::PreAdd()> - no list style set at <SwNodeNum> instance" );
- if ( GetNumRule() && GetTextNode() )
+ if (!m_isHiddenRedlines && GetNumRule() && GetTextNode())
{
GetNumRule()->AddTextNode( *(GetTextNode()) );
}
+ if (!m_isHiddenRedlines)
{
if ( GetTextNode() &&
GetTextNode()->GetNodes().IsDocNodes() )
@@ -108,14 +109,14 @@ void SwNodeNum::PostRemove()
OSL_ENSURE( GetNumRule(),
"<SwNodeNum::PostRemove()> - no list style set at <SwNodeNum> instance" );
- if ( GetTextNode() )
+ if (!m_isHiddenRedlines && GetTextNode())
{
GetTextNode()->getIDocumentListItems().removeListItem( *this );
}
if ( GetNumRule() )
{
- if ( GetTextNode() )
+ if (!m_isHiddenRedlines && GetTextNode())
{
GetNumRule()->RemoveTextNode( *(GetTextNode()) );
}
@@ -370,7 +371,7 @@ const SwNodeNum* SwNodeNum::GetPrecedingNodeNumOf( const SwTextNode& rTextNode )
const SwNodeNum* pPrecedingNodeNum( nullptr );
// #i83479#
- SwNodeNum aNodeNumForTextNode( const_cast<SwTextNode*>(&rTextNode) );
+ SwNodeNum aNodeNumForTextNode( const_cast<SwTextNode*>(&rTextNode), false/*doesn't matter*/ );
pPrecedingNodeNum = dynamic_cast<const SwNodeNum*>(
GetRoot()
diff --git a/sw/source/core/txtnode/ndtxt.cxx b/sw/source/core/txtnode/ndtxt.cxx
index 9638231a2ed9..f66dd2ab7d4e 100644
--- a/sw/source/core/txtnode/ndtxt.cxx
+++ b/sw/source/core/txtnode/ndtxt.cxx
@@ -3961,7 +3961,7 @@ SwNodeNum* SwTextNode::CreateNum() const
{
if ( !mpNodeNum )
{
- mpNodeNum = new SwNodeNum( const_cast<SwTextNode*>(this) );
+ mpNodeNum = new SwNodeNum( const_cast<SwTextNode*>(this), false );
}
return mpNodeNum;
}
@@ -4258,7 +4258,7 @@ void SwTextNode::AddToList()
if (pList)
{
assert(!mpNodeNum);
- mpNodeNum = new SwNodeNum(this);
+ mpNodeNum = new SwNodeNum(this, false);
pList->InsertListItem(*mpNodeNum, false, GetAttrListLevel());
}
}