Kaydet (Commit) ccac1f17 authored tarafından Michael Stahl's avatar Michael Stahl

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
üst 26ce48bf
......@@ -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 );
......
......@@ -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()
......
......@@ -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());
}
}
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment