Files
libreoffice/sw/source/core/doc/docnum.cxx

2972 lines
94 KiB
C++
Raw Normal View History

2000-09-18 23:08:29 +00:00
/*************************************************************************
*
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
2000-09-18 23:08:29 +00:00
*
* Copyright 2008 by Sun Microsystems, Inc.
2000-09-18 23:08:29 +00:00
*
* OpenOffice.org - a multi-platform office productivity suite
2000-09-18 23:08:29 +00:00
*
* $RCSfile: docnum.cxx,v $
* $Revision: 1.78 $
2000-09-18 23:08:29 +00:00
*
* This file is part of OpenOffice.org.
2000-09-18 23:08:29 +00:00
*
* OpenOffice.org is free software: you can redistribute it and/or modify
* it under the terms of the GNU Lesser General Public License version 3
* only, as published by the Free Software Foundation.
2000-09-18 23:08:29 +00:00
*
* OpenOffice.org is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU Lesser General Public License version 3 for more details
* (a copy is included in the LICENSE file that accompanied this code).
2000-09-18 23:08:29 +00:00
*
* You should have received a copy of the GNU Lesser General Public License
* version 3 along with OpenOffice.org. If not, see
* <http://www.openoffice.org/license.html>
* for a copy of the LGPLv3 License.
2000-09-18 23:08:29 +00:00
*
************************************************************************/
// MARKER(update_precomp.py): autogen include statement, do not remove
#include "precompiled_sw.hxx"
2000-09-18 23:08:29 +00:00
#include <hintids.hxx>
#include <tools/date.hxx>
#include <tools/time.hxx>
#include <tools/resid.hxx>
#include <svx/lrspitem.hxx>
#include <ftninfo.hxx>
#include <ftnidx.hxx>
#include <doc.hxx>
#include <pam.hxx>
#include <ndtxt.hxx>
#include <doctxm.hxx> // pTOXBaseRing
#include <poolfmt.hxx>
#include <undobj.hxx>
#include <swundo.hxx>
#include <SwUndoFmt.hxx>
2000-09-18 23:08:29 +00:00
#include <rolbck.hxx>
#include <paratr.hxx>
#include <docary.hxx>
#include <mvsave.hxx>
#include <txtfrm.hxx>
#include <pamtyp.hxx>
#include <redline.hxx>
#ifndef _COMCORE_HRC
#include <comcore.hrc>
#endif
#include <svx/adjitem.hxx>
#include <svx/frmdiritem.hxx>
#include <frmatr.hxx>
INTEGRATION: CWS swnumtree (1.49.32); FILE MERGED 2005/11/03 10:35:51 od 1.49.32.28: #i51089# improve performance - method <SwDoc::GetOutlineNumRule> now inline implemented. - consider change of <SwTxtNode::GetNum()> 2005/11/01 18:07:21 od 1.49.32.27: #i51089# - remove unused code 2005/10/26 10:47:23 od 1.49.32.26: RESYNC: (1.51-1.52); FILE MERGED 2005/10/26 09:34:37 od 1.49.32.25: #b6340308# <SwDoc::SetNumRule(..)> - Only clear numbering rule attribute at current text node, if its paragraph style already contains the new numbering rule. 2005/10/25 06:20:54 od 1.49.32.24: #i51089# - delete unused code. 2005/10/25 05:44:01 od 1.49.32.23: #i55391# <SwDoc::SearchNumRule(..)> - Investigate given start node, if requested. Request is indicated by new parameter <_bInvestigateStartNode> 2005/10/21 11:20:54 od 1.49.32.22: #i51089# - Only the counting of phantoms of the outline numbering rule depends on <SwDoc::IsOldNumbering()> 2005/10/21 08:33:31 od 1.49.32.21: #i55391# <SwDoc::SearchNumRule(..)> - start node has also been investigated. 2005/09/20 14:13:24 fme 1.49.32.20: #i51089# Removed compiler warnings 2005/09/20 11:16:23 hbrinkm 1.49.32.19: #i51089# SwNumRule::Invalidate->SwNumRule::SetInvalidRule(TRUE) 2005/09/14 13:37:29 hbrinkm 1.49.32.18: #i51089# SyncNumRulesAndNodes: UpdateOutlineNode 2005/09/13 20:27:33 hbrinkm 1.49.32.17: RESYNC: (1.50-1.51); FILE MERGED 2005/09/12 15:15:29 hbrinkm 1.49.32.16: #i51089# AddNumRuleRanges 2005/09/07 11:29:02 hbrinkm 1.49.32.15: #i51089# SyncNumRulesAndNodes 2005/09/01 14:46:47 hbrinkm 1.49.32.14: #i51089# NumOrNoNum: only remove hard numbering 2005/08/31 13:34:47 hbrinkm 1.49.32.13: #i51089# NumOrNoNum: Only touch paragraphs with hard numbering that shows number 2005/08/30 12:58:49 hbrinkm 1.49.32.12: #i51089# PropagateOutlineRule: SyncNumAndNumRule after setting of outline level 2005/08/26 13:43:44 hbrinkm 1.49.32.11: #i51089# SetNumRuleStart: bool <-> BOOL 2005/08/23 07:35:20 hbrinkm 1.49.32.10: #i51089# {Outline|Num}UpDown: call ChkCondColls if modified 2005/08/16 15:31:02 hbrinkm 1.49.32.9: #i51089# FindNumRulePtrWithPool 2005/08/11 09:27:49 hbrinkm 1.49.32.8: #i51089# SetNumRule: do not access zero pointer to numrule 2005/08/10 08:07:25 hbrinkm 1.49.32.7: #121445# PropagateOutlineRule: UpdateOutlineNode 2005/08/09 12:36:44 hbrinkm 1.49.32.6: #i51089# 2005/08/04 09:27:27 hbrinkm 1.49.32.5: #121445# PropagateOutlineRule: only propagate numrule if IsOutlineLevelYieldsOutlineRule returns false, #i51089# 2005/08/03 12:22:55 hbrinkm 1.49.32.4: RESYNC: (1.49-1.50); FILE MERGED 2005/07/11 09:14:57 hbrinkm 1.49.32.3: #i51089# NumOrNoNum: only succeed if a real change is made 2005/07/07 12:49:41 hbrinkm 1.49.32.2: #i51089# PropagateOutlineRule: If a paragraph style has outline level and no numbering rule, set the documents's outline numbering rule, MakeUniqueRules: do not alter outline numbering rules 2005/06/22 10:24:52 hbrinkm 1.49.32.1: #i51089# new implementation of numbering
2005-11-08 16:16:30 +00:00
#include <SwStyleNameMapper.hxx>
#include <SwNodeNum.hxx>
// --> OD 2008-03-13 #refactorlists#
#include <list.hxx>
#include <listfunc.hxx>
// <--
2000-09-18 23:08:29 +00:00
#include <map>
2000-09-18 23:08:29 +00:00
inline BYTE GetUpperLvlChg( BYTE nCurLvl, BYTE nLevel, USHORT nMask )
{
if( 1 < nLevel )
{
if( nCurLvl + 1 >= nLevel )
nCurLvl -= nLevel - 1;
else
nCurLvl = 0;
}
return static_cast<BYTE>((nMask - 1) & ~(( 1 << nCurLvl ) - 1));
2000-09-18 23:08:29 +00:00
}
void SwDoc::SetOutlineNumRule( const SwNumRule& rRule )
{
if( pOutlineRule )
(*pOutlineRule) = rRule;
else
{
pOutlineRule = new SwNumRule( rRule );
AddNumRule(pOutlineRule); // #i36749#
2000-09-18 23:08:29 +00:00
}
2000-09-18 23:08:29 +00:00
pOutlineRule->SetRuleType( OUTLINE_RULE );
// --> OD 2008-07-08 #i91400#
2000-09-18 23:08:29 +00:00
pOutlineRule->SetName( String::CreateFromAscii(
SwNumRule::GetOutlineRuleName() ),
*this);
// <--
// --> OD 2006-09-21 #i69522#
// assure that the outline numbering rule is an automatic rule
pOutlineRule->SetAutoRule( TRUE );
// <--
2000-09-18 23:08:29 +00:00
// teste ob die evt. gesetzen CharFormate in diesem Document
// definiert sind
pOutlineRule->CheckCharFmts( this );
// --> OD 2008-05-13 #refactorlists#
// notify text nodes, which are registered at the outline style, about the
// changed outline style
SwNumRule::tTxtNodeList aTxtNodeList;
pOutlineRule->GetTxtNodeList( aTxtNodeList );
for ( SwNumRule::tTxtNodeList::iterator aIter = aTxtNodeList.begin();
aIter != aTxtNodeList.end(); ++aIter )
{
SwTxtNode* pTxtNd = *aIter;
pTxtNd->NumRuleChgd();
CWS-TOOLING: integrate CWS sw31bf04 2009-01-21 14:24:10 +0100 od r266670 : #i59051# correction of metric change for PolyPolygonBezier needed 2009-01-21 09:35:44 +0100 od r266632 : #i96062# adjustment of fix after rebasing 2009-01-21 09:34:56 +0100 od r266631 : #i94152# adjustment of fix after rebasing 2009-01-20 16:43:12 +0100 od r266596 : CWS-TOOLING: rebase CWS sw31bf04 to trunk@266428 (milestone: DEV300:m39) 2009-01-20 11:52:22 +0100 od r266561 : #i94152 method <SwDoc::SetOutlineNumRule(..)> - assure that at outline list style registered text node have the correct list level set 2009-01-20 10:43:53 +0100 od r266556 : #i93399# methods <SwNumRule::SetIndent(..)> and <SwNumRule::ChangeIndent(..)> - adjust also the list tab position, if a list tab stop is applied 2009-01-16 16:26:56 +0100 od r266432 : #i59051# adjust Writer's UNO-API for drawing objects - correct conversion of "StartPosition" and "EndPosition" - conversion of "PolyPolygonBezier" 2009-01-16 16:20:49 +0100 od r266430 : #i59051# - adjust UNO-API of connector shape -- convert "PolyPolygonBezier" to correct metric -- convert "StartPosition" and "EndPosition" in set-method before applying anchor position - adjust UNO-API of measure shape -- convert "StartPosition" and "EndPosition" to correct metric 2009-01-16 15:01:21 +0100 od r266419 : #i95698# method <SwFrm::GetPrevSctLeaf(..)> - only columns as previous section leaves for tables inside sections, which are inside another table. 2009-01-14 14:34:58 +0100 od r266304 : #i96092# method <HandleResetAttrAtTxtNode::~HandleResetAttrAtTxtNode()> - set list level to outline level, if needed. 2009-01-13 17:09:43 +0100 od r266238 : #i98037# method <SwWW8ImplReader::IsObjectLayoutInTableCell(..)> - adjust evaluation of WW8 attributes 2009-01-13 11:49:48 +0100 od r266203 : #i94187# method <SwTxtFormatter::NewTabPortion(..)> - correct consideration of compatibility option TAB_AT_LEFT_INDENT_FOR_PARA_IN_LIST 2009-01-13 11:48:45 +0100 od r266202 : #i94187# method <OutWW8_SwTxtNode(..)> - set list style directly at paragraph only in position and space mode LABEL_WIDTH_AND_POSITION 2009-01-12 12:22:58 +0100 od r266143 : #i70582# method <SwFlyAtCntFrm::SetAbsPos(..)> and local method <lcl_CalcDownDist(..)> - correct determination of anchor's frame top for object positioning.
2009-02-13 10:05:35 +00:00
// --> OD 2009-01-20 #i94152#
// assure that list level corresponds to outline level
if ( pTxtNd->GetTxtColl()->IsAssignedToListLevelOfOutlineStyle() &&
pTxtNd->GetAttrListLevel() != pTxtNd->GetTxtColl()->GetAssignedOutlineStyleLevel() )
{
pTxtNd->SetAttrListLevel( pTxtNd->GetTxtColl()->GetAssignedOutlineStyleLevel() );
}
// <--
}
// <--
PropagateOutlineRule();
pOutlineRule->SetInvalidRule(TRUE);
UpdateNumRule();
// gibt es Fussnoten && gilt Kapitelweises Nummerieren, dann updaten
if( GetFtnIdxs().Count() && FTNNUM_CHAPTER == GetFtnInfo().eNum )
GetFtnIdxs().UpdateAllFtn();
UpdateExpFlds(NULL, true);
2000-09-18 23:08:29 +00:00
SetModified();
}
void SwDoc::PropagateOutlineRule()
{
for (USHORT n = 0; n < pTxtFmtCollTbl->Count(); n++)
{
SwTxtFmtColl *pColl = (*pTxtFmtCollTbl)[n];
CWS-TOOLING: integrate CWS outlinelevel 2008-12-19 10:32:51 +0100 od r265718 : #i70748# method <SwWW8Writer::StartTOX(..)> - correction for custom to outline style assigned paragraph styles 2008-12-19 09:24:41 +0100 od r265715 : #i70748# method <HandleModifyAtTxtNode(..)> - retrieve former applied list style before potential reset of empty list style due to set outline level 2008-12-17 15:33:57 +0100 hde r265608 : #i97013# 2008-12-17 14:43:42 +0100 od r265603 : #i70748# adjust fix i44177 - adjustment of to outline style assigned paragraph styles only for OOo-Templates. 2008-12-17 12:59:42 +0100 od r265598 : #i70748# method <XMLTextImportHelper::SetStyleAndAttrs(..)> - special handling of OOo 2.x document regarding outline numbering of headings. 2008-12-17 12:45:53 +0100 od r265597 : #i70748# method <HandleModifyAtTxtNode(..)> - correct determination of new and former applied list style 2008-12-17 10:18:41 +0100 od r265581 : #i97312# method <XMLTextNumRuleInfo::Set(..)> - check, if numbering rules instance contains any numbering rule. 2008-12-16 14:34:22 +0100 hde r265542 : #i97013 2008-12-16 14:20:24 +0100 od r265541 : #i70748# adjust documentation of "Which"-ID numbers 2008-12-16 14:19:49 +0100 od r265539 : #i70748# Adjust Attribute-Function-Mapping table due to new attribute 2008-12-16 14:06:24 +0100 od r265538 : #i70748# - Correct handling of to outline style assigned paragraph styles on reset of all paragraph style attributes - WW8 import: Consider refactoring of paragraph style's outline level attribute - NO_NUMBERING define no longer exsits. 2008-12-16 10:37:19 +0100 od r265530 : #i70478# Correction on moving outline paragraph up respectively down in its outline level: - Check also outline paragraph, which are not an outline via a to outline style assigned paragraph style, if action is applicable. 2008-12-16 09:10:13 +0100 hde r265523 : #i97277 2008-12-16 09:09:30 +0100 hde r265522 : #i97277 2008-12-16 09:07:40 +0100 hde r265521 : Added control and purged obsolete id's 2008-12-10 13:09:36 +0100 od r265174 : #i70748# correction of previous fix due to warning-free code 2008-12-10 13:03:30 +0100 od r265172 : #i70748# method <XMLTextImportHelper::SetStyleAndAttrs(..)> - Due to performance issues avoid retrieving outline level value from paragraph's paragraph style for each paragraph. Instead retrieve current outline level value from paragraph, which is the inherited value from its paragraph style, and only when it is needed. 2008-12-09 16:50:36 +0100 ufi r265117 : help 2008-12-09 16:49:50 +0100 ufi r265116 : help 2008-12-09 15:45:05 +0100 od r265107 : #i70748# method <XMLTextImportHelper::SetStyleAndAttrs(..)> - some minor rework and check access to paragraph styles 2008-12-09 15:42:04 +0100 od r265106 : #i70748# adjust name of local variable to avoid hiding of class variable 2008-12-09 15:40:51 +0100 od r265105 : #i70748# correct initialization order 2008-12-09 15:35:07 +0100 od r265101 : #i70748# remove duplicate entry in certain property map 2008-12-09 15:33:39 +0100 od r265100 : #i70748# add end of file token 2008-12-07 15:11:54 +0100 zhaojianwei r264952 : conflicts left not to be resolved when cws rebase 2008-12-04 14:52:21 +0100 zhaojianwei r264846 : CWS-TOOLING: rebase CWS outlinelevel to trunk@264325 (milestone: DEV300:m36) 2008-11-28 03:42:09 +0100 zhaojianwei r264525 : #i70748#: migrate CWS outlinelevel to SVN 2008-11-28 03:41:39 +0100 zhaojianwei r264524 : #i70748#: migrate CWS outlinelevel to SVN 2008-11-28 03:41:11 +0100 zhaojianwei r264523 : #i70748#: migrate CWS outlinelevel to SVN
2009-01-07 11:57:24 +00:00
// if (NO_NUMBERING != pColl->GetOutlineLevel())//#outline level,zhaojianwei
if(pColl->IsAssignedToListLevelOfOutlineStyle())//<-end,zhaojianwei
{
SwClientIter aIter(*pColl);
// --> OD 2006-11-20 #i71764#
// Check only the list style, which is set at the paragraph style
const SwNumRuleItem & rCollRuleItem = pColl->GetNumRule( FALSE );
// <--
INTEGRATION: CWS swnumtree (1.49.32); FILE MERGED 2005/11/03 10:35:51 od 1.49.32.28: #i51089# improve performance - method <SwDoc::GetOutlineNumRule> now inline implemented. - consider change of <SwTxtNode::GetNum()> 2005/11/01 18:07:21 od 1.49.32.27: #i51089# - remove unused code 2005/10/26 10:47:23 od 1.49.32.26: RESYNC: (1.51-1.52); FILE MERGED 2005/10/26 09:34:37 od 1.49.32.25: #b6340308# <SwDoc::SetNumRule(..)> - Only clear numbering rule attribute at current text node, if its paragraph style already contains the new numbering rule. 2005/10/25 06:20:54 od 1.49.32.24: #i51089# - delete unused code. 2005/10/25 05:44:01 od 1.49.32.23: #i55391# <SwDoc::SearchNumRule(..)> - Investigate given start node, if requested. Request is indicated by new parameter <_bInvestigateStartNode> 2005/10/21 11:20:54 od 1.49.32.22: #i51089# - Only the counting of phantoms of the outline numbering rule depends on <SwDoc::IsOldNumbering()> 2005/10/21 08:33:31 od 1.49.32.21: #i55391# <SwDoc::SearchNumRule(..)> - start node has also been investigated. 2005/09/20 14:13:24 fme 1.49.32.20: #i51089# Removed compiler warnings 2005/09/20 11:16:23 hbrinkm 1.49.32.19: #i51089# SwNumRule::Invalidate->SwNumRule::SetInvalidRule(TRUE) 2005/09/14 13:37:29 hbrinkm 1.49.32.18: #i51089# SyncNumRulesAndNodes: UpdateOutlineNode 2005/09/13 20:27:33 hbrinkm 1.49.32.17: RESYNC: (1.50-1.51); FILE MERGED 2005/09/12 15:15:29 hbrinkm 1.49.32.16: #i51089# AddNumRuleRanges 2005/09/07 11:29:02 hbrinkm 1.49.32.15: #i51089# SyncNumRulesAndNodes 2005/09/01 14:46:47 hbrinkm 1.49.32.14: #i51089# NumOrNoNum: only remove hard numbering 2005/08/31 13:34:47 hbrinkm 1.49.32.13: #i51089# NumOrNoNum: Only touch paragraphs with hard numbering that shows number 2005/08/30 12:58:49 hbrinkm 1.49.32.12: #i51089# PropagateOutlineRule: SyncNumAndNumRule after setting of outline level 2005/08/26 13:43:44 hbrinkm 1.49.32.11: #i51089# SetNumRuleStart: bool <-> BOOL 2005/08/23 07:35:20 hbrinkm 1.49.32.10: #i51089# {Outline|Num}UpDown: call ChkCondColls if modified 2005/08/16 15:31:02 hbrinkm 1.49.32.9: #i51089# FindNumRulePtrWithPool 2005/08/11 09:27:49 hbrinkm 1.49.32.8: #i51089# SetNumRule: do not access zero pointer to numrule 2005/08/10 08:07:25 hbrinkm 1.49.32.7: #121445# PropagateOutlineRule: UpdateOutlineNode 2005/08/09 12:36:44 hbrinkm 1.49.32.6: #i51089# 2005/08/04 09:27:27 hbrinkm 1.49.32.5: #121445# PropagateOutlineRule: only propagate numrule if IsOutlineLevelYieldsOutlineRule returns false, #i51089# 2005/08/03 12:22:55 hbrinkm 1.49.32.4: RESYNC: (1.49-1.50); FILE MERGED 2005/07/11 09:14:57 hbrinkm 1.49.32.3: #i51089# NumOrNoNum: only succeed if a real change is made 2005/07/07 12:49:41 hbrinkm 1.49.32.2: #i51089# PropagateOutlineRule: If a paragraph style has outline level and no numbering rule, set the documents's outline numbering rule, MakeUniqueRules: do not alter outline numbering rules 2005/06/22 10:24:52 hbrinkm 1.49.32.1: #i51089# new implementation of numbering
2005-11-08 16:16:30 +00:00
// --> OD 2006-11-20 #i71764#
// Check on document setting OUTLINE_LEVEL_YIELDS_OUTLINE_RULE no longer needed.
if ( rCollRuleItem.GetValue().Len() == 0 )
// <--
INTEGRATION: CWS swnumtree (1.49.32); FILE MERGED 2005/11/03 10:35:51 od 1.49.32.28: #i51089# improve performance - method <SwDoc::GetOutlineNumRule> now inline implemented. - consider change of <SwTxtNode::GetNum()> 2005/11/01 18:07:21 od 1.49.32.27: #i51089# - remove unused code 2005/10/26 10:47:23 od 1.49.32.26: RESYNC: (1.51-1.52); FILE MERGED 2005/10/26 09:34:37 od 1.49.32.25: #b6340308# <SwDoc::SetNumRule(..)> - Only clear numbering rule attribute at current text node, if its paragraph style already contains the new numbering rule. 2005/10/25 06:20:54 od 1.49.32.24: #i51089# - delete unused code. 2005/10/25 05:44:01 od 1.49.32.23: #i55391# <SwDoc::SearchNumRule(..)> - Investigate given start node, if requested. Request is indicated by new parameter <_bInvestigateStartNode> 2005/10/21 11:20:54 od 1.49.32.22: #i51089# - Only the counting of phantoms of the outline numbering rule depends on <SwDoc::IsOldNumbering()> 2005/10/21 08:33:31 od 1.49.32.21: #i55391# <SwDoc::SearchNumRule(..)> - start node has also been investigated. 2005/09/20 14:13:24 fme 1.49.32.20: #i51089# Removed compiler warnings 2005/09/20 11:16:23 hbrinkm 1.49.32.19: #i51089# SwNumRule::Invalidate->SwNumRule::SetInvalidRule(TRUE) 2005/09/14 13:37:29 hbrinkm 1.49.32.18: #i51089# SyncNumRulesAndNodes: UpdateOutlineNode 2005/09/13 20:27:33 hbrinkm 1.49.32.17: RESYNC: (1.50-1.51); FILE MERGED 2005/09/12 15:15:29 hbrinkm 1.49.32.16: #i51089# AddNumRuleRanges 2005/09/07 11:29:02 hbrinkm 1.49.32.15: #i51089# SyncNumRulesAndNodes 2005/09/01 14:46:47 hbrinkm 1.49.32.14: #i51089# NumOrNoNum: only remove hard numbering 2005/08/31 13:34:47 hbrinkm 1.49.32.13: #i51089# NumOrNoNum: Only touch paragraphs with hard numbering that shows number 2005/08/30 12:58:49 hbrinkm 1.49.32.12: #i51089# PropagateOutlineRule: SyncNumAndNumRule after setting of outline level 2005/08/26 13:43:44 hbrinkm 1.49.32.11: #i51089# SetNumRuleStart: bool <-> BOOL 2005/08/23 07:35:20 hbrinkm 1.49.32.10: #i51089# {Outline|Num}UpDown: call ChkCondColls if modified 2005/08/16 15:31:02 hbrinkm 1.49.32.9: #i51089# FindNumRulePtrWithPool 2005/08/11 09:27:49 hbrinkm 1.49.32.8: #i51089# SetNumRule: do not access zero pointer to numrule 2005/08/10 08:07:25 hbrinkm 1.49.32.7: #121445# PropagateOutlineRule: UpdateOutlineNode 2005/08/09 12:36:44 hbrinkm 1.49.32.6: #i51089# 2005/08/04 09:27:27 hbrinkm 1.49.32.5: #121445# PropagateOutlineRule: only propagate numrule if IsOutlineLevelYieldsOutlineRule returns false, #i51089# 2005/08/03 12:22:55 hbrinkm 1.49.32.4: RESYNC: (1.49-1.50); FILE MERGED 2005/07/11 09:14:57 hbrinkm 1.49.32.3: #i51089# NumOrNoNum: only succeed if a real change is made 2005/07/07 12:49:41 hbrinkm 1.49.32.2: #i51089# PropagateOutlineRule: If a paragraph style has outline level and no numbering rule, set the documents's outline numbering rule, MakeUniqueRules: do not alter outline numbering rules 2005/06/22 10:24:52 hbrinkm 1.49.32.1: #i51089# new implementation of numbering
2005-11-08 16:16:30 +00:00
{
SwNumRule * pMyOutlineRule = GetOutlineNumRule();
INTEGRATION: CWS swnumtree (1.49.32); FILE MERGED 2005/11/03 10:35:51 od 1.49.32.28: #i51089# improve performance - method <SwDoc::GetOutlineNumRule> now inline implemented. - consider change of <SwTxtNode::GetNum()> 2005/11/01 18:07:21 od 1.49.32.27: #i51089# - remove unused code 2005/10/26 10:47:23 od 1.49.32.26: RESYNC: (1.51-1.52); FILE MERGED 2005/10/26 09:34:37 od 1.49.32.25: #b6340308# <SwDoc::SetNumRule(..)> - Only clear numbering rule attribute at current text node, if its paragraph style already contains the new numbering rule. 2005/10/25 06:20:54 od 1.49.32.24: #i51089# - delete unused code. 2005/10/25 05:44:01 od 1.49.32.23: #i55391# <SwDoc::SearchNumRule(..)> - Investigate given start node, if requested. Request is indicated by new parameter <_bInvestigateStartNode> 2005/10/21 11:20:54 od 1.49.32.22: #i51089# - Only the counting of phantoms of the outline numbering rule depends on <SwDoc::IsOldNumbering()> 2005/10/21 08:33:31 od 1.49.32.21: #i55391# <SwDoc::SearchNumRule(..)> - start node has also been investigated. 2005/09/20 14:13:24 fme 1.49.32.20: #i51089# Removed compiler warnings 2005/09/20 11:16:23 hbrinkm 1.49.32.19: #i51089# SwNumRule::Invalidate->SwNumRule::SetInvalidRule(TRUE) 2005/09/14 13:37:29 hbrinkm 1.49.32.18: #i51089# SyncNumRulesAndNodes: UpdateOutlineNode 2005/09/13 20:27:33 hbrinkm 1.49.32.17: RESYNC: (1.50-1.51); FILE MERGED 2005/09/12 15:15:29 hbrinkm 1.49.32.16: #i51089# AddNumRuleRanges 2005/09/07 11:29:02 hbrinkm 1.49.32.15: #i51089# SyncNumRulesAndNodes 2005/09/01 14:46:47 hbrinkm 1.49.32.14: #i51089# NumOrNoNum: only remove hard numbering 2005/08/31 13:34:47 hbrinkm 1.49.32.13: #i51089# NumOrNoNum: Only touch paragraphs with hard numbering that shows number 2005/08/30 12:58:49 hbrinkm 1.49.32.12: #i51089# PropagateOutlineRule: SyncNumAndNumRule after setting of outline level 2005/08/26 13:43:44 hbrinkm 1.49.32.11: #i51089# SetNumRuleStart: bool <-> BOOL 2005/08/23 07:35:20 hbrinkm 1.49.32.10: #i51089# {Outline|Num}UpDown: call ChkCondColls if modified 2005/08/16 15:31:02 hbrinkm 1.49.32.9: #i51089# FindNumRulePtrWithPool 2005/08/11 09:27:49 hbrinkm 1.49.32.8: #i51089# SetNumRule: do not access zero pointer to numrule 2005/08/10 08:07:25 hbrinkm 1.49.32.7: #121445# PropagateOutlineRule: UpdateOutlineNode 2005/08/09 12:36:44 hbrinkm 1.49.32.6: #i51089# 2005/08/04 09:27:27 hbrinkm 1.49.32.5: #121445# PropagateOutlineRule: only propagate numrule if IsOutlineLevelYieldsOutlineRule returns false, #i51089# 2005/08/03 12:22:55 hbrinkm 1.49.32.4: RESYNC: (1.49-1.50); FILE MERGED 2005/07/11 09:14:57 hbrinkm 1.49.32.3: #i51089# NumOrNoNum: only succeed if a real change is made 2005/07/07 12:49:41 hbrinkm 1.49.32.2: #i51089# PropagateOutlineRule: If a paragraph style has outline level and no numbering rule, set the documents's outline numbering rule, MakeUniqueRules: do not alter outline numbering rules 2005/06/22 10:24:52 hbrinkm 1.49.32.1: #i51089# new implementation of numbering
2005-11-08 16:16:30 +00:00
if (pMyOutlineRule)
INTEGRATION: CWS swnumtree (1.49.32); FILE MERGED 2005/11/03 10:35:51 od 1.49.32.28: #i51089# improve performance - method <SwDoc::GetOutlineNumRule> now inline implemented. - consider change of <SwTxtNode::GetNum()> 2005/11/01 18:07:21 od 1.49.32.27: #i51089# - remove unused code 2005/10/26 10:47:23 od 1.49.32.26: RESYNC: (1.51-1.52); FILE MERGED 2005/10/26 09:34:37 od 1.49.32.25: #b6340308# <SwDoc::SetNumRule(..)> - Only clear numbering rule attribute at current text node, if its paragraph style already contains the new numbering rule. 2005/10/25 06:20:54 od 1.49.32.24: #i51089# - delete unused code. 2005/10/25 05:44:01 od 1.49.32.23: #i55391# <SwDoc::SearchNumRule(..)> - Investigate given start node, if requested. Request is indicated by new parameter <_bInvestigateStartNode> 2005/10/21 11:20:54 od 1.49.32.22: #i51089# - Only the counting of phantoms of the outline numbering rule depends on <SwDoc::IsOldNumbering()> 2005/10/21 08:33:31 od 1.49.32.21: #i55391# <SwDoc::SearchNumRule(..)> - start node has also been investigated. 2005/09/20 14:13:24 fme 1.49.32.20: #i51089# Removed compiler warnings 2005/09/20 11:16:23 hbrinkm 1.49.32.19: #i51089# SwNumRule::Invalidate->SwNumRule::SetInvalidRule(TRUE) 2005/09/14 13:37:29 hbrinkm 1.49.32.18: #i51089# SyncNumRulesAndNodes: UpdateOutlineNode 2005/09/13 20:27:33 hbrinkm 1.49.32.17: RESYNC: (1.50-1.51); FILE MERGED 2005/09/12 15:15:29 hbrinkm 1.49.32.16: #i51089# AddNumRuleRanges 2005/09/07 11:29:02 hbrinkm 1.49.32.15: #i51089# SyncNumRulesAndNodes 2005/09/01 14:46:47 hbrinkm 1.49.32.14: #i51089# NumOrNoNum: only remove hard numbering 2005/08/31 13:34:47 hbrinkm 1.49.32.13: #i51089# NumOrNoNum: Only touch paragraphs with hard numbering that shows number 2005/08/30 12:58:49 hbrinkm 1.49.32.12: #i51089# PropagateOutlineRule: SyncNumAndNumRule after setting of outline level 2005/08/26 13:43:44 hbrinkm 1.49.32.11: #i51089# SetNumRuleStart: bool <-> BOOL 2005/08/23 07:35:20 hbrinkm 1.49.32.10: #i51089# {Outline|Num}UpDown: call ChkCondColls if modified 2005/08/16 15:31:02 hbrinkm 1.49.32.9: #i51089# FindNumRulePtrWithPool 2005/08/11 09:27:49 hbrinkm 1.49.32.8: #i51089# SetNumRule: do not access zero pointer to numrule 2005/08/10 08:07:25 hbrinkm 1.49.32.7: #121445# PropagateOutlineRule: UpdateOutlineNode 2005/08/09 12:36:44 hbrinkm 1.49.32.6: #i51089# 2005/08/04 09:27:27 hbrinkm 1.49.32.5: #121445# PropagateOutlineRule: only propagate numrule if IsOutlineLevelYieldsOutlineRule returns false, #i51089# 2005/08/03 12:22:55 hbrinkm 1.49.32.4: RESYNC: (1.49-1.50); FILE MERGED 2005/07/11 09:14:57 hbrinkm 1.49.32.3: #i51089# NumOrNoNum: only succeed if a real change is made 2005/07/07 12:49:41 hbrinkm 1.49.32.2: #i51089# PropagateOutlineRule: If a paragraph style has outline level and no numbering rule, set the documents's outline numbering rule, MakeUniqueRules: do not alter outline numbering rules 2005/06/22 10:24:52 hbrinkm 1.49.32.1: #i51089# new implementation of numbering
2005-11-08 16:16:30 +00:00
{
SwNumRuleItem aNumItem( pMyOutlineRule->GetName() );
INTEGRATION: CWS swnumtree (1.49.32); FILE MERGED 2005/11/03 10:35:51 od 1.49.32.28: #i51089# improve performance - method <SwDoc::GetOutlineNumRule> now inline implemented. - consider change of <SwTxtNode::GetNum()> 2005/11/01 18:07:21 od 1.49.32.27: #i51089# - remove unused code 2005/10/26 10:47:23 od 1.49.32.26: RESYNC: (1.51-1.52); FILE MERGED 2005/10/26 09:34:37 od 1.49.32.25: #b6340308# <SwDoc::SetNumRule(..)> - Only clear numbering rule attribute at current text node, if its paragraph style already contains the new numbering rule. 2005/10/25 06:20:54 od 1.49.32.24: #i51089# - delete unused code. 2005/10/25 05:44:01 od 1.49.32.23: #i55391# <SwDoc::SearchNumRule(..)> - Investigate given start node, if requested. Request is indicated by new parameter <_bInvestigateStartNode> 2005/10/21 11:20:54 od 1.49.32.22: #i51089# - Only the counting of phantoms of the outline numbering rule depends on <SwDoc::IsOldNumbering()> 2005/10/21 08:33:31 od 1.49.32.21: #i55391# <SwDoc::SearchNumRule(..)> - start node has also been investigated. 2005/09/20 14:13:24 fme 1.49.32.20: #i51089# Removed compiler warnings 2005/09/20 11:16:23 hbrinkm 1.49.32.19: #i51089# SwNumRule::Invalidate->SwNumRule::SetInvalidRule(TRUE) 2005/09/14 13:37:29 hbrinkm 1.49.32.18: #i51089# SyncNumRulesAndNodes: UpdateOutlineNode 2005/09/13 20:27:33 hbrinkm 1.49.32.17: RESYNC: (1.50-1.51); FILE MERGED 2005/09/12 15:15:29 hbrinkm 1.49.32.16: #i51089# AddNumRuleRanges 2005/09/07 11:29:02 hbrinkm 1.49.32.15: #i51089# SyncNumRulesAndNodes 2005/09/01 14:46:47 hbrinkm 1.49.32.14: #i51089# NumOrNoNum: only remove hard numbering 2005/08/31 13:34:47 hbrinkm 1.49.32.13: #i51089# NumOrNoNum: Only touch paragraphs with hard numbering that shows number 2005/08/30 12:58:49 hbrinkm 1.49.32.12: #i51089# PropagateOutlineRule: SyncNumAndNumRule after setting of outline level 2005/08/26 13:43:44 hbrinkm 1.49.32.11: #i51089# SetNumRuleStart: bool <-> BOOL 2005/08/23 07:35:20 hbrinkm 1.49.32.10: #i51089# {Outline|Num}UpDown: call ChkCondColls if modified 2005/08/16 15:31:02 hbrinkm 1.49.32.9: #i51089# FindNumRulePtrWithPool 2005/08/11 09:27:49 hbrinkm 1.49.32.8: #i51089# SetNumRule: do not access zero pointer to numrule 2005/08/10 08:07:25 hbrinkm 1.49.32.7: #121445# PropagateOutlineRule: UpdateOutlineNode 2005/08/09 12:36:44 hbrinkm 1.49.32.6: #i51089# 2005/08/04 09:27:27 hbrinkm 1.49.32.5: #121445# PropagateOutlineRule: only propagate numrule if IsOutlineLevelYieldsOutlineRule returns false, #i51089# 2005/08/03 12:22:55 hbrinkm 1.49.32.4: RESYNC: (1.49-1.50); FILE MERGED 2005/07/11 09:14:57 hbrinkm 1.49.32.3: #i51089# NumOrNoNum: only succeed if a real change is made 2005/07/07 12:49:41 hbrinkm 1.49.32.2: #i51089# PropagateOutlineRule: If a paragraph style has outline level and no numbering rule, set the documents's outline numbering rule, MakeUniqueRules: do not alter outline numbering rules 2005/06/22 10:24:52 hbrinkm 1.49.32.1: #i51089# new implementation of numbering
2005-11-08 16:16:30 +00:00
pColl->SetFmtAttr(aNumItem);
INTEGRATION: CWS swnumtree (1.49.32); FILE MERGED 2005/11/03 10:35:51 od 1.49.32.28: #i51089# improve performance - method <SwDoc::GetOutlineNumRule> now inline implemented. - consider change of <SwTxtNode::GetNum()> 2005/11/01 18:07:21 od 1.49.32.27: #i51089# - remove unused code 2005/10/26 10:47:23 od 1.49.32.26: RESYNC: (1.51-1.52); FILE MERGED 2005/10/26 09:34:37 od 1.49.32.25: #b6340308# <SwDoc::SetNumRule(..)> - Only clear numbering rule attribute at current text node, if its paragraph style already contains the new numbering rule. 2005/10/25 06:20:54 od 1.49.32.24: #i51089# - delete unused code. 2005/10/25 05:44:01 od 1.49.32.23: #i55391# <SwDoc::SearchNumRule(..)> - Investigate given start node, if requested. Request is indicated by new parameter <_bInvestigateStartNode> 2005/10/21 11:20:54 od 1.49.32.22: #i51089# - Only the counting of phantoms of the outline numbering rule depends on <SwDoc::IsOldNumbering()> 2005/10/21 08:33:31 od 1.49.32.21: #i55391# <SwDoc::SearchNumRule(..)> - start node has also been investigated. 2005/09/20 14:13:24 fme 1.49.32.20: #i51089# Removed compiler warnings 2005/09/20 11:16:23 hbrinkm 1.49.32.19: #i51089# SwNumRule::Invalidate->SwNumRule::SetInvalidRule(TRUE) 2005/09/14 13:37:29 hbrinkm 1.49.32.18: #i51089# SyncNumRulesAndNodes: UpdateOutlineNode 2005/09/13 20:27:33 hbrinkm 1.49.32.17: RESYNC: (1.50-1.51); FILE MERGED 2005/09/12 15:15:29 hbrinkm 1.49.32.16: #i51089# AddNumRuleRanges 2005/09/07 11:29:02 hbrinkm 1.49.32.15: #i51089# SyncNumRulesAndNodes 2005/09/01 14:46:47 hbrinkm 1.49.32.14: #i51089# NumOrNoNum: only remove hard numbering 2005/08/31 13:34:47 hbrinkm 1.49.32.13: #i51089# NumOrNoNum: Only touch paragraphs with hard numbering that shows number 2005/08/30 12:58:49 hbrinkm 1.49.32.12: #i51089# PropagateOutlineRule: SyncNumAndNumRule after setting of outline level 2005/08/26 13:43:44 hbrinkm 1.49.32.11: #i51089# SetNumRuleStart: bool <-> BOOL 2005/08/23 07:35:20 hbrinkm 1.49.32.10: #i51089# {Outline|Num}UpDown: call ChkCondColls if modified 2005/08/16 15:31:02 hbrinkm 1.49.32.9: #i51089# FindNumRulePtrWithPool 2005/08/11 09:27:49 hbrinkm 1.49.32.8: #i51089# SetNumRule: do not access zero pointer to numrule 2005/08/10 08:07:25 hbrinkm 1.49.32.7: #121445# PropagateOutlineRule: UpdateOutlineNode 2005/08/09 12:36:44 hbrinkm 1.49.32.6: #i51089# 2005/08/04 09:27:27 hbrinkm 1.49.32.5: #121445# PropagateOutlineRule: only propagate numrule if IsOutlineLevelYieldsOutlineRule returns false, #i51089# 2005/08/03 12:22:55 hbrinkm 1.49.32.4: RESYNC: (1.49-1.50); FILE MERGED 2005/07/11 09:14:57 hbrinkm 1.49.32.3: #i51089# NumOrNoNum: only succeed if a real change is made 2005/07/07 12:49:41 hbrinkm 1.49.32.2: #i51089# PropagateOutlineRule: If a paragraph style has outline level and no numbering rule, set the documents's outline numbering rule, MakeUniqueRules: do not alter outline numbering rules 2005/06/22 10:24:52 hbrinkm 1.49.32.1: #i51089# new implementation of numbering
2005-11-08 16:16:30 +00:00
}
}
}
}
}
2000-09-18 23:08:29 +00:00
// Hoch-/Runterstufen
BOOL SwDoc::OutlineUpDown( const SwPaM& rPam, short nOffset )
{
if( !GetNodes().GetOutLineNds().Count() || !nOffset )
return FALSE;
// den Bereich feststellen
const SwOutlineNodes& rOutlNds = GetNodes().GetOutLineNds();
const SwNodePtr pSttNd = (SwNodePtr)&rPam.Start()->nNode.GetNode();
const SwNodePtr pEndNd = (SwNodePtr)&rPam.End()->nNode.GetNode();
USHORT nSttPos, nEndPos;
if( !rOutlNds.Seek_Entry( pSttNd, &nSttPos ) &&
!nSttPos-- )
// wir stehen in keiner "Outline-Section"
return FALSE;
if( rOutlNds.Seek_Entry( pEndNd, &nEndPos ) )
++nEndPos;
// jetzt haben wir unseren Bereich im OutlineNodes-Array
// dann prufe ersmal, ob nicht unterebenen aufgehoben werden
// (Stufung ueber die Grenzen)
USHORT n;
2000-09-18 23:08:29 +00:00
// so, dann koennen wir:
// 1. Vorlagen-Array anlegen
SwTxtFmtColl* aCollArr[ MAXLEVEL ];
memset( aCollArr, 0, sizeof( SwTxtFmtColl* ) * MAXLEVEL );
for( n = 0; n < pTxtFmtCollTbl->Count(); ++n )
{
CWS-TOOLING: integrate CWS outlinelevel 2008-12-19 10:32:51 +0100 od r265718 : #i70748# method <SwWW8Writer::StartTOX(..)> - correction for custom to outline style assigned paragraph styles 2008-12-19 09:24:41 +0100 od r265715 : #i70748# method <HandleModifyAtTxtNode(..)> - retrieve former applied list style before potential reset of empty list style due to set outline level 2008-12-17 15:33:57 +0100 hde r265608 : #i97013# 2008-12-17 14:43:42 +0100 od r265603 : #i70748# adjust fix i44177 - adjustment of to outline style assigned paragraph styles only for OOo-Templates. 2008-12-17 12:59:42 +0100 od r265598 : #i70748# method <XMLTextImportHelper::SetStyleAndAttrs(..)> - special handling of OOo 2.x document regarding outline numbering of headings. 2008-12-17 12:45:53 +0100 od r265597 : #i70748# method <HandleModifyAtTxtNode(..)> - correct determination of new and former applied list style 2008-12-17 10:18:41 +0100 od r265581 : #i97312# method <XMLTextNumRuleInfo::Set(..)> - check, if numbering rules instance contains any numbering rule. 2008-12-16 14:34:22 +0100 hde r265542 : #i97013 2008-12-16 14:20:24 +0100 od r265541 : #i70748# adjust documentation of "Which"-ID numbers 2008-12-16 14:19:49 +0100 od r265539 : #i70748# Adjust Attribute-Function-Mapping table due to new attribute 2008-12-16 14:06:24 +0100 od r265538 : #i70748# - Correct handling of to outline style assigned paragraph styles on reset of all paragraph style attributes - WW8 import: Consider refactoring of paragraph style's outline level attribute - NO_NUMBERING define no longer exsits. 2008-12-16 10:37:19 +0100 od r265530 : #i70478# Correction on moving outline paragraph up respectively down in its outline level: - Check also outline paragraph, which are not an outline via a to outline style assigned paragraph style, if action is applicable. 2008-12-16 09:10:13 +0100 hde r265523 : #i97277 2008-12-16 09:09:30 +0100 hde r265522 : #i97277 2008-12-16 09:07:40 +0100 hde r265521 : Added control and purged obsolete id's 2008-12-10 13:09:36 +0100 od r265174 : #i70748# correction of previous fix due to warning-free code 2008-12-10 13:03:30 +0100 od r265172 : #i70748# method <XMLTextImportHelper::SetStyleAndAttrs(..)> - Due to performance issues avoid retrieving outline level value from paragraph's paragraph style for each paragraph. Instead retrieve current outline level value from paragraph, which is the inherited value from its paragraph style, and only when it is needed. 2008-12-09 16:50:36 +0100 ufi r265117 : help 2008-12-09 16:49:50 +0100 ufi r265116 : help 2008-12-09 15:45:05 +0100 od r265107 : #i70748# method <XMLTextImportHelper::SetStyleAndAttrs(..)> - some minor rework and check access to paragraph styles 2008-12-09 15:42:04 +0100 od r265106 : #i70748# adjust name of local variable to avoid hiding of class variable 2008-12-09 15:40:51 +0100 od r265105 : #i70748# correct initialization order 2008-12-09 15:35:07 +0100 od r265101 : #i70748# remove duplicate entry in certain property map 2008-12-09 15:33:39 +0100 od r265100 : #i70748# add end of file token 2008-12-07 15:11:54 +0100 zhaojianwei r264952 : conflicts left not to be resolved when cws rebase 2008-12-04 14:52:21 +0100 zhaojianwei r264846 : CWS-TOOLING: rebase CWS outlinelevel to trunk@264325 (milestone: DEV300:m36) 2008-11-28 03:42:09 +0100 zhaojianwei r264525 : #i70748#: migrate CWS outlinelevel to SVN 2008-11-28 03:41:39 +0100 zhaojianwei r264524 : #i70748#: migrate CWS outlinelevel to SVN 2008-11-28 03:41:11 +0100 zhaojianwei r264523 : #i70748#: migrate CWS outlinelevel to SVN
2009-01-07 11:57:24 +00:00
//BYTE nLevel = (*pTxtFmtCollTbl)[ n ]->GetOutlineLevel();//#outline level,zhaojianwei
//if( nLevel < MAXLEVEL )
// aCollArr[ nLevel ] = (*pTxtFmtCollTbl)[ n ];
if((*pTxtFmtCollTbl)[ n ]->IsAssignedToListLevelOfOutlineStyle())
{
const int nLevel = (*pTxtFmtCollTbl)[ n ]->GetAssignedOutlineStyleLevel();
2000-09-18 23:08:29 +00:00
aCollArr[ nLevel ] = (*pTxtFmtCollTbl)[ n ];
CWS-TOOLING: integrate CWS outlinelevel 2008-12-19 10:32:51 +0100 od r265718 : #i70748# method <SwWW8Writer::StartTOX(..)> - correction for custom to outline style assigned paragraph styles 2008-12-19 09:24:41 +0100 od r265715 : #i70748# method <HandleModifyAtTxtNode(..)> - retrieve former applied list style before potential reset of empty list style due to set outline level 2008-12-17 15:33:57 +0100 hde r265608 : #i97013# 2008-12-17 14:43:42 +0100 od r265603 : #i70748# adjust fix i44177 - adjustment of to outline style assigned paragraph styles only for OOo-Templates. 2008-12-17 12:59:42 +0100 od r265598 : #i70748# method <XMLTextImportHelper::SetStyleAndAttrs(..)> - special handling of OOo 2.x document regarding outline numbering of headings. 2008-12-17 12:45:53 +0100 od r265597 : #i70748# method <HandleModifyAtTxtNode(..)> - correct determination of new and former applied list style 2008-12-17 10:18:41 +0100 od r265581 : #i97312# method <XMLTextNumRuleInfo::Set(..)> - check, if numbering rules instance contains any numbering rule. 2008-12-16 14:34:22 +0100 hde r265542 : #i97013 2008-12-16 14:20:24 +0100 od r265541 : #i70748# adjust documentation of "Which"-ID numbers 2008-12-16 14:19:49 +0100 od r265539 : #i70748# Adjust Attribute-Function-Mapping table due to new attribute 2008-12-16 14:06:24 +0100 od r265538 : #i70748# - Correct handling of to outline style assigned paragraph styles on reset of all paragraph style attributes - WW8 import: Consider refactoring of paragraph style's outline level attribute - NO_NUMBERING define no longer exsits. 2008-12-16 10:37:19 +0100 od r265530 : #i70478# Correction on moving outline paragraph up respectively down in its outline level: - Check also outline paragraph, which are not an outline via a to outline style assigned paragraph style, if action is applicable. 2008-12-16 09:10:13 +0100 hde r265523 : #i97277 2008-12-16 09:09:30 +0100 hde r265522 : #i97277 2008-12-16 09:07:40 +0100 hde r265521 : Added control and purged obsolete id's 2008-12-10 13:09:36 +0100 od r265174 : #i70748# correction of previous fix due to warning-free code 2008-12-10 13:03:30 +0100 od r265172 : #i70748# method <XMLTextImportHelper::SetStyleAndAttrs(..)> - Due to performance issues avoid retrieving outline level value from paragraph's paragraph style for each paragraph. Instead retrieve current outline level value from paragraph, which is the inherited value from its paragraph style, and only when it is needed. 2008-12-09 16:50:36 +0100 ufi r265117 : help 2008-12-09 16:49:50 +0100 ufi r265116 : help 2008-12-09 15:45:05 +0100 od r265107 : #i70748# method <XMLTextImportHelper::SetStyleAndAttrs(..)> - some minor rework and check access to paragraph styles 2008-12-09 15:42:04 +0100 od r265106 : #i70748# adjust name of local variable to avoid hiding of class variable 2008-12-09 15:40:51 +0100 od r265105 : #i70748# correct initialization order 2008-12-09 15:35:07 +0100 od r265101 : #i70748# remove duplicate entry in certain property map 2008-12-09 15:33:39 +0100 od r265100 : #i70748# add end of file token 2008-12-07 15:11:54 +0100 zhaojianwei r264952 : conflicts left not to be resolved when cws rebase 2008-12-04 14:52:21 +0100 zhaojianwei r264846 : CWS-TOOLING: rebase CWS outlinelevel to trunk@264325 (milestone: DEV300:m36) 2008-11-28 03:42:09 +0100 zhaojianwei r264525 : #i70748#: migrate CWS outlinelevel to SVN 2008-11-28 03:41:39 +0100 zhaojianwei r264524 : #i70748#: migrate CWS outlinelevel to SVN 2008-11-28 03:41:11 +0100 zhaojianwei r264523 : #i70748#: migrate CWS outlinelevel to SVN
2009-01-07 11:57:24 +00:00
}//<-end,zhaojianwei
2000-09-18 23:08:29 +00:00
}
/* --> #111107# */
/* Find the last occupied level (backward). */
for (n = MAXLEVEL - 1; n > 0; n--)
{
if (aCollArr[n] != 0)
break;
}
/* If an occupied level is found, choose next level (which IS
unoccupied) until a valid level is found. If no occupied level
was found n is 0 and aCollArr[0] is 0. In this case no demoting
is possible. */
if (aCollArr[n] != 0)
{
while (n < MAXLEVEL - 1)
{
n++;
SwTxtFmtColl *aTmpColl =
GetTxtCollFromPool(static_cast<sal_uInt16>(RES_POOLCOLL_HEADLINE1 + n));
CWS-TOOLING: integrate CWS outlinelevel 2008-12-19 10:32:51 +0100 od r265718 : #i70748# method <SwWW8Writer::StartTOX(..)> - correction for custom to outline style assigned paragraph styles 2008-12-19 09:24:41 +0100 od r265715 : #i70748# method <HandleModifyAtTxtNode(..)> - retrieve former applied list style before potential reset of empty list style due to set outline level 2008-12-17 15:33:57 +0100 hde r265608 : #i97013# 2008-12-17 14:43:42 +0100 od r265603 : #i70748# adjust fix i44177 - adjustment of to outline style assigned paragraph styles only for OOo-Templates. 2008-12-17 12:59:42 +0100 od r265598 : #i70748# method <XMLTextImportHelper::SetStyleAndAttrs(..)> - special handling of OOo 2.x document regarding outline numbering of headings. 2008-12-17 12:45:53 +0100 od r265597 : #i70748# method <HandleModifyAtTxtNode(..)> - correct determination of new and former applied list style 2008-12-17 10:18:41 +0100 od r265581 : #i97312# method <XMLTextNumRuleInfo::Set(..)> - check, if numbering rules instance contains any numbering rule. 2008-12-16 14:34:22 +0100 hde r265542 : #i97013 2008-12-16 14:20:24 +0100 od r265541 : #i70748# adjust documentation of "Which"-ID numbers 2008-12-16 14:19:49 +0100 od r265539 : #i70748# Adjust Attribute-Function-Mapping table due to new attribute 2008-12-16 14:06:24 +0100 od r265538 : #i70748# - Correct handling of to outline style assigned paragraph styles on reset of all paragraph style attributes - WW8 import: Consider refactoring of paragraph style's outline level attribute - NO_NUMBERING define no longer exsits. 2008-12-16 10:37:19 +0100 od r265530 : #i70478# Correction on moving outline paragraph up respectively down in its outline level: - Check also outline paragraph, which are not an outline via a to outline style assigned paragraph style, if action is applicable. 2008-12-16 09:10:13 +0100 hde r265523 : #i97277 2008-12-16 09:09:30 +0100 hde r265522 : #i97277 2008-12-16 09:07:40 +0100 hde r265521 : Added control and purged obsolete id's 2008-12-10 13:09:36 +0100 od r265174 : #i70748# correction of previous fix due to warning-free code 2008-12-10 13:03:30 +0100 od r265172 : #i70748# method <XMLTextImportHelper::SetStyleAndAttrs(..)> - Due to performance issues avoid retrieving outline level value from paragraph's paragraph style for each paragraph. Instead retrieve current outline level value from paragraph, which is the inherited value from its paragraph style, and only when it is needed. 2008-12-09 16:50:36 +0100 ufi r265117 : help 2008-12-09 16:49:50 +0100 ufi r265116 : help 2008-12-09 15:45:05 +0100 od r265107 : #i70748# method <XMLTextImportHelper::SetStyleAndAttrs(..)> - some minor rework and check access to paragraph styles 2008-12-09 15:42:04 +0100 od r265106 : #i70748# adjust name of local variable to avoid hiding of class variable 2008-12-09 15:40:51 +0100 od r265105 : #i70748# correct initialization order 2008-12-09 15:35:07 +0100 od r265101 : #i70748# remove duplicate entry in certain property map 2008-12-09 15:33:39 +0100 od r265100 : #i70748# add end of file token 2008-12-07 15:11:54 +0100 zhaojianwei r264952 : conflicts left not to be resolved when cws rebase 2008-12-04 14:52:21 +0100 zhaojianwei r264846 : CWS-TOOLING: rebase CWS outlinelevel to trunk@264325 (milestone: DEV300:m36) 2008-11-28 03:42:09 +0100 zhaojianwei r264525 : #i70748#: migrate CWS outlinelevel to SVN 2008-11-28 03:41:39 +0100 zhaojianwei r264524 : #i70748#: migrate CWS outlinelevel to SVN 2008-11-28 03:41:11 +0100 zhaojianwei r264523 : #i70748#: migrate CWS outlinelevel to SVN
2009-01-07 11:57:24 +00:00
//if (aTmpColl->GetOutlineLevel() == n)//#outline level,zhaojianwei
if( aTmpColl->IsAssignedToListLevelOfOutlineStyle() &&
aTmpColl->GetAssignedOutlineStyleLevel() == n )//<-end,zhaojianwei
{
aCollArr[n] = aTmpColl;
break;
}
}
}
/* Find the first occupied level (forward). */
for (n = 0; n < MAXLEVEL - 1; n++)
{
if (aCollArr[n] != 0)
break;
}
/* If an occupied level is found, choose previous level (which IS
unoccupied) until a valid level is found. If no occupied level
was found n is MAXLEVEL - 1 and aCollArr[MAXLEVEL - 1] is 0. In
this case no demoting is possible. */
if (aCollArr[n] != 0)
{
while (n > 0)
{
n--;
SwTxtFmtColl *aTmpColl =
GetTxtCollFromPool(static_cast<sal_uInt16>(RES_POOLCOLL_HEADLINE1 + n));
CWS-TOOLING: integrate CWS outlinelevel 2008-12-19 10:32:51 +0100 od r265718 : #i70748# method <SwWW8Writer::StartTOX(..)> - correction for custom to outline style assigned paragraph styles 2008-12-19 09:24:41 +0100 od r265715 : #i70748# method <HandleModifyAtTxtNode(..)> - retrieve former applied list style before potential reset of empty list style due to set outline level 2008-12-17 15:33:57 +0100 hde r265608 : #i97013# 2008-12-17 14:43:42 +0100 od r265603 : #i70748# adjust fix i44177 - adjustment of to outline style assigned paragraph styles only for OOo-Templates. 2008-12-17 12:59:42 +0100 od r265598 : #i70748# method <XMLTextImportHelper::SetStyleAndAttrs(..)> - special handling of OOo 2.x document regarding outline numbering of headings. 2008-12-17 12:45:53 +0100 od r265597 : #i70748# method <HandleModifyAtTxtNode(..)> - correct determination of new and former applied list style 2008-12-17 10:18:41 +0100 od r265581 : #i97312# method <XMLTextNumRuleInfo::Set(..)> - check, if numbering rules instance contains any numbering rule. 2008-12-16 14:34:22 +0100 hde r265542 : #i97013 2008-12-16 14:20:24 +0100 od r265541 : #i70748# adjust documentation of "Which"-ID numbers 2008-12-16 14:19:49 +0100 od r265539 : #i70748# Adjust Attribute-Function-Mapping table due to new attribute 2008-12-16 14:06:24 +0100 od r265538 : #i70748# - Correct handling of to outline style assigned paragraph styles on reset of all paragraph style attributes - WW8 import: Consider refactoring of paragraph style's outline level attribute - NO_NUMBERING define no longer exsits. 2008-12-16 10:37:19 +0100 od r265530 : #i70478# Correction on moving outline paragraph up respectively down in its outline level: - Check also outline paragraph, which are not an outline via a to outline style assigned paragraph style, if action is applicable. 2008-12-16 09:10:13 +0100 hde r265523 : #i97277 2008-12-16 09:09:30 +0100 hde r265522 : #i97277 2008-12-16 09:07:40 +0100 hde r265521 : Added control and purged obsolete id's 2008-12-10 13:09:36 +0100 od r265174 : #i70748# correction of previous fix due to warning-free code 2008-12-10 13:03:30 +0100 od r265172 : #i70748# method <XMLTextImportHelper::SetStyleAndAttrs(..)> - Due to performance issues avoid retrieving outline level value from paragraph's paragraph style for each paragraph. Instead retrieve current outline level value from paragraph, which is the inherited value from its paragraph style, and only when it is needed. 2008-12-09 16:50:36 +0100 ufi r265117 : help 2008-12-09 16:49:50 +0100 ufi r265116 : help 2008-12-09 15:45:05 +0100 od r265107 : #i70748# method <XMLTextImportHelper::SetStyleAndAttrs(..)> - some minor rework and check access to paragraph styles 2008-12-09 15:42:04 +0100 od r265106 : #i70748# adjust name of local variable to avoid hiding of class variable 2008-12-09 15:40:51 +0100 od r265105 : #i70748# correct initialization order 2008-12-09 15:35:07 +0100 od r265101 : #i70748# remove duplicate entry in certain property map 2008-12-09 15:33:39 +0100 od r265100 : #i70748# add end of file token 2008-12-07 15:11:54 +0100 zhaojianwei r264952 : conflicts left not to be resolved when cws rebase 2008-12-04 14:52:21 +0100 zhaojianwei r264846 : CWS-TOOLING: rebase CWS outlinelevel to trunk@264325 (milestone: DEV300:m36) 2008-11-28 03:42:09 +0100 zhaojianwei r264525 : #i70748#: migrate CWS outlinelevel to SVN 2008-11-28 03:41:39 +0100 zhaojianwei r264524 : #i70748#: migrate CWS outlinelevel to SVN 2008-11-28 03:41:11 +0100 zhaojianwei r264523 : #i70748#: migrate CWS outlinelevel to SVN
2009-01-07 11:57:24 +00:00
//if (aTmpColl->GetOutlineLevel() == n)//#outline level,zhaojianwei
if( aTmpColl->IsAssignedToListLevelOfOutlineStyle() &&
aTmpColl->GetAssignedOutlineStyleLevel() == n )//<-end,zhaojianwei
{
aCollArr[n] = aTmpColl;
break;
}
}
}
/* <-- #111107# */
/* --> #i13747#
Build a move table that states from which level an outline will
be moved to which other level. */
/* the move table
aMoveArr[n] = m: replace aCollArr[n] with aCollArr[m]
*/
int aMoveArr[MAXLEVEL];
int nStep; // step size for searching in aCollArr: -1 or 1
int nNum; // amount of steps for stepping in aCollArr
if (nOffset < 0)
{
nStep = -1;
nNum = -nOffset;
}
else
{
nStep = 1;
nNum = nOffset;
}
/* traverse aCollArr */
for (n = 0; n < MAXLEVEL; n++)
{
/* If outline level n has an assigned paragraph style step
nNum steps forwards (nStep == 1) or backwards (nStep ==
-1). One step is to go to the next non-null entry in
aCollArr in the selected direction. If nNum steps were
possible write the index of the entry found to aCollArr[n],
i.e. outline level n will be replaced by outline level
aCollArr[n].
If outline level n has no assigned paragraph style
aMoveArr[n] is set to -1.
*/
if (aCollArr[n] != NULL)
{
USHORT m = n;
int nCount = nNum;
while (nCount > 0 && m + nStep >= 0 && m + nStep < MAXLEVEL)
{
m = static_cast<USHORT>(m + nStep);
if (aCollArr[m] != NULL)
nCount--;
}
if (nCount == 0)
aMoveArr[n] = m;
else
aMoveArr[n] = -1;
}
else
aMoveArr[n] = -1;
}
/* If moving of the outline levels is applicable, i.e. for all
outline levels occuring in the document there has to be a valid
target outline level implied by aMoveArr. */
bool bMoveApplicable = true;
for (n = nSttPos; n < nEndPos; n++)
{
SwTxtNode* pTxtNd = rOutlNds[ n ]->GetTxtNode();
SwTxtFmtColl* pColl = pTxtNd->GetTxtColl();
CWS-TOOLING: integrate CWS outlinelevel 2008-12-19 10:32:51 +0100 od r265718 : #i70748# method <SwWW8Writer::StartTOX(..)> - correction for custom to outline style assigned paragraph styles 2008-12-19 09:24:41 +0100 od r265715 : #i70748# method <HandleModifyAtTxtNode(..)> - retrieve former applied list style before potential reset of empty list style due to set outline level 2008-12-17 15:33:57 +0100 hde r265608 : #i97013# 2008-12-17 14:43:42 +0100 od r265603 : #i70748# adjust fix i44177 - adjustment of to outline style assigned paragraph styles only for OOo-Templates. 2008-12-17 12:59:42 +0100 od r265598 : #i70748# method <XMLTextImportHelper::SetStyleAndAttrs(..)> - special handling of OOo 2.x document regarding outline numbering of headings. 2008-12-17 12:45:53 +0100 od r265597 : #i70748# method <HandleModifyAtTxtNode(..)> - correct determination of new and former applied list style 2008-12-17 10:18:41 +0100 od r265581 : #i97312# method <XMLTextNumRuleInfo::Set(..)> - check, if numbering rules instance contains any numbering rule. 2008-12-16 14:34:22 +0100 hde r265542 : #i97013 2008-12-16 14:20:24 +0100 od r265541 : #i70748# adjust documentation of "Which"-ID numbers 2008-12-16 14:19:49 +0100 od r265539 : #i70748# Adjust Attribute-Function-Mapping table due to new attribute 2008-12-16 14:06:24 +0100 od r265538 : #i70748# - Correct handling of to outline style assigned paragraph styles on reset of all paragraph style attributes - WW8 import: Consider refactoring of paragraph style's outline level attribute - NO_NUMBERING define no longer exsits. 2008-12-16 10:37:19 +0100 od r265530 : #i70478# Correction on moving outline paragraph up respectively down in its outline level: - Check also outline paragraph, which are not an outline via a to outline style assigned paragraph style, if action is applicable. 2008-12-16 09:10:13 +0100 hde r265523 : #i97277 2008-12-16 09:09:30 +0100 hde r265522 : #i97277 2008-12-16 09:07:40 +0100 hde r265521 : Added control and purged obsolete id's 2008-12-10 13:09:36 +0100 od r265174 : #i70748# correction of previous fix due to warning-free code 2008-12-10 13:03:30 +0100 od r265172 : #i70748# method <XMLTextImportHelper::SetStyleAndAttrs(..)> - Due to performance issues avoid retrieving outline level value from paragraph's paragraph style for each paragraph. Instead retrieve current outline level value from paragraph, which is the inherited value from its paragraph style, and only when it is needed. 2008-12-09 16:50:36 +0100 ufi r265117 : help 2008-12-09 16:49:50 +0100 ufi r265116 : help 2008-12-09 15:45:05 +0100 od r265107 : #i70748# method <XMLTextImportHelper::SetStyleAndAttrs(..)> - some minor rework and check access to paragraph styles 2008-12-09 15:42:04 +0100 od r265106 : #i70748# adjust name of local variable to avoid hiding of class variable 2008-12-09 15:40:51 +0100 od r265105 : #i70748# correct initialization order 2008-12-09 15:35:07 +0100 od r265101 : #i70748# remove duplicate entry in certain property map 2008-12-09 15:33:39 +0100 od r265100 : #i70748# add end of file token 2008-12-07 15:11:54 +0100 zhaojianwei r264952 : conflicts left not to be resolved when cws rebase 2008-12-04 14:52:21 +0100 zhaojianwei r264846 : CWS-TOOLING: rebase CWS outlinelevel to trunk@264325 (milestone: DEV300:m36) 2008-11-28 03:42:09 +0100 zhaojianwei r264525 : #i70748#: migrate CWS outlinelevel to SVN 2008-11-28 03:41:39 +0100 zhaojianwei r264524 : #i70748#: migrate CWS outlinelevel to SVN 2008-11-28 03:41:11 +0100 zhaojianwei r264523 : #i70748#: migrate CWS outlinelevel to SVN
2009-01-07 11:57:24 +00:00
// int nLevel = pColl->GetOutlineLevel();//#outline level,zhaojianwei
// if (aMoveArr[nLevel] == -1)
// bMoveApplicable = false;
if( pColl->IsAssignedToListLevelOfOutlineStyle() )
{
const int nLevel = pColl->GetAssignedOutlineStyleLevel();
if (aMoveArr[nLevel] == -1)
bMoveApplicable = false;
}//<-end,zhaojianwei
// --> OD 2008-12-16 #i70748#
// Check on outline level attribute of text node, if text node is
// not an outline via a to outline style assigned paragraph style.
else
{
const int nNewOutlineLevel = pTxtNd->GetAttrOutlineLevel() + nOffset;
if ( nNewOutlineLevel < 1 || nNewOutlineLevel > MAXLEVEL )
{
bMoveApplicable = false;
}
}
// <--
}
if (! bMoveApplicable )
return FALSE;
/* <-- #i13747 # */
2000-09-18 23:08:29 +00:00
if( DoesUndo() )
{
ClearRedo();
StartUndo(UNDO_OUTLINE_LR, NULL);
2000-09-18 23:08:29 +00:00
AppendUndo( new SwUndoOutlineLeftRight( rPam, nOffset ) );
}
// 2. allen Nodes die neue Vorlage zuweisen
n = nSttPos;
while( n < nEndPos)
2000-09-18 23:08:29 +00:00
{
SwTxtNode* pTxtNd = rOutlNds[ n ]->GetTxtNode();
SwTxtFmtColl* pColl = pTxtNd->GetTxtColl();
CWS-TOOLING: integrate CWS outlinelevel 2008-12-19 10:32:51 +0100 od r265718 : #i70748# method <SwWW8Writer::StartTOX(..)> - correction for custom to outline style assigned paragraph styles 2008-12-19 09:24:41 +0100 od r265715 : #i70748# method <HandleModifyAtTxtNode(..)> - retrieve former applied list style before potential reset of empty list style due to set outline level 2008-12-17 15:33:57 +0100 hde r265608 : #i97013# 2008-12-17 14:43:42 +0100 od r265603 : #i70748# adjust fix i44177 - adjustment of to outline style assigned paragraph styles only for OOo-Templates. 2008-12-17 12:59:42 +0100 od r265598 : #i70748# method <XMLTextImportHelper::SetStyleAndAttrs(..)> - special handling of OOo 2.x document regarding outline numbering of headings. 2008-12-17 12:45:53 +0100 od r265597 : #i70748# method <HandleModifyAtTxtNode(..)> - correct determination of new and former applied list style 2008-12-17 10:18:41 +0100 od r265581 : #i97312# method <XMLTextNumRuleInfo::Set(..)> - check, if numbering rules instance contains any numbering rule. 2008-12-16 14:34:22 +0100 hde r265542 : #i97013 2008-12-16 14:20:24 +0100 od r265541 : #i70748# adjust documentation of "Which"-ID numbers 2008-12-16 14:19:49 +0100 od r265539 : #i70748# Adjust Attribute-Function-Mapping table due to new attribute 2008-12-16 14:06:24 +0100 od r265538 : #i70748# - Correct handling of to outline style assigned paragraph styles on reset of all paragraph style attributes - WW8 import: Consider refactoring of paragraph style's outline level attribute - NO_NUMBERING define no longer exsits. 2008-12-16 10:37:19 +0100 od r265530 : #i70478# Correction on moving outline paragraph up respectively down in its outline level: - Check also outline paragraph, which are not an outline via a to outline style assigned paragraph style, if action is applicable. 2008-12-16 09:10:13 +0100 hde r265523 : #i97277 2008-12-16 09:09:30 +0100 hde r265522 : #i97277 2008-12-16 09:07:40 +0100 hde r265521 : Added control and purged obsolete id's 2008-12-10 13:09:36 +0100 od r265174 : #i70748# correction of previous fix due to warning-free code 2008-12-10 13:03:30 +0100 od r265172 : #i70748# method <XMLTextImportHelper::SetStyleAndAttrs(..)> - Due to performance issues avoid retrieving outline level value from paragraph's paragraph style for each paragraph. Instead retrieve current outline level value from paragraph, which is the inherited value from its paragraph style, and only when it is needed. 2008-12-09 16:50:36 +0100 ufi r265117 : help 2008-12-09 16:49:50 +0100 ufi r265116 : help 2008-12-09 15:45:05 +0100 od r265107 : #i70748# method <XMLTextImportHelper::SetStyleAndAttrs(..)> - some minor rework and check access to paragraph styles 2008-12-09 15:42:04 +0100 od r265106 : #i70748# adjust name of local variable to avoid hiding of class variable 2008-12-09 15:40:51 +0100 od r265105 : #i70748# correct initialization order 2008-12-09 15:35:07 +0100 od r265101 : #i70748# remove duplicate entry in certain property map 2008-12-09 15:33:39 +0100 od r265100 : #i70748# add end of file token 2008-12-07 15:11:54 +0100 zhaojianwei r264952 : conflicts left not to be resolved when cws rebase 2008-12-04 14:52:21 +0100 zhaojianwei r264846 : CWS-TOOLING: rebase CWS outlinelevel to trunk@264325 (milestone: DEV300:m36) 2008-11-28 03:42:09 +0100 zhaojianwei r264525 : #i70748#: migrate CWS outlinelevel to SVN 2008-11-28 03:41:39 +0100 zhaojianwei r264524 : #i70748#: migrate CWS outlinelevel to SVN 2008-11-28 03:41:11 +0100 zhaojianwei r264523 : #i70748#: migrate CWS outlinelevel to SVN
2009-01-07 11:57:24 +00:00
if( pColl->IsAssignedToListLevelOfOutlineStyle() )
{
// ASSERT(pColl->GetOutlineLevel() < MAXLEVEL, //#outline level,removed by zhaojianwei
// "non outline node in outline nodes?");
//int nLevel = pColl->GetOutlineLevel();
const int nLevel = pColl->GetAssignedOutlineStyleLevel();//#outline level,add by zhaojianwei
CWS-TOOLING: integrate CWS outlinelevel 2008-12-19 10:32:51 +0100 od r265718 : #i70748# method <SwWW8Writer::StartTOX(..)> - correction for custom to outline style assigned paragraph styles 2008-12-19 09:24:41 +0100 od r265715 : #i70748# method <HandleModifyAtTxtNode(..)> - retrieve former applied list style before potential reset of empty list style due to set outline level 2008-12-17 15:33:57 +0100 hde r265608 : #i97013# 2008-12-17 14:43:42 +0100 od r265603 : #i70748# adjust fix i44177 - adjustment of to outline style assigned paragraph styles only for OOo-Templates. 2008-12-17 12:59:42 +0100 od r265598 : #i70748# method <XMLTextImportHelper::SetStyleAndAttrs(..)> - special handling of OOo 2.x document regarding outline numbering of headings. 2008-12-17 12:45:53 +0100 od r265597 : #i70748# method <HandleModifyAtTxtNode(..)> - correct determination of new and former applied list style 2008-12-17 10:18:41 +0100 od r265581 : #i97312# method <XMLTextNumRuleInfo::Set(..)> - check, if numbering rules instance contains any numbering rule. 2008-12-16 14:34:22 +0100 hde r265542 : #i97013 2008-12-16 14:20:24 +0100 od r265541 : #i70748# adjust documentation of "Which"-ID numbers 2008-12-16 14:19:49 +0100 od r265539 : #i70748# Adjust Attribute-Function-Mapping table due to new attribute 2008-12-16 14:06:24 +0100 od r265538 : #i70748# - Correct handling of to outline style assigned paragraph styles on reset of all paragraph style attributes - WW8 import: Consider refactoring of paragraph style's outline level attribute - NO_NUMBERING define no longer exsits. 2008-12-16 10:37:19 +0100 od r265530 : #i70478# Correction on moving outline paragraph up respectively down in its outline level: - Check also outline paragraph, which are not an outline via a to outline style assigned paragraph style, if action is applicable. 2008-12-16 09:10:13 +0100 hde r265523 : #i97277 2008-12-16 09:09:30 +0100 hde r265522 : #i97277 2008-12-16 09:07:40 +0100 hde r265521 : Added control and purged obsolete id's 2008-12-10 13:09:36 +0100 od r265174 : #i70748# correction of previous fix due to warning-free code 2008-12-10 13:03:30 +0100 od r265172 : #i70748# method <XMLTextImportHelper::SetStyleAndAttrs(..)> - Due to performance issues avoid retrieving outline level value from paragraph's paragraph style for each paragraph. Instead retrieve current outline level value from paragraph, which is the inherited value from its paragraph style, and only when it is needed. 2008-12-09 16:50:36 +0100 ufi r265117 : help 2008-12-09 16:49:50 +0100 ufi r265116 : help 2008-12-09 15:45:05 +0100 od r265107 : #i70748# method <XMLTextImportHelper::SetStyleAndAttrs(..)> - some minor rework and check access to paragraph styles 2008-12-09 15:42:04 +0100 od r265106 : #i70748# adjust name of local variable to avoid hiding of class variable 2008-12-09 15:40:51 +0100 od r265105 : #i70748# correct initialization order 2008-12-09 15:35:07 +0100 od r265101 : #i70748# remove duplicate entry in certain property map 2008-12-09 15:33:39 +0100 od r265100 : #i70748# add end of file token 2008-12-07 15:11:54 +0100 zhaojianwei r264952 : conflicts left not to be resolved when cws rebase 2008-12-04 14:52:21 +0100 zhaojianwei r264846 : CWS-TOOLING: rebase CWS outlinelevel to trunk@264325 (milestone: DEV300:m36) 2008-11-28 03:42:09 +0100 zhaojianwei r264525 : #i70748#: migrate CWS outlinelevel to SVN 2008-11-28 03:41:39 +0100 zhaojianwei r264524 : #i70748#: migrate CWS outlinelevel to SVN 2008-11-28 03:41:11 +0100 zhaojianwei r264523 : #i70748#: migrate CWS outlinelevel to SVN
2009-01-07 11:57:24 +00:00
ASSERT(aMoveArr[nLevel] >= 0,
"move table: current TxtColl not found when building table!");
CWS-TOOLING: integrate CWS outlinelevel 2008-12-19 10:32:51 +0100 od r265718 : #i70748# method <SwWW8Writer::StartTOX(..)> - correction for custom to outline style assigned paragraph styles 2008-12-19 09:24:41 +0100 od r265715 : #i70748# method <HandleModifyAtTxtNode(..)> - retrieve former applied list style before potential reset of empty list style due to set outline level 2008-12-17 15:33:57 +0100 hde r265608 : #i97013# 2008-12-17 14:43:42 +0100 od r265603 : #i70748# adjust fix i44177 - adjustment of to outline style assigned paragraph styles only for OOo-Templates. 2008-12-17 12:59:42 +0100 od r265598 : #i70748# method <XMLTextImportHelper::SetStyleAndAttrs(..)> - special handling of OOo 2.x document regarding outline numbering of headings. 2008-12-17 12:45:53 +0100 od r265597 : #i70748# method <HandleModifyAtTxtNode(..)> - correct determination of new and former applied list style 2008-12-17 10:18:41 +0100 od r265581 : #i97312# method <XMLTextNumRuleInfo::Set(..)> - check, if numbering rules instance contains any numbering rule. 2008-12-16 14:34:22 +0100 hde r265542 : #i97013 2008-12-16 14:20:24 +0100 od r265541 : #i70748# adjust documentation of "Which"-ID numbers 2008-12-16 14:19:49 +0100 od r265539 : #i70748# Adjust Attribute-Function-Mapping table due to new attribute 2008-12-16 14:06:24 +0100 od r265538 : #i70748# - Correct handling of to outline style assigned paragraph styles on reset of all paragraph style attributes - WW8 import: Consider refactoring of paragraph style's outline level attribute - NO_NUMBERING define no longer exsits. 2008-12-16 10:37:19 +0100 od r265530 : #i70478# Correction on moving outline paragraph up respectively down in its outline level: - Check also outline paragraph, which are not an outline via a to outline style assigned paragraph style, if action is applicable. 2008-12-16 09:10:13 +0100 hde r265523 : #i97277 2008-12-16 09:09:30 +0100 hde r265522 : #i97277 2008-12-16 09:07:40 +0100 hde r265521 : Added control and purged obsolete id's 2008-12-10 13:09:36 +0100 od r265174 : #i70748# correction of previous fix due to warning-free code 2008-12-10 13:03:30 +0100 od r265172 : #i70748# method <XMLTextImportHelper::SetStyleAndAttrs(..)> - Due to performance issues avoid retrieving outline level value from paragraph's paragraph style for each paragraph. Instead retrieve current outline level value from paragraph, which is the inherited value from its paragraph style, and only when it is needed. 2008-12-09 16:50:36 +0100 ufi r265117 : help 2008-12-09 16:49:50 +0100 ufi r265116 : help 2008-12-09 15:45:05 +0100 od r265107 : #i70748# method <XMLTextImportHelper::SetStyleAndAttrs(..)> - some minor rework and check access to paragraph styles 2008-12-09 15:42:04 +0100 od r265106 : #i70748# adjust name of local variable to avoid hiding of class variable 2008-12-09 15:40:51 +0100 od r265105 : #i70748# correct initialization order 2008-12-09 15:35:07 +0100 od r265101 : #i70748# remove duplicate entry in certain property map 2008-12-09 15:33:39 +0100 od r265100 : #i70748# add end of file token 2008-12-07 15:11:54 +0100 zhaojianwei r264952 : conflicts left not to be resolved when cws rebase 2008-12-04 14:52:21 +0100 zhaojianwei r264846 : CWS-TOOLING: rebase CWS outlinelevel to trunk@264325 (milestone: DEV300:m36) 2008-11-28 03:42:09 +0100 zhaojianwei r264525 : #i70748#: migrate CWS outlinelevel to SVN 2008-11-28 03:41:39 +0100 zhaojianwei r264524 : #i70748#: migrate CWS outlinelevel to SVN 2008-11-28 03:41:11 +0100 zhaojianwei r264523 : #i70748#: migrate CWS outlinelevel to SVN
2009-01-07 11:57:24 +00:00
if (nLevel < MAXLEVEL && aMoveArr[nLevel] >= 0)
{
pColl = aCollArr[ aMoveArr[nLevel] ];
CWS-TOOLING: integrate CWS outlinelevel 2008-12-19 10:32:51 +0100 od r265718 : #i70748# method <SwWW8Writer::StartTOX(..)> - correction for custom to outline style assigned paragraph styles 2008-12-19 09:24:41 +0100 od r265715 : #i70748# method <HandleModifyAtTxtNode(..)> - retrieve former applied list style before potential reset of empty list style due to set outline level 2008-12-17 15:33:57 +0100 hde r265608 : #i97013# 2008-12-17 14:43:42 +0100 od r265603 : #i70748# adjust fix i44177 - adjustment of to outline style assigned paragraph styles only for OOo-Templates. 2008-12-17 12:59:42 +0100 od r265598 : #i70748# method <XMLTextImportHelper::SetStyleAndAttrs(..)> - special handling of OOo 2.x document regarding outline numbering of headings. 2008-12-17 12:45:53 +0100 od r265597 : #i70748# method <HandleModifyAtTxtNode(..)> - correct determination of new and former applied list style 2008-12-17 10:18:41 +0100 od r265581 : #i97312# method <XMLTextNumRuleInfo::Set(..)> - check, if numbering rules instance contains any numbering rule. 2008-12-16 14:34:22 +0100 hde r265542 : #i97013 2008-12-16 14:20:24 +0100 od r265541 : #i70748# adjust documentation of "Which"-ID numbers 2008-12-16 14:19:49 +0100 od r265539 : #i70748# Adjust Attribute-Function-Mapping table due to new attribute 2008-12-16 14:06:24 +0100 od r265538 : #i70748# - Correct handling of to outline style assigned paragraph styles on reset of all paragraph style attributes - WW8 import: Consider refactoring of paragraph style's outline level attribute - NO_NUMBERING define no longer exsits. 2008-12-16 10:37:19 +0100 od r265530 : #i70478# Correction on moving outline paragraph up respectively down in its outline level: - Check also outline paragraph, which are not an outline via a to outline style assigned paragraph style, if action is applicable. 2008-12-16 09:10:13 +0100 hde r265523 : #i97277 2008-12-16 09:09:30 +0100 hde r265522 : #i97277 2008-12-16 09:07:40 +0100 hde r265521 : Added control and purged obsolete id's 2008-12-10 13:09:36 +0100 od r265174 : #i70748# correction of previous fix due to warning-free code 2008-12-10 13:03:30 +0100 od r265172 : #i70748# method <XMLTextImportHelper::SetStyleAndAttrs(..)> - Due to performance issues avoid retrieving outline level value from paragraph's paragraph style for each paragraph. Instead retrieve current outline level value from paragraph, which is the inherited value from its paragraph style, and only when it is needed. 2008-12-09 16:50:36 +0100 ufi r265117 : help 2008-12-09 16:49:50 +0100 ufi r265116 : help 2008-12-09 15:45:05 +0100 od r265107 : #i70748# method <XMLTextImportHelper::SetStyleAndAttrs(..)> - some minor rework and check access to paragraph styles 2008-12-09 15:42:04 +0100 od r265106 : #i70748# adjust name of local variable to avoid hiding of class variable 2008-12-09 15:40:51 +0100 od r265105 : #i70748# correct initialization order 2008-12-09 15:35:07 +0100 od r265101 : #i70748# remove duplicate entry in certain property map 2008-12-09 15:33:39 +0100 od r265100 : #i70748# add end of file token 2008-12-07 15:11:54 +0100 zhaojianwei r264952 : conflicts left not to be resolved when cws rebase 2008-12-04 14:52:21 +0100 zhaojianwei r264846 : CWS-TOOLING: rebase CWS outlinelevel to trunk@264325 (milestone: DEV300:m36) 2008-11-28 03:42:09 +0100 zhaojianwei r264525 : #i70748#: migrate CWS outlinelevel to SVN 2008-11-28 03:41:39 +0100 zhaojianwei r264524 : #i70748#: migrate CWS outlinelevel to SVN 2008-11-28 03:41:11 +0100 zhaojianwei r264523 : #i70748#: migrate CWS outlinelevel to SVN
2009-01-07 11:57:24 +00:00
if (pColl != NULL)
pColl = (SwTxtFmtColl*)pTxtNd->ChgFmtColl( pColl );
}
}
CWS-TOOLING: integrate CWS outlinelevel 2008-12-19 10:32:51 +0100 od r265718 : #i70748# method <SwWW8Writer::StartTOX(..)> - correction for custom to outline style assigned paragraph styles 2008-12-19 09:24:41 +0100 od r265715 : #i70748# method <HandleModifyAtTxtNode(..)> - retrieve former applied list style before potential reset of empty list style due to set outline level 2008-12-17 15:33:57 +0100 hde r265608 : #i97013# 2008-12-17 14:43:42 +0100 od r265603 : #i70748# adjust fix i44177 - adjustment of to outline style assigned paragraph styles only for OOo-Templates. 2008-12-17 12:59:42 +0100 od r265598 : #i70748# method <XMLTextImportHelper::SetStyleAndAttrs(..)> - special handling of OOo 2.x document regarding outline numbering of headings. 2008-12-17 12:45:53 +0100 od r265597 : #i70748# method <HandleModifyAtTxtNode(..)> - correct determination of new and former applied list style 2008-12-17 10:18:41 +0100 od r265581 : #i97312# method <XMLTextNumRuleInfo::Set(..)> - check, if numbering rules instance contains any numbering rule. 2008-12-16 14:34:22 +0100 hde r265542 : #i97013 2008-12-16 14:20:24 +0100 od r265541 : #i70748# adjust documentation of "Which"-ID numbers 2008-12-16 14:19:49 +0100 od r265539 : #i70748# Adjust Attribute-Function-Mapping table due to new attribute 2008-12-16 14:06:24 +0100 od r265538 : #i70748# - Correct handling of to outline style assigned paragraph styles on reset of all paragraph style attributes - WW8 import: Consider refactoring of paragraph style's outline level attribute - NO_NUMBERING define no longer exsits. 2008-12-16 10:37:19 +0100 od r265530 : #i70478# Correction on moving outline paragraph up respectively down in its outline level: - Check also outline paragraph, which are not an outline via a to outline style assigned paragraph style, if action is applicable. 2008-12-16 09:10:13 +0100 hde r265523 : #i97277 2008-12-16 09:09:30 +0100 hde r265522 : #i97277 2008-12-16 09:07:40 +0100 hde r265521 : Added control and purged obsolete id's 2008-12-10 13:09:36 +0100 od r265174 : #i70748# correction of previous fix due to warning-free code 2008-12-10 13:03:30 +0100 od r265172 : #i70748# method <XMLTextImportHelper::SetStyleAndAttrs(..)> - Due to performance issues avoid retrieving outline level value from paragraph's paragraph style for each paragraph. Instead retrieve current outline level value from paragraph, which is the inherited value from its paragraph style, and only when it is needed. 2008-12-09 16:50:36 +0100 ufi r265117 : help 2008-12-09 16:49:50 +0100 ufi r265116 : help 2008-12-09 15:45:05 +0100 od r265107 : #i70748# method <XMLTextImportHelper::SetStyleAndAttrs(..)> - some minor rework and check access to paragraph styles 2008-12-09 15:42:04 +0100 od r265106 : #i70748# adjust name of local variable to avoid hiding of class variable 2008-12-09 15:40:51 +0100 od r265105 : #i70748# correct initialization order 2008-12-09 15:35:07 +0100 od r265101 : #i70748# remove duplicate entry in certain property map 2008-12-09 15:33:39 +0100 od r265100 : #i70748# add end of file token 2008-12-07 15:11:54 +0100 zhaojianwei r264952 : conflicts left not to be resolved when cws rebase 2008-12-04 14:52:21 +0100 zhaojianwei r264846 : CWS-TOOLING: rebase CWS outlinelevel to trunk@264325 (milestone: DEV300:m36) 2008-11-28 03:42:09 +0100 zhaojianwei r264525 : #i70748#: migrate CWS outlinelevel to SVN 2008-11-28 03:41:39 +0100 zhaojianwei r264524 : #i70748#: migrate CWS outlinelevel to SVN 2008-11-28 03:41:11 +0100 zhaojianwei r264523 : #i70748#: migrate CWS outlinelevel to SVN
2009-01-07 11:57:24 +00:00
else if( pTxtNd->GetAttrOutlineLevel() > 0) //#outline level,add by zhaojianwei
{
int nLevel = pTxtNd->GetAttrOutlineLevel() + nOffset;
if( 0 <= nLevel && nLevel <= MAXLEVEL)
pTxtNd->SetAttrOutlineLevel( nLevel );
}//<-end,zhaojianwei
n++;
2000-09-18 23:08:29 +00:00
// Undo ???
}
if (DoesUndo())
EndUndo(UNDO_OUTLINE_LR, NULL);
2000-09-18 23:08:29 +00:00
INTEGRATION: CWS swnumtree (1.49.32); FILE MERGED 2005/11/03 10:35:51 od 1.49.32.28: #i51089# improve performance - method <SwDoc::GetOutlineNumRule> now inline implemented. - consider change of <SwTxtNode::GetNum()> 2005/11/01 18:07:21 od 1.49.32.27: #i51089# - remove unused code 2005/10/26 10:47:23 od 1.49.32.26: RESYNC: (1.51-1.52); FILE MERGED 2005/10/26 09:34:37 od 1.49.32.25: #b6340308# <SwDoc::SetNumRule(..)> - Only clear numbering rule attribute at current text node, if its paragraph style already contains the new numbering rule. 2005/10/25 06:20:54 od 1.49.32.24: #i51089# - delete unused code. 2005/10/25 05:44:01 od 1.49.32.23: #i55391# <SwDoc::SearchNumRule(..)> - Investigate given start node, if requested. Request is indicated by new parameter <_bInvestigateStartNode> 2005/10/21 11:20:54 od 1.49.32.22: #i51089# - Only the counting of phantoms of the outline numbering rule depends on <SwDoc::IsOldNumbering()> 2005/10/21 08:33:31 od 1.49.32.21: #i55391# <SwDoc::SearchNumRule(..)> - start node has also been investigated. 2005/09/20 14:13:24 fme 1.49.32.20: #i51089# Removed compiler warnings 2005/09/20 11:16:23 hbrinkm 1.49.32.19: #i51089# SwNumRule::Invalidate->SwNumRule::SetInvalidRule(TRUE) 2005/09/14 13:37:29 hbrinkm 1.49.32.18: #i51089# SyncNumRulesAndNodes: UpdateOutlineNode 2005/09/13 20:27:33 hbrinkm 1.49.32.17: RESYNC: (1.50-1.51); FILE MERGED 2005/09/12 15:15:29 hbrinkm 1.49.32.16: #i51089# AddNumRuleRanges 2005/09/07 11:29:02 hbrinkm 1.49.32.15: #i51089# SyncNumRulesAndNodes 2005/09/01 14:46:47 hbrinkm 1.49.32.14: #i51089# NumOrNoNum: only remove hard numbering 2005/08/31 13:34:47 hbrinkm 1.49.32.13: #i51089# NumOrNoNum: Only touch paragraphs with hard numbering that shows number 2005/08/30 12:58:49 hbrinkm 1.49.32.12: #i51089# PropagateOutlineRule: SyncNumAndNumRule after setting of outline level 2005/08/26 13:43:44 hbrinkm 1.49.32.11: #i51089# SetNumRuleStart: bool <-> BOOL 2005/08/23 07:35:20 hbrinkm 1.49.32.10: #i51089# {Outline|Num}UpDown: call ChkCondColls if modified 2005/08/16 15:31:02 hbrinkm 1.49.32.9: #i51089# FindNumRulePtrWithPool 2005/08/11 09:27:49 hbrinkm 1.49.32.8: #i51089# SetNumRule: do not access zero pointer to numrule 2005/08/10 08:07:25 hbrinkm 1.49.32.7: #121445# PropagateOutlineRule: UpdateOutlineNode 2005/08/09 12:36:44 hbrinkm 1.49.32.6: #i51089# 2005/08/04 09:27:27 hbrinkm 1.49.32.5: #121445# PropagateOutlineRule: only propagate numrule if IsOutlineLevelYieldsOutlineRule returns false, #i51089# 2005/08/03 12:22:55 hbrinkm 1.49.32.4: RESYNC: (1.49-1.50); FILE MERGED 2005/07/11 09:14:57 hbrinkm 1.49.32.3: #i51089# NumOrNoNum: only succeed if a real change is made 2005/07/07 12:49:41 hbrinkm 1.49.32.2: #i51089# PropagateOutlineRule: If a paragraph style has outline level and no numbering rule, set the documents's outline numbering rule, MakeUniqueRules: do not alter outline numbering rules 2005/06/22 10:24:52 hbrinkm 1.49.32.1: #i51089# new implementation of numbering
2005-11-08 16:16:30 +00:00
ChkCondColls();
2000-09-18 23:08:29 +00:00
SetModified();
2000-09-18 23:08:29 +00:00
return TRUE;
}
// Hoch-/Runter - Verschieben !
BOOL SwDoc::MoveOutlinePara( const SwPaM& rPam, short nOffset )
{
// kein Verschiebung in den Sonderbereichen
const SwPosition& rStt = *rPam.Start(),
& rEnd = &rStt == rPam.GetPoint() ? *rPam.GetMark()
: *rPam.GetPoint();
if( !GetNodes().GetOutLineNds().Count() || !nOffset ||
rStt.nNode.GetIndex() < aNodes.GetEndOfExtras().GetIndex() ||
rEnd.nNode.GetIndex() < aNodes.GetEndOfExtras().GetIndex() )
return FALSE;
USHORT nAktPos = 0;
SwNodeIndex aSttRg( rStt.nNode ), aEndRg( rEnd.nNode );
CWS-TOOLING: integrate CWS outlinelevel 2008-12-19 10:32:51 +0100 od r265718 : #i70748# method <SwWW8Writer::StartTOX(..)> - correction for custom to outline style assigned paragraph styles 2008-12-19 09:24:41 +0100 od r265715 : #i70748# method <HandleModifyAtTxtNode(..)> - retrieve former applied list style before potential reset of empty list style due to set outline level 2008-12-17 15:33:57 +0100 hde r265608 : #i97013# 2008-12-17 14:43:42 +0100 od r265603 : #i70748# adjust fix i44177 - adjustment of to outline style assigned paragraph styles only for OOo-Templates. 2008-12-17 12:59:42 +0100 od r265598 : #i70748# method <XMLTextImportHelper::SetStyleAndAttrs(..)> - special handling of OOo 2.x document regarding outline numbering of headings. 2008-12-17 12:45:53 +0100 od r265597 : #i70748# method <HandleModifyAtTxtNode(..)> - correct determination of new and former applied list style 2008-12-17 10:18:41 +0100 od r265581 : #i97312# method <XMLTextNumRuleInfo::Set(..)> - check, if numbering rules instance contains any numbering rule. 2008-12-16 14:34:22 +0100 hde r265542 : #i97013 2008-12-16 14:20:24 +0100 od r265541 : #i70748# adjust documentation of "Which"-ID numbers 2008-12-16 14:19:49 +0100 od r265539 : #i70748# Adjust Attribute-Function-Mapping table due to new attribute 2008-12-16 14:06:24 +0100 od r265538 : #i70748# - Correct handling of to outline style assigned paragraph styles on reset of all paragraph style attributes - WW8 import: Consider refactoring of paragraph style's outline level attribute - NO_NUMBERING define no longer exsits. 2008-12-16 10:37:19 +0100 od r265530 : #i70478# Correction on moving outline paragraph up respectively down in its outline level: - Check also outline paragraph, which are not an outline via a to outline style assigned paragraph style, if action is applicable. 2008-12-16 09:10:13 +0100 hde r265523 : #i97277 2008-12-16 09:09:30 +0100 hde r265522 : #i97277 2008-12-16 09:07:40 +0100 hde r265521 : Added control and purged obsolete id's 2008-12-10 13:09:36 +0100 od r265174 : #i70748# correction of previous fix due to warning-free code 2008-12-10 13:03:30 +0100 od r265172 : #i70748# method <XMLTextImportHelper::SetStyleAndAttrs(..)> - Due to performance issues avoid retrieving outline level value from paragraph's paragraph style for each paragraph. Instead retrieve current outline level value from paragraph, which is the inherited value from its paragraph style, and only when it is needed. 2008-12-09 16:50:36 +0100 ufi r265117 : help 2008-12-09 16:49:50 +0100 ufi r265116 : help 2008-12-09 15:45:05 +0100 od r265107 : #i70748# method <XMLTextImportHelper::SetStyleAndAttrs(..)> - some minor rework and check access to paragraph styles 2008-12-09 15:42:04 +0100 od r265106 : #i70748# adjust name of local variable to avoid hiding of class variable 2008-12-09 15:40:51 +0100 od r265105 : #i70748# correct initialization order 2008-12-09 15:35:07 +0100 od r265101 : #i70748# remove duplicate entry in certain property map 2008-12-09 15:33:39 +0100 od r265100 : #i70748# add end of file token 2008-12-07 15:11:54 +0100 zhaojianwei r264952 : conflicts left not to be resolved when cws rebase 2008-12-04 14:52:21 +0100 zhaojianwei r264846 : CWS-TOOLING: rebase CWS outlinelevel to trunk@264325 (milestone: DEV300:m36) 2008-11-28 03:42:09 +0100 zhaojianwei r264525 : #i70748#: migrate CWS outlinelevel to SVN 2008-11-28 03:41:39 +0100 zhaojianwei r264524 : #i70748#: migrate CWS outlinelevel to SVN 2008-11-28 03:41:11 +0100 zhaojianwei r264523 : #i70748#: migrate CWS outlinelevel to SVN
2009-01-07 11:57:24 +00:00
//BYTE nOutLineLevel = NO_NUMBERING; //#outline level,zhaojianwei
int nOutLineLevel = MAXLEVEL; //<-end,zhaojianwei
SwNode* pSrch = &aSttRg.GetNode();
CWS-TOOLING: integrate CWS outlinelevel 2008-12-19 10:32:51 +0100 od r265718 : #i70748# method <SwWW8Writer::StartTOX(..)> - correction for custom to outline style assigned paragraph styles 2008-12-19 09:24:41 +0100 od r265715 : #i70748# method <HandleModifyAtTxtNode(..)> - retrieve former applied list style before potential reset of empty list style due to set outline level 2008-12-17 15:33:57 +0100 hde r265608 : #i97013# 2008-12-17 14:43:42 +0100 od r265603 : #i70748# adjust fix i44177 - adjustment of to outline style assigned paragraph styles only for OOo-Templates. 2008-12-17 12:59:42 +0100 od r265598 : #i70748# method <XMLTextImportHelper::SetStyleAndAttrs(..)> - special handling of OOo 2.x document regarding outline numbering of headings. 2008-12-17 12:45:53 +0100 od r265597 : #i70748# method <HandleModifyAtTxtNode(..)> - correct determination of new and former applied list style 2008-12-17 10:18:41 +0100 od r265581 : #i97312# method <XMLTextNumRuleInfo::Set(..)> - check, if numbering rules instance contains any numbering rule. 2008-12-16 14:34:22 +0100 hde r265542 : #i97013 2008-12-16 14:20:24 +0100 od r265541 : #i70748# adjust documentation of "Which"-ID numbers 2008-12-16 14:19:49 +0100 od r265539 : #i70748# Adjust Attribute-Function-Mapping table due to new attribute 2008-12-16 14:06:24 +0100 od r265538 : #i70748# - Correct handling of to outline style assigned paragraph styles on reset of all paragraph style attributes - WW8 import: Consider refactoring of paragraph style's outline level attribute - NO_NUMBERING define no longer exsits. 2008-12-16 10:37:19 +0100 od r265530 : #i70478# Correction on moving outline paragraph up respectively down in its outline level: - Check also outline paragraph, which are not an outline via a to outline style assigned paragraph style, if action is applicable. 2008-12-16 09:10:13 +0100 hde r265523 : #i97277 2008-12-16 09:09:30 +0100 hde r265522 : #i97277 2008-12-16 09:07:40 +0100 hde r265521 : Added control and purged obsolete id's 2008-12-10 13:09:36 +0100 od r265174 : #i70748# correction of previous fix due to warning-free code 2008-12-10 13:03:30 +0100 od r265172 : #i70748# method <XMLTextImportHelper::SetStyleAndAttrs(..)> - Due to performance issues avoid retrieving outline level value from paragraph's paragraph style for each paragraph. Instead retrieve current outline level value from paragraph, which is the inherited value from its paragraph style, and only when it is needed. 2008-12-09 16:50:36 +0100 ufi r265117 : help 2008-12-09 16:49:50 +0100 ufi r265116 : help 2008-12-09 15:45:05 +0100 od r265107 : #i70748# method <XMLTextImportHelper::SetStyleAndAttrs(..)> - some minor rework and check access to paragraph styles 2008-12-09 15:42:04 +0100 od r265106 : #i70748# adjust name of local variable to avoid hiding of class variable 2008-12-09 15:40:51 +0100 od r265105 : #i70748# correct initialization order 2008-12-09 15:35:07 +0100 od r265101 : #i70748# remove duplicate entry in certain property map 2008-12-09 15:33:39 +0100 od r265100 : #i70748# add end of file token 2008-12-07 15:11:54 +0100 zhaojianwei r264952 : conflicts left not to be resolved when cws rebase 2008-12-04 14:52:21 +0100 zhaojianwei r264846 : CWS-TOOLING: rebase CWS outlinelevel to trunk@264325 (milestone: DEV300:m36) 2008-11-28 03:42:09 +0100 zhaojianwei r264525 : #i70748#: migrate CWS outlinelevel to SVN 2008-11-28 03:41:39 +0100 zhaojianwei r264524 : #i70748#: migrate CWS outlinelevel to SVN 2008-11-28 03:41:11 +0100 zhaojianwei r264523 : #i70748#: migrate CWS outlinelevel to SVN
2009-01-07 11:57:24 +00:00
//if( pSrch->IsTxtNode() ) //#outline level,zhaojianwei
// nOutLineLevel = static_cast<BYTE>(((SwTxtNode*)pSrch)->GetOutlineLevel());
if( pSrch->IsTxtNode())
nOutLineLevel = static_cast<BYTE>(((SwTxtNode*)pSrch)->GetAttrOutlineLevel()-1);//<-end,zhaojianwei
SwNode* pEndSrch = &aEndRg.GetNode();
if( !GetNodes().GetOutLineNds().Seek_Entry( pSrch, &nAktPos ) )
2000-09-18 23:08:29 +00:00
{
if( !nAktPos )
return FALSE; // Promoting or demoting before the first outline => no.
if( --nAktPos )
2000-09-18 23:08:29 +00:00
aSttRg = *GetNodes().GetOutLineNds()[ nAktPos ];
else if( 0 > nOffset )
return FALSE; // Promoting at the top of document?!
2000-09-18 23:08:29 +00:00
else
aSttRg = *GetNodes().GetEndOfContent().StartOfSectionNode();
2000-09-18 23:08:29 +00:00
}
USHORT nTmpPos = 0;
// If the given range ends at an outlined text node we have to decide if it has to be a part of
// the moving range or not. Normally it will be a sub outline of our chapter
// and has to be moved, too. But if the chapter ends with a table(or a section end),
// the next text node will be choosen and this could be the next outline of the same level.
// The criteria has to be the outline level: sub level => incorporate, same/higher level => no.
if( GetNodes().GetOutLineNds().Seek_Entry( pEndSrch, &nTmpPos ) )
2000-09-18 23:08:29 +00:00
{
if( !pEndSrch->IsTxtNode() || pEndSrch == pSrch ||
CWS-TOOLING: integrate CWS outlinelevel 2008-12-19 10:32:51 +0100 od r265718 : #i70748# method <SwWW8Writer::StartTOX(..)> - correction for custom to outline style assigned paragraph styles 2008-12-19 09:24:41 +0100 od r265715 : #i70748# method <HandleModifyAtTxtNode(..)> - retrieve former applied list style before potential reset of empty list style due to set outline level 2008-12-17 15:33:57 +0100 hde r265608 : #i97013# 2008-12-17 14:43:42 +0100 od r265603 : #i70748# adjust fix i44177 - adjustment of to outline style assigned paragraph styles only for OOo-Templates. 2008-12-17 12:59:42 +0100 od r265598 : #i70748# method <XMLTextImportHelper::SetStyleAndAttrs(..)> - special handling of OOo 2.x document regarding outline numbering of headings. 2008-12-17 12:45:53 +0100 od r265597 : #i70748# method <HandleModifyAtTxtNode(..)> - correct determination of new and former applied list style 2008-12-17 10:18:41 +0100 od r265581 : #i97312# method <XMLTextNumRuleInfo::Set(..)> - check, if numbering rules instance contains any numbering rule. 2008-12-16 14:34:22 +0100 hde r265542 : #i97013 2008-12-16 14:20:24 +0100 od r265541 : #i70748# adjust documentation of "Which"-ID numbers 2008-12-16 14:19:49 +0100 od r265539 : #i70748# Adjust Attribute-Function-Mapping table due to new attribute 2008-12-16 14:06:24 +0100 od r265538 : #i70748# - Correct handling of to outline style assigned paragraph styles on reset of all paragraph style attributes - WW8 import: Consider refactoring of paragraph style's outline level attribute - NO_NUMBERING define no longer exsits. 2008-12-16 10:37:19 +0100 od r265530 : #i70478# Correction on moving outline paragraph up respectively down in its outline level: - Check also outline paragraph, which are not an outline via a to outline style assigned paragraph style, if action is applicable. 2008-12-16 09:10:13 +0100 hde r265523 : #i97277 2008-12-16 09:09:30 +0100 hde r265522 : #i97277 2008-12-16 09:07:40 +0100 hde r265521 : Added control and purged obsolete id's 2008-12-10 13:09:36 +0100 od r265174 : #i70748# correction of previous fix due to warning-free code 2008-12-10 13:03:30 +0100 od r265172 : #i70748# method <XMLTextImportHelper::SetStyleAndAttrs(..)> - Due to performance issues avoid retrieving outline level value from paragraph's paragraph style for each paragraph. Instead retrieve current outline level value from paragraph, which is the inherited value from its paragraph style, and only when it is needed. 2008-12-09 16:50:36 +0100 ufi r265117 : help 2008-12-09 16:49:50 +0100 ufi r265116 : help 2008-12-09 15:45:05 +0100 od r265107 : #i70748# method <XMLTextImportHelper::SetStyleAndAttrs(..)> - some minor rework and check access to paragraph styles 2008-12-09 15:42:04 +0100 od r265106 : #i70748# adjust name of local variable to avoid hiding of class variable 2008-12-09 15:40:51 +0100 od r265105 : #i70748# correct initialization order 2008-12-09 15:35:07 +0100 od r265101 : #i70748# remove duplicate entry in certain property map 2008-12-09 15:33:39 +0100 od r265100 : #i70748# add end of file token 2008-12-07 15:11:54 +0100 zhaojianwei r264952 : conflicts left not to be resolved when cws rebase 2008-12-04 14:52:21 +0100 zhaojianwei r264846 : CWS-TOOLING: rebase CWS outlinelevel to trunk@264325 (milestone: DEV300:m36) 2008-11-28 03:42:09 +0100 zhaojianwei r264525 : #i70748#: migrate CWS outlinelevel to SVN 2008-11-28 03:41:39 +0100 zhaojianwei r264524 : #i70748#: migrate CWS outlinelevel to SVN 2008-11-28 03:41:11 +0100 zhaojianwei r264523 : #i70748#: migrate CWS outlinelevel to SVN
2009-01-07 11:57:24 +00:00
//nOutLineLevel < ((SwTxtNode*)pEndSrch)->GetOutlineLevel() )//#outline level,zhaojianwei
nOutLineLevel < ((SwTxtNode*)pEndSrch)->GetAttrOutlineLevel()-1 )//<-end,zhaojianwei
++nTmpPos; // For sub outlines only!
}
2000-09-18 23:08:29 +00:00
aEndRg = nTmpPos < GetNodes().GetOutLineNds().Count()
? *GetNodes().GetOutLineNds()[ nTmpPos ]
: GetNodes().GetEndOfContent();
if( nOffset >= 0 )
nAktPos = nTmpPos;
if( aEndRg == aSttRg )
{
ASSERT( false, "Moving outlines: Surprising selection" );
aEndRg++;
2000-09-18 23:08:29 +00:00
}
2000-09-18 23:08:29 +00:00
const SwNode* pNd;
// The following code corrects the range to handle sections (start/end nodes)
// The range will be extended if the least node before the range is a start node
// which ends inside the range => The complete section will be moved.
// The range will be shrinked if the last position is a start node.
// The range will be shrinked if the last node is an end node which starts before the range.
aSttRg--;
while( aSttRg.GetNode().IsStartNode() )
{
pNd = aSttRg.GetNode().EndOfSectionNode();
if( pNd->GetIndex() >= aEndRg.GetIndex() )
break;
aSttRg--;
}
aSttRg++;
aEndRg--;
while( aEndRg.GetNode().IsStartNode() )
aEndRg--;
while( aEndRg.GetNode().IsEndNode() )
{
pNd = aEndRg.GetNode().StartOfSectionNode();
if( pNd->GetIndex() >= aSttRg.GetIndex() )
break;
aEndRg--;
}
aEndRg++;
// calculation of the new position
2000-09-18 23:08:29 +00:00
if( nOffset < 0 && nAktPos < USHORT(-nOffset) )
pNd = GetNodes().GetEndOfContent().StartOfSectionNode();
else if( nAktPos + nOffset >= GetNodes().GetOutLineNds().Count() )
pNd = &GetNodes().GetEndOfContent();
else
pNd = GetNodes().GetOutLineNds()[ nAktPos + nOffset ];
ULONG nNewPos = pNd->GetIndex();
// And now a correction of the insert position if necessary...
SwNodeIndex aInsertPos( *pNd, -1 );
while( aInsertPos.GetNode().IsStartNode() )
{
// Just before the insert position starts a section:
// when I'm moving forward I do not want to enter the section,
// when I'm moving backward I want to stay in the section if I'm already a part of,
// I want to stay outside if I was outside before.
if( nOffset < 0 )
{
pNd = aInsertPos.GetNode().EndOfSectionNode();
if( pNd->GetIndex() >= aEndRg.GetIndex() )
break;
}
aInsertPos--;
--nNewPos;
}
if( nOffset >= 0 )
{
// When just before the insert position a section ends, it is okay when I'm moving backward
// because I want to stay outside the section.
// When moving forward I've to check if I started inside or outside the section
// because I don't want to enter of leave such a section
while( aInsertPos.GetNode().IsEndNode() )
{
pNd = aInsertPos.GetNode().StartOfSectionNode();
if( pNd->GetIndex() >= aSttRg.GetIndex() )
break;
aInsertPos--;
--nNewPos;
}
}
// We do not want to move into tables (at the moment)
aInsertPos++;
pNd = &aInsertPos.GetNode();
if( pNd->IsTableNode() )
pNd = pNd->StartOfSectionNode();
if( pNd->FindTableNode() )
return FALSE;
2000-09-18 23:08:29 +00:00
ASSERT( aSttRg.GetIndex() > nNewPos || nNewPos >= aEndRg.GetIndex(),
"Position liegt im MoveBereich" );
// wurde ein Position in den Sonderbereichen errechnet, dann
// setze die Position auf den Dokumentanfang.
// Sollten da Bereiche oder Tabellen stehen, so werden sie nach
// hinten verschoben.
nNewPos = Max( nNewPos, aNodes.GetEndOfExtras().GetIndex() + 2 );
long nOffs = nNewPos - ( 0 < nOffset ? aEndRg.GetIndex() : aSttRg.GetIndex());
SwPaM aPam( aSttRg, aEndRg, 0, -1 );
return MoveParagraph( aPam, nOffs, TRUE );
}
USHORT lcl_FindOutlineName( const SwNodes& rNds, const String& rName,
BOOL bExact )
{
USHORT nSavePos = USHRT_MAX;
const SwOutlineNodes& rOutlNds = rNds.GetOutLineNds();
for( USHORT n = 0; n < rOutlNds.Count(); ++n )
{
SwTxtNode* pTxtNd = rOutlNds[ n ]->GetTxtNode();
2001-11-27 12:24:29 +00:00
String sTxt( pTxtNd->GetExpandTxt() );
2000-09-18 23:08:29 +00:00
if( sTxt.Equals( rName ) )
{
// "exact" gefunden, setze Pos auf den Node
nSavePos = n;
break;
}
else if( !bExact && USHRT_MAX == nSavePos &&
COMPARE_EQUAL == sTxt.CompareTo( rName, rName.Len()) )
{
// dann vielleicht nur den den 1.Teil vom Text gefunden
nSavePos = n;
}
}
return nSavePos;
}
USHORT lcl_FindOutlineNum( const SwNodes& rNds, String& rName )
{
// Gueltig Nummern sind (immer nur Offsets!!!):
// ([Nummer]+\.)+ (als regulaerer Ausdruck!)
// (Nummer gefolgt von Punkt, zum 5 Wiederholungen)
// also: "1.1.", "1.", "1.1.1."
xub_StrLen nPos = 0;
String sNum = rName.GetToken( 0, '.', nPos );
if( STRING_NOTFOUND == nPos )
return USHRT_MAX; // ungueltige Nummer!!!
USHORT nLevelVal[ MAXLEVEL ]; // Nummern aller Levels
memset( nLevelVal, 0, MAXLEVEL * sizeof( nLevelVal[0] ));
BYTE nLevel = 0;
String sName( rName );
while( STRING_NOTFOUND != nPos )
{
USHORT nVal = 0;
sal_Unicode c;
for( USHORT n = 0; n < sNum.Len(); ++n )
if( '0' <= ( c = sNum.GetChar( n )) && c <= '9' )
{
nVal *= 10; nVal += c - '0';
}
else if( nLevel )
break; // "fast" gueltige Nummer
else
return USHRT_MAX; // ungueltige Nummer!!!
if( MAXLEVEL > nLevel )
nLevelVal[ nLevel++ ] = nVal;
sName.Erase( 0, nPos );
nPos = 0;
sNum = sName.GetToken( 0, '.', nPos );
// #i4533# without this check all parts delimited by a dot are treated as outline numbers
if(!ByteString(sNum, gsl_getSystemTextEncoding()).IsNumericAscii())
nPos = STRING_NOTFOUND;
2000-09-18 23:08:29 +00:00
}
rName = sName; // das ist der nachfolgende Text.
// alle Levels gelesen, dann suche mal im Document nach dieser
// Gliederung:
const SwOutlineNodes& rOutlNds = rNds.GetOutLineNds();
// OS: ohne OutlineNodes lohnt die Suche nicht
// und man spart sich einen Absturz #42958#
if(!rOutlNds.Count())
return USHRT_MAX;
SwTxtNode* pNd;
nPos = 0;
//search in the existing outline nodes for the required outline num array
for( ; nPos < rOutlNds.Count(); ++nPos )
2000-09-18 23:08:29 +00:00
{
pNd = rOutlNds[ nPos ]->GetTxtNode();
CWS-TOOLING: integrate CWS outlinelevel 2008-12-19 10:32:51 +0100 od r265718 : #i70748# method <SwWW8Writer::StartTOX(..)> - correction for custom to outline style assigned paragraph styles 2008-12-19 09:24:41 +0100 od r265715 : #i70748# method <HandleModifyAtTxtNode(..)> - retrieve former applied list style before potential reset of empty list style due to set outline level 2008-12-17 15:33:57 +0100 hde r265608 : #i97013# 2008-12-17 14:43:42 +0100 od r265603 : #i70748# adjust fix i44177 - adjustment of to outline style assigned paragraph styles only for OOo-Templates. 2008-12-17 12:59:42 +0100 od r265598 : #i70748# method <XMLTextImportHelper::SetStyleAndAttrs(..)> - special handling of OOo 2.x document regarding outline numbering of headings. 2008-12-17 12:45:53 +0100 od r265597 : #i70748# method <HandleModifyAtTxtNode(..)> - correct determination of new and former applied list style 2008-12-17 10:18:41 +0100 od r265581 : #i97312# method <XMLTextNumRuleInfo::Set(..)> - check, if numbering rules instance contains any numbering rule. 2008-12-16 14:34:22 +0100 hde r265542 : #i97013 2008-12-16 14:20:24 +0100 od r265541 : #i70748# adjust documentation of "Which"-ID numbers 2008-12-16 14:19:49 +0100 od r265539 : #i70748# Adjust Attribute-Function-Mapping table due to new attribute 2008-12-16 14:06:24 +0100 od r265538 : #i70748# - Correct handling of to outline style assigned paragraph styles on reset of all paragraph style attributes - WW8 import: Consider refactoring of paragraph style's outline level attribute - NO_NUMBERING define no longer exsits. 2008-12-16 10:37:19 +0100 od r265530 : #i70478# Correction on moving outline paragraph up respectively down in its outline level: - Check also outline paragraph, which are not an outline via a to outline style assigned paragraph style, if action is applicable. 2008-12-16 09:10:13 +0100 hde r265523 : #i97277 2008-12-16 09:09:30 +0100 hde r265522 : #i97277 2008-12-16 09:07:40 +0100 hde r265521 : Added control and purged obsolete id's 2008-12-10 13:09:36 +0100 od r265174 : #i70748# correction of previous fix due to warning-free code 2008-12-10 13:03:30 +0100 od r265172 : #i70748# method <XMLTextImportHelper::SetStyleAndAttrs(..)> - Due to performance issues avoid retrieving outline level value from paragraph's paragraph style for each paragraph. Instead retrieve current outline level value from paragraph, which is the inherited value from its paragraph style, and only when it is needed. 2008-12-09 16:50:36 +0100 ufi r265117 : help 2008-12-09 16:49:50 +0100 ufi r265116 : help 2008-12-09 15:45:05 +0100 od r265107 : #i70748# method <XMLTextImportHelper::SetStyleAndAttrs(..)> - some minor rework and check access to paragraph styles 2008-12-09 15:42:04 +0100 od r265106 : #i70748# adjust name of local variable to avoid hiding of class variable 2008-12-09 15:40:51 +0100 od r265105 : #i70748# correct initialization order 2008-12-09 15:35:07 +0100 od r265101 : #i70748# remove duplicate entry in certain property map 2008-12-09 15:33:39 +0100 od r265100 : #i70748# add end of file token 2008-12-07 15:11:54 +0100 zhaojianwei r264952 : conflicts left not to be resolved when cws rebase 2008-12-04 14:52:21 +0100 zhaojianwei r264846 : CWS-TOOLING: rebase CWS outlinelevel to trunk@264325 (milestone: DEV300:m36) 2008-11-28 03:42:09 +0100 zhaojianwei r264525 : #i70748#: migrate CWS outlinelevel to SVN 2008-11-28 03:41:39 +0100 zhaojianwei r264524 : #i70748#: migrate CWS outlinelevel to SVN 2008-11-28 03:41:11 +0100 zhaojianwei r264523 : #i70748#: migrate CWS outlinelevel to SVN
2009-01-07 11:57:24 +00:00
//BYTE nLvl = pNd->GetTxtColl()->GetOutlineLevel(); //#outline level,zhaojianwei
const int nLvl = pNd->GetAttrOutlineLevel()-1; //<-end,zhaojianwei
INTEGRATION: CWS swnumtree (1.49.32); FILE MERGED 2005/11/03 10:35:51 od 1.49.32.28: #i51089# improve performance - method <SwDoc::GetOutlineNumRule> now inline implemented. - consider change of <SwTxtNode::GetNum()> 2005/11/01 18:07:21 od 1.49.32.27: #i51089# - remove unused code 2005/10/26 10:47:23 od 1.49.32.26: RESYNC: (1.51-1.52); FILE MERGED 2005/10/26 09:34:37 od 1.49.32.25: #b6340308# <SwDoc::SetNumRule(..)> - Only clear numbering rule attribute at current text node, if its paragraph style already contains the new numbering rule. 2005/10/25 06:20:54 od 1.49.32.24: #i51089# - delete unused code. 2005/10/25 05:44:01 od 1.49.32.23: #i55391# <SwDoc::SearchNumRule(..)> - Investigate given start node, if requested. Request is indicated by new parameter <_bInvestigateStartNode> 2005/10/21 11:20:54 od 1.49.32.22: #i51089# - Only the counting of phantoms of the outline numbering rule depends on <SwDoc::IsOldNumbering()> 2005/10/21 08:33:31 od 1.49.32.21: #i55391# <SwDoc::SearchNumRule(..)> - start node has also been investigated. 2005/09/20 14:13:24 fme 1.49.32.20: #i51089# Removed compiler warnings 2005/09/20 11:16:23 hbrinkm 1.49.32.19: #i51089# SwNumRule::Invalidate->SwNumRule::SetInvalidRule(TRUE) 2005/09/14 13:37:29 hbrinkm 1.49.32.18: #i51089# SyncNumRulesAndNodes: UpdateOutlineNode 2005/09/13 20:27:33 hbrinkm 1.49.32.17: RESYNC: (1.50-1.51); FILE MERGED 2005/09/12 15:15:29 hbrinkm 1.49.32.16: #i51089# AddNumRuleRanges 2005/09/07 11:29:02 hbrinkm 1.49.32.15: #i51089# SyncNumRulesAndNodes 2005/09/01 14:46:47 hbrinkm 1.49.32.14: #i51089# NumOrNoNum: only remove hard numbering 2005/08/31 13:34:47 hbrinkm 1.49.32.13: #i51089# NumOrNoNum: Only touch paragraphs with hard numbering that shows number 2005/08/30 12:58:49 hbrinkm 1.49.32.12: #i51089# PropagateOutlineRule: SyncNumAndNumRule after setting of outline level 2005/08/26 13:43:44 hbrinkm 1.49.32.11: #i51089# SetNumRuleStart: bool <-> BOOL 2005/08/23 07:35:20 hbrinkm 1.49.32.10: #i51089# {Outline|Num}UpDown: call ChkCondColls if modified 2005/08/16 15:31:02 hbrinkm 1.49.32.9: #i51089# FindNumRulePtrWithPool 2005/08/11 09:27:49 hbrinkm 1.49.32.8: #i51089# SetNumRule: do not access zero pointer to numrule 2005/08/10 08:07:25 hbrinkm 1.49.32.7: #121445# PropagateOutlineRule: UpdateOutlineNode 2005/08/09 12:36:44 hbrinkm 1.49.32.6: #i51089# 2005/08/04 09:27:27 hbrinkm 1.49.32.5: #121445# PropagateOutlineRule: only propagate numrule if IsOutlineLevelYieldsOutlineRule returns false, #i51089# 2005/08/03 12:22:55 hbrinkm 1.49.32.4: RESYNC: (1.49-1.50); FILE MERGED 2005/07/11 09:14:57 hbrinkm 1.49.32.3: #i51089# NumOrNoNum: only succeed if a real change is made 2005/07/07 12:49:41 hbrinkm 1.49.32.2: #i51089# PropagateOutlineRule: If a paragraph style has outline level and no numbering rule, set the documents's outline numbering rule, MakeUniqueRules: do not alter outline numbering rules 2005/06/22 10:24:52 hbrinkm 1.49.32.1: #i51089# new implementation of numbering
2005-11-08 16:16:30 +00:00
if( nLvl == nLevel - 1)
2000-09-18 23:08:29 +00:00
{
// check for the outline num
INTEGRATION: CWS swnumtree (1.49.32); FILE MERGED 2005/11/03 10:35:51 od 1.49.32.28: #i51089# improve performance - method <SwDoc::GetOutlineNumRule> now inline implemented. - consider change of <SwTxtNode::GetNum()> 2005/11/01 18:07:21 od 1.49.32.27: #i51089# - remove unused code 2005/10/26 10:47:23 od 1.49.32.26: RESYNC: (1.51-1.52); FILE MERGED 2005/10/26 09:34:37 od 1.49.32.25: #b6340308# <SwDoc::SetNumRule(..)> - Only clear numbering rule attribute at current text node, if its paragraph style already contains the new numbering rule. 2005/10/25 06:20:54 od 1.49.32.24: #i51089# - delete unused code. 2005/10/25 05:44:01 od 1.49.32.23: #i55391# <SwDoc::SearchNumRule(..)> - Investigate given start node, if requested. Request is indicated by new parameter <_bInvestigateStartNode> 2005/10/21 11:20:54 od 1.49.32.22: #i51089# - Only the counting of phantoms of the outline numbering rule depends on <SwDoc::IsOldNumbering()> 2005/10/21 08:33:31 od 1.49.32.21: #i55391# <SwDoc::SearchNumRule(..)> - start node has also been investigated. 2005/09/20 14:13:24 fme 1.49.32.20: #i51089# Removed compiler warnings 2005/09/20 11:16:23 hbrinkm 1.49.32.19: #i51089# SwNumRule::Invalidate->SwNumRule::SetInvalidRule(TRUE) 2005/09/14 13:37:29 hbrinkm 1.49.32.18: #i51089# SyncNumRulesAndNodes: UpdateOutlineNode 2005/09/13 20:27:33 hbrinkm 1.49.32.17: RESYNC: (1.50-1.51); FILE MERGED 2005/09/12 15:15:29 hbrinkm 1.49.32.16: #i51089# AddNumRuleRanges 2005/09/07 11:29:02 hbrinkm 1.49.32.15: #i51089# SyncNumRulesAndNodes 2005/09/01 14:46:47 hbrinkm 1.49.32.14: #i51089# NumOrNoNum: only remove hard numbering 2005/08/31 13:34:47 hbrinkm 1.49.32.13: #i51089# NumOrNoNum: Only touch paragraphs with hard numbering that shows number 2005/08/30 12:58:49 hbrinkm 1.49.32.12: #i51089# PropagateOutlineRule: SyncNumAndNumRule after setting of outline level 2005/08/26 13:43:44 hbrinkm 1.49.32.11: #i51089# SetNumRuleStart: bool <-> BOOL 2005/08/23 07:35:20 hbrinkm 1.49.32.10: #i51089# {Outline|Num}UpDown: call ChkCondColls if modified 2005/08/16 15:31:02 hbrinkm 1.49.32.9: #i51089# FindNumRulePtrWithPool 2005/08/11 09:27:49 hbrinkm 1.49.32.8: #i51089# SetNumRule: do not access zero pointer to numrule 2005/08/10 08:07:25 hbrinkm 1.49.32.7: #121445# PropagateOutlineRule: UpdateOutlineNode 2005/08/09 12:36:44 hbrinkm 1.49.32.6: #i51089# 2005/08/04 09:27:27 hbrinkm 1.49.32.5: #121445# PropagateOutlineRule: only propagate numrule if IsOutlineLevelYieldsOutlineRule returns false, #i51089# 2005/08/03 12:22:55 hbrinkm 1.49.32.4: RESYNC: (1.49-1.50); FILE MERGED 2005/07/11 09:14:57 hbrinkm 1.49.32.3: #i51089# NumOrNoNum: only succeed if a real change is made 2005/07/07 12:49:41 hbrinkm 1.49.32.2: #i51089# PropagateOutlineRule: If a paragraph style has outline level and no numbering rule, set the documents's outline numbering rule, MakeUniqueRules: do not alter outline numbering rules 2005/06/22 10:24:52 hbrinkm 1.49.32.1: #i51089# new implementation of numbering
2005-11-08 16:16:30 +00:00
// --> OD 2005-11-02 #i51089 - TUNING#
// --> OD 2006-09-22 #i68289#
// Assure, that text node has the correct numbering level. Otherwise,
// its number vector will not fit to the searched level.
// if ( pNd->GetNum() )
if ( pNd->GetNum() &&
pNd->GetActualListLevel() == ( nLevel - 1 ) )
// <--
2000-09-18 23:08:29 +00:00
{
INTEGRATION: CWS swnumtree (1.49.32); FILE MERGED 2005/11/03 10:35:51 od 1.49.32.28: #i51089# improve performance - method <SwDoc::GetOutlineNumRule> now inline implemented. - consider change of <SwTxtNode::GetNum()> 2005/11/01 18:07:21 od 1.49.32.27: #i51089# - remove unused code 2005/10/26 10:47:23 od 1.49.32.26: RESYNC: (1.51-1.52); FILE MERGED 2005/10/26 09:34:37 od 1.49.32.25: #b6340308# <SwDoc::SetNumRule(..)> - Only clear numbering rule attribute at current text node, if its paragraph style already contains the new numbering rule. 2005/10/25 06:20:54 od 1.49.32.24: #i51089# - delete unused code. 2005/10/25 05:44:01 od 1.49.32.23: #i55391# <SwDoc::SearchNumRule(..)> - Investigate given start node, if requested. Request is indicated by new parameter <_bInvestigateStartNode> 2005/10/21 11:20:54 od 1.49.32.22: #i51089# - Only the counting of phantoms of the outline numbering rule depends on <SwDoc::IsOldNumbering()> 2005/10/21 08:33:31 od 1.49.32.21: #i55391# <SwDoc::SearchNumRule(..)> - start node has also been investigated. 2005/09/20 14:13:24 fme 1.49.32.20: #i51089# Removed compiler warnings 2005/09/20 11:16:23 hbrinkm 1.49.32.19: #i51089# SwNumRule::Invalidate->SwNumRule::SetInvalidRule(TRUE) 2005/09/14 13:37:29 hbrinkm 1.49.32.18: #i51089# SyncNumRulesAndNodes: UpdateOutlineNode 2005/09/13 20:27:33 hbrinkm 1.49.32.17: RESYNC: (1.50-1.51); FILE MERGED 2005/09/12 15:15:29 hbrinkm 1.49.32.16: #i51089# AddNumRuleRanges 2005/09/07 11:29:02 hbrinkm 1.49.32.15: #i51089# SyncNumRulesAndNodes 2005/09/01 14:46:47 hbrinkm 1.49.32.14: #i51089# NumOrNoNum: only remove hard numbering 2005/08/31 13:34:47 hbrinkm 1.49.32.13: #i51089# NumOrNoNum: Only touch paragraphs with hard numbering that shows number 2005/08/30 12:58:49 hbrinkm 1.49.32.12: #i51089# PropagateOutlineRule: SyncNumAndNumRule after setting of outline level 2005/08/26 13:43:44 hbrinkm 1.49.32.11: #i51089# SetNumRuleStart: bool <-> BOOL 2005/08/23 07:35:20 hbrinkm 1.49.32.10: #i51089# {Outline|Num}UpDown: call ChkCondColls if modified 2005/08/16 15:31:02 hbrinkm 1.49.32.9: #i51089# FindNumRulePtrWithPool 2005/08/11 09:27:49 hbrinkm 1.49.32.8: #i51089# SetNumRule: do not access zero pointer to numrule 2005/08/10 08:07:25 hbrinkm 1.49.32.7: #121445# PropagateOutlineRule: UpdateOutlineNode 2005/08/09 12:36:44 hbrinkm 1.49.32.6: #i51089# 2005/08/04 09:27:27 hbrinkm 1.49.32.5: #121445# PropagateOutlineRule: only propagate numrule if IsOutlineLevelYieldsOutlineRule returns false, #i51089# 2005/08/03 12:22:55 hbrinkm 1.49.32.4: RESYNC: (1.49-1.50); FILE MERGED 2005/07/11 09:14:57 hbrinkm 1.49.32.3: #i51089# NumOrNoNum: only succeed if a real change is made 2005/07/07 12:49:41 hbrinkm 1.49.32.2: #i51089# PropagateOutlineRule: If a paragraph style has outline level and no numbering rule, set the documents's outline numbering rule, MakeUniqueRules: do not alter outline numbering rules 2005/06/22 10:24:52 hbrinkm 1.49.32.1: #i51089# new implementation of numbering
2005-11-08 16:16:30 +00:00
const SwNodeNum & rNdNum = *(pNd->GetNum());
SwNumberTree::tNumberVector aLevelVal = rNdNum.GetNumberVector();
INTEGRATION: CWS swnumtree (1.49.32); FILE MERGED 2005/11/03 10:35:51 od 1.49.32.28: #i51089# improve performance - method <SwDoc::GetOutlineNumRule> now inline implemented. - consider change of <SwTxtNode::GetNum()> 2005/11/01 18:07:21 od 1.49.32.27: #i51089# - remove unused code 2005/10/26 10:47:23 od 1.49.32.26: RESYNC: (1.51-1.52); FILE MERGED 2005/10/26 09:34:37 od 1.49.32.25: #b6340308# <SwDoc::SetNumRule(..)> - Only clear numbering rule attribute at current text node, if its paragraph style already contains the new numbering rule. 2005/10/25 06:20:54 od 1.49.32.24: #i51089# - delete unused code. 2005/10/25 05:44:01 od 1.49.32.23: #i55391# <SwDoc::SearchNumRule(..)> - Investigate given start node, if requested. Request is indicated by new parameter <_bInvestigateStartNode> 2005/10/21 11:20:54 od 1.49.32.22: #i51089# - Only the counting of phantoms of the outline numbering rule depends on <SwDoc::IsOldNumbering()> 2005/10/21 08:33:31 od 1.49.32.21: #i55391# <SwDoc::SearchNumRule(..)> - start node has also been investigated. 2005/09/20 14:13:24 fme 1.49.32.20: #i51089# Removed compiler warnings 2005/09/20 11:16:23 hbrinkm 1.49.32.19: #i51089# SwNumRule::Invalidate->SwNumRule::SetInvalidRule(TRUE) 2005/09/14 13:37:29 hbrinkm 1.49.32.18: #i51089# SyncNumRulesAndNodes: UpdateOutlineNode 2005/09/13 20:27:33 hbrinkm 1.49.32.17: RESYNC: (1.50-1.51); FILE MERGED 2005/09/12 15:15:29 hbrinkm 1.49.32.16: #i51089# AddNumRuleRanges 2005/09/07 11:29:02 hbrinkm 1.49.32.15: #i51089# SyncNumRulesAndNodes 2005/09/01 14:46:47 hbrinkm 1.49.32.14: #i51089# NumOrNoNum: only remove hard numbering 2005/08/31 13:34:47 hbrinkm 1.49.32.13: #i51089# NumOrNoNum: Only touch paragraphs with hard numbering that shows number 2005/08/30 12:58:49 hbrinkm 1.49.32.12: #i51089# PropagateOutlineRule: SyncNumAndNumRule after setting of outline level 2005/08/26 13:43:44 hbrinkm 1.49.32.11: #i51089# SetNumRuleStart: bool <-> BOOL 2005/08/23 07:35:20 hbrinkm 1.49.32.10: #i51089# {Outline|Num}UpDown: call ChkCondColls if modified 2005/08/16 15:31:02 hbrinkm 1.49.32.9: #i51089# FindNumRulePtrWithPool 2005/08/11 09:27:49 hbrinkm 1.49.32.8: #i51089# SetNumRule: do not access zero pointer to numrule 2005/08/10 08:07:25 hbrinkm 1.49.32.7: #121445# PropagateOutlineRule: UpdateOutlineNode 2005/08/09 12:36:44 hbrinkm 1.49.32.6: #i51089# 2005/08/04 09:27:27 hbrinkm 1.49.32.5: #121445# PropagateOutlineRule: only propagate numrule if IsOutlineLevelYieldsOutlineRule returns false, #i51089# 2005/08/03 12:22:55 hbrinkm 1.49.32.4: RESYNC: (1.49-1.50); FILE MERGED 2005/07/11 09:14:57 hbrinkm 1.49.32.3: #i51089# NumOrNoNum: only succeed if a real change is made 2005/07/07 12:49:41 hbrinkm 1.49.32.2: #i51089# PropagateOutlineRule: If a paragraph style has outline level and no numbering rule, set the documents's outline numbering rule, MakeUniqueRules: do not alter outline numbering rules 2005/06/22 10:24:52 hbrinkm 1.49.32.1: #i51089# new implementation of numbering
2005-11-08 16:16:30 +00:00
//now compare with the one searched for
bool bEqual = true;
for( BYTE n = 0; (n < nLevel) && bEqual; ++n )
{
bEqual = aLevelVal[n] == nLevelVal[n];
}
if(bEqual)
{
break;
}
2000-09-18 23:08:29 +00:00
}
INTEGRATION: CWS swnumtree (1.49.32); FILE MERGED 2005/11/03 10:35:51 od 1.49.32.28: #i51089# improve performance - method <SwDoc::GetOutlineNumRule> now inline implemented. - consider change of <SwTxtNode::GetNum()> 2005/11/01 18:07:21 od 1.49.32.27: #i51089# - remove unused code 2005/10/26 10:47:23 od 1.49.32.26: RESYNC: (1.51-1.52); FILE MERGED 2005/10/26 09:34:37 od 1.49.32.25: #b6340308# <SwDoc::SetNumRule(..)> - Only clear numbering rule attribute at current text node, if its paragraph style already contains the new numbering rule. 2005/10/25 06:20:54 od 1.49.32.24: #i51089# - delete unused code. 2005/10/25 05:44:01 od 1.49.32.23: #i55391# <SwDoc::SearchNumRule(..)> - Investigate given start node, if requested. Request is indicated by new parameter <_bInvestigateStartNode> 2005/10/21 11:20:54 od 1.49.32.22: #i51089# - Only the counting of phantoms of the outline numbering rule depends on <SwDoc::IsOldNumbering()> 2005/10/21 08:33:31 od 1.49.32.21: #i55391# <SwDoc::SearchNumRule(..)> - start node has also been investigated. 2005/09/20 14:13:24 fme 1.49.32.20: #i51089# Removed compiler warnings 2005/09/20 11:16:23 hbrinkm 1.49.32.19: #i51089# SwNumRule::Invalidate->SwNumRule::SetInvalidRule(TRUE) 2005/09/14 13:37:29 hbrinkm 1.49.32.18: #i51089# SyncNumRulesAndNodes: UpdateOutlineNode 2005/09/13 20:27:33 hbrinkm 1.49.32.17: RESYNC: (1.50-1.51); FILE MERGED 2005/09/12 15:15:29 hbrinkm 1.49.32.16: #i51089# AddNumRuleRanges 2005/09/07 11:29:02 hbrinkm 1.49.32.15: #i51089# SyncNumRulesAndNodes 2005/09/01 14:46:47 hbrinkm 1.49.32.14: #i51089# NumOrNoNum: only remove hard numbering 2005/08/31 13:34:47 hbrinkm 1.49.32.13: #i51089# NumOrNoNum: Only touch paragraphs with hard numbering that shows number 2005/08/30 12:58:49 hbrinkm 1.49.32.12: #i51089# PropagateOutlineRule: SyncNumAndNumRule after setting of outline level 2005/08/26 13:43:44 hbrinkm 1.49.32.11: #i51089# SetNumRuleStart: bool <-> BOOL 2005/08/23 07:35:20 hbrinkm 1.49.32.10: #i51089# {Outline|Num}UpDown: call ChkCondColls if modified 2005/08/16 15:31:02 hbrinkm 1.49.32.9: #i51089# FindNumRulePtrWithPool 2005/08/11 09:27:49 hbrinkm 1.49.32.8: #i51089# SetNumRule: do not access zero pointer to numrule 2005/08/10 08:07:25 hbrinkm 1.49.32.7: #121445# PropagateOutlineRule: UpdateOutlineNode 2005/08/09 12:36:44 hbrinkm 1.49.32.6: #i51089# 2005/08/04 09:27:27 hbrinkm 1.49.32.5: #121445# PropagateOutlineRule: only propagate numrule if IsOutlineLevelYieldsOutlineRule returns false, #i51089# 2005/08/03 12:22:55 hbrinkm 1.49.32.4: RESYNC: (1.49-1.50); FILE MERGED 2005/07/11 09:14:57 hbrinkm 1.49.32.3: #i51089# NumOrNoNum: only succeed if a real change is made 2005/07/07 12:49:41 hbrinkm 1.49.32.2: #i51089# PropagateOutlineRule: If a paragraph style has outline level and no numbering rule, set the documents's outline numbering rule, MakeUniqueRules: do not alter outline numbering rules 2005/06/22 10:24:52 hbrinkm 1.49.32.1: #i51089# new implementation of numbering
2005-11-08 16:16:30 +00:00
else
2000-09-18 23:08:29 +00:00
{
// --> OD 2006-01-12 #126588#
// A text node, which has an outline paragraph style applied and
// has as hard attribute 'no numbering' set, has an outline level,
// but no numbering tree node. Thus, consider this situation in
// the assertion condition.
ASSERT( !pNd->GetNumRule(),
"<lcl_FindOutlineNum(..)> - text node with outline level and numbering rule, but without numbering tree node. This is a serious defect -> inform OD" );
2000-09-18 23:08:29 +00:00
}
}
}
if( nPos >= rOutlNds.Count() )
nPos = USHRT_MAX;
2000-09-18 23:08:29 +00:00
return nPos;
}
// zu diesem Gliederungspunkt
// JP 13.06.96:
// im Namen kann eine Nummer oder/und der Text stehen.
// zuerst wird ueber die Nummer versucht den richtigen Eintrag zu finden.
// Gibt es diesen, dann wird ueber den Text verglichen, od es der
// gewuenschte ist. Ist das nicht der Fall, wird noch mal nur ueber den
// Text gesucht. Wird dieser gefunden ist es der Eintrag. Ansonsten der,
// der ueber die Nummer gefunden wurde.
// Ist keine Nummer angegeben, dann nur den Text suchen.
BOOL SwDoc::GotoOutline( SwPosition& rPos, const String& rName ) const
{
if( rName.Len() )
{
const SwOutlineNodes& rOutlNds = GetNodes().GetOutLineNds();
// 1. Schritt: ueber die Nummer:
String sName( rName );
USHORT nFndPos = ::lcl_FindOutlineNum( GetNodes(), sName );
if( USHRT_MAX != nFndPos )
{
SwTxtNode* pNd = rOutlNds[ nFndPos ]->GetTxtNode();
String sExpandedText = pNd->GetExpandTxt();
//#i4533# leading numbers followed by a dot have been remove while
//searching for the outline position
//to compensate this they must be removed from the paragraphs text content, too
USHORT nPos = 0;
String sTempNum;
while(sExpandedText.Len() && (sTempNum = sExpandedText.GetToken(0, '.', nPos)).Len() &&
STRING_NOTFOUND != nPos &&
ByteString(sTempNum, gsl_getSystemTextEncoding()).IsNumericAscii())
{
sExpandedText.Erase(0, nPos);
nPos = 0;
}
if( !sExpandedText.Equals( sName ) )
2000-09-18 23:08:29 +00:00
{
USHORT nTmp = ::lcl_FindOutlineName( GetNodes(), sName, TRUE );
if( USHRT_MAX != nTmp ) // ueber den Namen gefunden
{
nFndPos = nTmp;
pNd = rOutlNds[ nFndPos ]->GetTxtNode();
}
}
rPos.nNode = *pNd;
rPos.nContent.Assign( pNd, 0 );
return TRUE;
}
nFndPos = ::lcl_FindOutlineName( GetNodes(), rName, FALSE );
if( USHRT_MAX != nFndPos )
{
SwTxtNode* pNd = rOutlNds[ nFndPos ]->GetTxtNode();
rPos.nNode = *pNd;
rPos.nContent.Assign( pNd, 0 );
return TRUE;
}
// --> OD 2006-09-22 #i68289#
// additional search on hyperlink URL without its outline numbering part
if ( !sName.Equals( rName ) )
{
nFndPos = ::lcl_FindOutlineName( GetNodes(), sName, FALSE );
if( USHRT_MAX != nFndPos )
{
SwTxtNode* pNd = rOutlNds[ nFndPos ]->GetTxtNode();
rPos.nNode = *pNd;
rPos.nContent.Assign( pNd, 0 );
return TRUE;
}
}
// <--
2000-09-18 23:08:29 +00:00
}
return FALSE;
}
/* */
// --- Nummerierung -----------------------------------------
// --> OD 2008-02-19 #refactorlists#
//void SwNumRuleInfo::MakeList( SwDoc& rDoc, BOOL )
//{
// SwNumRule* pRule = rDoc.FindNumRulePtr(rName);
// // no rule, no fun.
// if ( !pRule )
// return;
// //
// // 1. Case: Information already available at pRule:
// //
// if (pRule->GetTxtNodeList())
// {
// // copy list to own pList pointer:
// aList = *pRule->GetTxtNodeList();
// return;
// }
// //
// // 2. Case: Information has to be generated from scratch:
// //
// if (pRule->IsOutlineRule())
// {
// const SwOutlineNodes & rOutlineNodes = rDoc.GetNodes().GetOutLineNds();
// for (USHORT i = 0; i < rOutlineNodes.Count(); ++i)
// {
// SwTxtNode & aNode = *((SwTxtNode *) rOutlineNodes[i]);
// if (pRule == aNode.GetNumRule())
// AddNode(aNode);
// }
// }
// {
// SwModify* pMod;
// const SfxPoolItem* pItem;
// USHORT i, nMaxItems = rDoc.GetAttrPool().GetItemCount
// ( RES_PARATR_NUMRULE);
// for( i = 0; i < nMaxItems; ++i )
// {
// pItem = rDoc.GetAttrPool().GetItem( RES_PARATR_NUMRULE, i );
// if( 0 != pItem)
// {
// pMod = (SwModify*)((SwNumRuleItem*)pItem)->GetDefinedIn();
// if (0 != pMod &&
// ((SwNumRuleItem*)pItem)->GetValue().Len() &&
// ((SwNumRuleItem*)pItem)->GetValue() == rName )
// {
// if( pMod->IsA( TYPE( SwFmt )) )
// pMod->GetInfo( *this );
// else
// {
// SwTxtNode* pModTxtNode = (SwTxtNode*)pMod;
// // #115901#
// if( pModTxtNode->GetNodes().IsDocNodes())
// {
// AddNode( *pModTxtNode );
// }
// }
// }
// }
// }
// }
// // --> FME 2004-11-03 #i36571# The numrule and this info structure should
// // have different instances of the list:
// // --> OD 2006-09-12 #i69145#
// // method <SwNumRule::SetList(..)> copies content of list provided by the parameter
// pRule->SetTxtNodeList( aList );
// // <--
//}
// <--
2000-09-18 23:08:29 +00:00
void lcl_ChgNumRule( SwDoc& rDoc, const SwNumRule& rRule )
2000-09-18 23:08:29 +00:00
{
SwNumRule* pOld = rDoc.FindNumRulePtr( rRule.GetName() );
ASSERT( pOld, "ohne die alte NumRule geht gar nichts" );
USHORT nChgFmtLevel = 0, nMask = 1;
BYTE n;
2000-09-18 23:08:29 +00:00
for( n = 0; n < MAXLEVEL; ++n, nMask <<= 1 )
2000-09-18 23:08:29 +00:00
{
const SwNumFmt& rOldFmt = pOld->Get( n ),
& rNewFmt = rRule.Get( n );
if( rOldFmt != rNewFmt )
{
nChgFmtLevel |= nMask;
}
else if( SVX_NUM_NUMBER_NONE > rNewFmt.GetNumberingType() && 1 < rNewFmt.GetIncludeUpperLevels() &&
0 != (nChgFmtLevel & GetUpperLvlChg( n, rNewFmt.GetIncludeUpperLevels(),nMask )) )
2000-09-18 23:08:29 +00:00
nChgFmtLevel |= nMask;
}
if( !nChgFmtLevel ) // es wurde nichts veraendert?
{
// --> OD 2006-04-27 #i64311#
const bool bInvalidateNumRule( pOld->IsContinusNum() != rRule.IsContinusNum() );
// <--
2000-09-18 23:08:29 +00:00
pOld->CheckCharFmts( &rDoc );
pOld->SetContinusNum( rRule.IsContinusNum() );
// --> OD 2008-06-17 #i87166#
// Do NOT change list style type
// pOld->SetRuleType( rRule.GetRuleType() );
// <--
// --> OD 2006-04-27 #i64311#
if ( bInvalidateNumRule )
{
pOld->SetInvalidRule(TRUE);
}
// <--
2000-09-18 23:08:29 +00:00
return ;
}
// --> OD 2008-02-19 #refactorlists#
// SwNumRuleInfo* pUpd = new SwNumRuleInfo( rRule.GetName() );
// pUpd->MakeList( rDoc );
// BYTE nLvl;
// for( ULONG nFirst = 0, nLast = pUpd->GetList().Count();
// nFirst < nLast; ++nFirst )
// {
// SwTxtNode* pTxtNd = pUpd->GetList().GetObject( nFirst );
// nLvl = static_cast<BYTE>(pTxtNd->GetLevel());
2000-09-18 23:08:29 +00:00
// if( nLvl < MAXLEVEL )
// {
// if( nChgFmtLevel & ( 1 << nLvl ))
// {
// pTxtNd->NumRuleChgd();
// }
// }
// }
SwNumRule::tTxtNodeList aTxtNodeList;
pOld->GetTxtNodeList( aTxtNodeList );
BYTE nLvl( 0 );
for ( SwNumRule::tTxtNodeList::iterator aIter = aTxtNodeList.begin();
aIter != aTxtNodeList.end(); ++aIter )
2000-09-18 23:08:29 +00:00
{
SwTxtNode* pTxtNd = *aIter;
nLvl = static_cast<BYTE>(pTxtNd->GetActualListLevel());
INTEGRATION: CWS swnumtree (1.49.32); FILE MERGED 2005/11/03 10:35:51 od 1.49.32.28: #i51089# improve performance - method <SwDoc::GetOutlineNumRule> now inline implemented. - consider change of <SwTxtNode::GetNum()> 2005/11/01 18:07:21 od 1.49.32.27: #i51089# - remove unused code 2005/10/26 10:47:23 od 1.49.32.26: RESYNC: (1.51-1.52); FILE MERGED 2005/10/26 09:34:37 od 1.49.32.25: #b6340308# <SwDoc::SetNumRule(..)> - Only clear numbering rule attribute at current text node, if its paragraph style already contains the new numbering rule. 2005/10/25 06:20:54 od 1.49.32.24: #i51089# - delete unused code. 2005/10/25 05:44:01 od 1.49.32.23: #i55391# <SwDoc::SearchNumRule(..)> - Investigate given start node, if requested. Request is indicated by new parameter <_bInvestigateStartNode> 2005/10/21 11:20:54 od 1.49.32.22: #i51089# - Only the counting of phantoms of the outline numbering rule depends on <SwDoc::IsOldNumbering()> 2005/10/21 08:33:31 od 1.49.32.21: #i55391# <SwDoc::SearchNumRule(..)> - start node has also been investigated. 2005/09/20 14:13:24 fme 1.49.32.20: #i51089# Removed compiler warnings 2005/09/20 11:16:23 hbrinkm 1.49.32.19: #i51089# SwNumRule::Invalidate->SwNumRule::SetInvalidRule(TRUE) 2005/09/14 13:37:29 hbrinkm 1.49.32.18: #i51089# SyncNumRulesAndNodes: UpdateOutlineNode 2005/09/13 20:27:33 hbrinkm 1.49.32.17: RESYNC: (1.50-1.51); FILE MERGED 2005/09/12 15:15:29 hbrinkm 1.49.32.16: #i51089# AddNumRuleRanges 2005/09/07 11:29:02 hbrinkm 1.49.32.15: #i51089# SyncNumRulesAndNodes 2005/09/01 14:46:47 hbrinkm 1.49.32.14: #i51089# NumOrNoNum: only remove hard numbering 2005/08/31 13:34:47 hbrinkm 1.49.32.13: #i51089# NumOrNoNum: Only touch paragraphs with hard numbering that shows number 2005/08/30 12:58:49 hbrinkm 1.49.32.12: #i51089# PropagateOutlineRule: SyncNumAndNumRule after setting of outline level 2005/08/26 13:43:44 hbrinkm 1.49.32.11: #i51089# SetNumRuleStart: bool <-> BOOL 2005/08/23 07:35:20 hbrinkm 1.49.32.10: #i51089# {Outline|Num}UpDown: call ChkCondColls if modified 2005/08/16 15:31:02 hbrinkm 1.49.32.9: #i51089# FindNumRulePtrWithPool 2005/08/11 09:27:49 hbrinkm 1.49.32.8: #i51089# SetNumRule: do not access zero pointer to numrule 2005/08/10 08:07:25 hbrinkm 1.49.32.7: #121445# PropagateOutlineRule: UpdateOutlineNode 2005/08/09 12:36:44 hbrinkm 1.49.32.6: #i51089# 2005/08/04 09:27:27 hbrinkm 1.49.32.5: #121445# PropagateOutlineRule: only propagate numrule if IsOutlineLevelYieldsOutlineRule returns false, #i51089# 2005/08/03 12:22:55 hbrinkm 1.49.32.4: RESYNC: (1.49-1.50); FILE MERGED 2005/07/11 09:14:57 hbrinkm 1.49.32.3: #i51089# NumOrNoNum: only succeed if a real change is made 2005/07/07 12:49:41 hbrinkm 1.49.32.2: #i51089# PropagateOutlineRule: If a paragraph style has outline level and no numbering rule, set the documents's outline numbering rule, MakeUniqueRules: do not alter outline numbering rules 2005/06/22 10:24:52 hbrinkm 1.49.32.1: #i51089# new implementation of numbering
2005-11-08 16:16:30 +00:00
if( nLvl < MAXLEVEL )
2000-09-18 23:08:29 +00:00
{
if( nChgFmtLevel & ( 1 << nLvl ))
{
pTxtNd->NumRuleChgd();
}
}
}
// <--
2000-09-18 23:08:29 +00:00
for( n = 0; n < MAXLEVEL; ++n )
if( nChgFmtLevel & ( 1 << n ))
pOld->Set( n, rRule.GetNumFmt( n ));
pOld->CheckCharFmts( &rDoc );
INTEGRATION: CWS swnumtree (1.49.32); FILE MERGED 2005/11/03 10:35:51 od 1.49.32.28: #i51089# improve performance - method <SwDoc::GetOutlineNumRule> now inline implemented. - consider change of <SwTxtNode::GetNum()> 2005/11/01 18:07:21 od 1.49.32.27: #i51089# - remove unused code 2005/10/26 10:47:23 od 1.49.32.26: RESYNC: (1.51-1.52); FILE MERGED 2005/10/26 09:34:37 od 1.49.32.25: #b6340308# <SwDoc::SetNumRule(..)> - Only clear numbering rule attribute at current text node, if its paragraph style already contains the new numbering rule. 2005/10/25 06:20:54 od 1.49.32.24: #i51089# - delete unused code. 2005/10/25 05:44:01 od 1.49.32.23: #i55391# <SwDoc::SearchNumRule(..)> - Investigate given start node, if requested. Request is indicated by new parameter <_bInvestigateStartNode> 2005/10/21 11:20:54 od 1.49.32.22: #i51089# - Only the counting of phantoms of the outline numbering rule depends on <SwDoc::IsOldNumbering()> 2005/10/21 08:33:31 od 1.49.32.21: #i55391# <SwDoc::SearchNumRule(..)> - start node has also been investigated. 2005/09/20 14:13:24 fme 1.49.32.20: #i51089# Removed compiler warnings 2005/09/20 11:16:23 hbrinkm 1.49.32.19: #i51089# SwNumRule::Invalidate->SwNumRule::SetInvalidRule(TRUE) 2005/09/14 13:37:29 hbrinkm 1.49.32.18: #i51089# SyncNumRulesAndNodes: UpdateOutlineNode 2005/09/13 20:27:33 hbrinkm 1.49.32.17: RESYNC: (1.50-1.51); FILE MERGED 2005/09/12 15:15:29 hbrinkm 1.49.32.16: #i51089# AddNumRuleRanges 2005/09/07 11:29:02 hbrinkm 1.49.32.15: #i51089# SyncNumRulesAndNodes 2005/09/01 14:46:47 hbrinkm 1.49.32.14: #i51089# NumOrNoNum: only remove hard numbering 2005/08/31 13:34:47 hbrinkm 1.49.32.13: #i51089# NumOrNoNum: Only touch paragraphs with hard numbering that shows number 2005/08/30 12:58:49 hbrinkm 1.49.32.12: #i51089# PropagateOutlineRule: SyncNumAndNumRule after setting of outline level 2005/08/26 13:43:44 hbrinkm 1.49.32.11: #i51089# SetNumRuleStart: bool <-> BOOL 2005/08/23 07:35:20 hbrinkm 1.49.32.10: #i51089# {Outline|Num}UpDown: call ChkCondColls if modified 2005/08/16 15:31:02 hbrinkm 1.49.32.9: #i51089# FindNumRulePtrWithPool 2005/08/11 09:27:49 hbrinkm 1.49.32.8: #i51089# SetNumRule: do not access zero pointer to numrule 2005/08/10 08:07:25 hbrinkm 1.49.32.7: #121445# PropagateOutlineRule: UpdateOutlineNode 2005/08/09 12:36:44 hbrinkm 1.49.32.6: #i51089# 2005/08/04 09:27:27 hbrinkm 1.49.32.5: #121445# PropagateOutlineRule: only propagate numrule if IsOutlineLevelYieldsOutlineRule returns false, #i51089# 2005/08/03 12:22:55 hbrinkm 1.49.32.4: RESYNC: (1.49-1.50); FILE MERGED 2005/07/11 09:14:57 hbrinkm 1.49.32.3: #i51089# NumOrNoNum: only succeed if a real change is made 2005/07/07 12:49:41 hbrinkm 1.49.32.2: #i51089# PropagateOutlineRule: If a paragraph style has outline level and no numbering rule, set the documents's outline numbering rule, MakeUniqueRules: do not alter outline numbering rules 2005/06/22 10:24:52 hbrinkm 1.49.32.1: #i51089# new implementation of numbering
2005-11-08 16:16:30 +00:00
pOld->SetInvalidRule(TRUE);
2000-09-18 23:08:29 +00:00
pOld->SetContinusNum( rRule.IsContinusNum() );
// --> OD 2008-06-17 #i87166#
// Do NOT change list style type
// pOld->SetRuleType( rRule.GetRuleType() );
// <--
2000-09-18 23:08:29 +00:00
// --> OD 2008-02-19 #refactorlists#
// delete pUpd;
// <--
INTEGRATION: CWS swnumtree (1.49.32); FILE MERGED 2005/11/03 10:35:51 od 1.49.32.28: #i51089# improve performance - method <SwDoc::GetOutlineNumRule> now inline implemented. - consider change of <SwTxtNode::GetNum()> 2005/11/01 18:07:21 od 1.49.32.27: #i51089# - remove unused code 2005/10/26 10:47:23 od 1.49.32.26: RESYNC: (1.51-1.52); FILE MERGED 2005/10/26 09:34:37 od 1.49.32.25: #b6340308# <SwDoc::SetNumRule(..)> - Only clear numbering rule attribute at current text node, if its paragraph style already contains the new numbering rule. 2005/10/25 06:20:54 od 1.49.32.24: #i51089# - delete unused code. 2005/10/25 05:44:01 od 1.49.32.23: #i55391# <SwDoc::SearchNumRule(..)> - Investigate given start node, if requested. Request is indicated by new parameter <_bInvestigateStartNode> 2005/10/21 11:20:54 od 1.49.32.22: #i51089# - Only the counting of phantoms of the outline numbering rule depends on <SwDoc::IsOldNumbering()> 2005/10/21 08:33:31 od 1.49.32.21: #i55391# <SwDoc::SearchNumRule(..)> - start node has also been investigated. 2005/09/20 14:13:24 fme 1.49.32.20: #i51089# Removed compiler warnings 2005/09/20 11:16:23 hbrinkm 1.49.32.19: #i51089# SwNumRule::Invalidate->SwNumRule::SetInvalidRule(TRUE) 2005/09/14 13:37:29 hbrinkm 1.49.32.18: #i51089# SyncNumRulesAndNodes: UpdateOutlineNode 2005/09/13 20:27:33 hbrinkm 1.49.32.17: RESYNC: (1.50-1.51); FILE MERGED 2005/09/12 15:15:29 hbrinkm 1.49.32.16: #i51089# AddNumRuleRanges 2005/09/07 11:29:02 hbrinkm 1.49.32.15: #i51089# SyncNumRulesAndNodes 2005/09/01 14:46:47 hbrinkm 1.49.32.14: #i51089# NumOrNoNum: only remove hard numbering 2005/08/31 13:34:47 hbrinkm 1.49.32.13: #i51089# NumOrNoNum: Only touch paragraphs with hard numbering that shows number 2005/08/30 12:58:49 hbrinkm 1.49.32.12: #i51089# PropagateOutlineRule: SyncNumAndNumRule after setting of outline level 2005/08/26 13:43:44 hbrinkm 1.49.32.11: #i51089# SetNumRuleStart: bool <-> BOOL 2005/08/23 07:35:20 hbrinkm 1.49.32.10: #i51089# {Outline|Num}UpDown: call ChkCondColls if modified 2005/08/16 15:31:02 hbrinkm 1.49.32.9: #i51089# FindNumRulePtrWithPool 2005/08/11 09:27:49 hbrinkm 1.49.32.8: #i51089# SetNumRule: do not access zero pointer to numrule 2005/08/10 08:07:25 hbrinkm 1.49.32.7: #121445# PropagateOutlineRule: UpdateOutlineNode 2005/08/09 12:36:44 hbrinkm 1.49.32.6: #i51089# 2005/08/04 09:27:27 hbrinkm 1.49.32.5: #121445# PropagateOutlineRule: only propagate numrule if IsOutlineLevelYieldsOutlineRule returns false, #i51089# 2005/08/03 12:22:55 hbrinkm 1.49.32.4: RESYNC: (1.49-1.50); FILE MERGED 2005/07/11 09:14:57 hbrinkm 1.49.32.3: #i51089# NumOrNoNum: only succeed if a real change is made 2005/07/07 12:49:41 hbrinkm 1.49.32.2: #i51089# PropagateOutlineRule: If a paragraph style has outline level and no numbering rule, set the documents's outline numbering rule, MakeUniqueRules: do not alter outline numbering rules 2005/06/22 10:24:52 hbrinkm 1.49.32.1: #i51089# new implementation of numbering
2005-11-08 16:16:30 +00:00
rDoc.UpdateNumRule();
2000-09-18 23:08:29 +00:00
}
// OD 2008-02-08 #newlistlevelattrs# - add handling of parameter <bResetIndentAttrs>
// --> OD 2008-03-17 #refactorlists#
void SwDoc::SetNumRule( const SwPaM& rPam,
const SwNumRule& rRule,
const bool bCreateNewList,
const String sContinuedListId,
sal_Bool bSetItem,
const bool bResetIndentAttrs )
2000-09-18 23:08:29 +00:00
{
INTEGRATION: CWS swnumtree (1.49.32); FILE MERGED 2005/11/03 10:35:51 od 1.49.32.28: #i51089# improve performance - method <SwDoc::GetOutlineNumRule> now inline implemented. - consider change of <SwTxtNode::GetNum()> 2005/11/01 18:07:21 od 1.49.32.27: #i51089# - remove unused code 2005/10/26 10:47:23 od 1.49.32.26: RESYNC: (1.51-1.52); FILE MERGED 2005/10/26 09:34:37 od 1.49.32.25: #b6340308# <SwDoc::SetNumRule(..)> - Only clear numbering rule attribute at current text node, if its paragraph style already contains the new numbering rule. 2005/10/25 06:20:54 od 1.49.32.24: #i51089# - delete unused code. 2005/10/25 05:44:01 od 1.49.32.23: #i55391# <SwDoc::SearchNumRule(..)> - Investigate given start node, if requested. Request is indicated by new parameter <_bInvestigateStartNode> 2005/10/21 11:20:54 od 1.49.32.22: #i51089# - Only the counting of phantoms of the outline numbering rule depends on <SwDoc::IsOldNumbering()> 2005/10/21 08:33:31 od 1.49.32.21: #i55391# <SwDoc::SearchNumRule(..)> - start node has also been investigated. 2005/09/20 14:13:24 fme 1.49.32.20: #i51089# Removed compiler warnings 2005/09/20 11:16:23 hbrinkm 1.49.32.19: #i51089# SwNumRule::Invalidate->SwNumRule::SetInvalidRule(TRUE) 2005/09/14 13:37:29 hbrinkm 1.49.32.18: #i51089# SyncNumRulesAndNodes: UpdateOutlineNode 2005/09/13 20:27:33 hbrinkm 1.49.32.17: RESYNC: (1.50-1.51); FILE MERGED 2005/09/12 15:15:29 hbrinkm 1.49.32.16: #i51089# AddNumRuleRanges 2005/09/07 11:29:02 hbrinkm 1.49.32.15: #i51089# SyncNumRulesAndNodes 2005/09/01 14:46:47 hbrinkm 1.49.32.14: #i51089# NumOrNoNum: only remove hard numbering 2005/08/31 13:34:47 hbrinkm 1.49.32.13: #i51089# NumOrNoNum: Only touch paragraphs with hard numbering that shows number 2005/08/30 12:58:49 hbrinkm 1.49.32.12: #i51089# PropagateOutlineRule: SyncNumAndNumRule after setting of outline level 2005/08/26 13:43:44 hbrinkm 1.49.32.11: #i51089# SetNumRuleStart: bool <-> BOOL 2005/08/23 07:35:20 hbrinkm 1.49.32.10: #i51089# {Outline|Num}UpDown: call ChkCondColls if modified 2005/08/16 15:31:02 hbrinkm 1.49.32.9: #i51089# FindNumRulePtrWithPool 2005/08/11 09:27:49 hbrinkm 1.49.32.8: #i51089# SetNumRule: do not access zero pointer to numrule 2005/08/10 08:07:25 hbrinkm 1.49.32.7: #121445# PropagateOutlineRule: UpdateOutlineNode 2005/08/09 12:36:44 hbrinkm 1.49.32.6: #i51089# 2005/08/04 09:27:27 hbrinkm 1.49.32.5: #121445# PropagateOutlineRule: only propagate numrule if IsOutlineLevelYieldsOutlineRule returns false, #i51089# 2005/08/03 12:22:55 hbrinkm 1.49.32.4: RESYNC: (1.49-1.50); FILE MERGED 2005/07/11 09:14:57 hbrinkm 1.49.32.3: #i51089# NumOrNoNum: only succeed if a real change is made 2005/07/07 12:49:41 hbrinkm 1.49.32.2: #i51089# PropagateOutlineRule: If a paragraph style has outline level and no numbering rule, set the documents's outline numbering rule, MakeUniqueRules: do not alter outline numbering rules 2005/06/22 10:24:52 hbrinkm 1.49.32.1: #i51089# new implementation of numbering
2005-11-08 16:16:30 +00:00
SwUndoInsNum * pUndo = NULL;
if (DoesUndo())
2000-09-18 23:08:29 +00:00
{
ClearRedo();
StartUndo( UNDO_INSNUM, NULL ); // Klammerung fuer die Attribute!
2000-09-18 23:08:29 +00:00
AppendUndo( pUndo = new SwUndoInsNum( rPam, rRule ) );
}
INTEGRATION: CWS swnumtree (1.49.32); FILE MERGED 2005/11/03 10:35:51 od 1.49.32.28: #i51089# improve performance - method <SwDoc::GetOutlineNumRule> now inline implemented. - consider change of <SwTxtNode::GetNum()> 2005/11/01 18:07:21 od 1.49.32.27: #i51089# - remove unused code 2005/10/26 10:47:23 od 1.49.32.26: RESYNC: (1.51-1.52); FILE MERGED 2005/10/26 09:34:37 od 1.49.32.25: #b6340308# <SwDoc::SetNumRule(..)> - Only clear numbering rule attribute at current text node, if its paragraph style already contains the new numbering rule. 2005/10/25 06:20:54 od 1.49.32.24: #i51089# - delete unused code. 2005/10/25 05:44:01 od 1.49.32.23: #i55391# <SwDoc::SearchNumRule(..)> - Investigate given start node, if requested. Request is indicated by new parameter <_bInvestigateStartNode> 2005/10/21 11:20:54 od 1.49.32.22: #i51089# - Only the counting of phantoms of the outline numbering rule depends on <SwDoc::IsOldNumbering()> 2005/10/21 08:33:31 od 1.49.32.21: #i55391# <SwDoc::SearchNumRule(..)> - start node has also been investigated. 2005/09/20 14:13:24 fme 1.49.32.20: #i51089# Removed compiler warnings 2005/09/20 11:16:23 hbrinkm 1.49.32.19: #i51089# SwNumRule::Invalidate->SwNumRule::SetInvalidRule(TRUE) 2005/09/14 13:37:29 hbrinkm 1.49.32.18: #i51089# SyncNumRulesAndNodes: UpdateOutlineNode 2005/09/13 20:27:33 hbrinkm 1.49.32.17: RESYNC: (1.50-1.51); FILE MERGED 2005/09/12 15:15:29 hbrinkm 1.49.32.16: #i51089# AddNumRuleRanges 2005/09/07 11:29:02 hbrinkm 1.49.32.15: #i51089# SyncNumRulesAndNodes 2005/09/01 14:46:47 hbrinkm 1.49.32.14: #i51089# NumOrNoNum: only remove hard numbering 2005/08/31 13:34:47 hbrinkm 1.49.32.13: #i51089# NumOrNoNum: Only touch paragraphs with hard numbering that shows number 2005/08/30 12:58:49 hbrinkm 1.49.32.12: #i51089# PropagateOutlineRule: SyncNumAndNumRule after setting of outline level 2005/08/26 13:43:44 hbrinkm 1.49.32.11: #i51089# SetNumRuleStart: bool <-> BOOL 2005/08/23 07:35:20 hbrinkm 1.49.32.10: #i51089# {Outline|Num}UpDown: call ChkCondColls if modified 2005/08/16 15:31:02 hbrinkm 1.49.32.9: #i51089# FindNumRulePtrWithPool 2005/08/11 09:27:49 hbrinkm 1.49.32.8: #i51089# SetNumRule: do not access zero pointer to numrule 2005/08/10 08:07:25 hbrinkm 1.49.32.7: #121445# PropagateOutlineRule: UpdateOutlineNode 2005/08/09 12:36:44 hbrinkm 1.49.32.6: #i51089# 2005/08/04 09:27:27 hbrinkm 1.49.32.5: #121445# PropagateOutlineRule: only propagate numrule if IsOutlineLevelYieldsOutlineRule returns false, #i51089# 2005/08/03 12:22:55 hbrinkm 1.49.32.4: RESYNC: (1.49-1.50); FILE MERGED 2005/07/11 09:14:57 hbrinkm 1.49.32.3: #i51089# NumOrNoNum: only succeed if a real change is made 2005/07/07 12:49:41 hbrinkm 1.49.32.2: #i51089# PropagateOutlineRule: If a paragraph style has outline level and no numbering rule, set the documents's outline numbering rule, MakeUniqueRules: do not alter outline numbering rules 2005/06/22 10:24:52 hbrinkm 1.49.32.1: #i51089# new implementation of numbering
2005-11-08 16:16:30 +00:00
SwNumRule * pNew = FindNumRulePtr( rRule.GetName() );
bool bUpdateRule = false;
2000-09-18 23:08:29 +00:00
if( !pNew )
{
2000-09-18 23:08:29 +00:00
pNew = (*pNumRuleTbl)[ MakeNumRule( rRule.GetName(), &rRule ) ];
}
INTEGRATION: CWS swnumtree (1.49.32); FILE MERGED 2005/11/03 10:35:51 od 1.49.32.28: #i51089# improve performance - method <SwDoc::GetOutlineNumRule> now inline implemented. - consider change of <SwTxtNode::GetNum()> 2005/11/01 18:07:21 od 1.49.32.27: #i51089# - remove unused code 2005/10/26 10:47:23 od 1.49.32.26: RESYNC: (1.51-1.52); FILE MERGED 2005/10/26 09:34:37 od 1.49.32.25: #b6340308# <SwDoc::SetNumRule(..)> - Only clear numbering rule attribute at current text node, if its paragraph style already contains the new numbering rule. 2005/10/25 06:20:54 od 1.49.32.24: #i51089# - delete unused code. 2005/10/25 05:44:01 od 1.49.32.23: #i55391# <SwDoc::SearchNumRule(..)> - Investigate given start node, if requested. Request is indicated by new parameter <_bInvestigateStartNode> 2005/10/21 11:20:54 od 1.49.32.22: #i51089# - Only the counting of phantoms of the outline numbering rule depends on <SwDoc::IsOldNumbering()> 2005/10/21 08:33:31 od 1.49.32.21: #i55391# <SwDoc::SearchNumRule(..)> - start node has also been investigated. 2005/09/20 14:13:24 fme 1.49.32.20: #i51089# Removed compiler warnings 2005/09/20 11:16:23 hbrinkm 1.49.32.19: #i51089# SwNumRule::Invalidate->SwNumRule::SetInvalidRule(TRUE) 2005/09/14 13:37:29 hbrinkm 1.49.32.18: #i51089# SyncNumRulesAndNodes: UpdateOutlineNode 2005/09/13 20:27:33 hbrinkm 1.49.32.17: RESYNC: (1.50-1.51); FILE MERGED 2005/09/12 15:15:29 hbrinkm 1.49.32.16: #i51089# AddNumRuleRanges 2005/09/07 11:29:02 hbrinkm 1.49.32.15: #i51089# SyncNumRulesAndNodes 2005/09/01 14:46:47 hbrinkm 1.49.32.14: #i51089# NumOrNoNum: only remove hard numbering 2005/08/31 13:34:47 hbrinkm 1.49.32.13: #i51089# NumOrNoNum: Only touch paragraphs with hard numbering that shows number 2005/08/30 12:58:49 hbrinkm 1.49.32.12: #i51089# PropagateOutlineRule: SyncNumAndNumRule after setting of outline level 2005/08/26 13:43:44 hbrinkm 1.49.32.11: #i51089# SetNumRuleStart: bool <-> BOOL 2005/08/23 07:35:20 hbrinkm 1.49.32.10: #i51089# {Outline|Num}UpDown: call ChkCondColls if modified 2005/08/16 15:31:02 hbrinkm 1.49.32.9: #i51089# FindNumRulePtrWithPool 2005/08/11 09:27:49 hbrinkm 1.49.32.8: #i51089# SetNumRule: do not access zero pointer to numrule 2005/08/10 08:07:25 hbrinkm 1.49.32.7: #121445# PropagateOutlineRule: UpdateOutlineNode 2005/08/09 12:36:44 hbrinkm 1.49.32.6: #i51089# 2005/08/04 09:27:27 hbrinkm 1.49.32.5: #121445# PropagateOutlineRule: only propagate numrule if IsOutlineLevelYieldsOutlineRule returns false, #i51089# 2005/08/03 12:22:55 hbrinkm 1.49.32.4: RESYNC: (1.49-1.50); FILE MERGED 2005/07/11 09:14:57 hbrinkm 1.49.32.3: #i51089# NumOrNoNum: only succeed if a real change is made 2005/07/07 12:49:41 hbrinkm 1.49.32.2: #i51089# PropagateOutlineRule: If a paragraph style has outline level and no numbering rule, set the documents's outline numbering rule, MakeUniqueRules: do not alter outline numbering rules 2005/06/22 10:24:52 hbrinkm 1.49.32.1: #i51089# new implementation of numbering
2005-11-08 16:16:30 +00:00
else if (rRule != *pNew)
2000-09-18 23:08:29 +00:00
{
INTEGRATION: CWS swnumtree (1.49.32); FILE MERGED 2005/11/03 10:35:51 od 1.49.32.28: #i51089# improve performance - method <SwDoc::GetOutlineNumRule> now inline implemented. - consider change of <SwTxtNode::GetNum()> 2005/11/01 18:07:21 od 1.49.32.27: #i51089# - remove unused code 2005/10/26 10:47:23 od 1.49.32.26: RESYNC: (1.51-1.52); FILE MERGED 2005/10/26 09:34:37 od 1.49.32.25: #b6340308# <SwDoc::SetNumRule(..)> - Only clear numbering rule attribute at current text node, if its paragraph style already contains the new numbering rule. 2005/10/25 06:20:54 od 1.49.32.24: #i51089# - delete unused code. 2005/10/25 05:44:01 od 1.49.32.23: #i55391# <SwDoc::SearchNumRule(..)> - Investigate given start node, if requested. Request is indicated by new parameter <_bInvestigateStartNode> 2005/10/21 11:20:54 od 1.49.32.22: #i51089# - Only the counting of phantoms of the outline numbering rule depends on <SwDoc::IsOldNumbering()> 2005/10/21 08:33:31 od 1.49.32.21: #i55391# <SwDoc::SearchNumRule(..)> - start node has also been investigated. 2005/09/20 14:13:24 fme 1.49.32.20: #i51089# Removed compiler warnings 2005/09/20 11:16:23 hbrinkm 1.49.32.19: #i51089# SwNumRule::Invalidate->SwNumRule::SetInvalidRule(TRUE) 2005/09/14 13:37:29 hbrinkm 1.49.32.18: #i51089# SyncNumRulesAndNodes: UpdateOutlineNode 2005/09/13 20:27:33 hbrinkm 1.49.32.17: RESYNC: (1.50-1.51); FILE MERGED 2005/09/12 15:15:29 hbrinkm 1.49.32.16: #i51089# AddNumRuleRanges 2005/09/07 11:29:02 hbrinkm 1.49.32.15: #i51089# SyncNumRulesAndNodes 2005/09/01 14:46:47 hbrinkm 1.49.32.14: #i51089# NumOrNoNum: only remove hard numbering 2005/08/31 13:34:47 hbrinkm 1.49.32.13: #i51089# NumOrNoNum: Only touch paragraphs with hard numbering that shows number 2005/08/30 12:58:49 hbrinkm 1.49.32.12: #i51089# PropagateOutlineRule: SyncNumAndNumRule after setting of outline level 2005/08/26 13:43:44 hbrinkm 1.49.32.11: #i51089# SetNumRuleStart: bool <-> BOOL 2005/08/23 07:35:20 hbrinkm 1.49.32.10: #i51089# {Outline|Num}UpDown: call ChkCondColls if modified 2005/08/16 15:31:02 hbrinkm 1.49.32.9: #i51089# FindNumRulePtrWithPool 2005/08/11 09:27:49 hbrinkm 1.49.32.8: #i51089# SetNumRule: do not access zero pointer to numrule 2005/08/10 08:07:25 hbrinkm 1.49.32.7: #121445# PropagateOutlineRule: UpdateOutlineNode 2005/08/09 12:36:44 hbrinkm 1.49.32.6: #i51089# 2005/08/04 09:27:27 hbrinkm 1.49.32.5: #121445# PropagateOutlineRule: only propagate numrule if IsOutlineLevelYieldsOutlineRule returns false, #i51089# 2005/08/03 12:22:55 hbrinkm 1.49.32.4: RESYNC: (1.49-1.50); FILE MERGED 2005/07/11 09:14:57 hbrinkm 1.49.32.3: #i51089# NumOrNoNum: only succeed if a real change is made 2005/07/07 12:49:41 hbrinkm 1.49.32.2: #i51089# PropagateOutlineRule: If a paragraph style has outline level and no numbering rule, set the documents's outline numbering rule, MakeUniqueRules: do not alter outline numbering rules 2005/06/22 10:24:52 hbrinkm 1.49.32.1: #i51089# new implementation of numbering
2005-11-08 16:16:30 +00:00
bUpdateRule = true;
2000-09-18 23:08:29 +00:00
}
INTEGRATION: CWS swnumtree (1.49.32); FILE MERGED 2005/11/03 10:35:51 od 1.49.32.28: #i51089# improve performance - method <SwDoc::GetOutlineNumRule> now inline implemented. - consider change of <SwTxtNode::GetNum()> 2005/11/01 18:07:21 od 1.49.32.27: #i51089# - remove unused code 2005/10/26 10:47:23 od 1.49.32.26: RESYNC: (1.51-1.52); FILE MERGED 2005/10/26 09:34:37 od 1.49.32.25: #b6340308# <SwDoc::SetNumRule(..)> - Only clear numbering rule attribute at current text node, if its paragraph style already contains the new numbering rule. 2005/10/25 06:20:54 od 1.49.32.24: #i51089# - delete unused code. 2005/10/25 05:44:01 od 1.49.32.23: #i55391# <SwDoc::SearchNumRule(..)> - Investigate given start node, if requested. Request is indicated by new parameter <_bInvestigateStartNode> 2005/10/21 11:20:54 od 1.49.32.22: #i51089# - Only the counting of phantoms of the outline numbering rule depends on <SwDoc::IsOldNumbering()> 2005/10/21 08:33:31 od 1.49.32.21: #i55391# <SwDoc::SearchNumRule(..)> - start node has also been investigated. 2005/09/20 14:13:24 fme 1.49.32.20: #i51089# Removed compiler warnings 2005/09/20 11:16:23 hbrinkm 1.49.32.19: #i51089# SwNumRule::Invalidate->SwNumRule::SetInvalidRule(TRUE) 2005/09/14 13:37:29 hbrinkm 1.49.32.18: #i51089# SyncNumRulesAndNodes: UpdateOutlineNode 2005/09/13 20:27:33 hbrinkm 1.49.32.17: RESYNC: (1.50-1.51); FILE MERGED 2005/09/12 15:15:29 hbrinkm 1.49.32.16: #i51089# AddNumRuleRanges 2005/09/07 11:29:02 hbrinkm 1.49.32.15: #i51089# SyncNumRulesAndNodes 2005/09/01 14:46:47 hbrinkm 1.49.32.14: #i51089# NumOrNoNum: only remove hard numbering 2005/08/31 13:34:47 hbrinkm 1.49.32.13: #i51089# NumOrNoNum: Only touch paragraphs with hard numbering that shows number 2005/08/30 12:58:49 hbrinkm 1.49.32.12: #i51089# PropagateOutlineRule: SyncNumAndNumRule after setting of outline level 2005/08/26 13:43:44 hbrinkm 1.49.32.11: #i51089# SetNumRuleStart: bool <-> BOOL 2005/08/23 07:35:20 hbrinkm 1.49.32.10: #i51089# {Outline|Num}UpDown: call ChkCondColls if modified 2005/08/16 15:31:02 hbrinkm 1.49.32.9: #i51089# FindNumRulePtrWithPool 2005/08/11 09:27:49 hbrinkm 1.49.32.8: #i51089# SetNumRule: do not access zero pointer to numrule 2005/08/10 08:07:25 hbrinkm 1.49.32.7: #121445# PropagateOutlineRule: UpdateOutlineNode 2005/08/09 12:36:44 hbrinkm 1.49.32.6: #i51089# 2005/08/04 09:27:27 hbrinkm 1.49.32.5: #121445# PropagateOutlineRule: only propagate numrule if IsOutlineLevelYieldsOutlineRule returns false, #i51089# 2005/08/03 12:22:55 hbrinkm 1.49.32.4: RESYNC: (1.49-1.50); FILE MERGED 2005/07/11 09:14:57 hbrinkm 1.49.32.3: #i51089# NumOrNoNum: only succeed if a real change is made 2005/07/07 12:49:41 hbrinkm 1.49.32.2: #i51089# PropagateOutlineRule: If a paragraph style has outline level and no numbering rule, set the documents's outline numbering rule, MakeUniqueRules: do not alter outline numbering rules 2005/06/22 10:24:52 hbrinkm 1.49.32.1: #i51089# new implementation of numbering
2005-11-08 16:16:30 +00:00
if (bUpdateRule)
{
if( pUndo )
{
pUndo->SaveOldNumRule( *pNew );
::lcl_ChgNumRule( *this, rRule );
pUndo->SetLRSpaceEndPos();
}
else
{
::lcl_ChgNumRule( *this, rRule );
}
}
2000-09-18 23:08:29 +00:00
// --> OD 2008-03-17 #refactorlists#
if ( bSetItem )
{
if ( bCreateNewList )
{
String sListId;
if ( !bUpdateRule )
{
// apply list id of list, which has been created for the new list style
sListId = pNew->GetDefaultListId();
}
else
{
// create new list and apply its list id
SwList* pNewList = createList( String(), pNew->GetName() );
ASSERT( pNewList,
"<SwDoc::SetNumRule(..)> - could not create new list. Serious defect -> please inform OD." );
sListId = pNewList->GetListId();
}
Insert( rPam, SfxStringItem( RES_PARATR_LIST_ID, sListId ), 0 );
}
else if ( sContinuedListId.Len() > 0 )
{
// apply given list id
Insert( rPam, SfxStringItem( RES_PARATR_LIST_ID, sContinuedListId ), 0 );
}
}
// <--
INTEGRATION: CWS swnumtree (1.49.32); FILE MERGED 2005/11/03 10:35:51 od 1.49.32.28: #i51089# improve performance - method <SwDoc::GetOutlineNumRule> now inline implemented. - consider change of <SwTxtNode::GetNum()> 2005/11/01 18:07:21 od 1.49.32.27: #i51089# - remove unused code 2005/10/26 10:47:23 od 1.49.32.26: RESYNC: (1.51-1.52); FILE MERGED 2005/10/26 09:34:37 od 1.49.32.25: #b6340308# <SwDoc::SetNumRule(..)> - Only clear numbering rule attribute at current text node, if its paragraph style already contains the new numbering rule. 2005/10/25 06:20:54 od 1.49.32.24: #i51089# - delete unused code. 2005/10/25 05:44:01 od 1.49.32.23: #i55391# <SwDoc::SearchNumRule(..)> - Investigate given start node, if requested. Request is indicated by new parameter <_bInvestigateStartNode> 2005/10/21 11:20:54 od 1.49.32.22: #i51089# - Only the counting of phantoms of the outline numbering rule depends on <SwDoc::IsOldNumbering()> 2005/10/21 08:33:31 od 1.49.32.21: #i55391# <SwDoc::SearchNumRule(..)> - start node has also been investigated. 2005/09/20 14:13:24 fme 1.49.32.20: #i51089# Removed compiler warnings 2005/09/20 11:16:23 hbrinkm 1.49.32.19: #i51089# SwNumRule::Invalidate->SwNumRule::SetInvalidRule(TRUE) 2005/09/14 13:37:29 hbrinkm 1.49.32.18: #i51089# SyncNumRulesAndNodes: UpdateOutlineNode 2005/09/13 20:27:33 hbrinkm 1.49.32.17: RESYNC: (1.50-1.51); FILE MERGED 2005/09/12 15:15:29 hbrinkm 1.49.32.16: #i51089# AddNumRuleRanges 2005/09/07 11:29:02 hbrinkm 1.49.32.15: #i51089# SyncNumRulesAndNodes 2005/09/01 14:46:47 hbrinkm 1.49.32.14: #i51089# NumOrNoNum: only remove hard numbering 2005/08/31 13:34:47 hbrinkm 1.49.32.13: #i51089# NumOrNoNum: Only touch paragraphs with hard numbering that shows number 2005/08/30 12:58:49 hbrinkm 1.49.32.12: #i51089# PropagateOutlineRule: SyncNumAndNumRule after setting of outline level 2005/08/26 13:43:44 hbrinkm 1.49.32.11: #i51089# SetNumRuleStart: bool <-> BOOL 2005/08/23 07:35:20 hbrinkm 1.49.32.10: #i51089# {Outline|Num}UpDown: call ChkCondColls if modified 2005/08/16 15:31:02 hbrinkm 1.49.32.9: #i51089# FindNumRulePtrWithPool 2005/08/11 09:27:49 hbrinkm 1.49.32.8: #i51089# SetNumRule: do not access zero pointer to numrule 2005/08/10 08:07:25 hbrinkm 1.49.32.7: #121445# PropagateOutlineRule: UpdateOutlineNode 2005/08/09 12:36:44 hbrinkm 1.49.32.6: #i51089# 2005/08/04 09:27:27 hbrinkm 1.49.32.5: #121445# PropagateOutlineRule: only propagate numrule if IsOutlineLevelYieldsOutlineRule returns false, #i51089# 2005/08/03 12:22:55 hbrinkm 1.49.32.4: RESYNC: (1.49-1.50); FILE MERGED 2005/07/11 09:14:57 hbrinkm 1.49.32.3: #i51089# NumOrNoNum: only succeed if a real change is made 2005/07/07 12:49:41 hbrinkm 1.49.32.2: #i51089# PropagateOutlineRule: If a paragraph style has outline level and no numbering rule, set the documents's outline numbering rule, MakeUniqueRules: do not alter outline numbering rules 2005/06/22 10:24:52 hbrinkm 1.49.32.1: #i51089# new implementation of numbering
2005-11-08 16:16:30 +00:00
if ( ! rPam.HasMark())
2000-09-18 23:08:29 +00:00
{
INTEGRATION: CWS swnumtree (1.49.32); FILE MERGED 2005/11/03 10:35:51 od 1.49.32.28: #i51089# improve performance - method <SwDoc::GetOutlineNumRule> now inline implemented. - consider change of <SwTxtNode::GetNum()> 2005/11/01 18:07:21 od 1.49.32.27: #i51089# - remove unused code 2005/10/26 10:47:23 od 1.49.32.26: RESYNC: (1.51-1.52); FILE MERGED 2005/10/26 09:34:37 od 1.49.32.25: #b6340308# <SwDoc::SetNumRule(..)> - Only clear numbering rule attribute at current text node, if its paragraph style already contains the new numbering rule. 2005/10/25 06:20:54 od 1.49.32.24: #i51089# - delete unused code. 2005/10/25 05:44:01 od 1.49.32.23: #i55391# <SwDoc::SearchNumRule(..)> - Investigate given start node, if requested. Request is indicated by new parameter <_bInvestigateStartNode> 2005/10/21 11:20:54 od 1.49.32.22: #i51089# - Only the counting of phantoms of the outline numbering rule depends on <SwDoc::IsOldNumbering()> 2005/10/21 08:33:31 od 1.49.32.21: #i55391# <SwDoc::SearchNumRule(..)> - start node has also been investigated. 2005/09/20 14:13:24 fme 1.49.32.20: #i51089# Removed compiler warnings 2005/09/20 11:16:23 hbrinkm 1.49.32.19: #i51089# SwNumRule::Invalidate->SwNumRule::SetInvalidRule(TRUE) 2005/09/14 13:37:29 hbrinkm 1.49.32.18: #i51089# SyncNumRulesAndNodes: UpdateOutlineNode 2005/09/13 20:27:33 hbrinkm 1.49.32.17: RESYNC: (1.50-1.51); FILE MERGED 2005/09/12 15:15:29 hbrinkm 1.49.32.16: #i51089# AddNumRuleRanges 2005/09/07 11:29:02 hbrinkm 1.49.32.15: #i51089# SyncNumRulesAndNodes 2005/09/01 14:46:47 hbrinkm 1.49.32.14: #i51089# NumOrNoNum: only remove hard numbering 2005/08/31 13:34:47 hbrinkm 1.49.32.13: #i51089# NumOrNoNum: Only touch paragraphs with hard numbering that shows number 2005/08/30 12:58:49 hbrinkm 1.49.32.12: #i51089# PropagateOutlineRule: SyncNumAndNumRule after setting of outline level 2005/08/26 13:43:44 hbrinkm 1.49.32.11: #i51089# SetNumRuleStart: bool <-> BOOL 2005/08/23 07:35:20 hbrinkm 1.49.32.10: #i51089# {Outline|Num}UpDown: call ChkCondColls if modified 2005/08/16 15:31:02 hbrinkm 1.49.32.9: #i51089# FindNumRulePtrWithPool 2005/08/11 09:27:49 hbrinkm 1.49.32.8: #i51089# SetNumRule: do not access zero pointer to numrule 2005/08/10 08:07:25 hbrinkm 1.49.32.7: #121445# PropagateOutlineRule: UpdateOutlineNode 2005/08/09 12:36:44 hbrinkm 1.49.32.6: #i51089# 2005/08/04 09:27:27 hbrinkm 1.49.32.5: #121445# PropagateOutlineRule: only propagate numrule if IsOutlineLevelYieldsOutlineRule returns false, #i51089# 2005/08/03 12:22:55 hbrinkm 1.49.32.4: RESYNC: (1.49-1.50); FILE MERGED 2005/07/11 09:14:57 hbrinkm 1.49.32.3: #i51089# NumOrNoNum: only succeed if a real change is made 2005/07/07 12:49:41 hbrinkm 1.49.32.2: #i51089# PropagateOutlineRule: If a paragraph style has outline level and no numbering rule, set the documents's outline numbering rule, MakeUniqueRules: do not alter outline numbering rules 2005/06/22 10:24:52 hbrinkm 1.49.32.1: #i51089# new implementation of numbering
2005-11-08 16:16:30 +00:00
SwTxtNode * pTxtNd = rPam.GetPoint()->nNode.GetNode().GetTxtNode();
// --> OD 2006-10-19 #134160#
// consider case that the PaM doesn't denote a text node - e.g. it denotes a graphic node
if ( pTxtNd )
2000-09-18 23:08:29 +00:00
{
SwNumRule * pRule = pTxtNd->GetNumRule();
if (pRule && pRule->GetName() == pNew->GetName())
INTEGRATION: CWS swnumtree (1.49.32); FILE MERGED 2005/11/03 10:35:51 od 1.49.32.28: #i51089# improve performance - method <SwDoc::GetOutlineNumRule> now inline implemented. - consider change of <SwTxtNode::GetNum()> 2005/11/01 18:07:21 od 1.49.32.27: #i51089# - remove unused code 2005/10/26 10:47:23 od 1.49.32.26: RESYNC: (1.51-1.52); FILE MERGED 2005/10/26 09:34:37 od 1.49.32.25: #b6340308# <SwDoc::SetNumRule(..)> - Only clear numbering rule attribute at current text node, if its paragraph style already contains the new numbering rule. 2005/10/25 06:20:54 od 1.49.32.24: #i51089# - delete unused code. 2005/10/25 05:44:01 od 1.49.32.23: #i55391# <SwDoc::SearchNumRule(..)> - Investigate given start node, if requested. Request is indicated by new parameter <_bInvestigateStartNode> 2005/10/21 11:20:54 od 1.49.32.22: #i51089# - Only the counting of phantoms of the outline numbering rule depends on <SwDoc::IsOldNumbering()> 2005/10/21 08:33:31 od 1.49.32.21: #i55391# <SwDoc::SearchNumRule(..)> - start node has also been investigated. 2005/09/20 14:13:24 fme 1.49.32.20: #i51089# Removed compiler warnings 2005/09/20 11:16:23 hbrinkm 1.49.32.19: #i51089# SwNumRule::Invalidate->SwNumRule::SetInvalidRule(TRUE) 2005/09/14 13:37:29 hbrinkm 1.49.32.18: #i51089# SyncNumRulesAndNodes: UpdateOutlineNode 2005/09/13 20:27:33 hbrinkm 1.49.32.17: RESYNC: (1.50-1.51); FILE MERGED 2005/09/12 15:15:29 hbrinkm 1.49.32.16: #i51089# AddNumRuleRanges 2005/09/07 11:29:02 hbrinkm 1.49.32.15: #i51089# SyncNumRulesAndNodes 2005/09/01 14:46:47 hbrinkm 1.49.32.14: #i51089# NumOrNoNum: only remove hard numbering 2005/08/31 13:34:47 hbrinkm 1.49.32.13: #i51089# NumOrNoNum: Only touch paragraphs with hard numbering that shows number 2005/08/30 12:58:49 hbrinkm 1.49.32.12: #i51089# PropagateOutlineRule: SyncNumAndNumRule after setting of outline level 2005/08/26 13:43:44 hbrinkm 1.49.32.11: #i51089# SetNumRuleStart: bool <-> BOOL 2005/08/23 07:35:20 hbrinkm 1.49.32.10: #i51089# {Outline|Num}UpDown: call ChkCondColls if modified 2005/08/16 15:31:02 hbrinkm 1.49.32.9: #i51089# FindNumRulePtrWithPool 2005/08/11 09:27:49 hbrinkm 1.49.32.8: #i51089# SetNumRule: do not access zero pointer to numrule 2005/08/10 08:07:25 hbrinkm 1.49.32.7: #121445# PropagateOutlineRule: UpdateOutlineNode 2005/08/09 12:36:44 hbrinkm 1.49.32.6: #i51089# 2005/08/04 09:27:27 hbrinkm 1.49.32.5: #121445# PropagateOutlineRule: only propagate numrule if IsOutlineLevelYieldsOutlineRule returns false, #i51089# 2005/08/03 12:22:55 hbrinkm 1.49.32.4: RESYNC: (1.49-1.50); FILE MERGED 2005/07/11 09:14:57 hbrinkm 1.49.32.3: #i51089# NumOrNoNum: only succeed if a real change is made 2005/07/07 12:49:41 hbrinkm 1.49.32.2: #i51089# PropagateOutlineRule: If a paragraph style has outline level and no numbering rule, set the documents's outline numbering rule, MakeUniqueRules: do not alter outline numbering rules 2005/06/22 10:24:52 hbrinkm 1.49.32.1: #i51089# new implementation of numbering
2005-11-08 16:16:30 +00:00
{
bSetItem = sal_False;
// --> OD 2008-06-02 #refactorlists#
if ( !pTxtNd->IsInList() )
{
pTxtNd->AddToList();
}
// <--
}
// --> OD 2005-10-26 #b6340308# - only clear numbering attribute at
// text node, if at paragraph style the new numbering rule is found.
else if ( !pRule )
{
SwTxtFmtColl* pColl = pTxtNd->GetTxtColl();
if ( pColl )
2000-09-18 23:08:29 +00:00
{
SwNumRule* pCollRule = FindNumRulePtr(pColl->GetNumRule().GetValue());
if ( pCollRule && pCollRule->GetName() == pNew->GetName() )
{
pTxtNd->ResetAttr( RES_PARATR_NUMRULE );
bSetItem = sal_False;
}
2000-09-18 23:08:29 +00:00
}
INTEGRATION: CWS swnumtree (1.49.32); FILE MERGED 2005/11/03 10:35:51 od 1.49.32.28: #i51089# improve performance - method <SwDoc::GetOutlineNumRule> now inline implemented. - consider change of <SwTxtNode::GetNum()> 2005/11/01 18:07:21 od 1.49.32.27: #i51089# - remove unused code 2005/10/26 10:47:23 od 1.49.32.26: RESYNC: (1.51-1.52); FILE MERGED 2005/10/26 09:34:37 od 1.49.32.25: #b6340308# <SwDoc::SetNumRule(..)> - Only clear numbering rule attribute at current text node, if its paragraph style already contains the new numbering rule. 2005/10/25 06:20:54 od 1.49.32.24: #i51089# - delete unused code. 2005/10/25 05:44:01 od 1.49.32.23: #i55391# <SwDoc::SearchNumRule(..)> - Investigate given start node, if requested. Request is indicated by new parameter <_bInvestigateStartNode> 2005/10/21 11:20:54 od 1.49.32.22: #i51089# - Only the counting of phantoms of the outline numbering rule depends on <SwDoc::IsOldNumbering()> 2005/10/21 08:33:31 od 1.49.32.21: #i55391# <SwDoc::SearchNumRule(..)> - start node has also been investigated. 2005/09/20 14:13:24 fme 1.49.32.20: #i51089# Removed compiler warnings 2005/09/20 11:16:23 hbrinkm 1.49.32.19: #i51089# SwNumRule::Invalidate->SwNumRule::SetInvalidRule(TRUE) 2005/09/14 13:37:29 hbrinkm 1.49.32.18: #i51089# SyncNumRulesAndNodes: UpdateOutlineNode 2005/09/13 20:27:33 hbrinkm 1.49.32.17: RESYNC: (1.50-1.51); FILE MERGED 2005/09/12 15:15:29 hbrinkm 1.49.32.16: #i51089# AddNumRuleRanges 2005/09/07 11:29:02 hbrinkm 1.49.32.15: #i51089# SyncNumRulesAndNodes 2005/09/01 14:46:47 hbrinkm 1.49.32.14: #i51089# NumOrNoNum: only remove hard numbering 2005/08/31 13:34:47 hbrinkm 1.49.32.13: #i51089# NumOrNoNum: Only touch paragraphs with hard numbering that shows number 2005/08/30 12:58:49 hbrinkm 1.49.32.12: #i51089# PropagateOutlineRule: SyncNumAndNumRule after setting of outline level 2005/08/26 13:43:44 hbrinkm 1.49.32.11: #i51089# SetNumRuleStart: bool <-> BOOL 2005/08/23 07:35:20 hbrinkm 1.49.32.10: #i51089# {Outline|Num}UpDown: call ChkCondColls if modified 2005/08/16 15:31:02 hbrinkm 1.49.32.9: #i51089# FindNumRulePtrWithPool 2005/08/11 09:27:49 hbrinkm 1.49.32.8: #i51089# SetNumRule: do not access zero pointer to numrule 2005/08/10 08:07:25 hbrinkm 1.49.32.7: #121445# PropagateOutlineRule: UpdateOutlineNode 2005/08/09 12:36:44 hbrinkm 1.49.32.6: #i51089# 2005/08/04 09:27:27 hbrinkm 1.49.32.5: #121445# PropagateOutlineRule: only propagate numrule if IsOutlineLevelYieldsOutlineRule returns false, #i51089# 2005/08/03 12:22:55 hbrinkm 1.49.32.4: RESYNC: (1.49-1.50); FILE MERGED 2005/07/11 09:14:57 hbrinkm 1.49.32.3: #i51089# NumOrNoNum: only succeed if a real change is made 2005/07/07 12:49:41 hbrinkm 1.49.32.2: #i51089# PropagateOutlineRule: If a paragraph style has outline level and no numbering rule, set the documents's outline numbering rule, MakeUniqueRules: do not alter outline numbering rules 2005/06/22 10:24:52 hbrinkm 1.49.32.1: #i51089# new implementation of numbering
2005-11-08 16:16:30 +00:00
}
// <--
2000-09-18 23:08:29 +00:00
}
INTEGRATION: CWS swnumtree (1.49.32); FILE MERGED 2005/11/03 10:35:51 od 1.49.32.28: #i51089# improve performance - method <SwDoc::GetOutlineNumRule> now inline implemented. - consider change of <SwTxtNode::GetNum()> 2005/11/01 18:07:21 od 1.49.32.27: #i51089# - remove unused code 2005/10/26 10:47:23 od 1.49.32.26: RESYNC: (1.51-1.52); FILE MERGED 2005/10/26 09:34:37 od 1.49.32.25: #b6340308# <SwDoc::SetNumRule(..)> - Only clear numbering rule attribute at current text node, if its paragraph style already contains the new numbering rule. 2005/10/25 06:20:54 od 1.49.32.24: #i51089# - delete unused code. 2005/10/25 05:44:01 od 1.49.32.23: #i55391# <SwDoc::SearchNumRule(..)> - Investigate given start node, if requested. Request is indicated by new parameter <_bInvestigateStartNode> 2005/10/21 11:20:54 od 1.49.32.22: #i51089# - Only the counting of phantoms of the outline numbering rule depends on <SwDoc::IsOldNumbering()> 2005/10/21 08:33:31 od 1.49.32.21: #i55391# <SwDoc::SearchNumRule(..)> - start node has also been investigated. 2005/09/20 14:13:24 fme 1.49.32.20: #i51089# Removed compiler warnings 2005/09/20 11:16:23 hbrinkm 1.49.32.19: #i51089# SwNumRule::Invalidate->SwNumRule::SetInvalidRule(TRUE) 2005/09/14 13:37:29 hbrinkm 1.49.32.18: #i51089# SyncNumRulesAndNodes: UpdateOutlineNode 2005/09/13 20:27:33 hbrinkm 1.49.32.17: RESYNC: (1.50-1.51); FILE MERGED 2005/09/12 15:15:29 hbrinkm 1.49.32.16: #i51089# AddNumRuleRanges 2005/09/07 11:29:02 hbrinkm 1.49.32.15: #i51089# SyncNumRulesAndNodes 2005/09/01 14:46:47 hbrinkm 1.49.32.14: #i51089# NumOrNoNum: only remove hard numbering 2005/08/31 13:34:47 hbrinkm 1.49.32.13: #i51089# NumOrNoNum: Only touch paragraphs with hard numbering that shows number 2005/08/30 12:58:49 hbrinkm 1.49.32.12: #i51089# PropagateOutlineRule: SyncNumAndNumRule after setting of outline level 2005/08/26 13:43:44 hbrinkm 1.49.32.11: #i51089# SetNumRuleStart: bool <-> BOOL 2005/08/23 07:35:20 hbrinkm 1.49.32.10: #i51089# {Outline|Num}UpDown: call ChkCondColls if modified 2005/08/16 15:31:02 hbrinkm 1.49.32.9: #i51089# FindNumRulePtrWithPool 2005/08/11 09:27:49 hbrinkm 1.49.32.8: #i51089# SetNumRule: do not access zero pointer to numrule 2005/08/10 08:07:25 hbrinkm 1.49.32.7: #121445# PropagateOutlineRule: UpdateOutlineNode 2005/08/09 12:36:44 hbrinkm 1.49.32.6: #i51089# 2005/08/04 09:27:27 hbrinkm 1.49.32.5: #121445# PropagateOutlineRule: only propagate numrule if IsOutlineLevelYieldsOutlineRule returns false, #i51089# 2005/08/03 12:22:55 hbrinkm 1.49.32.4: RESYNC: (1.49-1.50); FILE MERGED 2005/07/11 09:14:57 hbrinkm 1.49.32.3: #i51089# NumOrNoNum: only succeed if a real change is made 2005/07/07 12:49:41 hbrinkm 1.49.32.2: #i51089# PropagateOutlineRule: If a paragraph style has outline level and no numbering rule, set the documents's outline numbering rule, MakeUniqueRules: do not alter outline numbering rules 2005/06/22 10:24:52 hbrinkm 1.49.32.1: #i51089# new implementation of numbering
2005-11-08 16:16:30 +00:00
// <--
}
// --> OD 2006-01-13 #i60395#
// It's not allowed to apply the outline numbering rule as hard attribute
// to document content - typically paragraphs.
if ( bSetItem && pNew != GetOutlineNumRule() )
// <--
INTEGRATION: CWS swnumtree (1.49.32); FILE MERGED 2005/11/03 10:35:51 od 1.49.32.28: #i51089# improve performance - method <SwDoc::GetOutlineNumRule> now inline implemented. - consider change of <SwTxtNode::GetNum()> 2005/11/01 18:07:21 od 1.49.32.27: #i51089# - remove unused code 2005/10/26 10:47:23 od 1.49.32.26: RESYNC: (1.51-1.52); FILE MERGED 2005/10/26 09:34:37 od 1.49.32.25: #b6340308# <SwDoc::SetNumRule(..)> - Only clear numbering rule attribute at current text node, if its paragraph style already contains the new numbering rule. 2005/10/25 06:20:54 od 1.49.32.24: #i51089# - delete unused code. 2005/10/25 05:44:01 od 1.49.32.23: #i55391# <SwDoc::SearchNumRule(..)> - Investigate given start node, if requested. Request is indicated by new parameter <_bInvestigateStartNode> 2005/10/21 11:20:54 od 1.49.32.22: #i51089# - Only the counting of phantoms of the outline numbering rule depends on <SwDoc::IsOldNumbering()> 2005/10/21 08:33:31 od 1.49.32.21: #i55391# <SwDoc::SearchNumRule(..)> - start node has also been investigated. 2005/09/20 14:13:24 fme 1.49.32.20: #i51089# Removed compiler warnings 2005/09/20 11:16:23 hbrinkm 1.49.32.19: #i51089# SwNumRule::Invalidate->SwNumRule::SetInvalidRule(TRUE) 2005/09/14 13:37:29 hbrinkm 1.49.32.18: #i51089# SyncNumRulesAndNodes: UpdateOutlineNode 2005/09/13 20:27:33 hbrinkm 1.49.32.17: RESYNC: (1.50-1.51); FILE MERGED 2005/09/12 15:15:29 hbrinkm 1.49.32.16: #i51089# AddNumRuleRanges 2005/09/07 11:29:02 hbrinkm 1.49.32.15: #i51089# SyncNumRulesAndNodes 2005/09/01 14:46:47 hbrinkm 1.49.32.14: #i51089# NumOrNoNum: only remove hard numbering 2005/08/31 13:34:47 hbrinkm 1.49.32.13: #i51089# NumOrNoNum: Only touch paragraphs with hard numbering that shows number 2005/08/30 12:58:49 hbrinkm 1.49.32.12: #i51089# PropagateOutlineRule: SyncNumAndNumRule after setting of outline level 2005/08/26 13:43:44 hbrinkm 1.49.32.11: #i51089# SetNumRuleStart: bool <-> BOOL 2005/08/23 07:35:20 hbrinkm 1.49.32.10: #i51089# {Outline|Num}UpDown: call ChkCondColls if modified 2005/08/16 15:31:02 hbrinkm 1.49.32.9: #i51089# FindNumRulePtrWithPool 2005/08/11 09:27:49 hbrinkm 1.49.32.8: #i51089# SetNumRule: do not access zero pointer to numrule 2005/08/10 08:07:25 hbrinkm 1.49.32.7: #121445# PropagateOutlineRule: UpdateOutlineNode 2005/08/09 12:36:44 hbrinkm 1.49.32.6: #i51089# 2005/08/04 09:27:27 hbrinkm 1.49.32.5: #121445# PropagateOutlineRule: only propagate numrule if IsOutlineLevelYieldsOutlineRule returns false, #i51089# 2005/08/03 12:22:55 hbrinkm 1.49.32.4: RESYNC: (1.49-1.50); FILE MERGED 2005/07/11 09:14:57 hbrinkm 1.49.32.3: #i51089# NumOrNoNum: only succeed if a real change is made 2005/07/07 12:49:41 hbrinkm 1.49.32.2: #i51089# PropagateOutlineRule: If a paragraph style has outline level and no numbering rule, set the documents's outline numbering rule, MakeUniqueRules: do not alter outline numbering rules 2005/06/22 10:24:52 hbrinkm 1.49.32.1: #i51089# new implementation of numbering
2005-11-08 16:16:30 +00:00
{
Insert( rPam, SwNumRuleItem( pNew->GetName() ), 0 );
2000-09-18 23:08:29 +00:00
}
// --> OD 2008-02-08 #newlistlevelattrs#
if ( bResetIndentAttrs &&
pNew && pNew->Get( 0 ).GetPositionAndSpaceMode() == SvxNumberFormat::LABEL_ALIGNMENT )
{
SvUShortsSort aResetAttrsArray;
aResetAttrsArray.Insert( RES_LR_SPACE );
ResetAttrs( rPam, sal_True, &aResetAttrsArray );
}
// <--
INTEGRATION: CWS swnumtree (1.49.32); FILE MERGED 2005/11/03 10:35:51 od 1.49.32.28: #i51089# improve performance - method <SwDoc::GetOutlineNumRule> now inline implemented. - consider change of <SwTxtNode::GetNum()> 2005/11/01 18:07:21 od 1.49.32.27: #i51089# - remove unused code 2005/10/26 10:47:23 od 1.49.32.26: RESYNC: (1.51-1.52); FILE MERGED 2005/10/26 09:34:37 od 1.49.32.25: #b6340308# <SwDoc::SetNumRule(..)> - Only clear numbering rule attribute at current text node, if its paragraph style already contains the new numbering rule. 2005/10/25 06:20:54 od 1.49.32.24: #i51089# - delete unused code. 2005/10/25 05:44:01 od 1.49.32.23: #i55391# <SwDoc::SearchNumRule(..)> - Investigate given start node, if requested. Request is indicated by new parameter <_bInvestigateStartNode> 2005/10/21 11:20:54 od 1.49.32.22: #i51089# - Only the counting of phantoms of the outline numbering rule depends on <SwDoc::IsOldNumbering()> 2005/10/21 08:33:31 od 1.49.32.21: #i55391# <SwDoc::SearchNumRule(..)> - start node has also been investigated. 2005/09/20 14:13:24 fme 1.49.32.20: #i51089# Removed compiler warnings 2005/09/20 11:16:23 hbrinkm 1.49.32.19: #i51089# SwNumRule::Invalidate->SwNumRule::SetInvalidRule(TRUE) 2005/09/14 13:37:29 hbrinkm 1.49.32.18: #i51089# SyncNumRulesAndNodes: UpdateOutlineNode 2005/09/13 20:27:33 hbrinkm 1.49.32.17: RESYNC: (1.50-1.51); FILE MERGED 2005/09/12 15:15:29 hbrinkm 1.49.32.16: #i51089# AddNumRuleRanges 2005/09/07 11:29:02 hbrinkm 1.49.32.15: #i51089# SyncNumRulesAndNodes 2005/09/01 14:46:47 hbrinkm 1.49.32.14: #i51089# NumOrNoNum: only remove hard numbering 2005/08/31 13:34:47 hbrinkm 1.49.32.13: #i51089# NumOrNoNum: Only touch paragraphs with hard numbering that shows number 2005/08/30 12:58:49 hbrinkm 1.49.32.12: #i51089# PropagateOutlineRule: SyncNumAndNumRule after setting of outline level 2005/08/26 13:43:44 hbrinkm 1.49.32.11: #i51089# SetNumRuleStart: bool <-> BOOL 2005/08/23 07:35:20 hbrinkm 1.49.32.10: #i51089# {Outline|Num}UpDown: call ChkCondColls if modified 2005/08/16 15:31:02 hbrinkm 1.49.32.9: #i51089# FindNumRulePtrWithPool 2005/08/11 09:27:49 hbrinkm 1.49.32.8: #i51089# SetNumRule: do not access zero pointer to numrule 2005/08/10 08:07:25 hbrinkm 1.49.32.7: #121445# PropagateOutlineRule: UpdateOutlineNode 2005/08/09 12:36:44 hbrinkm 1.49.32.6: #i51089# 2005/08/04 09:27:27 hbrinkm 1.49.32.5: #121445# PropagateOutlineRule: only propagate numrule if IsOutlineLevelYieldsOutlineRule returns false, #i51089# 2005/08/03 12:22:55 hbrinkm 1.49.32.4: RESYNC: (1.49-1.50); FILE MERGED 2005/07/11 09:14:57 hbrinkm 1.49.32.3: #i51089# NumOrNoNum: only succeed if a real change is made 2005/07/07 12:49:41 hbrinkm 1.49.32.2: #i51089# PropagateOutlineRule: If a paragraph style has outline level and no numbering rule, set the documents's outline numbering rule, MakeUniqueRules: do not alter outline numbering rules 2005/06/22 10:24:52 hbrinkm 1.49.32.1: #i51089# new implementation of numbering
2005-11-08 16:16:30 +00:00
if (DoesUndo())
EndUndo( UNDO_INSNUM, NULL );
2000-09-18 23:08:29 +00:00
SetModified();
}
INTEGRATION: CWS swnumtree (1.49.32); FILE MERGED 2005/11/03 10:35:51 od 1.49.32.28: #i51089# improve performance - method <SwDoc::GetOutlineNumRule> now inline implemented. - consider change of <SwTxtNode::GetNum()> 2005/11/01 18:07:21 od 1.49.32.27: #i51089# - remove unused code 2005/10/26 10:47:23 od 1.49.32.26: RESYNC: (1.51-1.52); FILE MERGED 2005/10/26 09:34:37 od 1.49.32.25: #b6340308# <SwDoc::SetNumRule(..)> - Only clear numbering rule attribute at current text node, if its paragraph style already contains the new numbering rule. 2005/10/25 06:20:54 od 1.49.32.24: #i51089# - delete unused code. 2005/10/25 05:44:01 od 1.49.32.23: #i55391# <SwDoc::SearchNumRule(..)> - Investigate given start node, if requested. Request is indicated by new parameter <_bInvestigateStartNode> 2005/10/21 11:20:54 od 1.49.32.22: #i51089# - Only the counting of phantoms of the outline numbering rule depends on <SwDoc::IsOldNumbering()> 2005/10/21 08:33:31 od 1.49.32.21: #i55391# <SwDoc::SearchNumRule(..)> - start node has also been investigated. 2005/09/20 14:13:24 fme 1.49.32.20: #i51089# Removed compiler warnings 2005/09/20 11:16:23 hbrinkm 1.49.32.19: #i51089# SwNumRule::Invalidate->SwNumRule::SetInvalidRule(TRUE) 2005/09/14 13:37:29 hbrinkm 1.49.32.18: #i51089# SyncNumRulesAndNodes: UpdateOutlineNode 2005/09/13 20:27:33 hbrinkm 1.49.32.17: RESYNC: (1.50-1.51); FILE MERGED 2005/09/12 15:15:29 hbrinkm 1.49.32.16: #i51089# AddNumRuleRanges 2005/09/07 11:29:02 hbrinkm 1.49.32.15: #i51089# SyncNumRulesAndNodes 2005/09/01 14:46:47 hbrinkm 1.49.32.14: #i51089# NumOrNoNum: only remove hard numbering 2005/08/31 13:34:47 hbrinkm 1.49.32.13: #i51089# NumOrNoNum: Only touch paragraphs with hard numbering that shows number 2005/08/30 12:58:49 hbrinkm 1.49.32.12: #i51089# PropagateOutlineRule: SyncNumAndNumRule after setting of outline level 2005/08/26 13:43:44 hbrinkm 1.49.32.11: #i51089# SetNumRuleStart: bool <-> BOOL 2005/08/23 07:35:20 hbrinkm 1.49.32.10: #i51089# {Outline|Num}UpDown: call ChkCondColls if modified 2005/08/16 15:31:02 hbrinkm 1.49.32.9: #i51089# FindNumRulePtrWithPool 2005/08/11 09:27:49 hbrinkm 1.49.32.8: #i51089# SetNumRule: do not access zero pointer to numrule 2005/08/10 08:07:25 hbrinkm 1.49.32.7: #121445# PropagateOutlineRule: UpdateOutlineNode 2005/08/09 12:36:44 hbrinkm 1.49.32.6: #i51089# 2005/08/04 09:27:27 hbrinkm 1.49.32.5: #121445# PropagateOutlineRule: only propagate numrule if IsOutlineLevelYieldsOutlineRule returns false, #i51089# 2005/08/03 12:22:55 hbrinkm 1.49.32.4: RESYNC: (1.49-1.50); FILE MERGED 2005/07/11 09:14:57 hbrinkm 1.49.32.3: #i51089# NumOrNoNum: only succeed if a real change is made 2005/07/07 12:49:41 hbrinkm 1.49.32.2: #i51089# PropagateOutlineRule: If a paragraph style has outline level and no numbering rule, set the documents's outline numbering rule, MakeUniqueRules: do not alter outline numbering rules 2005/06/22 10:24:52 hbrinkm 1.49.32.1: #i51089# new implementation of numbering
2005-11-08 16:16:30 +00:00
void SwDoc::SetCounted(const SwPaM & rPam, bool bCounted)
{
// --> OD 2008-04-03 #refactorlists#
// ULONG nStartPos = rPam.Start()->nNode.GetIndex();
// ULONG nEndPos = rPam.End()->nNode.GetIndex();
INTEGRATION: CWS swnumtree (1.49.32); FILE MERGED 2005/11/03 10:35:51 od 1.49.32.28: #i51089# improve performance - method <SwDoc::GetOutlineNumRule> now inline implemented. - consider change of <SwTxtNode::GetNum()> 2005/11/01 18:07:21 od 1.49.32.27: #i51089# - remove unused code 2005/10/26 10:47:23 od 1.49.32.26: RESYNC: (1.51-1.52); FILE MERGED 2005/10/26 09:34:37 od 1.49.32.25: #b6340308# <SwDoc::SetNumRule(..)> - Only clear numbering rule attribute at current text node, if its paragraph style already contains the new numbering rule. 2005/10/25 06:20:54 od 1.49.32.24: #i51089# - delete unused code. 2005/10/25 05:44:01 od 1.49.32.23: #i55391# <SwDoc::SearchNumRule(..)> - Investigate given start node, if requested. Request is indicated by new parameter <_bInvestigateStartNode> 2005/10/21 11:20:54 od 1.49.32.22: #i51089# - Only the counting of phantoms of the outline numbering rule depends on <SwDoc::IsOldNumbering()> 2005/10/21 08:33:31 od 1.49.32.21: #i55391# <SwDoc::SearchNumRule(..)> - start node has also been investigated. 2005/09/20 14:13:24 fme 1.49.32.20: #i51089# Removed compiler warnings 2005/09/20 11:16:23 hbrinkm 1.49.32.19: #i51089# SwNumRule::Invalidate->SwNumRule::SetInvalidRule(TRUE) 2005/09/14 13:37:29 hbrinkm 1.49.32.18: #i51089# SyncNumRulesAndNodes: UpdateOutlineNode 2005/09/13 20:27:33 hbrinkm 1.49.32.17: RESYNC: (1.50-1.51); FILE MERGED 2005/09/12 15:15:29 hbrinkm 1.49.32.16: #i51089# AddNumRuleRanges 2005/09/07 11:29:02 hbrinkm 1.49.32.15: #i51089# SyncNumRulesAndNodes 2005/09/01 14:46:47 hbrinkm 1.49.32.14: #i51089# NumOrNoNum: only remove hard numbering 2005/08/31 13:34:47 hbrinkm 1.49.32.13: #i51089# NumOrNoNum: Only touch paragraphs with hard numbering that shows number 2005/08/30 12:58:49 hbrinkm 1.49.32.12: #i51089# PropagateOutlineRule: SyncNumAndNumRule after setting of outline level 2005/08/26 13:43:44 hbrinkm 1.49.32.11: #i51089# SetNumRuleStart: bool <-> BOOL 2005/08/23 07:35:20 hbrinkm 1.49.32.10: #i51089# {Outline|Num}UpDown: call ChkCondColls if modified 2005/08/16 15:31:02 hbrinkm 1.49.32.9: #i51089# FindNumRulePtrWithPool 2005/08/11 09:27:49 hbrinkm 1.49.32.8: #i51089# SetNumRule: do not access zero pointer to numrule 2005/08/10 08:07:25 hbrinkm 1.49.32.7: #121445# PropagateOutlineRule: UpdateOutlineNode 2005/08/09 12:36:44 hbrinkm 1.49.32.6: #i51089# 2005/08/04 09:27:27 hbrinkm 1.49.32.5: #121445# PropagateOutlineRule: only propagate numrule if IsOutlineLevelYieldsOutlineRule returns false, #i51089# 2005/08/03 12:22:55 hbrinkm 1.49.32.4: RESYNC: (1.49-1.50); FILE MERGED 2005/07/11 09:14:57 hbrinkm 1.49.32.3: #i51089# NumOrNoNum: only succeed if a real change is made 2005/07/07 12:49:41 hbrinkm 1.49.32.2: #i51089# PropagateOutlineRule: If a paragraph style has outline level and no numbering rule, set the documents's outline numbering rule, MakeUniqueRules: do not alter outline numbering rules 2005/06/22 10:24:52 hbrinkm 1.49.32.1: #i51089# new implementation of numbering
2005-11-08 16:16:30 +00:00
// for (ULONG n = nStartPos; n <= nEndPos; n++)
// {
// SwTxtNode * pNd = GetNodes()[n]->GetTxtNode();
INTEGRATION: CWS swnumtree (1.49.32); FILE MERGED 2005/11/03 10:35:51 od 1.49.32.28: #i51089# improve performance - method <SwDoc::GetOutlineNumRule> now inline implemented. - consider change of <SwTxtNode::GetNum()> 2005/11/01 18:07:21 od 1.49.32.27: #i51089# - remove unused code 2005/10/26 10:47:23 od 1.49.32.26: RESYNC: (1.51-1.52); FILE MERGED 2005/10/26 09:34:37 od 1.49.32.25: #b6340308# <SwDoc::SetNumRule(..)> - Only clear numbering rule attribute at current text node, if its paragraph style already contains the new numbering rule. 2005/10/25 06:20:54 od 1.49.32.24: #i51089# - delete unused code. 2005/10/25 05:44:01 od 1.49.32.23: #i55391# <SwDoc::SearchNumRule(..)> - Investigate given start node, if requested. Request is indicated by new parameter <_bInvestigateStartNode> 2005/10/21 11:20:54 od 1.49.32.22: #i51089# - Only the counting of phantoms of the outline numbering rule depends on <SwDoc::IsOldNumbering()> 2005/10/21 08:33:31 od 1.49.32.21: #i55391# <SwDoc::SearchNumRule(..)> - start node has also been investigated. 2005/09/20 14:13:24 fme 1.49.32.20: #i51089# Removed compiler warnings 2005/09/20 11:16:23 hbrinkm 1.49.32.19: #i51089# SwNumRule::Invalidate->SwNumRule::SetInvalidRule(TRUE) 2005/09/14 13:37:29 hbrinkm 1.49.32.18: #i51089# SyncNumRulesAndNodes: UpdateOutlineNode 2005/09/13 20:27:33 hbrinkm 1.49.32.17: RESYNC: (1.50-1.51); FILE MERGED 2005/09/12 15:15:29 hbrinkm 1.49.32.16: #i51089# AddNumRuleRanges 2005/09/07 11:29:02 hbrinkm 1.49.32.15: #i51089# SyncNumRulesAndNodes 2005/09/01 14:46:47 hbrinkm 1.49.32.14: #i51089# NumOrNoNum: only remove hard numbering 2005/08/31 13:34:47 hbrinkm 1.49.32.13: #i51089# NumOrNoNum: Only touch paragraphs with hard numbering that shows number 2005/08/30 12:58:49 hbrinkm 1.49.32.12: #i51089# PropagateOutlineRule: SyncNumAndNumRule after setting of outline level 2005/08/26 13:43:44 hbrinkm 1.49.32.11: #i51089# SetNumRuleStart: bool <-> BOOL 2005/08/23 07:35:20 hbrinkm 1.49.32.10: #i51089# {Outline|Num}UpDown: call ChkCondColls if modified 2005/08/16 15:31:02 hbrinkm 1.49.32.9: #i51089# FindNumRulePtrWithPool 2005/08/11 09:27:49 hbrinkm 1.49.32.8: #i51089# SetNumRule: do not access zero pointer to numrule 2005/08/10 08:07:25 hbrinkm 1.49.32.7: #121445# PropagateOutlineRule: UpdateOutlineNode 2005/08/09 12:36:44 hbrinkm 1.49.32.6: #i51089# 2005/08/04 09:27:27 hbrinkm 1.49.32.5: #121445# PropagateOutlineRule: only propagate numrule if IsOutlineLevelYieldsOutlineRule returns false, #i51089# 2005/08/03 12:22:55 hbrinkm 1.49.32.4: RESYNC: (1.49-1.50); FILE MERGED 2005/07/11 09:14:57 hbrinkm 1.49.32.3: #i51089# NumOrNoNum: only succeed if a real change is made 2005/07/07 12:49:41 hbrinkm 1.49.32.2: #i51089# PropagateOutlineRule: If a paragraph style has outline level and no numbering rule, set the documents's outline numbering rule, MakeUniqueRules: do not alter outline numbering rules 2005/06/22 10:24:52 hbrinkm 1.49.32.1: #i51089# new implementation of numbering
2005-11-08 16:16:30 +00:00
// if (pNd)
// pNd->SetCountedInList(bCounted);
// }
if ( bCounted )
{
SvUShortsSort aResetAttrsArray;
aResetAttrsArray.Insert( RES_PARATR_LIST_ISCOUNTED );
ResetAttrs( rPam, sal_True, &aResetAttrsArray );
}
else
{
Insert( rPam, SfxBoolItem( RES_PARATR_LIST_ISCOUNTED, FALSE ), 0 );
INTEGRATION: CWS swnumtree (1.49.32); FILE MERGED 2005/11/03 10:35:51 od 1.49.32.28: #i51089# improve performance - method <SwDoc::GetOutlineNumRule> now inline implemented. - consider change of <SwTxtNode::GetNum()> 2005/11/01 18:07:21 od 1.49.32.27: #i51089# - remove unused code 2005/10/26 10:47:23 od 1.49.32.26: RESYNC: (1.51-1.52); FILE MERGED 2005/10/26 09:34:37 od 1.49.32.25: #b6340308# <SwDoc::SetNumRule(..)> - Only clear numbering rule attribute at current text node, if its paragraph style already contains the new numbering rule. 2005/10/25 06:20:54 od 1.49.32.24: #i51089# - delete unused code. 2005/10/25 05:44:01 od 1.49.32.23: #i55391# <SwDoc::SearchNumRule(..)> - Investigate given start node, if requested. Request is indicated by new parameter <_bInvestigateStartNode> 2005/10/21 11:20:54 od 1.49.32.22: #i51089# - Only the counting of phantoms of the outline numbering rule depends on <SwDoc::IsOldNumbering()> 2005/10/21 08:33:31 od 1.49.32.21: #i55391# <SwDoc::SearchNumRule(..)> - start node has also been investigated. 2005/09/20 14:13:24 fme 1.49.32.20: #i51089# Removed compiler warnings 2005/09/20 11:16:23 hbrinkm 1.49.32.19: #i51089# SwNumRule::Invalidate->SwNumRule::SetInvalidRule(TRUE) 2005/09/14 13:37:29 hbrinkm 1.49.32.18: #i51089# SyncNumRulesAndNodes: UpdateOutlineNode 2005/09/13 20:27:33 hbrinkm 1.49.32.17: RESYNC: (1.50-1.51); FILE MERGED 2005/09/12 15:15:29 hbrinkm 1.49.32.16: #i51089# AddNumRuleRanges 2005/09/07 11:29:02 hbrinkm 1.49.32.15: #i51089# SyncNumRulesAndNodes 2005/09/01 14:46:47 hbrinkm 1.49.32.14: #i51089# NumOrNoNum: only remove hard numbering 2005/08/31 13:34:47 hbrinkm 1.49.32.13: #i51089# NumOrNoNum: Only touch paragraphs with hard numbering that shows number 2005/08/30 12:58:49 hbrinkm 1.49.32.12: #i51089# PropagateOutlineRule: SyncNumAndNumRule after setting of outline level 2005/08/26 13:43:44 hbrinkm 1.49.32.11: #i51089# SetNumRuleStart: bool <-> BOOL 2005/08/23 07:35:20 hbrinkm 1.49.32.10: #i51089# {Outline|Num}UpDown: call ChkCondColls if modified 2005/08/16 15:31:02 hbrinkm 1.49.32.9: #i51089# FindNumRulePtrWithPool 2005/08/11 09:27:49 hbrinkm 1.49.32.8: #i51089# SetNumRule: do not access zero pointer to numrule 2005/08/10 08:07:25 hbrinkm 1.49.32.7: #121445# PropagateOutlineRule: UpdateOutlineNode 2005/08/09 12:36:44 hbrinkm 1.49.32.6: #i51089# 2005/08/04 09:27:27 hbrinkm 1.49.32.5: #121445# PropagateOutlineRule: only propagate numrule if IsOutlineLevelYieldsOutlineRule returns false, #i51089# 2005/08/03 12:22:55 hbrinkm 1.49.32.4: RESYNC: (1.49-1.50); FILE MERGED 2005/07/11 09:14:57 hbrinkm 1.49.32.3: #i51089# NumOrNoNum: only succeed if a real change is made 2005/07/07 12:49:41 hbrinkm 1.49.32.2: #i51089# PropagateOutlineRule: If a paragraph style has outline level and no numbering rule, set the documents's outline numbering rule, MakeUniqueRules: do not alter outline numbering rules 2005/06/22 10:24:52 hbrinkm 1.49.32.1: #i51089# new implementation of numbering
2005-11-08 16:16:30 +00:00
}
}
void SwDoc::ReplaceNumRule(const SwPaM & rPaM, const SwNumRule & rNumRule)
{
if (DoesUndo())
StartUndo(UNDO_START, NULL);
ULONG nStt = rPaM.Start()->nNode.GetIndex();
ULONG nEnd = rPaM.End()->nNode.GetIndex();
for (ULONG n = nStt; n <= nEnd; n++)
{
SwTxtNode * pCNd = GetNodes()[n]->GetTxtNode();
if (pCNd && NULL != pCNd->GetNumRule())
{
SwPaM aPam(*pCNd);
Insert(aPam, SwNumRuleItem(rNumRule.GetName()), 0);
}
}
if (DoesUndo())
EndUndo(UNDO_START, NULL);
}
2000-09-18 23:08:29 +00:00
void SwDoc::SetNumRuleStart( const SwPosition& rPos, BOOL bFlag )
{
SwTxtNode* pTxtNd = rPos.nNode.GetNode().GetTxtNode();
INTEGRATION: CWS swnumtree (1.49.32); FILE MERGED 2005/11/03 10:35:51 od 1.49.32.28: #i51089# improve performance - method <SwDoc::GetOutlineNumRule> now inline implemented. - consider change of <SwTxtNode::GetNum()> 2005/11/01 18:07:21 od 1.49.32.27: #i51089# - remove unused code 2005/10/26 10:47:23 od 1.49.32.26: RESYNC: (1.51-1.52); FILE MERGED 2005/10/26 09:34:37 od 1.49.32.25: #b6340308# <SwDoc::SetNumRule(..)> - Only clear numbering rule attribute at current text node, if its paragraph style already contains the new numbering rule. 2005/10/25 06:20:54 od 1.49.32.24: #i51089# - delete unused code. 2005/10/25 05:44:01 od 1.49.32.23: #i55391# <SwDoc::SearchNumRule(..)> - Investigate given start node, if requested. Request is indicated by new parameter <_bInvestigateStartNode> 2005/10/21 11:20:54 od 1.49.32.22: #i51089# - Only the counting of phantoms of the outline numbering rule depends on <SwDoc::IsOldNumbering()> 2005/10/21 08:33:31 od 1.49.32.21: #i55391# <SwDoc::SearchNumRule(..)> - start node has also been investigated. 2005/09/20 14:13:24 fme 1.49.32.20: #i51089# Removed compiler warnings 2005/09/20 11:16:23 hbrinkm 1.49.32.19: #i51089# SwNumRule::Invalidate->SwNumRule::SetInvalidRule(TRUE) 2005/09/14 13:37:29 hbrinkm 1.49.32.18: #i51089# SyncNumRulesAndNodes: UpdateOutlineNode 2005/09/13 20:27:33 hbrinkm 1.49.32.17: RESYNC: (1.50-1.51); FILE MERGED 2005/09/12 15:15:29 hbrinkm 1.49.32.16: #i51089# AddNumRuleRanges 2005/09/07 11:29:02 hbrinkm 1.49.32.15: #i51089# SyncNumRulesAndNodes 2005/09/01 14:46:47 hbrinkm 1.49.32.14: #i51089# NumOrNoNum: only remove hard numbering 2005/08/31 13:34:47 hbrinkm 1.49.32.13: #i51089# NumOrNoNum: Only touch paragraphs with hard numbering that shows number 2005/08/30 12:58:49 hbrinkm 1.49.32.12: #i51089# PropagateOutlineRule: SyncNumAndNumRule after setting of outline level 2005/08/26 13:43:44 hbrinkm 1.49.32.11: #i51089# SetNumRuleStart: bool <-> BOOL 2005/08/23 07:35:20 hbrinkm 1.49.32.10: #i51089# {Outline|Num}UpDown: call ChkCondColls if modified 2005/08/16 15:31:02 hbrinkm 1.49.32.9: #i51089# FindNumRulePtrWithPool 2005/08/11 09:27:49 hbrinkm 1.49.32.8: #i51089# SetNumRule: do not access zero pointer to numrule 2005/08/10 08:07:25 hbrinkm 1.49.32.7: #121445# PropagateOutlineRule: UpdateOutlineNode 2005/08/09 12:36:44 hbrinkm 1.49.32.6: #i51089# 2005/08/04 09:27:27 hbrinkm 1.49.32.5: #121445# PropagateOutlineRule: only propagate numrule if IsOutlineLevelYieldsOutlineRule returns false, #i51089# 2005/08/03 12:22:55 hbrinkm 1.49.32.4: RESYNC: (1.49-1.50); FILE MERGED 2005/07/11 09:14:57 hbrinkm 1.49.32.3: #i51089# NumOrNoNum: only succeed if a real change is made 2005/07/07 12:49:41 hbrinkm 1.49.32.2: #i51089# PropagateOutlineRule: If a paragraph style has outline level and no numbering rule, set the documents's outline numbering rule, MakeUniqueRules: do not alter outline numbering rules 2005/06/22 10:24:52 hbrinkm 1.49.32.1: #i51089# new implementation of numbering
2005-11-08 16:16:30 +00:00
if (pTxtNd)
2000-09-18 23:08:29 +00:00
{
INTEGRATION: CWS swnumtree (1.49.32); FILE MERGED 2005/11/03 10:35:51 od 1.49.32.28: #i51089# improve performance - method <SwDoc::GetOutlineNumRule> now inline implemented. - consider change of <SwTxtNode::GetNum()> 2005/11/01 18:07:21 od 1.49.32.27: #i51089# - remove unused code 2005/10/26 10:47:23 od 1.49.32.26: RESYNC: (1.51-1.52); FILE MERGED 2005/10/26 09:34:37 od 1.49.32.25: #b6340308# <SwDoc::SetNumRule(..)> - Only clear numbering rule attribute at current text node, if its paragraph style already contains the new numbering rule. 2005/10/25 06:20:54 od 1.49.32.24: #i51089# - delete unused code. 2005/10/25 05:44:01 od 1.49.32.23: #i55391# <SwDoc::SearchNumRule(..)> - Investigate given start node, if requested. Request is indicated by new parameter <_bInvestigateStartNode> 2005/10/21 11:20:54 od 1.49.32.22: #i51089# - Only the counting of phantoms of the outline numbering rule depends on <SwDoc::IsOldNumbering()> 2005/10/21 08:33:31 od 1.49.32.21: #i55391# <SwDoc::SearchNumRule(..)> - start node has also been investigated. 2005/09/20 14:13:24 fme 1.49.32.20: #i51089# Removed compiler warnings 2005/09/20 11:16:23 hbrinkm 1.49.32.19: #i51089# SwNumRule::Invalidate->SwNumRule::SetInvalidRule(TRUE) 2005/09/14 13:37:29 hbrinkm 1.49.32.18: #i51089# SyncNumRulesAndNodes: UpdateOutlineNode 2005/09/13 20:27:33 hbrinkm 1.49.32.17: RESYNC: (1.50-1.51); FILE MERGED 2005/09/12 15:15:29 hbrinkm 1.49.32.16: #i51089# AddNumRuleRanges 2005/09/07 11:29:02 hbrinkm 1.49.32.15: #i51089# SyncNumRulesAndNodes 2005/09/01 14:46:47 hbrinkm 1.49.32.14: #i51089# NumOrNoNum: only remove hard numbering 2005/08/31 13:34:47 hbrinkm 1.49.32.13: #i51089# NumOrNoNum: Only touch paragraphs with hard numbering that shows number 2005/08/30 12:58:49 hbrinkm 1.49.32.12: #i51089# PropagateOutlineRule: SyncNumAndNumRule after setting of outline level 2005/08/26 13:43:44 hbrinkm 1.49.32.11: #i51089# SetNumRuleStart: bool <-> BOOL 2005/08/23 07:35:20 hbrinkm 1.49.32.10: #i51089# {Outline|Num}UpDown: call ChkCondColls if modified 2005/08/16 15:31:02 hbrinkm 1.49.32.9: #i51089# FindNumRulePtrWithPool 2005/08/11 09:27:49 hbrinkm 1.49.32.8: #i51089# SetNumRule: do not access zero pointer to numrule 2005/08/10 08:07:25 hbrinkm 1.49.32.7: #121445# PropagateOutlineRule: UpdateOutlineNode 2005/08/09 12:36:44 hbrinkm 1.49.32.6: #i51089# 2005/08/04 09:27:27 hbrinkm 1.49.32.5: #121445# PropagateOutlineRule: only propagate numrule if IsOutlineLevelYieldsOutlineRule returns false, #i51089# 2005/08/03 12:22:55 hbrinkm 1.49.32.4: RESYNC: (1.49-1.50); FILE MERGED 2005/07/11 09:14:57 hbrinkm 1.49.32.3: #i51089# NumOrNoNum: only succeed if a real change is made 2005/07/07 12:49:41 hbrinkm 1.49.32.2: #i51089# PropagateOutlineRule: If a paragraph style has outline level and no numbering rule, set the documents's outline numbering rule, MakeUniqueRules: do not alter outline numbering rules 2005/06/22 10:24:52 hbrinkm 1.49.32.1: #i51089# new implementation of numbering
2005-11-08 16:16:30 +00:00
const SwNumRule* pRule = pTxtNd->GetNumRule();
if( pRule && !bFlag != !pTxtNd->IsListRestart())
2000-09-18 23:08:29 +00:00
{
INTEGRATION: CWS swnumtree (1.49.32); FILE MERGED 2005/11/03 10:35:51 od 1.49.32.28: #i51089# improve performance - method <SwDoc::GetOutlineNumRule> now inline implemented. - consider change of <SwTxtNode::GetNum()> 2005/11/01 18:07:21 od 1.49.32.27: #i51089# - remove unused code 2005/10/26 10:47:23 od 1.49.32.26: RESYNC: (1.51-1.52); FILE MERGED 2005/10/26 09:34:37 od 1.49.32.25: #b6340308# <SwDoc::SetNumRule(..)> - Only clear numbering rule attribute at current text node, if its paragraph style already contains the new numbering rule. 2005/10/25 06:20:54 od 1.49.32.24: #i51089# - delete unused code. 2005/10/25 05:44:01 od 1.49.32.23: #i55391# <SwDoc::SearchNumRule(..)> - Investigate given start node, if requested. Request is indicated by new parameter <_bInvestigateStartNode> 2005/10/21 11:20:54 od 1.49.32.22: #i51089# - Only the counting of phantoms of the outline numbering rule depends on <SwDoc::IsOldNumbering()> 2005/10/21 08:33:31 od 1.49.32.21: #i55391# <SwDoc::SearchNumRule(..)> - start node has also been investigated. 2005/09/20 14:13:24 fme 1.49.32.20: #i51089# Removed compiler warnings 2005/09/20 11:16:23 hbrinkm 1.49.32.19: #i51089# SwNumRule::Invalidate->SwNumRule::SetInvalidRule(TRUE) 2005/09/14 13:37:29 hbrinkm 1.49.32.18: #i51089# SyncNumRulesAndNodes: UpdateOutlineNode 2005/09/13 20:27:33 hbrinkm 1.49.32.17: RESYNC: (1.50-1.51); FILE MERGED 2005/09/12 15:15:29 hbrinkm 1.49.32.16: #i51089# AddNumRuleRanges 2005/09/07 11:29:02 hbrinkm 1.49.32.15: #i51089# SyncNumRulesAndNodes 2005/09/01 14:46:47 hbrinkm 1.49.32.14: #i51089# NumOrNoNum: only remove hard numbering 2005/08/31 13:34:47 hbrinkm 1.49.32.13: #i51089# NumOrNoNum: Only touch paragraphs with hard numbering that shows number 2005/08/30 12:58:49 hbrinkm 1.49.32.12: #i51089# PropagateOutlineRule: SyncNumAndNumRule after setting of outline level 2005/08/26 13:43:44 hbrinkm 1.49.32.11: #i51089# SetNumRuleStart: bool <-> BOOL 2005/08/23 07:35:20 hbrinkm 1.49.32.10: #i51089# {Outline|Num}UpDown: call ChkCondColls if modified 2005/08/16 15:31:02 hbrinkm 1.49.32.9: #i51089# FindNumRulePtrWithPool 2005/08/11 09:27:49 hbrinkm 1.49.32.8: #i51089# SetNumRule: do not access zero pointer to numrule 2005/08/10 08:07:25 hbrinkm 1.49.32.7: #121445# PropagateOutlineRule: UpdateOutlineNode 2005/08/09 12:36:44 hbrinkm 1.49.32.6: #i51089# 2005/08/04 09:27:27 hbrinkm 1.49.32.5: #121445# PropagateOutlineRule: only propagate numrule if IsOutlineLevelYieldsOutlineRule returns false, #i51089# 2005/08/03 12:22:55 hbrinkm 1.49.32.4: RESYNC: (1.49-1.50); FILE MERGED 2005/07/11 09:14:57 hbrinkm 1.49.32.3: #i51089# NumOrNoNum: only succeed if a real change is made 2005/07/07 12:49:41 hbrinkm 1.49.32.2: #i51089# PropagateOutlineRule: If a paragraph style has outline level and no numbering rule, set the documents's outline numbering rule, MakeUniqueRules: do not alter outline numbering rules 2005/06/22 10:24:52 hbrinkm 1.49.32.1: #i51089# new implementation of numbering
2005-11-08 16:16:30 +00:00
if( DoesUndo() )
{
ClearRedo();
AppendUndo( new SwUndoNumRuleStart( rPos, bFlag ));
}
pTxtNd->SetListRestart(bFlag ? true : false);
INTEGRATION: CWS swnumtree (1.49.32); FILE MERGED 2005/11/03 10:35:51 od 1.49.32.28: #i51089# improve performance - method <SwDoc::GetOutlineNumRule> now inline implemented. - consider change of <SwTxtNode::GetNum()> 2005/11/01 18:07:21 od 1.49.32.27: #i51089# - remove unused code 2005/10/26 10:47:23 od 1.49.32.26: RESYNC: (1.51-1.52); FILE MERGED 2005/10/26 09:34:37 od 1.49.32.25: #b6340308# <SwDoc::SetNumRule(..)> - Only clear numbering rule attribute at current text node, if its paragraph style already contains the new numbering rule. 2005/10/25 06:20:54 od 1.49.32.24: #i51089# - delete unused code. 2005/10/25 05:44:01 od 1.49.32.23: #i55391# <SwDoc::SearchNumRule(..)> - Investigate given start node, if requested. Request is indicated by new parameter <_bInvestigateStartNode> 2005/10/21 11:20:54 od 1.49.32.22: #i51089# - Only the counting of phantoms of the outline numbering rule depends on <SwDoc::IsOldNumbering()> 2005/10/21 08:33:31 od 1.49.32.21: #i55391# <SwDoc::SearchNumRule(..)> - start node has also been investigated. 2005/09/20 14:13:24 fme 1.49.32.20: #i51089# Removed compiler warnings 2005/09/20 11:16:23 hbrinkm 1.49.32.19: #i51089# SwNumRule::Invalidate->SwNumRule::SetInvalidRule(TRUE) 2005/09/14 13:37:29 hbrinkm 1.49.32.18: #i51089# SyncNumRulesAndNodes: UpdateOutlineNode 2005/09/13 20:27:33 hbrinkm 1.49.32.17: RESYNC: (1.50-1.51); FILE MERGED 2005/09/12 15:15:29 hbrinkm 1.49.32.16: #i51089# AddNumRuleRanges 2005/09/07 11:29:02 hbrinkm 1.49.32.15: #i51089# SyncNumRulesAndNodes 2005/09/01 14:46:47 hbrinkm 1.49.32.14: #i51089# NumOrNoNum: only remove hard numbering 2005/08/31 13:34:47 hbrinkm 1.49.32.13: #i51089# NumOrNoNum: Only touch paragraphs with hard numbering that shows number 2005/08/30 12:58:49 hbrinkm 1.49.32.12: #i51089# PropagateOutlineRule: SyncNumAndNumRule after setting of outline level 2005/08/26 13:43:44 hbrinkm 1.49.32.11: #i51089# SetNumRuleStart: bool <-> BOOL 2005/08/23 07:35:20 hbrinkm 1.49.32.10: #i51089# {Outline|Num}UpDown: call ChkCondColls if modified 2005/08/16 15:31:02 hbrinkm 1.49.32.9: #i51089# FindNumRulePtrWithPool 2005/08/11 09:27:49 hbrinkm 1.49.32.8: #i51089# SetNumRule: do not access zero pointer to numrule 2005/08/10 08:07:25 hbrinkm 1.49.32.7: #121445# PropagateOutlineRule: UpdateOutlineNode 2005/08/09 12:36:44 hbrinkm 1.49.32.6: #i51089# 2005/08/04 09:27:27 hbrinkm 1.49.32.5: #121445# PropagateOutlineRule: only propagate numrule if IsOutlineLevelYieldsOutlineRule returns false, #i51089# 2005/08/03 12:22:55 hbrinkm 1.49.32.4: RESYNC: (1.49-1.50); FILE MERGED 2005/07/11 09:14:57 hbrinkm 1.49.32.3: #i51089# NumOrNoNum: only succeed if a real change is made 2005/07/07 12:49:41 hbrinkm 1.49.32.2: #i51089# PropagateOutlineRule: If a paragraph style has outline level and no numbering rule, set the documents's outline numbering rule, MakeUniqueRules: do not alter outline numbering rules 2005/06/22 10:24:52 hbrinkm 1.49.32.1: #i51089# new implementation of numbering
2005-11-08 16:16:30 +00:00
SetModified();
2000-09-18 23:08:29 +00:00
}
}
}
void SwDoc::SetNodeNumStart( const SwPosition& rPos, USHORT nStt )
{
SwTxtNode* pTxtNd = rPos.nNode.GetNode().GetTxtNode();
INTEGRATION: CWS swnumtree (1.49.32); FILE MERGED 2005/11/03 10:35:51 od 1.49.32.28: #i51089# improve performance - method <SwDoc::GetOutlineNumRule> now inline implemented. - consider change of <SwTxtNode::GetNum()> 2005/11/01 18:07:21 od 1.49.32.27: #i51089# - remove unused code 2005/10/26 10:47:23 od 1.49.32.26: RESYNC: (1.51-1.52); FILE MERGED 2005/10/26 09:34:37 od 1.49.32.25: #b6340308# <SwDoc::SetNumRule(..)> - Only clear numbering rule attribute at current text node, if its paragraph style already contains the new numbering rule. 2005/10/25 06:20:54 od 1.49.32.24: #i51089# - delete unused code. 2005/10/25 05:44:01 od 1.49.32.23: #i55391# <SwDoc::SearchNumRule(..)> - Investigate given start node, if requested. Request is indicated by new parameter <_bInvestigateStartNode> 2005/10/21 11:20:54 od 1.49.32.22: #i51089# - Only the counting of phantoms of the outline numbering rule depends on <SwDoc::IsOldNumbering()> 2005/10/21 08:33:31 od 1.49.32.21: #i55391# <SwDoc::SearchNumRule(..)> - start node has also been investigated. 2005/09/20 14:13:24 fme 1.49.32.20: #i51089# Removed compiler warnings 2005/09/20 11:16:23 hbrinkm 1.49.32.19: #i51089# SwNumRule::Invalidate->SwNumRule::SetInvalidRule(TRUE) 2005/09/14 13:37:29 hbrinkm 1.49.32.18: #i51089# SyncNumRulesAndNodes: UpdateOutlineNode 2005/09/13 20:27:33 hbrinkm 1.49.32.17: RESYNC: (1.50-1.51); FILE MERGED 2005/09/12 15:15:29 hbrinkm 1.49.32.16: #i51089# AddNumRuleRanges 2005/09/07 11:29:02 hbrinkm 1.49.32.15: #i51089# SyncNumRulesAndNodes 2005/09/01 14:46:47 hbrinkm 1.49.32.14: #i51089# NumOrNoNum: only remove hard numbering 2005/08/31 13:34:47 hbrinkm 1.49.32.13: #i51089# NumOrNoNum: Only touch paragraphs with hard numbering that shows number 2005/08/30 12:58:49 hbrinkm 1.49.32.12: #i51089# PropagateOutlineRule: SyncNumAndNumRule after setting of outline level 2005/08/26 13:43:44 hbrinkm 1.49.32.11: #i51089# SetNumRuleStart: bool <-> BOOL 2005/08/23 07:35:20 hbrinkm 1.49.32.10: #i51089# {Outline|Num}UpDown: call ChkCondColls if modified 2005/08/16 15:31:02 hbrinkm 1.49.32.9: #i51089# FindNumRulePtrWithPool 2005/08/11 09:27:49 hbrinkm 1.49.32.8: #i51089# SetNumRule: do not access zero pointer to numrule 2005/08/10 08:07:25 hbrinkm 1.49.32.7: #121445# PropagateOutlineRule: UpdateOutlineNode 2005/08/09 12:36:44 hbrinkm 1.49.32.6: #i51089# 2005/08/04 09:27:27 hbrinkm 1.49.32.5: #121445# PropagateOutlineRule: only propagate numrule if IsOutlineLevelYieldsOutlineRule returns false, #i51089# 2005/08/03 12:22:55 hbrinkm 1.49.32.4: RESYNC: (1.49-1.50); FILE MERGED 2005/07/11 09:14:57 hbrinkm 1.49.32.3: #i51089# NumOrNoNum: only succeed if a real change is made 2005/07/07 12:49:41 hbrinkm 1.49.32.2: #i51089# PropagateOutlineRule: If a paragraph style has outline level and no numbering rule, set the documents's outline numbering rule, MakeUniqueRules: do not alter outline numbering rules 2005/06/22 10:24:52 hbrinkm 1.49.32.1: #i51089# new implementation of numbering
2005-11-08 16:16:30 +00:00
if (pTxtNd)
2000-09-18 23:08:29 +00:00
{
// --> OD 2008-02-27 #refactorlists#
// const SwNumRule* pRule = pTxtNd->GetNumRule();
// if( pRule && nStt != pTxtNd->GetListRestartValue() )
// {
// if( DoesUndo() )
// {
// ClearRedo();
// AppendUndo( new SwUndoNumRuleStart( rPos, nStt ));
// }
// }
// pTxtNd->SetListRestartValue(nStt);
// SetModified();
if ( !pTxtNd->HasAttrListRestartValue() ||
pTxtNd->GetAttrListRestartValue() != nStt )
2000-09-18 23:08:29 +00:00
{
INTEGRATION: CWS swnumtree (1.49.32); FILE MERGED 2005/11/03 10:35:51 od 1.49.32.28: #i51089# improve performance - method <SwDoc::GetOutlineNumRule> now inline implemented. - consider change of <SwTxtNode::GetNum()> 2005/11/01 18:07:21 od 1.49.32.27: #i51089# - remove unused code 2005/10/26 10:47:23 od 1.49.32.26: RESYNC: (1.51-1.52); FILE MERGED 2005/10/26 09:34:37 od 1.49.32.25: #b6340308# <SwDoc::SetNumRule(..)> - Only clear numbering rule attribute at current text node, if its paragraph style already contains the new numbering rule. 2005/10/25 06:20:54 od 1.49.32.24: #i51089# - delete unused code. 2005/10/25 05:44:01 od 1.49.32.23: #i55391# <SwDoc::SearchNumRule(..)> - Investigate given start node, if requested. Request is indicated by new parameter <_bInvestigateStartNode> 2005/10/21 11:20:54 od 1.49.32.22: #i51089# - Only the counting of phantoms of the outline numbering rule depends on <SwDoc::IsOldNumbering()> 2005/10/21 08:33:31 od 1.49.32.21: #i55391# <SwDoc::SearchNumRule(..)> - start node has also been investigated. 2005/09/20 14:13:24 fme 1.49.32.20: #i51089# Removed compiler warnings 2005/09/20 11:16:23 hbrinkm 1.49.32.19: #i51089# SwNumRule::Invalidate->SwNumRule::SetInvalidRule(TRUE) 2005/09/14 13:37:29 hbrinkm 1.49.32.18: #i51089# SyncNumRulesAndNodes: UpdateOutlineNode 2005/09/13 20:27:33 hbrinkm 1.49.32.17: RESYNC: (1.50-1.51); FILE MERGED 2005/09/12 15:15:29 hbrinkm 1.49.32.16: #i51089# AddNumRuleRanges 2005/09/07 11:29:02 hbrinkm 1.49.32.15: #i51089# SyncNumRulesAndNodes 2005/09/01 14:46:47 hbrinkm 1.49.32.14: #i51089# NumOrNoNum: only remove hard numbering 2005/08/31 13:34:47 hbrinkm 1.49.32.13: #i51089# NumOrNoNum: Only touch paragraphs with hard numbering that shows number 2005/08/30 12:58:49 hbrinkm 1.49.32.12: #i51089# PropagateOutlineRule: SyncNumAndNumRule after setting of outline level 2005/08/26 13:43:44 hbrinkm 1.49.32.11: #i51089# SetNumRuleStart: bool <-> BOOL 2005/08/23 07:35:20 hbrinkm 1.49.32.10: #i51089# {Outline|Num}UpDown: call ChkCondColls if modified 2005/08/16 15:31:02 hbrinkm 1.49.32.9: #i51089# FindNumRulePtrWithPool 2005/08/11 09:27:49 hbrinkm 1.49.32.8: #i51089# SetNumRule: do not access zero pointer to numrule 2005/08/10 08:07:25 hbrinkm 1.49.32.7: #121445# PropagateOutlineRule: UpdateOutlineNode 2005/08/09 12:36:44 hbrinkm 1.49.32.6: #i51089# 2005/08/04 09:27:27 hbrinkm 1.49.32.5: #121445# PropagateOutlineRule: only propagate numrule if IsOutlineLevelYieldsOutlineRule returns false, #i51089# 2005/08/03 12:22:55 hbrinkm 1.49.32.4: RESYNC: (1.49-1.50); FILE MERGED 2005/07/11 09:14:57 hbrinkm 1.49.32.3: #i51089# NumOrNoNum: only succeed if a real change is made 2005/07/07 12:49:41 hbrinkm 1.49.32.2: #i51089# PropagateOutlineRule: If a paragraph style has outline level and no numbering rule, set the documents's outline numbering rule, MakeUniqueRules: do not alter outline numbering rules 2005/06/22 10:24:52 hbrinkm 1.49.32.1: #i51089# new implementation of numbering
2005-11-08 16:16:30 +00:00
if( DoesUndo() )
{
ClearRedo();
AppendUndo( new SwUndoNumRuleStart( rPos, nStt ));
}
pTxtNd->SetAttrListRestartValue( nStt );
INTEGRATION: CWS swnumtree (1.49.32); FILE MERGED 2005/11/03 10:35:51 od 1.49.32.28: #i51089# improve performance - method <SwDoc::GetOutlineNumRule> now inline implemented. - consider change of <SwTxtNode::GetNum()> 2005/11/01 18:07:21 od 1.49.32.27: #i51089# - remove unused code 2005/10/26 10:47:23 od 1.49.32.26: RESYNC: (1.51-1.52); FILE MERGED 2005/10/26 09:34:37 od 1.49.32.25: #b6340308# <SwDoc::SetNumRule(..)> - Only clear numbering rule attribute at current text node, if its paragraph style already contains the new numbering rule. 2005/10/25 06:20:54 od 1.49.32.24: #i51089# - delete unused code. 2005/10/25 05:44:01 od 1.49.32.23: #i55391# <SwDoc::SearchNumRule(..)> - Investigate given start node, if requested. Request is indicated by new parameter <_bInvestigateStartNode> 2005/10/21 11:20:54 od 1.49.32.22: #i51089# - Only the counting of phantoms of the outline numbering rule depends on <SwDoc::IsOldNumbering()> 2005/10/21 08:33:31 od 1.49.32.21: #i55391# <SwDoc::SearchNumRule(..)> - start node has also been investigated. 2005/09/20 14:13:24 fme 1.49.32.20: #i51089# Removed compiler warnings 2005/09/20 11:16:23 hbrinkm 1.49.32.19: #i51089# SwNumRule::Invalidate->SwNumRule::SetInvalidRule(TRUE) 2005/09/14 13:37:29 hbrinkm 1.49.32.18: #i51089# SyncNumRulesAndNodes: UpdateOutlineNode 2005/09/13 20:27:33 hbrinkm 1.49.32.17: RESYNC: (1.50-1.51); FILE MERGED 2005/09/12 15:15:29 hbrinkm 1.49.32.16: #i51089# AddNumRuleRanges 2005/09/07 11:29:02 hbrinkm 1.49.32.15: #i51089# SyncNumRulesAndNodes 2005/09/01 14:46:47 hbrinkm 1.49.32.14: #i51089# NumOrNoNum: only remove hard numbering 2005/08/31 13:34:47 hbrinkm 1.49.32.13: #i51089# NumOrNoNum: Only touch paragraphs with hard numbering that shows number 2005/08/30 12:58:49 hbrinkm 1.49.32.12: #i51089# PropagateOutlineRule: SyncNumAndNumRule after setting of outline level 2005/08/26 13:43:44 hbrinkm 1.49.32.11: #i51089# SetNumRuleStart: bool <-> BOOL 2005/08/23 07:35:20 hbrinkm 1.49.32.10: #i51089# {Outline|Num}UpDown: call ChkCondColls if modified 2005/08/16 15:31:02 hbrinkm 1.49.32.9: #i51089# FindNumRulePtrWithPool 2005/08/11 09:27:49 hbrinkm 1.49.32.8: #i51089# SetNumRule: do not access zero pointer to numrule 2005/08/10 08:07:25 hbrinkm 1.49.32.7: #121445# PropagateOutlineRule: UpdateOutlineNode 2005/08/09 12:36:44 hbrinkm 1.49.32.6: #i51089# 2005/08/04 09:27:27 hbrinkm 1.49.32.5: #121445# PropagateOutlineRule: only propagate numrule if IsOutlineLevelYieldsOutlineRule returns false, #i51089# 2005/08/03 12:22:55 hbrinkm 1.49.32.4: RESYNC: (1.49-1.50); FILE MERGED 2005/07/11 09:14:57 hbrinkm 1.49.32.3: #i51089# NumOrNoNum: only succeed if a real change is made 2005/07/07 12:49:41 hbrinkm 1.49.32.2: #i51089# PropagateOutlineRule: If a paragraph style has outline level and no numbering rule, set the documents's outline numbering rule, MakeUniqueRules: do not alter outline numbering rules 2005/06/22 10:24:52 hbrinkm 1.49.32.1: #i51089# new implementation of numbering
2005-11-08 16:16:30 +00:00
SetModified();
}
// <--
2000-09-18 23:08:29 +00:00
}
}
// loeschen geht nur, wenn die Rule niemand benutzt!
BOOL SwDoc::DelNumRule( const String& rName, BOOL bBroadcast )
2000-09-18 23:08:29 +00:00
{
USHORT nPos = FindNumRule( rName );
// --> OD 2007-12-17 #151213#
if ( (*pNumRuleTbl)[ nPos ] == GetOutlineNumRule() )
{
ASSERT( false,
"<SwDoc::DelNumRule(..)> - No deletion of outline list style. This is serious defect - please inform OD" );
return FALSE;
}
// <--
2000-09-18 23:08:29 +00:00
if( USHRT_MAX != nPos && !IsUsed( *(*pNumRuleTbl)[ nPos ] ))
{
if (DoesUndo())
{
SwUndo * pUndo =
new SwUndoNumruleDelete(*(*pNumRuleTbl)[nPos], this);
AppendUndo(pUndo);
}
if (bBroadcast)
BroadcastStyleOperation(rName, SFX_STYLE_FAMILY_PSEUDO,
SFX_STYLESHEET_ERASED);
// --> OD 2008-04-02 #refactorlists#
deleteListForListStyle( rName );
{
// delete further list, which have the deleted list style as default list style
std::vector< SwList* > aListsForDeletion;
tHashMapForLists::iterator aListIter = maLists.begin();
while ( aListIter != maLists.end() )
{
SwList* pList = (*aListIter).second;
if ( pList->GetDefaultListStyleName() == rName )
{
aListsForDeletion.push_back( pList );
}
++aListIter;
}
while ( aListsForDeletion.size() > 0 )
{
SwList* pList = aListsForDeletion.back();
aListsForDeletion.pop_back();
deleteList( pList->GetListId() );
}
}
// <--
// --> FME 2004-11-02 #i34097# DeleteAndDestroy deletes rName if
// rName is directly taken from the numrule.
const String aTmpName( rName );
// <--
2000-09-18 23:08:29 +00:00
pNumRuleTbl->DeleteAndDestroy( nPos );
maNumRuleMap.erase(aTmpName);
2000-09-18 23:08:29 +00:00
SetModified();
return TRUE;
}
return FALSE;
}
// #106897#
void SwDoc::ChgNumRuleFmts( const SwNumRule& rRule, const String * pName )
2000-09-18 23:08:29 +00:00
{
// #106897#
SwNumRule* pRule = FindNumRulePtr( pName ? *pName : rRule.GetName() );
2000-09-18 23:08:29 +00:00
if( pRule )
{
SwUndoInsNum* pUndo = 0;
if( DoesUndo() )
2000-09-18 23:08:29 +00:00
{
ClearRedo();
pUndo = new SwUndoInsNum( *pRule, rRule );
pUndo->GetHistory();
2000-09-18 23:08:29 +00:00
AppendUndo( pUndo );
}
::lcl_ChgNumRule( *this, rRule );
2000-09-18 23:08:29 +00:00
if( pUndo )
pUndo->SetLRSpaceEndPos();
SetModified();
}
}
sal_Bool SwDoc::RenameNumRule(const String & rOldName, const String & rNewName,
BOOL bBroadcast)
{
sal_Bool bResult = sal_False;
SwNumRule * pNumRule = FindNumRulePtr(rOldName);
if (pNumRule)
{
if (DoesUndo())
{
SwUndo * pUndo = new SwUndoNumruleRename(rOldName, rNewName, this);
AppendUndo(pUndo);
}
// --> OD 2008-02-19 #refactorlists#
// SwNumRuleInfo aInfo(rOldName);
// aInfo.MakeList(*this);
SwNumRule::tTxtNodeList aTxtNodeList;
pNumRule->GetTxtNodeList( aTxtNodeList );
// <--
// --> OD 2008-07-08 #i91400#
pNumRule->SetName( rNewName, *this );
// <--
SwNumRuleItem aItem(rNewName);
// --> OD 2008-02-19 #refactorlists#
// for (ULONG nI = 0; nI < aInfo.GetList().Count(); ++nI)
// {
// SwTxtNode * pTxtNd = aInfo.GetList().GetObject(nI);
// pTxtNd->SwCntntNode::SetAttr(aItem);
// }
for ( SwNumRule::tTxtNodeList::iterator aIter = aTxtNodeList.begin();
aIter != aTxtNodeList.end(); ++aIter )
{
SwTxtNode * pTxtNd = *aIter;
pTxtNd->SetAttr(aItem);
}
// <--
bResult = sal_True;
if (bBroadcast)
BroadcastStyleOperation(rOldName, SFX_STYLE_FAMILY_PSEUDO,
SFX_STYLESHEET_MODIFIED);
}
return bResult;
}
2000-09-18 23:08:29 +00:00
void SwDoc::StopNumRuleAnimations( OutputDevice* pOut )
{
for( USHORT n = GetNumRuleTbl().Count(); n; )
{
// --> OD 2008-02-19 #refactorlists#
// SwNumRuleInfo aUpd( GetNumRuleTbl()[ --n ]->GetName() );
// aUpd.MakeList( *this );
// for( ULONG nFirst = 0, nLast = aUpd.GetList().Count();
// nFirst < nLast; ++nFirst )
// {
// SwTxtNode* pTNd = aUpd.GetList().GetObject( nFirst );
// SwClientIter aIter( *pTNd );
// for( SwFrm* pFrm = (SwFrm*)aIter.First( TYPE(SwFrm) );
// pFrm; pFrm = (SwFrm*)aIter.Next() )
// if( ((SwTxtFrm*)pFrm)->HasAnimation() )
// ((SwTxtFrm*)pFrm)->StopAnimation( pOut );
// }
SwNumRule::tTxtNodeList aTxtNodeList;
GetNumRuleTbl()[ --n ]->GetTxtNodeList( aTxtNodeList );
for ( SwNumRule::tTxtNodeList::iterator aTxtNodeIter = aTxtNodeList.begin();
aTxtNodeIter != aTxtNodeList.end(); ++aTxtNodeIter )
2000-09-18 23:08:29 +00:00
{
SwTxtNode* pTNd = *aTxtNodeIter;
2000-09-18 23:08:29 +00:00
SwClientIter aIter( *pTNd );
for( SwFrm* pFrm = (SwFrm*)aIter.First( TYPE(SwFrm) );
pFrm; pFrm = (SwFrm*)aIter.Next() )
if( ((SwTxtFrm*)pFrm)->HasAnimation() )
((SwTxtFrm*)pFrm)->StopAnimation( pOut );
}
// <--
2000-09-18 23:08:29 +00:00
}
}
BOOL SwDoc::ReplaceNumRule( const SwPosition& rPos,
const String& rOldRule, const String& rNewRule )
{
BOOL bRet = FALSE;
SwNumRule *pOldRule = FindNumRulePtr( rOldRule ),
*pNewRule = FindNumRulePtr( rNewRule );
if( pOldRule && pNewRule && pOldRule != pNewRule )
{
// --> OD 2008-02-19 #refactorlists#
2000-09-18 23:08:29 +00:00
SwUndoInsNum* pUndo = 0;
if( DoesUndo() )
{
ClearRedo();
StartUndo( UNDO_START, NULL ); // Klammerung fuer die Attribute!
2000-09-18 23:08:29 +00:00
AppendUndo( pUndo = new SwUndoInsNum( rPos, *pNewRule, rOldRule ) );
}
// --> OD 2008-02-19 #refactorlists#
// apply new list style <pNewRule> to all text nodes, which have the
// old list style <pOldNRule> applied and belong to the same list as
// the text node of the given <SwPosition>.
// SwNumRuleInfo aUpd( rOldRule );
// aUpd.MakeList( *this );
// if (aUpd.GetList().Count() > 0) // #106897#
SwNumRule::tTxtNodeList aTxtNodeList;
pOldRule->GetTxtNodeList( aTxtNodeList );
if ( aTxtNodeList.size() > 0 )
{
// // Position suchen und bestimme ob ein Node davor oder dahinter
// // einen Start erzwingt
// SwTxtNode* pTxtNd;
// ULONG nFndPos, nFirst, nLast;
2000-09-18 23:08:29 +00:00
// if( TABLE_ENTRY_NOTFOUND != aUpd.GetList().SearchKey(
// rPos.nNode.GetIndex(), &nFndPos ))
// ++nFndPos;
2000-09-18 23:08:29 +00:00
// for( nLast = nFndPos; nLast < aUpd.GetList().Count(); ++nLast )
// {
// pTxtNd = aUpd.GetList().GetObject( nLast );
// if(pTxtNd->IsRestart())
// break;
// }
// for( nFirst = nFndPos; nFirst; )
// {
// pTxtNd = aUpd.GetList().GetObject( --nFirst );
// if( pTxtNd->IsRestart() )
// break;
// }
// // dann neue Numerierung ueber diesen Bereich
// // definieren und den Start am Anfang/Ende zurueck setzen
// pTxtNd = aUpd.GetList().GetObject( nFirst );
// if( pTxtNd->IsRestart() )
// {
// pTxtNd->SetRestart(false);
// if( pUndo )
// pUndo->SetSttNum( pTxtNd->GetIndex() );
// }
2000-09-18 23:08:29 +00:00
SwRegHistory aRegH( pUndo ? pUndo->GetHistory() : 0 );
USHORT nChgFmtLevel = 0;
for( BYTE n = 0; n < MAXLEVEL; ++n )
{
const SwNumFmt& rOldFmt = pOldRule->Get( n ),
& rNewFmt = pNewRule->Get( n );
2000-09-18 23:08:29 +00:00
if( rOldFmt.GetAbsLSpace() != rNewFmt.GetAbsLSpace() ||
rOldFmt.GetFirstLineOffset() != rNewFmt.GetFirstLineOffset() )
nChgFmtLevel |= ( 1 << n );
}
2000-09-18 23:08:29 +00:00
const SwTxtNode* pGivenTxtNode = rPos.nNode.GetNode().GetTxtNode();
SwNumRuleItem aRule( rNewRule );
// for( ; nFirst < nLast; ++nFirst )
// {
// pTxtNd = aUpd.GetList().GetObject( nFirst );
// aRegH.RegisterInModify( pTxtNd, *pTxtNd );
// pTxtNd->SwCntntNode::SetAttr( aRule );
// pTxtNd->NumRuleChgd();
// }
for ( SwNumRule::tTxtNodeList::iterator aIter = aTxtNodeList.begin();
aIter != aTxtNodeList.end(); ++aIter )
{
SwTxtNode* pTxtNd = *aIter;
2000-09-18 23:08:29 +00:00
if ( pGivenTxtNode &&
pGivenTxtNode->GetListId() == pTxtNd->GetListId() )
{
aRegH.RegisterInModify( pTxtNd, *pTxtNd );
2000-09-18 23:08:29 +00:00
pTxtNd->SetAttr( aRule );
pTxtNd->NumRuleChgd();
}
}
EndUndo( UNDO_END, NULL );
SetModified();
bRet = TRUE; // #106897#
2000-09-18 23:08:29 +00:00
}
}
2000-09-18 23:08:29 +00:00
return bRet;
}
// --> OD 2008-03-18 #refactorlists#
namespace
{
struct ListStyleData
{
SwNumRule* pReplaceNumRule;
bool bCreateNewList;
String sListId;
ListStyleData()
: pReplaceNumRule( 0 ),
bCreateNewList( false ),
sListId()
{}
};
}
// <--
void SwDoc::MakeUniqueNumRules(const SwPaM & rPaM)
{
ASSERT( rPaM.GetDoc() == this, "need same doc" );
// --> OD 2008-03-18 #refactorlists#
// map<SwNumRule *, SwNumRule *> aMyNumRuleMap;
::std::map<SwNumRule *, ListStyleData> aMyNumRuleMap;
// <--
ULONG nStt = rPaM.Start()->nNode.GetIndex();
ULONG nEnd = rPaM.End()->nNode.GetIndex();
bool bFirst = true;
for (ULONG n = nStt; n <= nEnd; n++)
{
SwTxtNode * pCNd = GetNodes()[n]->GetTxtNode();
if (pCNd)
{
SwNumRule * pRule = pCNd->GetNumRule();
INTEGRATION: CWS swnumtree (1.49.32); FILE MERGED 2005/11/03 10:35:51 od 1.49.32.28: #i51089# improve performance - method <SwDoc::GetOutlineNumRule> now inline implemented. - consider change of <SwTxtNode::GetNum()> 2005/11/01 18:07:21 od 1.49.32.27: #i51089# - remove unused code 2005/10/26 10:47:23 od 1.49.32.26: RESYNC: (1.51-1.52); FILE MERGED 2005/10/26 09:34:37 od 1.49.32.25: #b6340308# <SwDoc::SetNumRule(..)> - Only clear numbering rule attribute at current text node, if its paragraph style already contains the new numbering rule. 2005/10/25 06:20:54 od 1.49.32.24: #i51089# - delete unused code. 2005/10/25 05:44:01 od 1.49.32.23: #i55391# <SwDoc::SearchNumRule(..)> - Investigate given start node, if requested. Request is indicated by new parameter <_bInvestigateStartNode> 2005/10/21 11:20:54 od 1.49.32.22: #i51089# - Only the counting of phantoms of the outline numbering rule depends on <SwDoc::IsOldNumbering()> 2005/10/21 08:33:31 od 1.49.32.21: #i55391# <SwDoc::SearchNumRule(..)> - start node has also been investigated. 2005/09/20 14:13:24 fme 1.49.32.20: #i51089# Removed compiler warnings 2005/09/20 11:16:23 hbrinkm 1.49.32.19: #i51089# SwNumRule::Invalidate->SwNumRule::SetInvalidRule(TRUE) 2005/09/14 13:37:29 hbrinkm 1.49.32.18: #i51089# SyncNumRulesAndNodes: UpdateOutlineNode 2005/09/13 20:27:33 hbrinkm 1.49.32.17: RESYNC: (1.50-1.51); FILE MERGED 2005/09/12 15:15:29 hbrinkm 1.49.32.16: #i51089# AddNumRuleRanges 2005/09/07 11:29:02 hbrinkm 1.49.32.15: #i51089# SyncNumRulesAndNodes 2005/09/01 14:46:47 hbrinkm 1.49.32.14: #i51089# NumOrNoNum: only remove hard numbering 2005/08/31 13:34:47 hbrinkm 1.49.32.13: #i51089# NumOrNoNum: Only touch paragraphs with hard numbering that shows number 2005/08/30 12:58:49 hbrinkm 1.49.32.12: #i51089# PropagateOutlineRule: SyncNumAndNumRule after setting of outline level 2005/08/26 13:43:44 hbrinkm 1.49.32.11: #i51089# SetNumRuleStart: bool <-> BOOL 2005/08/23 07:35:20 hbrinkm 1.49.32.10: #i51089# {Outline|Num}UpDown: call ChkCondColls if modified 2005/08/16 15:31:02 hbrinkm 1.49.32.9: #i51089# FindNumRulePtrWithPool 2005/08/11 09:27:49 hbrinkm 1.49.32.8: #i51089# SetNumRule: do not access zero pointer to numrule 2005/08/10 08:07:25 hbrinkm 1.49.32.7: #121445# PropagateOutlineRule: UpdateOutlineNode 2005/08/09 12:36:44 hbrinkm 1.49.32.6: #i51089# 2005/08/04 09:27:27 hbrinkm 1.49.32.5: #121445# PropagateOutlineRule: only propagate numrule if IsOutlineLevelYieldsOutlineRule returns false, #i51089# 2005/08/03 12:22:55 hbrinkm 1.49.32.4: RESYNC: (1.49-1.50); FILE MERGED 2005/07/11 09:14:57 hbrinkm 1.49.32.3: #i51089# NumOrNoNum: only succeed if a real change is made 2005/07/07 12:49:41 hbrinkm 1.49.32.2: #i51089# PropagateOutlineRule: If a paragraph style has outline level and no numbering rule, set the documents's outline numbering rule, MakeUniqueRules: do not alter outline numbering rules 2005/06/22 10:24:52 hbrinkm 1.49.32.1: #i51089# new implementation of numbering
2005-11-08 16:16:30 +00:00
if (pRule && pRule->IsAutoRule() && ! pRule->IsOutlineRule())
{
// --> OD 2008-03-18 #refactorlists#
// SwNumRule * pReplaceNumRule = aMyNumRuleMap[pRule];
ListStyleData aListStyleData = aMyNumRuleMap[pRule];
// if (! pReplaceNumRule)
if ( aListStyleData.pReplaceNumRule == 0 )
{
if (bFirst)
{
SwPosition aPos(*pCNd);
aListStyleData.pReplaceNumRule =
const_cast<SwNumRule *>
INTEGRATION: CWS swnumtree (1.49.32); FILE MERGED 2005/11/03 10:35:51 od 1.49.32.28: #i51089# improve performance - method <SwDoc::GetOutlineNumRule> now inline implemented. - consider change of <SwTxtNode::GetNum()> 2005/11/01 18:07:21 od 1.49.32.27: #i51089# - remove unused code 2005/10/26 10:47:23 od 1.49.32.26: RESYNC: (1.51-1.52); FILE MERGED 2005/10/26 09:34:37 od 1.49.32.25: #b6340308# <SwDoc::SetNumRule(..)> - Only clear numbering rule attribute at current text node, if its paragraph style already contains the new numbering rule. 2005/10/25 06:20:54 od 1.49.32.24: #i51089# - delete unused code. 2005/10/25 05:44:01 od 1.49.32.23: #i55391# <SwDoc::SearchNumRule(..)> - Investigate given start node, if requested. Request is indicated by new parameter <_bInvestigateStartNode> 2005/10/21 11:20:54 od 1.49.32.22: #i51089# - Only the counting of phantoms of the outline numbering rule depends on <SwDoc::IsOldNumbering()> 2005/10/21 08:33:31 od 1.49.32.21: #i55391# <SwDoc::SearchNumRule(..)> - start node has also been investigated. 2005/09/20 14:13:24 fme 1.49.32.20: #i51089# Removed compiler warnings 2005/09/20 11:16:23 hbrinkm 1.49.32.19: #i51089# SwNumRule::Invalidate->SwNumRule::SetInvalidRule(TRUE) 2005/09/14 13:37:29 hbrinkm 1.49.32.18: #i51089# SyncNumRulesAndNodes: UpdateOutlineNode 2005/09/13 20:27:33 hbrinkm 1.49.32.17: RESYNC: (1.50-1.51); FILE MERGED 2005/09/12 15:15:29 hbrinkm 1.49.32.16: #i51089# AddNumRuleRanges 2005/09/07 11:29:02 hbrinkm 1.49.32.15: #i51089# SyncNumRulesAndNodes 2005/09/01 14:46:47 hbrinkm 1.49.32.14: #i51089# NumOrNoNum: only remove hard numbering 2005/08/31 13:34:47 hbrinkm 1.49.32.13: #i51089# NumOrNoNum: Only touch paragraphs with hard numbering that shows number 2005/08/30 12:58:49 hbrinkm 1.49.32.12: #i51089# PropagateOutlineRule: SyncNumAndNumRule after setting of outline level 2005/08/26 13:43:44 hbrinkm 1.49.32.11: #i51089# SetNumRuleStart: bool <-> BOOL 2005/08/23 07:35:20 hbrinkm 1.49.32.10: #i51089# {Outline|Num}UpDown: call ChkCondColls if modified 2005/08/16 15:31:02 hbrinkm 1.49.32.9: #i51089# FindNumRulePtrWithPool 2005/08/11 09:27:49 hbrinkm 1.49.32.8: #i51089# SetNumRule: do not access zero pointer to numrule 2005/08/10 08:07:25 hbrinkm 1.49.32.7: #121445# PropagateOutlineRule: UpdateOutlineNode 2005/08/09 12:36:44 hbrinkm 1.49.32.6: #i51089# 2005/08/04 09:27:27 hbrinkm 1.49.32.5: #121445# PropagateOutlineRule: only propagate numrule if IsOutlineLevelYieldsOutlineRule returns false, #i51089# 2005/08/03 12:22:55 hbrinkm 1.49.32.4: RESYNC: (1.49-1.50); FILE MERGED 2005/07/11 09:14:57 hbrinkm 1.49.32.3: #i51089# NumOrNoNum: only succeed if a real change is made 2005/07/07 12:49:41 hbrinkm 1.49.32.2: #i51089# PropagateOutlineRule: If a paragraph style has outline level and no numbering rule, set the documents's outline numbering rule, MakeUniqueRules: do not alter outline numbering rules 2005/06/22 10:24:52 hbrinkm 1.49.32.1: #i51089# new implementation of numbering
2005-11-08 16:16:30 +00:00
(SearchNumRule( aPos, FALSE, pCNd->HasNumber(),
FALSE, 0,
aListStyleData.sListId, true ));
}
// if (! pReplaceNumRule)
if ( aListStyleData.pReplaceNumRule == 0 )
{
// pReplaceNumRule = new SwNumRule(*pRule);
// pReplaceNumRule->SetName(GetUniqueNumRuleName());
aListStyleData.pReplaceNumRule = new SwNumRule(*pRule);
// --> OD 2008-07-08 #i91400#
aListStyleData.pReplaceNumRule->SetName(
GetUniqueNumRuleName(), *this );
// <--
aListStyleData.bCreateNewList = true;
}
// aMyNumRuleMap[pRule] = pReplaceNumRule;
aMyNumRuleMap[pRule] = aListStyleData;
}
SwPaM aPam(*pCNd);
SetNumRule( aPam, *aListStyleData.pReplaceNumRule,
aListStyleData.bCreateNewList,
aListStyleData.sListId );
if ( aListStyleData.bCreateNewList )
{
aListStyleData.bCreateNewList = false;
aListStyleData.sListId = pCNd->GetListId();
aMyNumRuleMap[pRule] = aListStyleData;
}
// <--
bFirst = false;
}
}
}
}
2000-09-18 23:08:29 +00:00
BOOL SwDoc::NoNum( const SwPaM& rPam )
{
BOOL bRet = SplitNode( *rPam.GetPoint(), false );
2000-09-18 23:08:29 +00:00
// ist ueberhaupt Nummerierung im Spiel ?
if( bRet )
{
// NoNum setzen und Upaten
const SwNodeIndex& rIdx = rPam.GetPoint()->nNode;
SwTxtNode* pNd = rIdx.GetNode().GetTxtNode();
const SwNumRule* pRule = pNd->GetNumRule();
INTEGRATION: CWS swnumtree (1.49.32); FILE MERGED 2005/11/03 10:35:51 od 1.49.32.28: #i51089# improve performance - method <SwDoc::GetOutlineNumRule> now inline implemented. - consider change of <SwTxtNode::GetNum()> 2005/11/01 18:07:21 od 1.49.32.27: #i51089# - remove unused code 2005/10/26 10:47:23 od 1.49.32.26: RESYNC: (1.51-1.52); FILE MERGED 2005/10/26 09:34:37 od 1.49.32.25: #b6340308# <SwDoc::SetNumRule(..)> - Only clear numbering rule attribute at current text node, if its paragraph style already contains the new numbering rule. 2005/10/25 06:20:54 od 1.49.32.24: #i51089# - delete unused code. 2005/10/25 05:44:01 od 1.49.32.23: #i55391# <SwDoc::SearchNumRule(..)> - Investigate given start node, if requested. Request is indicated by new parameter <_bInvestigateStartNode> 2005/10/21 11:20:54 od 1.49.32.22: #i51089# - Only the counting of phantoms of the outline numbering rule depends on <SwDoc::IsOldNumbering()> 2005/10/21 08:33:31 od 1.49.32.21: #i55391# <SwDoc::SearchNumRule(..)> - start node has also been investigated. 2005/09/20 14:13:24 fme 1.49.32.20: #i51089# Removed compiler warnings 2005/09/20 11:16:23 hbrinkm 1.49.32.19: #i51089# SwNumRule::Invalidate->SwNumRule::SetInvalidRule(TRUE) 2005/09/14 13:37:29 hbrinkm 1.49.32.18: #i51089# SyncNumRulesAndNodes: UpdateOutlineNode 2005/09/13 20:27:33 hbrinkm 1.49.32.17: RESYNC: (1.50-1.51); FILE MERGED 2005/09/12 15:15:29 hbrinkm 1.49.32.16: #i51089# AddNumRuleRanges 2005/09/07 11:29:02 hbrinkm 1.49.32.15: #i51089# SyncNumRulesAndNodes 2005/09/01 14:46:47 hbrinkm 1.49.32.14: #i51089# NumOrNoNum: only remove hard numbering 2005/08/31 13:34:47 hbrinkm 1.49.32.13: #i51089# NumOrNoNum: Only touch paragraphs with hard numbering that shows number 2005/08/30 12:58:49 hbrinkm 1.49.32.12: #i51089# PropagateOutlineRule: SyncNumAndNumRule after setting of outline level 2005/08/26 13:43:44 hbrinkm 1.49.32.11: #i51089# SetNumRuleStart: bool <-> BOOL 2005/08/23 07:35:20 hbrinkm 1.49.32.10: #i51089# {Outline|Num}UpDown: call ChkCondColls if modified 2005/08/16 15:31:02 hbrinkm 1.49.32.9: #i51089# FindNumRulePtrWithPool 2005/08/11 09:27:49 hbrinkm 1.49.32.8: #i51089# SetNumRule: do not access zero pointer to numrule 2005/08/10 08:07:25 hbrinkm 1.49.32.7: #121445# PropagateOutlineRule: UpdateOutlineNode 2005/08/09 12:36:44 hbrinkm 1.49.32.6: #i51089# 2005/08/04 09:27:27 hbrinkm 1.49.32.5: #121445# PropagateOutlineRule: only propagate numrule if IsOutlineLevelYieldsOutlineRule returns false, #i51089# 2005/08/03 12:22:55 hbrinkm 1.49.32.4: RESYNC: (1.49-1.50); FILE MERGED 2005/07/11 09:14:57 hbrinkm 1.49.32.3: #i51089# NumOrNoNum: only succeed if a real change is made 2005/07/07 12:49:41 hbrinkm 1.49.32.2: #i51089# PropagateOutlineRule: If a paragraph style has outline level and no numbering rule, set the documents's outline numbering rule, MakeUniqueRules: do not alter outline numbering rules 2005/06/22 10:24:52 hbrinkm 1.49.32.1: #i51089# new implementation of numbering
2005-11-08 16:16:30 +00:00
if( pRule )
2000-09-18 23:08:29 +00:00
{
pNd->SetCountedInList(false);
INTEGRATION: CWS swnumtree (1.49.32); FILE MERGED 2005/11/03 10:35:51 od 1.49.32.28: #i51089# improve performance - method <SwDoc::GetOutlineNumRule> now inline implemented. - consider change of <SwTxtNode::GetNum()> 2005/11/01 18:07:21 od 1.49.32.27: #i51089# - remove unused code 2005/10/26 10:47:23 od 1.49.32.26: RESYNC: (1.51-1.52); FILE MERGED 2005/10/26 09:34:37 od 1.49.32.25: #b6340308# <SwDoc::SetNumRule(..)> - Only clear numbering rule attribute at current text node, if its paragraph style already contains the new numbering rule. 2005/10/25 06:20:54 od 1.49.32.24: #i51089# - delete unused code. 2005/10/25 05:44:01 od 1.49.32.23: #i55391# <SwDoc::SearchNumRule(..)> - Investigate given start node, if requested. Request is indicated by new parameter <_bInvestigateStartNode> 2005/10/21 11:20:54 od 1.49.32.22: #i51089# - Only the counting of phantoms of the outline numbering rule depends on <SwDoc::IsOldNumbering()> 2005/10/21 08:33:31 od 1.49.32.21: #i55391# <SwDoc::SearchNumRule(..)> - start node has also been investigated. 2005/09/20 14:13:24 fme 1.49.32.20: #i51089# Removed compiler warnings 2005/09/20 11:16:23 hbrinkm 1.49.32.19: #i51089# SwNumRule::Invalidate->SwNumRule::SetInvalidRule(TRUE) 2005/09/14 13:37:29 hbrinkm 1.49.32.18: #i51089# SyncNumRulesAndNodes: UpdateOutlineNode 2005/09/13 20:27:33 hbrinkm 1.49.32.17: RESYNC: (1.50-1.51); FILE MERGED 2005/09/12 15:15:29 hbrinkm 1.49.32.16: #i51089# AddNumRuleRanges 2005/09/07 11:29:02 hbrinkm 1.49.32.15: #i51089# SyncNumRulesAndNodes 2005/09/01 14:46:47 hbrinkm 1.49.32.14: #i51089# NumOrNoNum: only remove hard numbering 2005/08/31 13:34:47 hbrinkm 1.49.32.13: #i51089# NumOrNoNum: Only touch paragraphs with hard numbering that shows number 2005/08/30 12:58:49 hbrinkm 1.49.32.12: #i51089# PropagateOutlineRule: SyncNumAndNumRule after setting of outline level 2005/08/26 13:43:44 hbrinkm 1.49.32.11: #i51089# SetNumRuleStart: bool <-> BOOL 2005/08/23 07:35:20 hbrinkm 1.49.32.10: #i51089# {Outline|Num}UpDown: call ChkCondColls if modified 2005/08/16 15:31:02 hbrinkm 1.49.32.9: #i51089# FindNumRulePtrWithPool 2005/08/11 09:27:49 hbrinkm 1.49.32.8: #i51089# SetNumRule: do not access zero pointer to numrule 2005/08/10 08:07:25 hbrinkm 1.49.32.7: #121445# PropagateOutlineRule: UpdateOutlineNode 2005/08/09 12:36:44 hbrinkm 1.49.32.6: #i51089# 2005/08/04 09:27:27 hbrinkm 1.49.32.5: #121445# PropagateOutlineRule: only propagate numrule if IsOutlineLevelYieldsOutlineRule returns false, #i51089# 2005/08/03 12:22:55 hbrinkm 1.49.32.4: RESYNC: (1.49-1.50); FILE MERGED 2005/07/11 09:14:57 hbrinkm 1.49.32.3: #i51089# NumOrNoNum: only succeed if a real change is made 2005/07/07 12:49:41 hbrinkm 1.49.32.2: #i51089# PropagateOutlineRule: If a paragraph style has outline level and no numbering rule, set the documents's outline numbering rule, MakeUniqueRules: do not alter outline numbering rules 2005/06/22 10:24:52 hbrinkm 1.49.32.1: #i51089# new implementation of numbering
2005-11-08 16:16:30 +00:00
2000-09-18 23:08:29 +00:00
SetModified();
}
else
bRet = FALSE; // keine Nummerierung , ?? oder immer TRUE ??
}
return bRet;
}
void SwDoc::DelNumRules( const SwPaM& rPam )
2000-09-18 23:08:29 +00:00
{
ULONG nStt = rPam.GetPoint()->nNode.GetIndex(),
nEnd = rPam.GetMark()->nNode.GetIndex();
if( nStt > nEnd )
{
ULONG nTmp = nStt; nStt = nEnd; nEnd = nTmp;
}
SwUndoDelNum* pUndo;
if( DoesUndo() )
{
ClearRedo();
AppendUndo( pUndo = new SwUndoDelNum( rPam ) );
}
else
pUndo = 0;
SwRegHistory aRegH( pUndo ? pUndo->GetHistory() : 0 );
2000-09-18 23:08:29 +00:00
SwNumRuleItem aEmptyRule( aEmptyStr );
const SwNode* pOutlNd = 0;
for( ; nStt <= nEnd; ++nStt )
{
SwTxtNode* pTNd = GetNodes()[ nStt ]->GetTxtNode();
// --> OD 2008-03-13 #refactorlists#
// if( pTNd && 0 != ( pItem = pTNd->GetNoCondAttr(
// RES_PARATR_NUMRULE, TRUE ) ) &&
// ( pName = &((SwNumRuleItem*)pItem)->GetValue())->Len() )
SwNumRule* pNumRuleOfTxtNode = pTNd ? pTNd->GetNumRule() : 0;
if ( pTNd && pNumRuleOfTxtNode )
// <--
2000-09-18 23:08:29 +00:00
{
// recognize changes of attribute for undo
2000-09-18 23:08:29 +00:00
aRegH.RegisterInModify( pTNd, *pTNd );
if( pUndo )
pUndo->AddNode( *pTNd, FALSE );
2000-09-18 23:08:29 +00:00
// directly set list style attribute is reset, otherwise empty
// list style is applied
const SfxItemSet* pAttrSet = pTNd->GetpSwAttrSet();
if ( pAttrSet &&
pAttrSet->GetItemState( RES_PARATR_NUMRULE, FALSE ) == SFX_ITEM_SET )
pTNd->ResetAttr( RES_PARATR_NUMRULE );
2000-09-18 23:08:29 +00:00
else
pTNd->SetAttr( aEmptyRule );
// --> OD 2008-03-26 #refactorlists#
pTNd->ResetAttr( RES_PARATR_LIST_ID );
pTNd->ResetAttr( RES_PARATR_LIST_LEVEL );
pTNd->ResetAttr( RES_PARATR_LIST_ISRESTART );
pTNd->ResetAttr( RES_PARATR_LIST_RESTARTVALUE );
pTNd->ResetAttr( RES_PARATR_LIST_ISCOUNTED );
// <--
2000-09-18 23:08:29 +00:00
if( RES_CONDTXTFMTCOLL == pTNd->GetFmtColl()->Which() )
pTNd->ChkCondColl();
CWS-TOOLING: integrate CWS outlinelevel 2008-12-19 10:32:51 +0100 od r265718 : #i70748# method <SwWW8Writer::StartTOX(..)> - correction for custom to outline style assigned paragraph styles 2008-12-19 09:24:41 +0100 od r265715 : #i70748# method <HandleModifyAtTxtNode(..)> - retrieve former applied list style before potential reset of empty list style due to set outline level 2008-12-17 15:33:57 +0100 hde r265608 : #i97013# 2008-12-17 14:43:42 +0100 od r265603 : #i70748# adjust fix i44177 - adjustment of to outline style assigned paragraph styles only for OOo-Templates. 2008-12-17 12:59:42 +0100 od r265598 : #i70748# method <XMLTextImportHelper::SetStyleAndAttrs(..)> - special handling of OOo 2.x document regarding outline numbering of headings. 2008-12-17 12:45:53 +0100 od r265597 : #i70748# method <HandleModifyAtTxtNode(..)> - correct determination of new and former applied list style 2008-12-17 10:18:41 +0100 od r265581 : #i97312# method <XMLTextNumRuleInfo::Set(..)> - check, if numbering rules instance contains any numbering rule. 2008-12-16 14:34:22 +0100 hde r265542 : #i97013 2008-12-16 14:20:24 +0100 od r265541 : #i70748# adjust documentation of "Which"-ID numbers 2008-12-16 14:19:49 +0100 od r265539 : #i70748# Adjust Attribute-Function-Mapping table due to new attribute 2008-12-16 14:06:24 +0100 od r265538 : #i70748# - Correct handling of to outline style assigned paragraph styles on reset of all paragraph style attributes - WW8 import: Consider refactoring of paragraph style's outline level attribute - NO_NUMBERING define no longer exsits. 2008-12-16 10:37:19 +0100 od r265530 : #i70478# Correction on moving outline paragraph up respectively down in its outline level: - Check also outline paragraph, which are not an outline via a to outline style assigned paragraph style, if action is applicable. 2008-12-16 09:10:13 +0100 hde r265523 : #i97277 2008-12-16 09:09:30 +0100 hde r265522 : #i97277 2008-12-16 09:07:40 +0100 hde r265521 : Added control and purged obsolete id's 2008-12-10 13:09:36 +0100 od r265174 : #i70748# correction of previous fix due to warning-free code 2008-12-10 13:03:30 +0100 od r265172 : #i70748# method <XMLTextImportHelper::SetStyleAndAttrs(..)> - Due to performance issues avoid retrieving outline level value from paragraph's paragraph style for each paragraph. Instead retrieve current outline level value from paragraph, which is the inherited value from its paragraph style, and only when it is needed. 2008-12-09 16:50:36 +0100 ufi r265117 : help 2008-12-09 16:49:50 +0100 ufi r265116 : help 2008-12-09 15:45:05 +0100 od r265107 : #i70748# method <XMLTextImportHelper::SetStyleAndAttrs(..)> - some minor rework and check access to paragraph styles 2008-12-09 15:42:04 +0100 od r265106 : #i70748# adjust name of local variable to avoid hiding of class variable 2008-12-09 15:40:51 +0100 od r265105 : #i70748# correct initialization order 2008-12-09 15:35:07 +0100 od r265101 : #i70748# remove duplicate entry in certain property map 2008-12-09 15:33:39 +0100 od r265100 : #i70748# add end of file token 2008-12-07 15:11:54 +0100 zhaojianwei r264952 : conflicts left not to be resolved when cws rebase 2008-12-04 14:52:21 +0100 zhaojianwei r264846 : CWS-TOOLING: rebase CWS outlinelevel to trunk@264325 (milestone: DEV300:m36) 2008-11-28 03:42:09 +0100 zhaojianwei r264525 : #i70748#: migrate CWS outlinelevel to SVN 2008-11-28 03:41:39 +0100 zhaojianwei r264524 : #i70748#: migrate CWS outlinelevel to SVN 2008-11-28 03:41:11 +0100 zhaojianwei r264523 : #i70748#: migrate CWS outlinelevel to SVN
2009-01-07 11:57:24 +00:00
//else if( !pOutlNd && NO_NUMBERING != //#outline level,zhaojianwei
// ((SwTxtFmtColl*)pTNd->GetFmtColl())->GetOutlineLevel() )
else if( !pOutlNd &&
((SwTxtFmtColl*)pTNd->GetFmtColl())->IsAssignedToListLevelOfOutlineStyle() )//<-end,zhaojianwei
2000-09-18 23:08:29 +00:00
pOutlNd = pTNd;
}
}
// dann noch alle Updaten
UpdateNumRule();
if( pOutlNd )
GetNodes().UpdtOutlineIdx( *pOutlNd );
}
void SwDoc::InvalidateNumRules()
{
for (USHORT n = 0; n < pNumRuleTbl->Count(); ++n)
(*pNumRuleTbl)[n]->SetInvalidRule(TRUE);
}
2000-09-18 23:08:29 +00:00
// zum naechsten/vorhergehenden Punkt auf gleicher Ebene
BOOL lcl_IsNumOk( BYTE nSrchNum, BYTE& rLower, BYTE& rUpper,
BOOL bOverUpper, BYTE nNumber )
{
// --> OD 2008-04-02 #refactorlists#
2008-06-17 13:39:17 +00:00
ASSERT( nNumber < MAXLEVEL,
"<lcl_IsNumOk(..)> - misusage of method" );
// <--
BOOL bRet = FALSE;
2000-09-18 23:08:29 +00:00
{
if( bOverUpper ? nSrchNum == nNumber : nSrchNum >= nNumber )
bRet = TRUE;
else if( nNumber > rLower )
rLower = nNumber;
else if( nNumber < rUpper )
rUpper = nNumber;
}
return bRet;
}
BOOL lcl_IsValidPrevNextNumNode( const SwNodeIndex& rIdx )
{
BOOL bRet = FALSE;
const SwNode& rNd = rIdx.GetNode();
switch( rNd.GetNodeType() )
{
case ND_ENDNODE:
bRet = SwTableBoxStartNode == rNd.StartOfSectionNode()->GetStartNodeType() ||
rNd.StartOfSectionNode()->IsSectionNode();
2000-09-18 23:08:29 +00:00
break;
case ND_STARTNODE:
bRet = SwTableBoxStartNode == ((SwStartNode&)rNd).GetStartNodeType();
break;
case ND_SECTIONNODE: // der ist erlaubt, also weiter
bRet = TRUE;
break;
}
return bRet;
}
BOOL lcl_GotoNextPrevNum( SwPosition& rPos, BOOL bNext,
BOOL bOverUpper, BYTE* pUpper, BYTE* pLower )
{
const SwTxtNode* pNd = rPos.nNode.GetNode().GetTxtNode();
const SwNumRule* pRule;
INTEGRATION: CWS swnumtree (1.49.32); FILE MERGED 2005/11/03 10:35:51 od 1.49.32.28: #i51089# improve performance - method <SwDoc::GetOutlineNumRule> now inline implemented. - consider change of <SwTxtNode::GetNum()> 2005/11/01 18:07:21 od 1.49.32.27: #i51089# - remove unused code 2005/10/26 10:47:23 od 1.49.32.26: RESYNC: (1.51-1.52); FILE MERGED 2005/10/26 09:34:37 od 1.49.32.25: #b6340308# <SwDoc::SetNumRule(..)> - Only clear numbering rule attribute at current text node, if its paragraph style already contains the new numbering rule. 2005/10/25 06:20:54 od 1.49.32.24: #i51089# - delete unused code. 2005/10/25 05:44:01 od 1.49.32.23: #i55391# <SwDoc::SearchNumRule(..)> - Investigate given start node, if requested. Request is indicated by new parameter <_bInvestigateStartNode> 2005/10/21 11:20:54 od 1.49.32.22: #i51089# - Only the counting of phantoms of the outline numbering rule depends on <SwDoc::IsOldNumbering()> 2005/10/21 08:33:31 od 1.49.32.21: #i55391# <SwDoc::SearchNumRule(..)> - start node has also been investigated. 2005/09/20 14:13:24 fme 1.49.32.20: #i51089# Removed compiler warnings 2005/09/20 11:16:23 hbrinkm 1.49.32.19: #i51089# SwNumRule::Invalidate->SwNumRule::SetInvalidRule(TRUE) 2005/09/14 13:37:29 hbrinkm 1.49.32.18: #i51089# SyncNumRulesAndNodes: UpdateOutlineNode 2005/09/13 20:27:33 hbrinkm 1.49.32.17: RESYNC: (1.50-1.51); FILE MERGED 2005/09/12 15:15:29 hbrinkm 1.49.32.16: #i51089# AddNumRuleRanges 2005/09/07 11:29:02 hbrinkm 1.49.32.15: #i51089# SyncNumRulesAndNodes 2005/09/01 14:46:47 hbrinkm 1.49.32.14: #i51089# NumOrNoNum: only remove hard numbering 2005/08/31 13:34:47 hbrinkm 1.49.32.13: #i51089# NumOrNoNum: Only touch paragraphs with hard numbering that shows number 2005/08/30 12:58:49 hbrinkm 1.49.32.12: #i51089# PropagateOutlineRule: SyncNumAndNumRule after setting of outline level 2005/08/26 13:43:44 hbrinkm 1.49.32.11: #i51089# SetNumRuleStart: bool <-> BOOL 2005/08/23 07:35:20 hbrinkm 1.49.32.10: #i51089# {Outline|Num}UpDown: call ChkCondColls if modified 2005/08/16 15:31:02 hbrinkm 1.49.32.9: #i51089# FindNumRulePtrWithPool 2005/08/11 09:27:49 hbrinkm 1.49.32.8: #i51089# SetNumRule: do not access zero pointer to numrule 2005/08/10 08:07:25 hbrinkm 1.49.32.7: #121445# PropagateOutlineRule: UpdateOutlineNode 2005/08/09 12:36:44 hbrinkm 1.49.32.6: #i51089# 2005/08/04 09:27:27 hbrinkm 1.49.32.5: #121445# PropagateOutlineRule: only propagate numrule if IsOutlineLevelYieldsOutlineRule returns false, #i51089# 2005/08/03 12:22:55 hbrinkm 1.49.32.4: RESYNC: (1.49-1.50); FILE MERGED 2005/07/11 09:14:57 hbrinkm 1.49.32.3: #i51089# NumOrNoNum: only succeed if a real change is made 2005/07/07 12:49:41 hbrinkm 1.49.32.2: #i51089# PropagateOutlineRule: If a paragraph style has outline level and no numbering rule, set the documents's outline numbering rule, MakeUniqueRules: do not alter outline numbering rules 2005/06/22 10:24:52 hbrinkm 1.49.32.1: #i51089# new implementation of numbering
2005-11-08 16:16:30 +00:00
if( !pNd || 0 == ( pRule = pNd->GetNumRule()))
2000-09-18 23:08:29 +00:00
return FALSE;
BYTE nSrchNum = static_cast<BYTE>(pNd->GetActualListLevel());
2000-09-18 23:08:29 +00:00
SwNodeIndex aIdx( rPos.nNode );
if( ! pNd->IsCountedInList() )
2000-09-18 23:08:29 +00:00
{
// falls gerade mal NO_NUMLEVEL an ist, so such den vorherigen Node
// mit Nummerierung
BOOL bError = FALSE;
do {
aIdx--;
if( aIdx.GetNode().IsTxtNode() )
{
pNd = aIdx.GetNode().GetTxtNode();
INTEGRATION: CWS swnumtree (1.49.32); FILE MERGED 2005/11/03 10:35:51 od 1.49.32.28: #i51089# improve performance - method <SwDoc::GetOutlineNumRule> now inline implemented. - consider change of <SwTxtNode::GetNum()> 2005/11/01 18:07:21 od 1.49.32.27: #i51089# - remove unused code 2005/10/26 10:47:23 od 1.49.32.26: RESYNC: (1.51-1.52); FILE MERGED 2005/10/26 09:34:37 od 1.49.32.25: #b6340308# <SwDoc::SetNumRule(..)> - Only clear numbering rule attribute at current text node, if its paragraph style already contains the new numbering rule. 2005/10/25 06:20:54 od 1.49.32.24: #i51089# - delete unused code. 2005/10/25 05:44:01 od 1.49.32.23: #i55391# <SwDoc::SearchNumRule(..)> - Investigate given start node, if requested. Request is indicated by new parameter <_bInvestigateStartNode> 2005/10/21 11:20:54 od 1.49.32.22: #i51089# - Only the counting of phantoms of the outline numbering rule depends on <SwDoc::IsOldNumbering()> 2005/10/21 08:33:31 od 1.49.32.21: #i55391# <SwDoc::SearchNumRule(..)> - start node has also been investigated. 2005/09/20 14:13:24 fme 1.49.32.20: #i51089# Removed compiler warnings 2005/09/20 11:16:23 hbrinkm 1.49.32.19: #i51089# SwNumRule::Invalidate->SwNumRule::SetInvalidRule(TRUE) 2005/09/14 13:37:29 hbrinkm 1.49.32.18: #i51089# SyncNumRulesAndNodes: UpdateOutlineNode 2005/09/13 20:27:33 hbrinkm 1.49.32.17: RESYNC: (1.50-1.51); FILE MERGED 2005/09/12 15:15:29 hbrinkm 1.49.32.16: #i51089# AddNumRuleRanges 2005/09/07 11:29:02 hbrinkm 1.49.32.15: #i51089# SyncNumRulesAndNodes 2005/09/01 14:46:47 hbrinkm 1.49.32.14: #i51089# NumOrNoNum: only remove hard numbering 2005/08/31 13:34:47 hbrinkm 1.49.32.13: #i51089# NumOrNoNum: Only touch paragraphs with hard numbering that shows number 2005/08/30 12:58:49 hbrinkm 1.49.32.12: #i51089# PropagateOutlineRule: SyncNumAndNumRule after setting of outline level 2005/08/26 13:43:44 hbrinkm 1.49.32.11: #i51089# SetNumRuleStart: bool <-> BOOL 2005/08/23 07:35:20 hbrinkm 1.49.32.10: #i51089# {Outline|Num}UpDown: call ChkCondColls if modified 2005/08/16 15:31:02 hbrinkm 1.49.32.9: #i51089# FindNumRulePtrWithPool 2005/08/11 09:27:49 hbrinkm 1.49.32.8: #i51089# SetNumRule: do not access zero pointer to numrule 2005/08/10 08:07:25 hbrinkm 1.49.32.7: #121445# PropagateOutlineRule: UpdateOutlineNode 2005/08/09 12:36:44 hbrinkm 1.49.32.6: #i51089# 2005/08/04 09:27:27 hbrinkm 1.49.32.5: #121445# PropagateOutlineRule: only propagate numrule if IsOutlineLevelYieldsOutlineRule returns false, #i51089# 2005/08/03 12:22:55 hbrinkm 1.49.32.4: RESYNC: (1.49-1.50); FILE MERGED 2005/07/11 09:14:57 hbrinkm 1.49.32.3: #i51089# NumOrNoNum: only succeed if a real change is made 2005/07/07 12:49:41 hbrinkm 1.49.32.2: #i51089# PropagateOutlineRule: If a paragraph style has outline level and no numbering rule, set the documents's outline numbering rule, MakeUniqueRules: do not alter outline numbering rules 2005/06/22 10:24:52 hbrinkm 1.49.32.1: #i51089# new implementation of numbering
2005-11-08 16:16:30 +00:00
pRule = pNd->GetNumRule();
BYTE nTmpNum;
INTEGRATION: CWS swnumtree (1.49.32); FILE MERGED 2005/11/03 10:35:51 od 1.49.32.28: #i51089# improve performance - method <SwDoc::GetOutlineNumRule> now inline implemented. - consider change of <SwTxtNode::GetNum()> 2005/11/01 18:07:21 od 1.49.32.27: #i51089# - remove unused code 2005/10/26 10:47:23 od 1.49.32.26: RESYNC: (1.51-1.52); FILE MERGED 2005/10/26 09:34:37 od 1.49.32.25: #b6340308# <SwDoc::SetNumRule(..)> - Only clear numbering rule attribute at current text node, if its paragraph style already contains the new numbering rule. 2005/10/25 06:20:54 od 1.49.32.24: #i51089# - delete unused code. 2005/10/25 05:44:01 od 1.49.32.23: #i55391# <SwDoc::SearchNumRule(..)> - Investigate given start node, if requested. Request is indicated by new parameter <_bInvestigateStartNode> 2005/10/21 11:20:54 od 1.49.32.22: #i51089# - Only the counting of phantoms of the outline numbering rule depends on <SwDoc::IsOldNumbering()> 2005/10/21 08:33:31 od 1.49.32.21: #i55391# <SwDoc::SearchNumRule(..)> - start node has also been investigated. 2005/09/20 14:13:24 fme 1.49.32.20: #i51089# Removed compiler warnings 2005/09/20 11:16:23 hbrinkm 1.49.32.19: #i51089# SwNumRule::Invalidate->SwNumRule::SetInvalidRule(TRUE) 2005/09/14 13:37:29 hbrinkm 1.49.32.18: #i51089# SyncNumRulesAndNodes: UpdateOutlineNode 2005/09/13 20:27:33 hbrinkm 1.49.32.17: RESYNC: (1.50-1.51); FILE MERGED 2005/09/12 15:15:29 hbrinkm 1.49.32.16: #i51089# AddNumRuleRanges 2005/09/07 11:29:02 hbrinkm 1.49.32.15: #i51089# SyncNumRulesAndNodes 2005/09/01 14:46:47 hbrinkm 1.49.32.14: #i51089# NumOrNoNum: only remove hard numbering 2005/08/31 13:34:47 hbrinkm 1.49.32.13: #i51089# NumOrNoNum: Only touch paragraphs with hard numbering that shows number 2005/08/30 12:58:49 hbrinkm 1.49.32.12: #i51089# PropagateOutlineRule: SyncNumAndNumRule after setting of outline level 2005/08/26 13:43:44 hbrinkm 1.49.32.11: #i51089# SetNumRuleStart: bool <-> BOOL 2005/08/23 07:35:20 hbrinkm 1.49.32.10: #i51089# {Outline|Num}UpDown: call ChkCondColls if modified 2005/08/16 15:31:02 hbrinkm 1.49.32.9: #i51089# FindNumRulePtrWithPool 2005/08/11 09:27:49 hbrinkm 1.49.32.8: #i51089# SetNumRule: do not access zero pointer to numrule 2005/08/10 08:07:25 hbrinkm 1.49.32.7: #121445# PropagateOutlineRule: UpdateOutlineNode 2005/08/09 12:36:44 hbrinkm 1.49.32.6: #i51089# 2005/08/04 09:27:27 hbrinkm 1.49.32.5: #121445# PropagateOutlineRule: only propagate numrule if IsOutlineLevelYieldsOutlineRule returns false, #i51089# 2005/08/03 12:22:55 hbrinkm 1.49.32.4: RESYNC: (1.49-1.50); FILE MERGED 2005/07/11 09:14:57 hbrinkm 1.49.32.3: #i51089# NumOrNoNum: only succeed if a real change is made 2005/07/07 12:49:41 hbrinkm 1.49.32.2: #i51089# PropagateOutlineRule: If a paragraph style has outline level and no numbering rule, set the documents's outline numbering rule, MakeUniqueRules: do not alter outline numbering rules 2005/06/22 10:24:52 hbrinkm 1.49.32.1: #i51089# new implementation of numbering
2005-11-08 16:16:30 +00:00
if( pRule )
2000-09-18 23:08:29 +00:00
{
nTmpNum = static_cast<BYTE>(pNd->GetActualListLevel());
if( !( ! pNd->IsCountedInList() &&
INTEGRATION: CWS swnumtree (1.49.32); FILE MERGED 2005/11/03 10:35:51 od 1.49.32.28: #i51089# improve performance - method <SwDoc::GetOutlineNumRule> now inline implemented. - consider change of <SwTxtNode::GetNum()> 2005/11/01 18:07:21 od 1.49.32.27: #i51089# - remove unused code 2005/10/26 10:47:23 od 1.49.32.26: RESYNC: (1.51-1.52); FILE MERGED 2005/10/26 09:34:37 od 1.49.32.25: #b6340308# <SwDoc::SetNumRule(..)> - Only clear numbering rule attribute at current text node, if its paragraph style already contains the new numbering rule. 2005/10/25 06:20:54 od 1.49.32.24: #i51089# - delete unused code. 2005/10/25 05:44:01 od 1.49.32.23: #i55391# <SwDoc::SearchNumRule(..)> - Investigate given start node, if requested. Request is indicated by new parameter <_bInvestigateStartNode> 2005/10/21 11:20:54 od 1.49.32.22: #i51089# - Only the counting of phantoms of the outline numbering rule depends on <SwDoc::IsOldNumbering()> 2005/10/21 08:33:31 od 1.49.32.21: #i55391# <SwDoc::SearchNumRule(..)> - start node has also been investigated. 2005/09/20 14:13:24 fme 1.49.32.20: #i51089# Removed compiler warnings 2005/09/20 11:16:23 hbrinkm 1.49.32.19: #i51089# SwNumRule::Invalidate->SwNumRule::SetInvalidRule(TRUE) 2005/09/14 13:37:29 hbrinkm 1.49.32.18: #i51089# SyncNumRulesAndNodes: UpdateOutlineNode 2005/09/13 20:27:33 hbrinkm 1.49.32.17: RESYNC: (1.50-1.51); FILE MERGED 2005/09/12 15:15:29 hbrinkm 1.49.32.16: #i51089# AddNumRuleRanges 2005/09/07 11:29:02 hbrinkm 1.49.32.15: #i51089# SyncNumRulesAndNodes 2005/09/01 14:46:47 hbrinkm 1.49.32.14: #i51089# NumOrNoNum: only remove hard numbering 2005/08/31 13:34:47 hbrinkm 1.49.32.13: #i51089# NumOrNoNum: Only touch paragraphs with hard numbering that shows number 2005/08/30 12:58:49 hbrinkm 1.49.32.12: #i51089# PropagateOutlineRule: SyncNumAndNumRule after setting of outline level 2005/08/26 13:43:44 hbrinkm 1.49.32.11: #i51089# SetNumRuleStart: bool <-> BOOL 2005/08/23 07:35:20 hbrinkm 1.49.32.10: #i51089# {Outline|Num}UpDown: call ChkCondColls if modified 2005/08/16 15:31:02 hbrinkm 1.49.32.9: #i51089# FindNumRulePtrWithPool 2005/08/11 09:27:49 hbrinkm 1.49.32.8: #i51089# SetNumRule: do not access zero pointer to numrule 2005/08/10 08:07:25 hbrinkm 1.49.32.7: #121445# PropagateOutlineRule: UpdateOutlineNode 2005/08/09 12:36:44 hbrinkm 1.49.32.6: #i51089# 2005/08/04 09:27:27 hbrinkm 1.49.32.5: #121445# PropagateOutlineRule: only propagate numrule if IsOutlineLevelYieldsOutlineRule returns false, #i51089# 2005/08/03 12:22:55 hbrinkm 1.49.32.4: RESYNC: (1.49-1.50); FILE MERGED 2005/07/11 09:14:57 hbrinkm 1.49.32.3: #i51089# NumOrNoNum: only succeed if a real change is made 2005/07/07 12:49:41 hbrinkm 1.49.32.2: #i51089# PropagateOutlineRule: If a paragraph style has outline level and no numbering rule, set the documents's outline numbering rule, MakeUniqueRules: do not alter outline numbering rules 2005/06/22 10:24:52 hbrinkm 1.49.32.1: #i51089# new implementation of numbering
2005-11-08 16:16:30 +00:00
(nTmpNum >= nSrchNum )) )
2000-09-18 23:08:29 +00:00
break; // gefunden
}
else
bError = TRUE;
}
else
bError = !lcl_IsValidPrevNextNumNode( aIdx );
} while( !bError );
if( bError )
return FALSE;
}
BYTE nLower = nSrchNum, nUpper = nSrchNum;
BOOL bRet = FALSE;
const SwTxtNode* pLast;
if( bNext )
aIdx++, pLast = pNd;
else
aIdx--, pLast = 0;
while( bNext ? ( aIdx.GetIndex() < aIdx.GetNodes().Count() - 1 )
: aIdx.GetIndex() )
{
if( aIdx.GetNode().IsTxtNode() )
{
pNd = aIdx.GetNode().GetTxtNode();
INTEGRATION: CWS swnumtree (1.49.32); FILE MERGED 2005/11/03 10:35:51 od 1.49.32.28: #i51089# improve performance - method <SwDoc::GetOutlineNumRule> now inline implemented. - consider change of <SwTxtNode::GetNum()> 2005/11/01 18:07:21 od 1.49.32.27: #i51089# - remove unused code 2005/10/26 10:47:23 od 1.49.32.26: RESYNC: (1.51-1.52); FILE MERGED 2005/10/26 09:34:37 od 1.49.32.25: #b6340308# <SwDoc::SetNumRule(..)> - Only clear numbering rule attribute at current text node, if its paragraph style already contains the new numbering rule. 2005/10/25 06:20:54 od 1.49.32.24: #i51089# - delete unused code. 2005/10/25 05:44:01 od 1.49.32.23: #i55391# <SwDoc::SearchNumRule(..)> - Investigate given start node, if requested. Request is indicated by new parameter <_bInvestigateStartNode> 2005/10/21 11:20:54 od 1.49.32.22: #i51089# - Only the counting of phantoms of the outline numbering rule depends on <SwDoc::IsOldNumbering()> 2005/10/21 08:33:31 od 1.49.32.21: #i55391# <SwDoc::SearchNumRule(..)> - start node has also been investigated. 2005/09/20 14:13:24 fme 1.49.32.20: #i51089# Removed compiler warnings 2005/09/20 11:16:23 hbrinkm 1.49.32.19: #i51089# SwNumRule::Invalidate->SwNumRule::SetInvalidRule(TRUE) 2005/09/14 13:37:29 hbrinkm 1.49.32.18: #i51089# SyncNumRulesAndNodes: UpdateOutlineNode 2005/09/13 20:27:33 hbrinkm 1.49.32.17: RESYNC: (1.50-1.51); FILE MERGED 2005/09/12 15:15:29 hbrinkm 1.49.32.16: #i51089# AddNumRuleRanges 2005/09/07 11:29:02 hbrinkm 1.49.32.15: #i51089# SyncNumRulesAndNodes 2005/09/01 14:46:47 hbrinkm 1.49.32.14: #i51089# NumOrNoNum: only remove hard numbering 2005/08/31 13:34:47 hbrinkm 1.49.32.13: #i51089# NumOrNoNum: Only touch paragraphs with hard numbering that shows number 2005/08/30 12:58:49 hbrinkm 1.49.32.12: #i51089# PropagateOutlineRule: SyncNumAndNumRule after setting of outline level 2005/08/26 13:43:44 hbrinkm 1.49.32.11: #i51089# SetNumRuleStart: bool <-> BOOL 2005/08/23 07:35:20 hbrinkm 1.49.32.10: #i51089# {Outline|Num}UpDown: call ChkCondColls if modified 2005/08/16 15:31:02 hbrinkm 1.49.32.9: #i51089# FindNumRulePtrWithPool 2005/08/11 09:27:49 hbrinkm 1.49.32.8: #i51089# SetNumRule: do not access zero pointer to numrule 2005/08/10 08:07:25 hbrinkm 1.49.32.7: #121445# PropagateOutlineRule: UpdateOutlineNode 2005/08/09 12:36:44 hbrinkm 1.49.32.6: #i51089# 2005/08/04 09:27:27 hbrinkm 1.49.32.5: #121445# PropagateOutlineRule: only propagate numrule if IsOutlineLevelYieldsOutlineRule returns false, #i51089# 2005/08/03 12:22:55 hbrinkm 1.49.32.4: RESYNC: (1.49-1.50); FILE MERGED 2005/07/11 09:14:57 hbrinkm 1.49.32.3: #i51089# NumOrNoNum: only succeed if a real change is made 2005/07/07 12:49:41 hbrinkm 1.49.32.2: #i51089# PropagateOutlineRule: If a paragraph style has outline level and no numbering rule, set the documents's outline numbering rule, MakeUniqueRules: do not alter outline numbering rules 2005/06/22 10:24:52 hbrinkm 1.49.32.1: #i51089# new implementation of numbering
2005-11-08 16:16:30 +00:00
pRule = pNd->GetNumRule();
if( pRule )
2000-09-18 23:08:29 +00:00
{
if( ::lcl_IsNumOk( nSrchNum, nLower, nUpper, bOverUpper,
static_cast<BYTE>(pNd->GetActualListLevel()) ))
2000-09-18 23:08:29 +00:00
{
rPos.nNode = aIdx;
rPos.nContent.Assign( (SwTxtNode*)pNd, 0 );
bRet = TRUE;
break;
}
else
pLast = pNd;
}
else
break;
}
else if( !lcl_IsValidPrevNextNumNode( aIdx ))
break;
if( bNext )
aIdx++;
else
aIdx--;
}
if( !bRet && !bOverUpper && pLast ) // nicht ueber hoehere Nummmern, aber bis Ende
{
if( bNext )
{
rPos.nNode = aIdx;
if( aIdx.GetNode().IsCntntNode() )
rPos.nContent.Assign( aIdx.GetNode().GetCntntNode(), 0 );
}
else
{
rPos.nNode.Assign( *pLast );
rPos.nContent.Assign( (SwTxtNode*)pLast, 0 );
}
bRet = TRUE;
}
if( bRet )
{
if( pUpper )
*pUpper = nUpper;
if( pLower )
*pLower = nLower;
}
return bRet;
}
BOOL SwDoc::GotoNextNum( SwPosition& rPos, BOOL bOverUpper,
BYTE* pUpper, BYTE* pLower )
{
return ::lcl_GotoNextPrevNum( rPos, TRUE, bOverUpper, pUpper, pLower );
}
// -> #i23731#
// --> OD 2008-03-18 #refactorlists# - add output parameter <sListId>
const SwNumRule * SwDoc::SearchNumRule(SwPosition & rPos,
BOOL bForward,
BOOL bNum,
2004-06-16 07:16:02 +00:00
BOOL bOutline,
INTEGRATION: CWS swnumtree (1.49.32); FILE MERGED 2005/11/03 10:35:51 od 1.49.32.28: #i51089# improve performance - method <SwDoc::GetOutlineNumRule> now inline implemented. - consider change of <SwTxtNode::GetNum()> 2005/11/01 18:07:21 od 1.49.32.27: #i51089# - remove unused code 2005/10/26 10:47:23 od 1.49.32.26: RESYNC: (1.51-1.52); FILE MERGED 2005/10/26 09:34:37 od 1.49.32.25: #b6340308# <SwDoc::SetNumRule(..)> - Only clear numbering rule attribute at current text node, if its paragraph style already contains the new numbering rule. 2005/10/25 06:20:54 od 1.49.32.24: #i51089# - delete unused code. 2005/10/25 05:44:01 od 1.49.32.23: #i55391# <SwDoc::SearchNumRule(..)> - Investigate given start node, if requested. Request is indicated by new parameter <_bInvestigateStartNode> 2005/10/21 11:20:54 od 1.49.32.22: #i51089# - Only the counting of phantoms of the outline numbering rule depends on <SwDoc::IsOldNumbering()> 2005/10/21 08:33:31 od 1.49.32.21: #i55391# <SwDoc::SearchNumRule(..)> - start node has also been investigated. 2005/09/20 14:13:24 fme 1.49.32.20: #i51089# Removed compiler warnings 2005/09/20 11:16:23 hbrinkm 1.49.32.19: #i51089# SwNumRule::Invalidate->SwNumRule::SetInvalidRule(TRUE) 2005/09/14 13:37:29 hbrinkm 1.49.32.18: #i51089# SyncNumRulesAndNodes: UpdateOutlineNode 2005/09/13 20:27:33 hbrinkm 1.49.32.17: RESYNC: (1.50-1.51); FILE MERGED 2005/09/12 15:15:29 hbrinkm 1.49.32.16: #i51089# AddNumRuleRanges 2005/09/07 11:29:02 hbrinkm 1.49.32.15: #i51089# SyncNumRulesAndNodes 2005/09/01 14:46:47 hbrinkm 1.49.32.14: #i51089# NumOrNoNum: only remove hard numbering 2005/08/31 13:34:47 hbrinkm 1.49.32.13: #i51089# NumOrNoNum: Only touch paragraphs with hard numbering that shows number 2005/08/30 12:58:49 hbrinkm 1.49.32.12: #i51089# PropagateOutlineRule: SyncNumAndNumRule after setting of outline level 2005/08/26 13:43:44 hbrinkm 1.49.32.11: #i51089# SetNumRuleStart: bool <-> BOOL 2005/08/23 07:35:20 hbrinkm 1.49.32.10: #i51089# {Outline|Num}UpDown: call ChkCondColls if modified 2005/08/16 15:31:02 hbrinkm 1.49.32.9: #i51089# FindNumRulePtrWithPool 2005/08/11 09:27:49 hbrinkm 1.49.32.8: #i51089# SetNumRule: do not access zero pointer to numrule 2005/08/10 08:07:25 hbrinkm 1.49.32.7: #121445# PropagateOutlineRule: UpdateOutlineNode 2005/08/09 12:36:44 hbrinkm 1.49.32.6: #i51089# 2005/08/04 09:27:27 hbrinkm 1.49.32.5: #121445# PropagateOutlineRule: only propagate numrule if IsOutlineLevelYieldsOutlineRule returns false, #i51089# 2005/08/03 12:22:55 hbrinkm 1.49.32.4: RESYNC: (1.49-1.50); FILE MERGED 2005/07/11 09:14:57 hbrinkm 1.49.32.3: #i51089# NumOrNoNum: only succeed if a real change is made 2005/07/07 12:49:41 hbrinkm 1.49.32.2: #i51089# PropagateOutlineRule: If a paragraph style has outline level and no numbering rule, set the documents's outline numbering rule, MakeUniqueRules: do not alter outline numbering rules 2005/06/22 10:24:52 hbrinkm 1.49.32.1: #i51089# new implementation of numbering
2005-11-08 16:16:30 +00:00
int nNonEmptyAllowed,
String& sListId,
INTEGRATION: CWS swnumtree (1.49.32); FILE MERGED 2005/11/03 10:35:51 od 1.49.32.28: #i51089# improve performance - method <SwDoc::GetOutlineNumRule> now inline implemented. - consider change of <SwTxtNode::GetNum()> 2005/11/01 18:07:21 od 1.49.32.27: #i51089# - remove unused code 2005/10/26 10:47:23 od 1.49.32.26: RESYNC: (1.51-1.52); FILE MERGED 2005/10/26 09:34:37 od 1.49.32.25: #b6340308# <SwDoc::SetNumRule(..)> - Only clear numbering rule attribute at current text node, if its paragraph style already contains the new numbering rule. 2005/10/25 06:20:54 od 1.49.32.24: #i51089# - delete unused code. 2005/10/25 05:44:01 od 1.49.32.23: #i55391# <SwDoc::SearchNumRule(..)> - Investigate given start node, if requested. Request is indicated by new parameter <_bInvestigateStartNode> 2005/10/21 11:20:54 od 1.49.32.22: #i51089# - Only the counting of phantoms of the outline numbering rule depends on <SwDoc::IsOldNumbering()> 2005/10/21 08:33:31 od 1.49.32.21: #i55391# <SwDoc::SearchNumRule(..)> - start node has also been investigated. 2005/09/20 14:13:24 fme 1.49.32.20: #i51089# Removed compiler warnings 2005/09/20 11:16:23 hbrinkm 1.49.32.19: #i51089# SwNumRule::Invalidate->SwNumRule::SetInvalidRule(TRUE) 2005/09/14 13:37:29 hbrinkm 1.49.32.18: #i51089# SyncNumRulesAndNodes: UpdateOutlineNode 2005/09/13 20:27:33 hbrinkm 1.49.32.17: RESYNC: (1.50-1.51); FILE MERGED 2005/09/12 15:15:29 hbrinkm 1.49.32.16: #i51089# AddNumRuleRanges 2005/09/07 11:29:02 hbrinkm 1.49.32.15: #i51089# SyncNumRulesAndNodes 2005/09/01 14:46:47 hbrinkm 1.49.32.14: #i51089# NumOrNoNum: only remove hard numbering 2005/08/31 13:34:47 hbrinkm 1.49.32.13: #i51089# NumOrNoNum: Only touch paragraphs with hard numbering that shows number 2005/08/30 12:58:49 hbrinkm 1.49.32.12: #i51089# PropagateOutlineRule: SyncNumAndNumRule after setting of outline level 2005/08/26 13:43:44 hbrinkm 1.49.32.11: #i51089# SetNumRuleStart: bool <-> BOOL 2005/08/23 07:35:20 hbrinkm 1.49.32.10: #i51089# {Outline|Num}UpDown: call ChkCondColls if modified 2005/08/16 15:31:02 hbrinkm 1.49.32.9: #i51089# FindNumRulePtrWithPool 2005/08/11 09:27:49 hbrinkm 1.49.32.8: #i51089# SetNumRule: do not access zero pointer to numrule 2005/08/10 08:07:25 hbrinkm 1.49.32.7: #121445# PropagateOutlineRule: UpdateOutlineNode 2005/08/09 12:36:44 hbrinkm 1.49.32.6: #i51089# 2005/08/04 09:27:27 hbrinkm 1.49.32.5: #121445# PropagateOutlineRule: only propagate numrule if IsOutlineLevelYieldsOutlineRule returns false, #i51089# 2005/08/03 12:22:55 hbrinkm 1.49.32.4: RESYNC: (1.49-1.50); FILE MERGED 2005/07/11 09:14:57 hbrinkm 1.49.32.3: #i51089# NumOrNoNum: only succeed if a real change is made 2005/07/07 12:49:41 hbrinkm 1.49.32.2: #i51089# PropagateOutlineRule: If a paragraph style has outline level and no numbering rule, set the documents's outline numbering rule, MakeUniqueRules: do not alter outline numbering rules 2005/06/22 10:24:52 hbrinkm 1.49.32.1: #i51089# new implementation of numbering
2005-11-08 16:16:30 +00:00
bool _bInvestigateStartNode)
{
const SwNumRule * pResult = NULL;
SwTxtNode * pTxtNd = rPos.nNode.GetNode().GetTxtNode();
SwNode * pStartFromNode = pTxtNd;
if (pTxtNd)
{
SwNodeIndex aIdx(rPos.nNode);
2000-09-18 23:08:29 +00:00
INTEGRATION: CWS swnumtree (1.49.32); FILE MERGED 2005/11/03 10:35:51 od 1.49.32.28: #i51089# improve performance - method <SwDoc::GetOutlineNumRule> now inline implemented. - consider change of <SwTxtNode::GetNum()> 2005/11/01 18:07:21 od 1.49.32.27: #i51089# - remove unused code 2005/10/26 10:47:23 od 1.49.32.26: RESYNC: (1.51-1.52); FILE MERGED 2005/10/26 09:34:37 od 1.49.32.25: #b6340308# <SwDoc::SetNumRule(..)> - Only clear numbering rule attribute at current text node, if its paragraph style already contains the new numbering rule. 2005/10/25 06:20:54 od 1.49.32.24: #i51089# - delete unused code. 2005/10/25 05:44:01 od 1.49.32.23: #i55391# <SwDoc::SearchNumRule(..)> - Investigate given start node, if requested. Request is indicated by new parameter <_bInvestigateStartNode> 2005/10/21 11:20:54 od 1.49.32.22: #i51089# - Only the counting of phantoms of the outline numbering rule depends on <SwDoc::IsOldNumbering()> 2005/10/21 08:33:31 od 1.49.32.21: #i55391# <SwDoc::SearchNumRule(..)> - start node has also been investigated. 2005/09/20 14:13:24 fme 1.49.32.20: #i51089# Removed compiler warnings 2005/09/20 11:16:23 hbrinkm 1.49.32.19: #i51089# SwNumRule::Invalidate->SwNumRule::SetInvalidRule(TRUE) 2005/09/14 13:37:29 hbrinkm 1.49.32.18: #i51089# SyncNumRulesAndNodes: UpdateOutlineNode 2005/09/13 20:27:33 hbrinkm 1.49.32.17: RESYNC: (1.50-1.51); FILE MERGED 2005/09/12 15:15:29 hbrinkm 1.49.32.16: #i51089# AddNumRuleRanges 2005/09/07 11:29:02 hbrinkm 1.49.32.15: #i51089# SyncNumRulesAndNodes 2005/09/01 14:46:47 hbrinkm 1.49.32.14: #i51089# NumOrNoNum: only remove hard numbering 2005/08/31 13:34:47 hbrinkm 1.49.32.13: #i51089# NumOrNoNum: Only touch paragraphs with hard numbering that shows number 2005/08/30 12:58:49 hbrinkm 1.49.32.12: #i51089# PropagateOutlineRule: SyncNumAndNumRule after setting of outline level 2005/08/26 13:43:44 hbrinkm 1.49.32.11: #i51089# SetNumRuleStart: bool <-> BOOL 2005/08/23 07:35:20 hbrinkm 1.49.32.10: #i51089# {Outline|Num}UpDown: call ChkCondColls if modified 2005/08/16 15:31:02 hbrinkm 1.49.32.9: #i51089# FindNumRulePtrWithPool 2005/08/11 09:27:49 hbrinkm 1.49.32.8: #i51089# SetNumRule: do not access zero pointer to numrule 2005/08/10 08:07:25 hbrinkm 1.49.32.7: #121445# PropagateOutlineRule: UpdateOutlineNode 2005/08/09 12:36:44 hbrinkm 1.49.32.6: #i51089# 2005/08/04 09:27:27 hbrinkm 1.49.32.5: #121445# PropagateOutlineRule: only propagate numrule if IsOutlineLevelYieldsOutlineRule returns false, #i51089# 2005/08/03 12:22:55 hbrinkm 1.49.32.4: RESYNC: (1.49-1.50); FILE MERGED 2005/07/11 09:14:57 hbrinkm 1.49.32.3: #i51089# NumOrNoNum: only succeed if a real change is made 2005/07/07 12:49:41 hbrinkm 1.49.32.2: #i51089# PropagateOutlineRule: If a paragraph style has outline level and no numbering rule, set the documents's outline numbering rule, MakeUniqueRules: do not alter outline numbering rules 2005/06/22 10:24:52 hbrinkm 1.49.32.1: #i51089# new implementation of numbering
2005-11-08 16:16:30 +00:00
// --> OD 2005-10-20 #i55391#
// - the start node has also been investigated, if requested.
const SwNode * pNode = NULL;
do
{
INTEGRATION: CWS swnumtree (1.49.32); FILE MERGED 2005/11/03 10:35:51 od 1.49.32.28: #i51089# improve performance - method <SwDoc::GetOutlineNumRule> now inline implemented. - consider change of <SwTxtNode::GetNum()> 2005/11/01 18:07:21 od 1.49.32.27: #i51089# - remove unused code 2005/10/26 10:47:23 od 1.49.32.26: RESYNC: (1.51-1.52); FILE MERGED 2005/10/26 09:34:37 od 1.49.32.25: #b6340308# <SwDoc::SetNumRule(..)> - Only clear numbering rule attribute at current text node, if its paragraph style already contains the new numbering rule. 2005/10/25 06:20:54 od 1.49.32.24: #i51089# - delete unused code. 2005/10/25 05:44:01 od 1.49.32.23: #i55391# <SwDoc::SearchNumRule(..)> - Investigate given start node, if requested. Request is indicated by new parameter <_bInvestigateStartNode> 2005/10/21 11:20:54 od 1.49.32.22: #i51089# - Only the counting of phantoms of the outline numbering rule depends on <SwDoc::IsOldNumbering()> 2005/10/21 08:33:31 od 1.49.32.21: #i55391# <SwDoc::SearchNumRule(..)> - start node has also been investigated. 2005/09/20 14:13:24 fme 1.49.32.20: #i51089# Removed compiler warnings 2005/09/20 11:16:23 hbrinkm 1.49.32.19: #i51089# SwNumRule::Invalidate->SwNumRule::SetInvalidRule(TRUE) 2005/09/14 13:37:29 hbrinkm 1.49.32.18: #i51089# SyncNumRulesAndNodes: UpdateOutlineNode 2005/09/13 20:27:33 hbrinkm 1.49.32.17: RESYNC: (1.50-1.51); FILE MERGED 2005/09/12 15:15:29 hbrinkm 1.49.32.16: #i51089# AddNumRuleRanges 2005/09/07 11:29:02 hbrinkm 1.49.32.15: #i51089# SyncNumRulesAndNodes 2005/09/01 14:46:47 hbrinkm 1.49.32.14: #i51089# NumOrNoNum: only remove hard numbering 2005/08/31 13:34:47 hbrinkm 1.49.32.13: #i51089# NumOrNoNum: Only touch paragraphs with hard numbering that shows number 2005/08/30 12:58:49 hbrinkm 1.49.32.12: #i51089# PropagateOutlineRule: SyncNumAndNumRule after setting of outline level 2005/08/26 13:43:44 hbrinkm 1.49.32.11: #i51089# SetNumRuleStart: bool <-> BOOL 2005/08/23 07:35:20 hbrinkm 1.49.32.10: #i51089# {Outline|Num}UpDown: call ChkCondColls if modified 2005/08/16 15:31:02 hbrinkm 1.49.32.9: #i51089# FindNumRulePtrWithPool 2005/08/11 09:27:49 hbrinkm 1.49.32.8: #i51089# SetNumRule: do not access zero pointer to numrule 2005/08/10 08:07:25 hbrinkm 1.49.32.7: #121445# PropagateOutlineRule: UpdateOutlineNode 2005/08/09 12:36:44 hbrinkm 1.49.32.6: #i51089# 2005/08/04 09:27:27 hbrinkm 1.49.32.5: #121445# PropagateOutlineRule: only propagate numrule if IsOutlineLevelYieldsOutlineRule returns false, #i51089# 2005/08/03 12:22:55 hbrinkm 1.49.32.4: RESYNC: (1.49-1.50); FILE MERGED 2005/07/11 09:14:57 hbrinkm 1.49.32.3: #i51089# NumOrNoNum: only succeed if a real change is made 2005/07/07 12:49:41 hbrinkm 1.49.32.2: #i51089# PropagateOutlineRule: If a paragraph style has outline level and no numbering rule, set the documents's outline numbering rule, MakeUniqueRules: do not alter outline numbering rules 2005/06/22 10:24:52 hbrinkm 1.49.32.1: #i51089# new implementation of numbering
2005-11-08 16:16:30 +00:00
// --> OD 2005-10-20 #i55391#
if ( !_bInvestigateStartNode )
{
if (bForward)
aIdx++;
else
aIdx--;
}
// <--
if (aIdx.GetNode().IsTxtNode())
{
pTxtNd = aIdx.GetNode().GetTxtNode();
const SwNumRule * pNumRule = pTxtNd->GetNumRule();
if (pNumRule)
{
if (pNumRule->IsOutlineRule() == bOutline && // #115901#
( (bNum && pNumRule->Get(0).IsEnumeration()) ||
(!bNum && pNumRule->Get(0).IsItemize()) )) // #i22362#, #i29560#
{
pResult = pTxtNd->GetNumRule();
// --> OD 2008-03-18 #refactorlists#
// provide also the list id, to which the text node belongs.
sListId = pTxtNd->GetListId();
}
break;
}
else if (pTxtNd->Len() > 0 || NULL != pTxtNd->GetNumRule())
{
if (nNonEmptyAllowed == 0)
break;
nNonEmptyAllowed--;
if (nNonEmptyAllowed < 0)
nNonEmptyAllowed = -1;
}
}
INTEGRATION: CWS swnumtree (1.49.32); FILE MERGED 2005/11/03 10:35:51 od 1.49.32.28: #i51089# improve performance - method <SwDoc::GetOutlineNumRule> now inline implemented. - consider change of <SwTxtNode::GetNum()> 2005/11/01 18:07:21 od 1.49.32.27: #i51089# - remove unused code 2005/10/26 10:47:23 od 1.49.32.26: RESYNC: (1.51-1.52); FILE MERGED 2005/10/26 09:34:37 od 1.49.32.25: #b6340308# <SwDoc::SetNumRule(..)> - Only clear numbering rule attribute at current text node, if its paragraph style already contains the new numbering rule. 2005/10/25 06:20:54 od 1.49.32.24: #i51089# - delete unused code. 2005/10/25 05:44:01 od 1.49.32.23: #i55391# <SwDoc::SearchNumRule(..)> - Investigate given start node, if requested. Request is indicated by new parameter <_bInvestigateStartNode> 2005/10/21 11:20:54 od 1.49.32.22: #i51089# - Only the counting of phantoms of the outline numbering rule depends on <SwDoc::IsOldNumbering()> 2005/10/21 08:33:31 od 1.49.32.21: #i55391# <SwDoc::SearchNumRule(..)> - start node has also been investigated. 2005/09/20 14:13:24 fme 1.49.32.20: #i51089# Removed compiler warnings 2005/09/20 11:16:23 hbrinkm 1.49.32.19: #i51089# SwNumRule::Invalidate->SwNumRule::SetInvalidRule(TRUE) 2005/09/14 13:37:29 hbrinkm 1.49.32.18: #i51089# SyncNumRulesAndNodes: UpdateOutlineNode 2005/09/13 20:27:33 hbrinkm 1.49.32.17: RESYNC: (1.50-1.51); FILE MERGED 2005/09/12 15:15:29 hbrinkm 1.49.32.16: #i51089# AddNumRuleRanges 2005/09/07 11:29:02 hbrinkm 1.49.32.15: #i51089# SyncNumRulesAndNodes 2005/09/01 14:46:47 hbrinkm 1.49.32.14: #i51089# NumOrNoNum: only remove hard numbering 2005/08/31 13:34:47 hbrinkm 1.49.32.13: #i51089# NumOrNoNum: Only touch paragraphs with hard numbering that shows number 2005/08/30 12:58:49 hbrinkm 1.49.32.12: #i51089# PropagateOutlineRule: SyncNumAndNumRule after setting of outline level 2005/08/26 13:43:44 hbrinkm 1.49.32.11: #i51089# SetNumRuleStart: bool <-> BOOL 2005/08/23 07:35:20 hbrinkm 1.49.32.10: #i51089# {Outline|Num}UpDown: call ChkCondColls if modified 2005/08/16 15:31:02 hbrinkm 1.49.32.9: #i51089# FindNumRulePtrWithPool 2005/08/11 09:27:49 hbrinkm 1.49.32.8: #i51089# SetNumRule: do not access zero pointer to numrule 2005/08/10 08:07:25 hbrinkm 1.49.32.7: #121445# PropagateOutlineRule: UpdateOutlineNode 2005/08/09 12:36:44 hbrinkm 1.49.32.6: #i51089# 2005/08/04 09:27:27 hbrinkm 1.49.32.5: #121445# PropagateOutlineRule: only propagate numrule if IsOutlineLevelYieldsOutlineRule returns false, #i51089# 2005/08/03 12:22:55 hbrinkm 1.49.32.4: RESYNC: (1.49-1.50); FILE MERGED 2005/07/11 09:14:57 hbrinkm 1.49.32.3: #i51089# NumOrNoNum: only succeed if a real change is made 2005/07/07 12:49:41 hbrinkm 1.49.32.2: #i51089# PropagateOutlineRule: If a paragraph style has outline level and no numbering rule, set the documents's outline numbering rule, MakeUniqueRules: do not alter outline numbering rules 2005/06/22 10:24:52 hbrinkm 1.49.32.1: #i51089# new implementation of numbering
2005-11-08 16:16:30 +00:00
// --> OD 2005-10-20 #i55391#
if ( _bInvestigateStartNode )
{
if (bForward)
aIdx++;
else
aIdx--;
}
// <--
pNode = &aIdx.GetNode();
}
while (! (pNode == aNodes.DocumentSectionStartNode(pStartFromNode) ||
pNode == aNodes.DocumentSectionEndNode(pStartFromNode)));
INTEGRATION: CWS swnumtree (1.49.32); FILE MERGED 2005/11/03 10:35:51 od 1.49.32.28: #i51089# improve performance - method <SwDoc::GetOutlineNumRule> now inline implemented. - consider change of <SwTxtNode::GetNum()> 2005/11/01 18:07:21 od 1.49.32.27: #i51089# - remove unused code 2005/10/26 10:47:23 od 1.49.32.26: RESYNC: (1.51-1.52); FILE MERGED 2005/10/26 09:34:37 od 1.49.32.25: #b6340308# <SwDoc::SetNumRule(..)> - Only clear numbering rule attribute at current text node, if its paragraph style already contains the new numbering rule. 2005/10/25 06:20:54 od 1.49.32.24: #i51089# - delete unused code. 2005/10/25 05:44:01 od 1.49.32.23: #i55391# <SwDoc::SearchNumRule(..)> - Investigate given start node, if requested. Request is indicated by new parameter <_bInvestigateStartNode> 2005/10/21 11:20:54 od 1.49.32.22: #i51089# - Only the counting of phantoms of the outline numbering rule depends on <SwDoc::IsOldNumbering()> 2005/10/21 08:33:31 od 1.49.32.21: #i55391# <SwDoc::SearchNumRule(..)> - start node has also been investigated. 2005/09/20 14:13:24 fme 1.49.32.20: #i51089# Removed compiler warnings 2005/09/20 11:16:23 hbrinkm 1.49.32.19: #i51089# SwNumRule::Invalidate->SwNumRule::SetInvalidRule(TRUE) 2005/09/14 13:37:29 hbrinkm 1.49.32.18: #i51089# SyncNumRulesAndNodes: UpdateOutlineNode 2005/09/13 20:27:33 hbrinkm 1.49.32.17: RESYNC: (1.50-1.51); FILE MERGED 2005/09/12 15:15:29 hbrinkm 1.49.32.16: #i51089# AddNumRuleRanges 2005/09/07 11:29:02 hbrinkm 1.49.32.15: #i51089# SyncNumRulesAndNodes 2005/09/01 14:46:47 hbrinkm 1.49.32.14: #i51089# NumOrNoNum: only remove hard numbering 2005/08/31 13:34:47 hbrinkm 1.49.32.13: #i51089# NumOrNoNum: Only touch paragraphs with hard numbering that shows number 2005/08/30 12:58:49 hbrinkm 1.49.32.12: #i51089# PropagateOutlineRule: SyncNumAndNumRule after setting of outline level 2005/08/26 13:43:44 hbrinkm 1.49.32.11: #i51089# SetNumRuleStart: bool <-> BOOL 2005/08/23 07:35:20 hbrinkm 1.49.32.10: #i51089# {Outline|Num}UpDown: call ChkCondColls if modified 2005/08/16 15:31:02 hbrinkm 1.49.32.9: #i51089# FindNumRulePtrWithPool 2005/08/11 09:27:49 hbrinkm 1.49.32.8: #i51089# SetNumRule: do not access zero pointer to numrule 2005/08/10 08:07:25 hbrinkm 1.49.32.7: #121445# PropagateOutlineRule: UpdateOutlineNode 2005/08/09 12:36:44 hbrinkm 1.49.32.6: #i51089# 2005/08/04 09:27:27 hbrinkm 1.49.32.5: #121445# PropagateOutlineRule: only propagate numrule if IsOutlineLevelYieldsOutlineRule returns false, #i51089# 2005/08/03 12:22:55 hbrinkm 1.49.32.4: RESYNC: (1.49-1.50); FILE MERGED 2005/07/11 09:14:57 hbrinkm 1.49.32.3: #i51089# NumOrNoNum: only succeed if a real change is made 2005/07/07 12:49:41 hbrinkm 1.49.32.2: #i51089# PropagateOutlineRule: If a paragraph style has outline level and no numbering rule, set the documents's outline numbering rule, MakeUniqueRules: do not alter outline numbering rules 2005/06/22 10:24:52 hbrinkm 1.49.32.1: #i51089# new implementation of numbering
2005-11-08 16:16:30 +00:00
// <--
}
return pResult;
}
// <- #i23731#
2000-09-18 23:08:29 +00:00
BOOL SwDoc::GotoPrevNum( SwPosition& rPos, BOOL bOverUpper,
BYTE* pUpper, BYTE* pLower )
{
return ::lcl_GotoNextPrevNum( rPos, FALSE, bOverUpper, pUpper, pLower );
}
BOOL SwDoc::NumUpDown( const SwPaM& rPam, BOOL bDown )
{
ULONG nStt = rPam.GetPoint()->nNode.GetIndex(),
nEnd = rPam.GetMark()->nNode.GetIndex();
if( nStt > nEnd )
{
ULONG nTmp = nStt; nStt = nEnd; nEnd = nTmp;
}
// -> #115901# outline nodes are promoted or demoted differently
bool bOnlyOutline = true;
bool bOnlyNonOutline = true;
for (ULONG n = nStt; n <= nEnd; n++)
2000-09-18 23:08:29 +00:00
{
SwTxtNode * pTxtNd = GetNodes()[n]->GetTxtNode();
if (pTxtNd)
{
SwNumRule * pRule = pTxtNd->GetNumRule();
if (pRule)
{
if (pRule->IsOutlineRule())
bOnlyNonOutline = false;
else
bOnlyOutline = false;
}
}
2000-09-18 23:08:29 +00:00
}
// <- #115901#
2000-09-18 23:08:29 +00:00
BOOL bRet = TRUE;
char nDiff = bDown ? 1 : -1;
// ->#115901#
if (bOnlyOutline)
bRet = OutlineUpDown(rPam, nDiff);
else if (bOnlyNonOutline)
2000-09-18 23:08:29 +00:00
{
/* --> #i24560#
Only promote or demote if all selected paragraphs are
promotable resp. demotable.
*/
for (ULONG nTmp = nStt; nTmp <= nEnd; ++nTmp)
{
SwTxtNode* pTNd = GetNodes()[ nTmp ]->GetTxtNode();
// --> OD 2006-10-19 #134160# - make code robust:
// consider case that the node doesn't denote a text node.
if ( pTNd )
INTEGRATION: CWS swnumtree (1.49.32); FILE MERGED 2005/11/03 10:35:51 od 1.49.32.28: #i51089# improve performance - method <SwDoc::GetOutlineNumRule> now inline implemented. - consider change of <SwTxtNode::GetNum()> 2005/11/01 18:07:21 od 1.49.32.27: #i51089# - remove unused code 2005/10/26 10:47:23 od 1.49.32.26: RESYNC: (1.51-1.52); FILE MERGED 2005/10/26 09:34:37 od 1.49.32.25: #b6340308# <SwDoc::SetNumRule(..)> - Only clear numbering rule attribute at current text node, if its paragraph style already contains the new numbering rule. 2005/10/25 06:20:54 od 1.49.32.24: #i51089# - delete unused code. 2005/10/25 05:44:01 od 1.49.32.23: #i55391# <SwDoc::SearchNumRule(..)> - Investigate given start node, if requested. Request is indicated by new parameter <_bInvestigateStartNode> 2005/10/21 11:20:54 od 1.49.32.22: #i51089# - Only the counting of phantoms of the outline numbering rule depends on <SwDoc::IsOldNumbering()> 2005/10/21 08:33:31 od 1.49.32.21: #i55391# <SwDoc::SearchNumRule(..)> - start node has also been investigated. 2005/09/20 14:13:24 fme 1.49.32.20: #i51089# Removed compiler warnings 2005/09/20 11:16:23 hbrinkm 1.49.32.19: #i51089# SwNumRule::Invalidate->SwNumRule::SetInvalidRule(TRUE) 2005/09/14 13:37:29 hbrinkm 1.49.32.18: #i51089# SyncNumRulesAndNodes: UpdateOutlineNode 2005/09/13 20:27:33 hbrinkm 1.49.32.17: RESYNC: (1.50-1.51); FILE MERGED 2005/09/12 15:15:29 hbrinkm 1.49.32.16: #i51089# AddNumRuleRanges 2005/09/07 11:29:02 hbrinkm 1.49.32.15: #i51089# SyncNumRulesAndNodes 2005/09/01 14:46:47 hbrinkm 1.49.32.14: #i51089# NumOrNoNum: only remove hard numbering 2005/08/31 13:34:47 hbrinkm 1.49.32.13: #i51089# NumOrNoNum: Only touch paragraphs with hard numbering that shows number 2005/08/30 12:58:49 hbrinkm 1.49.32.12: #i51089# PropagateOutlineRule: SyncNumAndNumRule after setting of outline level 2005/08/26 13:43:44 hbrinkm 1.49.32.11: #i51089# SetNumRuleStart: bool <-> BOOL 2005/08/23 07:35:20 hbrinkm 1.49.32.10: #i51089# {Outline|Num}UpDown: call ChkCondColls if modified 2005/08/16 15:31:02 hbrinkm 1.49.32.9: #i51089# FindNumRulePtrWithPool 2005/08/11 09:27:49 hbrinkm 1.49.32.8: #i51089# SetNumRule: do not access zero pointer to numrule 2005/08/10 08:07:25 hbrinkm 1.49.32.7: #121445# PropagateOutlineRule: UpdateOutlineNode 2005/08/09 12:36:44 hbrinkm 1.49.32.6: #i51089# 2005/08/04 09:27:27 hbrinkm 1.49.32.5: #121445# PropagateOutlineRule: only propagate numrule if IsOutlineLevelYieldsOutlineRule returns false, #i51089# 2005/08/03 12:22:55 hbrinkm 1.49.32.4: RESYNC: (1.49-1.50); FILE MERGED 2005/07/11 09:14:57 hbrinkm 1.49.32.3: #i51089# NumOrNoNum: only succeed if a real change is made 2005/07/07 12:49:41 hbrinkm 1.49.32.2: #i51089# PropagateOutlineRule: If a paragraph style has outline level and no numbering rule, set the documents's outline numbering rule, MakeUniqueRules: do not alter outline numbering rules 2005/06/22 10:24:52 hbrinkm 1.49.32.1: #i51089# new implementation of numbering
2005-11-08 16:16:30 +00:00
{
SwNumRule * pRule = pTNd->GetNumRule();
if (pRule)
{
BYTE nLevel = static_cast<BYTE>(pTNd->GetActualListLevel());
if( (-1 == nDiff && 0 >= nLevel) ||
(1 == nDiff && MAXLEVEL - 1 <= nLevel))
bRet = FALSE;
}
2000-09-18 23:08:29 +00:00
}
// <--
2000-09-18 23:08:29 +00:00
}
if( bRet )
{
/* <-- #i24560# */
if( DoesUndo() )
{
ClearRedo();
AppendUndo( new SwUndoNumUpDown( rPam, nDiff ) );
}
String sNumRule;
for(ULONG nTmp = nStt; nTmp <= nEnd; ++nTmp )
{
SwTxtNode* pTNd = GetNodes()[ nTmp ]->GetTxtNode();
INTEGRATION: CWS swnumtree (1.49.32); FILE MERGED 2005/11/03 10:35:51 od 1.49.32.28: #i51089# improve performance - method <SwDoc::GetOutlineNumRule> now inline implemented. - consider change of <SwTxtNode::GetNum()> 2005/11/01 18:07:21 od 1.49.32.27: #i51089# - remove unused code 2005/10/26 10:47:23 od 1.49.32.26: RESYNC: (1.51-1.52); FILE MERGED 2005/10/26 09:34:37 od 1.49.32.25: #b6340308# <SwDoc::SetNumRule(..)> - Only clear numbering rule attribute at current text node, if its paragraph style already contains the new numbering rule. 2005/10/25 06:20:54 od 1.49.32.24: #i51089# - delete unused code. 2005/10/25 05:44:01 od 1.49.32.23: #i55391# <SwDoc::SearchNumRule(..)> - Investigate given start node, if requested. Request is indicated by new parameter <_bInvestigateStartNode> 2005/10/21 11:20:54 od 1.49.32.22: #i51089# - Only the counting of phantoms of the outline numbering rule depends on <SwDoc::IsOldNumbering()> 2005/10/21 08:33:31 od 1.49.32.21: #i55391# <SwDoc::SearchNumRule(..)> - start node has also been investigated. 2005/09/20 14:13:24 fme 1.49.32.20: #i51089# Removed compiler warnings 2005/09/20 11:16:23 hbrinkm 1.49.32.19: #i51089# SwNumRule::Invalidate->SwNumRule::SetInvalidRule(TRUE) 2005/09/14 13:37:29 hbrinkm 1.49.32.18: #i51089# SyncNumRulesAndNodes: UpdateOutlineNode 2005/09/13 20:27:33 hbrinkm 1.49.32.17: RESYNC: (1.50-1.51); FILE MERGED 2005/09/12 15:15:29 hbrinkm 1.49.32.16: #i51089# AddNumRuleRanges 2005/09/07 11:29:02 hbrinkm 1.49.32.15: #i51089# SyncNumRulesAndNodes 2005/09/01 14:46:47 hbrinkm 1.49.32.14: #i51089# NumOrNoNum: only remove hard numbering 2005/08/31 13:34:47 hbrinkm 1.49.32.13: #i51089# NumOrNoNum: Only touch paragraphs with hard numbering that shows number 2005/08/30 12:58:49 hbrinkm 1.49.32.12: #i51089# PropagateOutlineRule: SyncNumAndNumRule after setting of outline level 2005/08/26 13:43:44 hbrinkm 1.49.32.11: #i51089# SetNumRuleStart: bool <-> BOOL 2005/08/23 07:35:20 hbrinkm 1.49.32.10: #i51089# {Outline|Num}UpDown: call ChkCondColls if modified 2005/08/16 15:31:02 hbrinkm 1.49.32.9: #i51089# FindNumRulePtrWithPool 2005/08/11 09:27:49 hbrinkm 1.49.32.8: #i51089# SetNumRule: do not access zero pointer to numrule 2005/08/10 08:07:25 hbrinkm 1.49.32.7: #121445# PropagateOutlineRule: UpdateOutlineNode 2005/08/09 12:36:44 hbrinkm 1.49.32.6: #i51089# 2005/08/04 09:27:27 hbrinkm 1.49.32.5: #121445# PropagateOutlineRule: only propagate numrule if IsOutlineLevelYieldsOutlineRule returns false, #i51089# 2005/08/03 12:22:55 hbrinkm 1.49.32.4: RESYNC: (1.49-1.50); FILE MERGED 2005/07/11 09:14:57 hbrinkm 1.49.32.3: #i51089# NumOrNoNum: only succeed if a real change is made 2005/07/07 12:49:41 hbrinkm 1.49.32.2: #i51089# PropagateOutlineRule: If a paragraph style has outline level and no numbering rule, set the documents's outline numbering rule, MakeUniqueRules: do not alter outline numbering rules 2005/06/22 10:24:52 hbrinkm 1.49.32.1: #i51089# new implementation of numbering
2005-11-08 16:16:30 +00:00
if( pTNd)
{
INTEGRATION: CWS swnumtree (1.49.32); FILE MERGED 2005/11/03 10:35:51 od 1.49.32.28: #i51089# improve performance - method <SwDoc::GetOutlineNumRule> now inline implemented. - consider change of <SwTxtNode::GetNum()> 2005/11/01 18:07:21 od 1.49.32.27: #i51089# - remove unused code 2005/10/26 10:47:23 od 1.49.32.26: RESYNC: (1.51-1.52); FILE MERGED 2005/10/26 09:34:37 od 1.49.32.25: #b6340308# <SwDoc::SetNumRule(..)> - Only clear numbering rule attribute at current text node, if its paragraph style already contains the new numbering rule. 2005/10/25 06:20:54 od 1.49.32.24: #i51089# - delete unused code. 2005/10/25 05:44:01 od 1.49.32.23: #i55391# <SwDoc::SearchNumRule(..)> - Investigate given start node, if requested. Request is indicated by new parameter <_bInvestigateStartNode> 2005/10/21 11:20:54 od 1.49.32.22: #i51089# - Only the counting of phantoms of the outline numbering rule depends on <SwDoc::IsOldNumbering()> 2005/10/21 08:33:31 od 1.49.32.21: #i55391# <SwDoc::SearchNumRule(..)> - start node has also been investigated. 2005/09/20 14:13:24 fme 1.49.32.20: #i51089# Removed compiler warnings 2005/09/20 11:16:23 hbrinkm 1.49.32.19: #i51089# SwNumRule::Invalidate->SwNumRule::SetInvalidRule(TRUE) 2005/09/14 13:37:29 hbrinkm 1.49.32.18: #i51089# SyncNumRulesAndNodes: UpdateOutlineNode 2005/09/13 20:27:33 hbrinkm 1.49.32.17: RESYNC: (1.50-1.51); FILE MERGED 2005/09/12 15:15:29 hbrinkm 1.49.32.16: #i51089# AddNumRuleRanges 2005/09/07 11:29:02 hbrinkm 1.49.32.15: #i51089# SyncNumRulesAndNodes 2005/09/01 14:46:47 hbrinkm 1.49.32.14: #i51089# NumOrNoNum: only remove hard numbering 2005/08/31 13:34:47 hbrinkm 1.49.32.13: #i51089# NumOrNoNum: Only touch paragraphs with hard numbering that shows number 2005/08/30 12:58:49 hbrinkm 1.49.32.12: #i51089# PropagateOutlineRule: SyncNumAndNumRule after setting of outline level 2005/08/26 13:43:44 hbrinkm 1.49.32.11: #i51089# SetNumRuleStart: bool <-> BOOL 2005/08/23 07:35:20 hbrinkm 1.49.32.10: #i51089# {Outline|Num}UpDown: call ChkCondColls if modified 2005/08/16 15:31:02 hbrinkm 1.49.32.9: #i51089# FindNumRulePtrWithPool 2005/08/11 09:27:49 hbrinkm 1.49.32.8: #i51089# SetNumRule: do not access zero pointer to numrule 2005/08/10 08:07:25 hbrinkm 1.49.32.7: #121445# PropagateOutlineRule: UpdateOutlineNode 2005/08/09 12:36:44 hbrinkm 1.49.32.6: #i51089# 2005/08/04 09:27:27 hbrinkm 1.49.32.5: #121445# PropagateOutlineRule: only propagate numrule if IsOutlineLevelYieldsOutlineRule returns false, #i51089# 2005/08/03 12:22:55 hbrinkm 1.49.32.4: RESYNC: (1.49-1.50); FILE MERGED 2005/07/11 09:14:57 hbrinkm 1.49.32.3: #i51089# NumOrNoNum: only succeed if a real change is made 2005/07/07 12:49:41 hbrinkm 1.49.32.2: #i51089# PropagateOutlineRule: If a paragraph style has outline level and no numbering rule, set the documents's outline numbering rule, MakeUniqueRules: do not alter outline numbering rules 2005/06/22 10:24:52 hbrinkm 1.49.32.1: #i51089# new implementation of numbering
2005-11-08 16:16:30 +00:00
SwNumRule * pRule = pTNd->GetNumRule();
INTEGRATION: CWS swnumtree (1.49.32); FILE MERGED 2005/11/03 10:35:51 od 1.49.32.28: #i51089# improve performance - method <SwDoc::GetOutlineNumRule> now inline implemented. - consider change of <SwTxtNode::GetNum()> 2005/11/01 18:07:21 od 1.49.32.27: #i51089# - remove unused code 2005/10/26 10:47:23 od 1.49.32.26: RESYNC: (1.51-1.52); FILE MERGED 2005/10/26 09:34:37 od 1.49.32.25: #b6340308# <SwDoc::SetNumRule(..)> - Only clear numbering rule attribute at current text node, if its paragraph style already contains the new numbering rule. 2005/10/25 06:20:54 od 1.49.32.24: #i51089# - delete unused code. 2005/10/25 05:44:01 od 1.49.32.23: #i55391# <SwDoc::SearchNumRule(..)> - Investigate given start node, if requested. Request is indicated by new parameter <_bInvestigateStartNode> 2005/10/21 11:20:54 od 1.49.32.22: #i51089# - Only the counting of phantoms of the outline numbering rule depends on <SwDoc::IsOldNumbering()> 2005/10/21 08:33:31 od 1.49.32.21: #i55391# <SwDoc::SearchNumRule(..)> - start node has also been investigated. 2005/09/20 14:13:24 fme 1.49.32.20: #i51089# Removed compiler warnings 2005/09/20 11:16:23 hbrinkm 1.49.32.19: #i51089# SwNumRule::Invalidate->SwNumRule::SetInvalidRule(TRUE) 2005/09/14 13:37:29 hbrinkm 1.49.32.18: #i51089# SyncNumRulesAndNodes: UpdateOutlineNode 2005/09/13 20:27:33 hbrinkm 1.49.32.17: RESYNC: (1.50-1.51); FILE MERGED 2005/09/12 15:15:29 hbrinkm 1.49.32.16: #i51089# AddNumRuleRanges 2005/09/07 11:29:02 hbrinkm 1.49.32.15: #i51089# SyncNumRulesAndNodes 2005/09/01 14:46:47 hbrinkm 1.49.32.14: #i51089# NumOrNoNum: only remove hard numbering 2005/08/31 13:34:47 hbrinkm 1.49.32.13: #i51089# NumOrNoNum: Only touch paragraphs with hard numbering that shows number 2005/08/30 12:58:49 hbrinkm 1.49.32.12: #i51089# PropagateOutlineRule: SyncNumAndNumRule after setting of outline level 2005/08/26 13:43:44 hbrinkm 1.49.32.11: #i51089# SetNumRuleStart: bool <-> BOOL 2005/08/23 07:35:20 hbrinkm 1.49.32.10: #i51089# {Outline|Num}UpDown: call ChkCondColls if modified 2005/08/16 15:31:02 hbrinkm 1.49.32.9: #i51089# FindNumRulePtrWithPool 2005/08/11 09:27:49 hbrinkm 1.49.32.8: #i51089# SetNumRule: do not access zero pointer to numrule 2005/08/10 08:07:25 hbrinkm 1.49.32.7: #121445# PropagateOutlineRule: UpdateOutlineNode 2005/08/09 12:36:44 hbrinkm 1.49.32.6: #i51089# 2005/08/04 09:27:27 hbrinkm 1.49.32.5: #121445# PropagateOutlineRule: only propagate numrule if IsOutlineLevelYieldsOutlineRule returns false, #i51089# 2005/08/03 12:22:55 hbrinkm 1.49.32.4: RESYNC: (1.49-1.50); FILE MERGED 2005/07/11 09:14:57 hbrinkm 1.49.32.3: #i51089# NumOrNoNum: only succeed if a real change is made 2005/07/07 12:49:41 hbrinkm 1.49.32.2: #i51089# PropagateOutlineRule: If a paragraph style has outline level and no numbering rule, set the documents's outline numbering rule, MakeUniqueRules: do not alter outline numbering rules 2005/06/22 10:24:52 hbrinkm 1.49.32.1: #i51089# new implementation of numbering
2005-11-08 16:16:30 +00:00
if (pRule)
{
BYTE nLevel = static_cast<BYTE>(pTNd->GetActualListLevel());
nLevel = nLevel + nDiff;
pTNd->SetAttrListLevel(nLevel);
}
}
}
INTEGRATION: CWS swnumtree (1.49.32); FILE MERGED 2005/11/03 10:35:51 od 1.49.32.28: #i51089# improve performance - method <SwDoc::GetOutlineNumRule> now inline implemented. - consider change of <SwTxtNode::GetNum()> 2005/11/01 18:07:21 od 1.49.32.27: #i51089# - remove unused code 2005/10/26 10:47:23 od 1.49.32.26: RESYNC: (1.51-1.52); FILE MERGED 2005/10/26 09:34:37 od 1.49.32.25: #b6340308# <SwDoc::SetNumRule(..)> - Only clear numbering rule attribute at current text node, if its paragraph style already contains the new numbering rule. 2005/10/25 06:20:54 od 1.49.32.24: #i51089# - delete unused code. 2005/10/25 05:44:01 od 1.49.32.23: #i55391# <SwDoc::SearchNumRule(..)> - Investigate given start node, if requested. Request is indicated by new parameter <_bInvestigateStartNode> 2005/10/21 11:20:54 od 1.49.32.22: #i51089# - Only the counting of phantoms of the outline numbering rule depends on <SwDoc::IsOldNumbering()> 2005/10/21 08:33:31 od 1.49.32.21: #i55391# <SwDoc::SearchNumRule(..)> - start node has also been investigated. 2005/09/20 14:13:24 fme 1.49.32.20: #i51089# Removed compiler warnings 2005/09/20 11:16:23 hbrinkm 1.49.32.19: #i51089# SwNumRule::Invalidate->SwNumRule::SetInvalidRule(TRUE) 2005/09/14 13:37:29 hbrinkm 1.49.32.18: #i51089# SyncNumRulesAndNodes: UpdateOutlineNode 2005/09/13 20:27:33 hbrinkm 1.49.32.17: RESYNC: (1.50-1.51); FILE MERGED 2005/09/12 15:15:29 hbrinkm 1.49.32.16: #i51089# AddNumRuleRanges 2005/09/07 11:29:02 hbrinkm 1.49.32.15: #i51089# SyncNumRulesAndNodes 2005/09/01 14:46:47 hbrinkm 1.49.32.14: #i51089# NumOrNoNum: only remove hard numbering 2005/08/31 13:34:47 hbrinkm 1.49.32.13: #i51089# NumOrNoNum: Only touch paragraphs with hard numbering that shows number 2005/08/30 12:58:49 hbrinkm 1.49.32.12: #i51089# PropagateOutlineRule: SyncNumAndNumRule after setting of outline level 2005/08/26 13:43:44 hbrinkm 1.49.32.11: #i51089# SetNumRuleStart: bool <-> BOOL 2005/08/23 07:35:20 hbrinkm 1.49.32.10: #i51089# {Outline|Num}UpDown: call ChkCondColls if modified 2005/08/16 15:31:02 hbrinkm 1.49.32.9: #i51089# FindNumRulePtrWithPool 2005/08/11 09:27:49 hbrinkm 1.49.32.8: #i51089# SetNumRule: do not access zero pointer to numrule 2005/08/10 08:07:25 hbrinkm 1.49.32.7: #121445# PropagateOutlineRule: UpdateOutlineNode 2005/08/09 12:36:44 hbrinkm 1.49.32.6: #i51089# 2005/08/04 09:27:27 hbrinkm 1.49.32.5: #121445# PropagateOutlineRule: only propagate numrule if IsOutlineLevelYieldsOutlineRule returns false, #i51089# 2005/08/03 12:22:55 hbrinkm 1.49.32.4: RESYNC: (1.49-1.50); FILE MERGED 2005/07/11 09:14:57 hbrinkm 1.49.32.3: #i51089# NumOrNoNum: only succeed if a real change is made 2005/07/07 12:49:41 hbrinkm 1.49.32.2: #i51089# PropagateOutlineRule: If a paragraph style has outline level and no numbering rule, set the documents's outline numbering rule, MakeUniqueRules: do not alter outline numbering rules 2005/06/22 10:24:52 hbrinkm 1.49.32.1: #i51089# new implementation of numbering
2005-11-08 16:16:30 +00:00
ChkCondColls();
SetModified();
}
2000-09-18 23:08:29 +00:00
}
2000-09-18 23:08:29 +00:00
return bRet;
}
BOOL SwDoc::MoveParagraph( const SwPaM& rPam, long nOffset, BOOL bIsOutlMv )
{
const SwPosition *pStt = rPam.Start(), *pEnd = rPam.End();
ULONG nStIdx = pStt->nNode.GetIndex();
ULONG nEndIdx = pEnd->nNode.GetIndex();
// Here are some sophisticated checks whether the wished PaM will be moved or not.
// For moving outlines (bIsOutlMv) I've already done some checks, so here are two different
// checks...
SwNode *pTmp1;
SwNode *pTmp2;
if( bIsOutlMv )
{
// For moving chapters (outline) the following reason will deny the move:
// if a start node is inside the moved area and its end node outside or vice versa.
// If a start node is the first moved paragraph, its end node has to be within the moved
// area, too (e.g. as last node).
// If an end node is the last node of the moved area, its start node has to be a part of
// the moved section, too.
pTmp1 = GetNodes()[ nStIdx ];
if( pTmp1->IsStartNode() )
{ // First is a start node
pTmp2 = pTmp1->EndOfSectionNode();
if( pTmp2->GetIndex() > nEndIdx )
return FALSE; // Its end node is behind the moved range
}
pTmp1 = pTmp1->StartOfSectionNode()->EndOfSectionNode();
if( pTmp1->GetIndex() <= nEndIdx )
return FALSE; // End node inside but start node before moved range => no.
pTmp1 = GetNodes()[ nEndIdx ];
if( pTmp1->IsEndNode() )
{ // The last one is an end node
pTmp1 = pTmp1->StartOfSectionNode();
if( pTmp1->GetIndex() < nStIdx )
return FALSE; // Its start node is before the moved range.
}
pTmp1 = pTmp1->StartOfSectionNode();
if( pTmp1->GetIndex() >= nStIdx )
return FALSE; // A start node which ends behind the moved area => no.
}
2000-09-18 23:08:29 +00:00
ULONG nInStIdx, nInEndIdx;
long nOffs = nOffset;
if( nOffset > 0 )
{
nInEndIdx = nEndIdx;
nEndIdx += nOffset;
++nOffs;
}
else
{
//Impossible to move to negative index
if( ULONG(abs( nOffset )) > nStIdx)
return FALSE;
2000-09-18 23:08:29 +00:00
nInEndIdx = nStIdx - 1;
nStIdx += nOffset;
}
nInStIdx = nInEndIdx + 1;
// Folgende Absatzbloecke sollen vertauscht werden:
// [ nStIdx, nInEndIdx ] mit [ nInStIdx, nEndIdx ]
if( nEndIdx >= GetNodes().GetEndOfContent().GetIndex() )
2000-09-18 23:08:29 +00:00
return FALSE;
if( !bIsOutlMv )
{ // And here the restrictions for moving paragraphs other than chapters (outlines)
// The plan is to exchange [nStIdx,nInEndIdx] and [nStartIdx,nEndIdx]
// It will checked if the both "start" nodes as well as the both "end" notes belongs to
// the same start-end-section. This is more restrictive than the conditions checked above.
// E.g. a paragraph will not escape from a section or be inserted to another section.
pTmp1 = GetNodes()[ nStIdx ]->StartOfSectionNode();
pTmp2 = GetNodes()[ nInStIdx ]->StartOfSectionNode();
if( pTmp1 != pTmp2 )
return FALSE; // "start" nodes in different sections
pTmp1 = GetNodes()[ nEndIdx ];
bool bIsEndNode = pTmp1->IsEndNode();
if( !pTmp1->IsStartNode() )
{
pTmp1 = pTmp1->StartOfSectionNode();
if( bIsEndNode ) // For end nodes the first start node is of course inside the range,
pTmp1 = pTmp1->StartOfSectionNode(); // I've to check the start node of the start node.
}
pTmp1 = pTmp1->EndOfSectionNode();
pTmp2 = GetNodes()[ nInEndIdx ];
if( !pTmp2->IsStartNode() )
{
bIsEndNode = pTmp2->IsEndNode();
pTmp2 = pTmp2->StartOfSectionNode();
if( bIsEndNode )
pTmp2 = pTmp2->StartOfSectionNode();
}
pTmp2 = pTmp2->EndOfSectionNode();
if( pTmp1 != pTmp2 )
return FALSE; // The "end" notes are in different sections
}
2000-09-18 23:08:29 +00:00
// auf Redlining testen - darf die Selektion ueberhaupt verschoben
// werden?
if( !IsIgnoreRedline() )
{
USHORT nRedlPos = GetRedlinePos( pStt->nNode.GetNode(), nsRedlineType_t::REDLINE_DELETE );
2000-09-18 23:08:29 +00:00
if( USHRT_MAX != nRedlPos )
{
SwPosition aStPos( *pStt ), aEndPos( *pEnd );
aStPos.nContent = 0;
SwCntntNode* pCNd = pEnd->nNode.GetNode().GetCntntNode();
aEndPos.nContent = pCNd ? pCNd->Len() : 1;
BOOL bCheckDel = TRUE;
// es existiert fuer den Bereich irgendein Redline-Delete-Object
for( ; nRedlPos < GetRedlineTbl().Count(); ++nRedlPos )
{
const SwRedline* pTmp = GetRedlineTbl()[ nRedlPos ];
if( !bCheckDel || nsRedlineType_t::REDLINE_DELETE == pTmp->GetType() )
2000-09-18 23:08:29 +00:00
{
const SwPosition *pRStt = pTmp->Start(), *pREnd = pTmp->End();
switch( ComparePosition( *pRStt, *pREnd, aStPos, aEndPos ))
{
case POS_COLLIDE_START:
2000-09-18 23:08:29 +00:00
case POS_BEHIND: // Pos1 liegt hinter Pos2
nRedlPos = GetRedlineTbl().Count();
break;
case POS_COLLIDE_END:
2000-09-18 23:08:29 +00:00
case POS_BEFORE: // Pos1 liegt vor Pos2
break;
case POS_INSIDE: // Pos1 liegt vollstaendig in Pos2
// ist erlaubt, aber checke dann alle nachfolgenden
// auf Ueberlappungen
bCheckDel = FALSE;
break;
case POS_OUTSIDE: // Pos2 liegt vollstaendig in Pos1
case POS_EQUAL: // Pos1 ist genauso gross wie Pos2
case POS_OVERLAP_BEFORE: // Pos1 ueberlappt Pos2 am Anfang
case POS_OVERLAP_BEHIND: // Pos1 ueberlappt Pos2 am Ende
return FALSE;
}
}
}
}
}
{
// DataChanged vorm verschieben verschicken, dann bekommt
// man noch mit, welche Objecte sich im Bereich befinden.
// Danach koennen sie vor/hinter der Position befinden.
SwDataChanged aTmp( rPam, 0 );
}
SwNodeIndex aIdx( nOffset > 0 ? pEnd->nNode : pStt->nNode, nOffs );
SwNodeRange aMvRg( pStt->nNode, 0, pEnd->nNode, +1 );
SwRedline* pOwnRedl = 0;
if( IsRedlineOn() )
{
// wenn der Bereich komplett im eigenen Redline liegt, kann es
// verschoben werden!
USHORT nRedlPos = GetRedlinePos( pStt->nNode.GetNode(), nsRedlineType_t::REDLINE_INSERT );
2000-09-18 23:08:29 +00:00
if( USHRT_MAX != nRedlPos )
{
SwRedline* pTmp = GetRedlineTbl()[ nRedlPos ];
const SwPosition *pRStt = pTmp->Start(), *pREnd = pTmp->End();
SwRedline aTmpRedl( nsRedlineType_t::REDLINE_INSERT, rPam );
2000-09-18 23:08:29 +00:00
const SwCntntNode* pCEndNd = pEnd->nNode.GetNode().GetCntntNode();
// liegt komplett im Bereich, und ist auch der eigene Redline?
if( aTmpRedl.IsOwnRedline( *pTmp ) &&
(pRStt->nNode < pStt->nNode ||
(pRStt->nNode == pStt->nNode && !pRStt->nContent.GetIndex()) ) &&
(pEnd->nNode < pREnd->nNode ||
(pEnd->nNode == pREnd->nNode &&
pCEndNd ? pREnd->nContent.GetIndex() == pCEndNd->Len()
: !pREnd->nContent.GetIndex() )) )
{
pOwnRedl = pTmp;
if( nRedlPos + 1 < GetRedlineTbl().Count() )
{
pTmp = GetRedlineTbl()[ nRedlPos+1 ];
if( *pTmp->Start() == *pREnd )
// dann doch nicht!
pOwnRedl = 0;
}
if( pOwnRedl &&
!( pRStt->nNode <= aIdx && aIdx <= pREnd->nNode ))
{
// nicht in sich selbst, dann auch nicht moven
pOwnRedl = 0;
}
}
}
if( !pOwnRedl )
{
StartUndo( UNDO_START, NULL );
2000-09-18 23:08:29 +00:00
// zuerst das Insert, dann das Loeschen
SwPosition aInsPos( aIdx );
aInsPos.nContent.Assign( aIdx.GetNode().GetCntntNode(), 0 );
SwPaM aPam( pStt->nNode, aMvRg.aEnd );
SwPaM& rOrigPam = (SwPaM&)rPam;
rOrigPam.DeleteMark();
rOrigPam.GetPoint()->nNode = aIdx.GetIndex() - 1;
BOOL bDelLastPara = !aInsPos.nNode.GetNode().IsCntntNode();
/* #101076# When copying to a non-content node Copy will
insert a paragraph before that node and insert before
that inserted node. Copy creates an SwUndoInserts that
does not cover the extra paragraph. Thus we insert the
extra paragraph ourselves, _with_ correct undo
information. */
if (bDelLastPara)
{
/* aInsPos points to the non-content node. Move it to
the previous content node. */
SwPaM aInsPam(aInsPos);
BOOL bMoved = aInsPam.Move(fnMoveBackward);
ASSERT(bMoved, "No content node found!");
if (bMoved)
{
/* Append the new node after the content node
found. The new position to insert the moved
paragraph at is before the inserted
paragraph. */
AppendTxtNode(*aInsPam.GetPoint());
aInsPos = *aInsPam.GetPoint();
}
}
Copy( aPam, aInsPos, false );
2000-09-18 23:08:29 +00:00
if( bDelLastPara )
{
// dann muss der letzte leere Node wieder entfernt werden
aIdx = aInsPos.nNode;
SwCntntNode* pCNd = GetNodes().GoPrevious( &aInsPos.nNode );
xub_StrLen nCLen = 0; if( pCNd ) nCLen = pCNd->Len();
aInsPos.nContent.Assign( pCNd, nCLen );
// alle die im zu loeschenden Node stehen, mussen auf den
// naechsten umgestezt werden
SwPosition* pPos;
for( USHORT n = 0; n < GetRedlineTbl().Count(); ++n )
{
SwRedline* pTmp = GetRedlineTbl()[ n ];
if( ( pPos = &pTmp->GetBound(TRUE))->nNode == aIdx )
{
pPos->nNode++;
pPos->nContent.Assign( pPos->nNode.GetNode().GetCntntNode(),0);
}
if( ( pPos = &pTmp->GetBound(FALSE))->nNode == aIdx )
{
pPos->nNode++;
pPos->nContent.Assign( pPos->nNode.GetNode().GetCntntNode(),0);
}
}
CorrRel( aIdx, aInsPos, 0, FALSE );
pCNd->JoinNext();
}
rOrigPam.GetPoint()->nNode++;
rOrigPam.GetPoint()->nContent.Assign( rOrigPam.GetCntntNode(), 0 );
RedlineMode_t eOld = GetRedlineMode();
checkRedlining(eOld);
2000-09-18 23:08:29 +00:00
if( DoesUndo() )
{
//JP 06.01.98: MUSS noch optimiert werden!!!
SetRedlineMode(
(RedlineMode_t)(nsRedlineMode_t::REDLINE_ON | nsRedlineMode_t::REDLINE_SHOW_INSERT | nsRedlineMode_t::REDLINE_SHOW_DELETE));
2000-09-18 23:08:29 +00:00
AppendUndo( new SwUndoRedlineDelete( aPam, UNDO_DELETE ));
}
SwRedline* pNewRedline = new SwRedline( nsRedlineType_t::REDLINE_DELETE, aPam );
// #101654# prevent assertion from aPam's target being deleted
// (Alternatively, one could just let aPam go out of scope, but
// that requires touching a lot of code.)
aPam.GetBound(TRUE).nContent.Assign( NULL, 0 );
aPam.GetBound(FALSE).nContent.Assign( NULL, 0 );
AppendRedline( pNewRedline, true );
2000-09-18 23:08:29 +00:00
//JP 06.01.98: MUSS noch optimiert werden!!!
SetRedlineMode( eOld );
EndUndo( UNDO_END, NULL );
2000-09-18 23:08:29 +00:00
SetModified();
2000-09-18 23:08:29 +00:00
return TRUE;
}
}
if( !pOwnRedl && !IsIgnoreRedline() && GetRedlineTbl().Count() )
{
SwPaM aTemp(aIdx);
SplitRedline(aTemp);
2000-09-18 23:08:29 +00:00
}
ULONG nRedlSttNd(0), nRedlEndNd(0);
2000-09-18 23:08:29 +00:00
if( pOwnRedl )
{
const SwPosition *pRStt = pOwnRedl->Start(), *pREnd = pOwnRedl->End();
nRedlSttNd = pRStt->nNode.GetIndex();
nRedlEndNd = pREnd->nNode.GetIndex();
}
SwUndoMoveNum* pUndo = 0;
ULONG nMoved = 0;
2000-09-18 23:08:29 +00:00
if( DoesUndo() )
{
2000-09-18 23:08:29 +00:00
pUndo = new SwUndoMoveNum( rPam, nOffset, bIsOutlMv );
nMoved = rPam.End()->nNode.GetIndex() - rPam.Start()->nNode.GetIndex() + 1;
}
2000-09-18 23:08:29 +00:00
Move( aMvRg, aIdx, DOC_MOVEREDLINES );
if( pUndo )
{
ClearRedo();
// i57907: Under circumstances (sections at the end of a chapter)
// the rPam.Start() is not moved to the new position.
// But aIdx should be at the new end position and as long as the number of moved paragraphs
// is nMoved, I know, where the new position is.
pUndo->SetStartNode( aIdx.GetIndex() - nMoved );
2000-09-18 23:08:29 +00:00
AppendUndo( pUndo );
}
if( pOwnRedl )
{
SwPosition *pRStt = pOwnRedl->Start(), *pREnd = pOwnRedl->End();
if( pRStt->nNode.GetIndex() != nRedlSttNd )
{
pRStt->nNode = nRedlSttNd;
pRStt->nContent.Assign( pRStt->nNode.GetNode().GetCntntNode(),0);
}
if( pREnd->nNode.GetIndex() != nRedlEndNd )
{
pREnd->nNode = nRedlEndNd;
SwCntntNode* pCNd = pREnd->nNode.GetNode().GetCntntNode();
xub_StrLen nL = 0; if( pCNd ) nL = pCNd->Len();
pREnd->nContent.Assign( pCNd, nL );
}
}
SetModified();
return TRUE;
}
BOOL SwDoc::NumOrNoNum( const SwNodeIndex& rIdx, BOOL bDel )
2000-09-18 23:08:29 +00:00
{
INTEGRATION: CWS swnumtree (1.49.32); FILE MERGED 2005/11/03 10:35:51 od 1.49.32.28: #i51089# improve performance - method <SwDoc::GetOutlineNumRule> now inline implemented. - consider change of <SwTxtNode::GetNum()> 2005/11/01 18:07:21 od 1.49.32.27: #i51089# - remove unused code 2005/10/26 10:47:23 od 1.49.32.26: RESYNC: (1.51-1.52); FILE MERGED 2005/10/26 09:34:37 od 1.49.32.25: #b6340308# <SwDoc::SetNumRule(..)> - Only clear numbering rule attribute at current text node, if its paragraph style already contains the new numbering rule. 2005/10/25 06:20:54 od 1.49.32.24: #i51089# - delete unused code. 2005/10/25 05:44:01 od 1.49.32.23: #i55391# <SwDoc::SearchNumRule(..)> - Investigate given start node, if requested. Request is indicated by new parameter <_bInvestigateStartNode> 2005/10/21 11:20:54 od 1.49.32.22: #i51089# - Only the counting of phantoms of the outline numbering rule depends on <SwDoc::IsOldNumbering()> 2005/10/21 08:33:31 od 1.49.32.21: #i55391# <SwDoc::SearchNumRule(..)> - start node has also been investigated. 2005/09/20 14:13:24 fme 1.49.32.20: #i51089# Removed compiler warnings 2005/09/20 11:16:23 hbrinkm 1.49.32.19: #i51089# SwNumRule::Invalidate->SwNumRule::SetInvalidRule(TRUE) 2005/09/14 13:37:29 hbrinkm 1.49.32.18: #i51089# SyncNumRulesAndNodes: UpdateOutlineNode 2005/09/13 20:27:33 hbrinkm 1.49.32.17: RESYNC: (1.50-1.51); FILE MERGED 2005/09/12 15:15:29 hbrinkm 1.49.32.16: #i51089# AddNumRuleRanges 2005/09/07 11:29:02 hbrinkm 1.49.32.15: #i51089# SyncNumRulesAndNodes 2005/09/01 14:46:47 hbrinkm 1.49.32.14: #i51089# NumOrNoNum: only remove hard numbering 2005/08/31 13:34:47 hbrinkm 1.49.32.13: #i51089# NumOrNoNum: Only touch paragraphs with hard numbering that shows number 2005/08/30 12:58:49 hbrinkm 1.49.32.12: #i51089# PropagateOutlineRule: SyncNumAndNumRule after setting of outline level 2005/08/26 13:43:44 hbrinkm 1.49.32.11: #i51089# SetNumRuleStart: bool <-> BOOL 2005/08/23 07:35:20 hbrinkm 1.49.32.10: #i51089# {Outline|Num}UpDown: call ChkCondColls if modified 2005/08/16 15:31:02 hbrinkm 1.49.32.9: #i51089# FindNumRulePtrWithPool 2005/08/11 09:27:49 hbrinkm 1.49.32.8: #i51089# SetNumRule: do not access zero pointer to numrule 2005/08/10 08:07:25 hbrinkm 1.49.32.7: #121445# PropagateOutlineRule: UpdateOutlineNode 2005/08/09 12:36:44 hbrinkm 1.49.32.6: #i51089# 2005/08/04 09:27:27 hbrinkm 1.49.32.5: #121445# PropagateOutlineRule: only propagate numrule if IsOutlineLevelYieldsOutlineRule returns false, #i51089# 2005/08/03 12:22:55 hbrinkm 1.49.32.4: RESYNC: (1.49-1.50); FILE MERGED 2005/07/11 09:14:57 hbrinkm 1.49.32.3: #i51089# NumOrNoNum: only succeed if a real change is made 2005/07/07 12:49:41 hbrinkm 1.49.32.2: #i51089# PropagateOutlineRule: If a paragraph style has outline level and no numbering rule, set the documents's outline numbering rule, MakeUniqueRules: do not alter outline numbering rules 2005/06/22 10:24:52 hbrinkm 1.49.32.1: #i51089# new implementation of numbering
2005-11-08 16:16:30 +00:00
BOOL bResult = FALSE;
SwTxtNode * pTxtNd = rIdx.GetNode().GetTxtNode();
2000-09-18 23:08:29 +00:00
if (pTxtNd && pTxtNd->GetNumRule() != NULL &&
INTEGRATION: CWS swnumtree (1.49.32); FILE MERGED 2005/11/03 10:35:51 od 1.49.32.28: #i51089# improve performance - method <SwDoc::GetOutlineNumRule> now inline implemented. - consider change of <SwTxtNode::GetNum()> 2005/11/01 18:07:21 od 1.49.32.27: #i51089# - remove unused code 2005/10/26 10:47:23 od 1.49.32.26: RESYNC: (1.51-1.52); FILE MERGED 2005/10/26 09:34:37 od 1.49.32.25: #b6340308# <SwDoc::SetNumRule(..)> - Only clear numbering rule attribute at current text node, if its paragraph style already contains the new numbering rule. 2005/10/25 06:20:54 od 1.49.32.24: #i51089# - delete unused code. 2005/10/25 05:44:01 od 1.49.32.23: #i55391# <SwDoc::SearchNumRule(..)> - Investigate given start node, if requested. Request is indicated by new parameter <_bInvestigateStartNode> 2005/10/21 11:20:54 od 1.49.32.22: #i51089# - Only the counting of phantoms of the outline numbering rule depends on <SwDoc::IsOldNumbering()> 2005/10/21 08:33:31 od 1.49.32.21: #i55391# <SwDoc::SearchNumRule(..)> - start node has also been investigated. 2005/09/20 14:13:24 fme 1.49.32.20: #i51089# Removed compiler warnings 2005/09/20 11:16:23 hbrinkm 1.49.32.19: #i51089# SwNumRule::Invalidate->SwNumRule::SetInvalidRule(TRUE) 2005/09/14 13:37:29 hbrinkm 1.49.32.18: #i51089# SyncNumRulesAndNodes: UpdateOutlineNode 2005/09/13 20:27:33 hbrinkm 1.49.32.17: RESYNC: (1.50-1.51); FILE MERGED 2005/09/12 15:15:29 hbrinkm 1.49.32.16: #i51089# AddNumRuleRanges 2005/09/07 11:29:02 hbrinkm 1.49.32.15: #i51089# SyncNumRulesAndNodes 2005/09/01 14:46:47 hbrinkm 1.49.32.14: #i51089# NumOrNoNum: only remove hard numbering 2005/08/31 13:34:47 hbrinkm 1.49.32.13: #i51089# NumOrNoNum: Only touch paragraphs with hard numbering that shows number 2005/08/30 12:58:49 hbrinkm 1.49.32.12: #i51089# PropagateOutlineRule: SyncNumAndNumRule after setting of outline level 2005/08/26 13:43:44 hbrinkm 1.49.32.11: #i51089# SetNumRuleStart: bool <-> BOOL 2005/08/23 07:35:20 hbrinkm 1.49.32.10: #i51089# {Outline|Num}UpDown: call ChkCondColls if modified 2005/08/16 15:31:02 hbrinkm 1.49.32.9: #i51089# FindNumRulePtrWithPool 2005/08/11 09:27:49 hbrinkm 1.49.32.8: #i51089# SetNumRule: do not access zero pointer to numrule 2005/08/10 08:07:25 hbrinkm 1.49.32.7: #121445# PropagateOutlineRule: UpdateOutlineNode 2005/08/09 12:36:44 hbrinkm 1.49.32.6: #i51089# 2005/08/04 09:27:27 hbrinkm 1.49.32.5: #121445# PropagateOutlineRule: only propagate numrule if IsOutlineLevelYieldsOutlineRule returns false, #i51089# 2005/08/03 12:22:55 hbrinkm 1.49.32.4: RESYNC: (1.49-1.50); FILE MERGED 2005/07/11 09:14:57 hbrinkm 1.49.32.3: #i51089# NumOrNoNum: only succeed if a real change is made 2005/07/07 12:49:41 hbrinkm 1.49.32.2: #i51089# PropagateOutlineRule: If a paragraph style has outline level and no numbering rule, set the documents's outline numbering rule, MakeUniqueRules: do not alter outline numbering rules 2005/06/22 10:24:52 hbrinkm 1.49.32.1: #i51089# new implementation of numbering
2005-11-08 16:16:30 +00:00
(pTxtNd->HasNumber() || pTxtNd->HasBullet()))
2000-09-18 23:08:29 +00:00
{
if ( !pTxtNd->IsCountedInList() == !bDel)
2000-09-18 23:08:29 +00:00
{
INTEGRATION: CWS swnumtree (1.49.32); FILE MERGED 2005/11/03 10:35:51 od 1.49.32.28: #i51089# improve performance - method <SwDoc::GetOutlineNumRule> now inline implemented. - consider change of <SwTxtNode::GetNum()> 2005/11/01 18:07:21 od 1.49.32.27: #i51089# - remove unused code 2005/10/26 10:47:23 od 1.49.32.26: RESYNC: (1.51-1.52); FILE MERGED 2005/10/26 09:34:37 od 1.49.32.25: #b6340308# <SwDoc::SetNumRule(..)> - Only clear numbering rule attribute at current text node, if its paragraph style already contains the new numbering rule. 2005/10/25 06:20:54 od 1.49.32.24: #i51089# - delete unused code. 2005/10/25 05:44:01 od 1.49.32.23: #i55391# <SwDoc::SearchNumRule(..)> - Investigate given start node, if requested. Request is indicated by new parameter <_bInvestigateStartNode> 2005/10/21 11:20:54 od 1.49.32.22: #i51089# - Only the counting of phantoms of the outline numbering rule depends on <SwDoc::IsOldNumbering()> 2005/10/21 08:33:31 od 1.49.32.21: #i55391# <SwDoc::SearchNumRule(..)> - start node has also been investigated. 2005/09/20 14:13:24 fme 1.49.32.20: #i51089# Removed compiler warnings 2005/09/20 11:16:23 hbrinkm 1.49.32.19: #i51089# SwNumRule::Invalidate->SwNumRule::SetInvalidRule(TRUE) 2005/09/14 13:37:29 hbrinkm 1.49.32.18: #i51089# SyncNumRulesAndNodes: UpdateOutlineNode 2005/09/13 20:27:33 hbrinkm 1.49.32.17: RESYNC: (1.50-1.51); FILE MERGED 2005/09/12 15:15:29 hbrinkm 1.49.32.16: #i51089# AddNumRuleRanges 2005/09/07 11:29:02 hbrinkm 1.49.32.15: #i51089# SyncNumRulesAndNodes 2005/09/01 14:46:47 hbrinkm 1.49.32.14: #i51089# NumOrNoNum: only remove hard numbering 2005/08/31 13:34:47 hbrinkm 1.49.32.13: #i51089# NumOrNoNum: Only touch paragraphs with hard numbering that shows number 2005/08/30 12:58:49 hbrinkm 1.49.32.12: #i51089# PropagateOutlineRule: SyncNumAndNumRule after setting of outline level 2005/08/26 13:43:44 hbrinkm 1.49.32.11: #i51089# SetNumRuleStart: bool <-> BOOL 2005/08/23 07:35:20 hbrinkm 1.49.32.10: #i51089# {Outline|Num}UpDown: call ChkCondColls if modified 2005/08/16 15:31:02 hbrinkm 1.49.32.9: #i51089# FindNumRulePtrWithPool 2005/08/11 09:27:49 hbrinkm 1.49.32.8: #i51089# SetNumRule: do not access zero pointer to numrule 2005/08/10 08:07:25 hbrinkm 1.49.32.7: #121445# PropagateOutlineRule: UpdateOutlineNode 2005/08/09 12:36:44 hbrinkm 1.49.32.6: #i51089# 2005/08/04 09:27:27 hbrinkm 1.49.32.5: #121445# PropagateOutlineRule: only propagate numrule if IsOutlineLevelYieldsOutlineRule returns false, #i51089# 2005/08/03 12:22:55 hbrinkm 1.49.32.4: RESYNC: (1.49-1.50); FILE MERGED 2005/07/11 09:14:57 hbrinkm 1.49.32.3: #i51089# NumOrNoNum: only succeed if a real change is made 2005/07/07 12:49:41 hbrinkm 1.49.32.2: #i51089# PropagateOutlineRule: If a paragraph style has outline level and no numbering rule, set the documents's outline numbering rule, MakeUniqueRules: do not alter outline numbering rules 2005/06/22 10:24:52 hbrinkm 1.49.32.1: #i51089# new implementation of numbering
2005-11-08 16:16:30 +00:00
BOOL bOldNum = bDel; // == pTxtNd->IsCounted();
BOOL bNewNum = bDel ? FALSE : TRUE;
pTxtNd->SetCountedInList(bNewNum ? true : false);
INTEGRATION: CWS swnumtree (1.49.32); FILE MERGED 2005/11/03 10:35:51 od 1.49.32.28: #i51089# improve performance - method <SwDoc::GetOutlineNumRule> now inline implemented. - consider change of <SwTxtNode::GetNum()> 2005/11/01 18:07:21 od 1.49.32.27: #i51089# - remove unused code 2005/10/26 10:47:23 od 1.49.32.26: RESYNC: (1.51-1.52); FILE MERGED 2005/10/26 09:34:37 od 1.49.32.25: #b6340308# <SwDoc::SetNumRule(..)> - Only clear numbering rule attribute at current text node, if its paragraph style already contains the new numbering rule. 2005/10/25 06:20:54 od 1.49.32.24: #i51089# - delete unused code. 2005/10/25 05:44:01 od 1.49.32.23: #i55391# <SwDoc::SearchNumRule(..)> - Investigate given start node, if requested. Request is indicated by new parameter <_bInvestigateStartNode> 2005/10/21 11:20:54 od 1.49.32.22: #i51089# - Only the counting of phantoms of the outline numbering rule depends on <SwDoc::IsOldNumbering()> 2005/10/21 08:33:31 od 1.49.32.21: #i55391# <SwDoc::SearchNumRule(..)> - start node has also been investigated. 2005/09/20 14:13:24 fme 1.49.32.20: #i51089# Removed compiler warnings 2005/09/20 11:16:23 hbrinkm 1.49.32.19: #i51089# SwNumRule::Invalidate->SwNumRule::SetInvalidRule(TRUE) 2005/09/14 13:37:29 hbrinkm 1.49.32.18: #i51089# SyncNumRulesAndNodes: UpdateOutlineNode 2005/09/13 20:27:33 hbrinkm 1.49.32.17: RESYNC: (1.50-1.51); FILE MERGED 2005/09/12 15:15:29 hbrinkm 1.49.32.16: #i51089# AddNumRuleRanges 2005/09/07 11:29:02 hbrinkm 1.49.32.15: #i51089# SyncNumRulesAndNodes 2005/09/01 14:46:47 hbrinkm 1.49.32.14: #i51089# NumOrNoNum: only remove hard numbering 2005/08/31 13:34:47 hbrinkm 1.49.32.13: #i51089# NumOrNoNum: Only touch paragraphs with hard numbering that shows number 2005/08/30 12:58:49 hbrinkm 1.49.32.12: #i51089# PropagateOutlineRule: SyncNumAndNumRule after setting of outline level 2005/08/26 13:43:44 hbrinkm 1.49.32.11: #i51089# SetNumRuleStart: bool <-> BOOL 2005/08/23 07:35:20 hbrinkm 1.49.32.10: #i51089# {Outline|Num}UpDown: call ChkCondColls if modified 2005/08/16 15:31:02 hbrinkm 1.49.32.9: #i51089# FindNumRulePtrWithPool 2005/08/11 09:27:49 hbrinkm 1.49.32.8: #i51089# SetNumRule: do not access zero pointer to numrule 2005/08/10 08:07:25 hbrinkm 1.49.32.7: #121445# PropagateOutlineRule: UpdateOutlineNode 2005/08/09 12:36:44 hbrinkm 1.49.32.6: #i51089# 2005/08/04 09:27:27 hbrinkm 1.49.32.5: #121445# PropagateOutlineRule: only propagate numrule if IsOutlineLevelYieldsOutlineRule returns false, #i51089# 2005/08/03 12:22:55 hbrinkm 1.49.32.4: RESYNC: (1.49-1.50); FILE MERGED 2005/07/11 09:14:57 hbrinkm 1.49.32.3: #i51089# NumOrNoNum: only succeed if a real change is made 2005/07/07 12:49:41 hbrinkm 1.49.32.2: #i51089# PropagateOutlineRule: If a paragraph style has outline level and no numbering rule, set the documents's outline numbering rule, MakeUniqueRules: do not alter outline numbering rules 2005/06/22 10:24:52 hbrinkm 1.49.32.1: #i51089# new implementation of numbering
2005-11-08 16:16:30 +00:00
SetModified();
2004-05-13 09:42:18 +00:00
INTEGRATION: CWS swnumtree (1.49.32); FILE MERGED 2005/11/03 10:35:51 od 1.49.32.28: #i51089# improve performance - method <SwDoc::GetOutlineNumRule> now inline implemented. - consider change of <SwTxtNode::GetNum()> 2005/11/01 18:07:21 od 1.49.32.27: #i51089# - remove unused code 2005/10/26 10:47:23 od 1.49.32.26: RESYNC: (1.51-1.52); FILE MERGED 2005/10/26 09:34:37 od 1.49.32.25: #b6340308# <SwDoc::SetNumRule(..)> - Only clear numbering rule attribute at current text node, if its paragraph style already contains the new numbering rule. 2005/10/25 06:20:54 od 1.49.32.24: #i51089# - delete unused code. 2005/10/25 05:44:01 od 1.49.32.23: #i55391# <SwDoc::SearchNumRule(..)> - Investigate given start node, if requested. Request is indicated by new parameter <_bInvestigateStartNode> 2005/10/21 11:20:54 od 1.49.32.22: #i51089# - Only the counting of phantoms of the outline numbering rule depends on <SwDoc::IsOldNumbering()> 2005/10/21 08:33:31 od 1.49.32.21: #i55391# <SwDoc::SearchNumRule(..)> - start node has also been investigated. 2005/09/20 14:13:24 fme 1.49.32.20: #i51089# Removed compiler warnings 2005/09/20 11:16:23 hbrinkm 1.49.32.19: #i51089# SwNumRule::Invalidate->SwNumRule::SetInvalidRule(TRUE) 2005/09/14 13:37:29 hbrinkm 1.49.32.18: #i51089# SyncNumRulesAndNodes: UpdateOutlineNode 2005/09/13 20:27:33 hbrinkm 1.49.32.17: RESYNC: (1.50-1.51); FILE MERGED 2005/09/12 15:15:29 hbrinkm 1.49.32.16: #i51089# AddNumRuleRanges 2005/09/07 11:29:02 hbrinkm 1.49.32.15: #i51089# SyncNumRulesAndNodes 2005/09/01 14:46:47 hbrinkm 1.49.32.14: #i51089# NumOrNoNum: only remove hard numbering 2005/08/31 13:34:47 hbrinkm 1.49.32.13: #i51089# NumOrNoNum: Only touch paragraphs with hard numbering that shows number 2005/08/30 12:58:49 hbrinkm 1.49.32.12: #i51089# PropagateOutlineRule: SyncNumAndNumRule after setting of outline level 2005/08/26 13:43:44 hbrinkm 1.49.32.11: #i51089# SetNumRuleStart: bool <-> BOOL 2005/08/23 07:35:20 hbrinkm 1.49.32.10: #i51089# {Outline|Num}UpDown: call ChkCondColls if modified 2005/08/16 15:31:02 hbrinkm 1.49.32.9: #i51089# FindNumRulePtrWithPool 2005/08/11 09:27:49 hbrinkm 1.49.32.8: #i51089# SetNumRule: do not access zero pointer to numrule 2005/08/10 08:07:25 hbrinkm 1.49.32.7: #121445# PropagateOutlineRule: UpdateOutlineNode 2005/08/09 12:36:44 hbrinkm 1.49.32.6: #i51089# 2005/08/04 09:27:27 hbrinkm 1.49.32.5: #121445# PropagateOutlineRule: only propagate numrule if IsOutlineLevelYieldsOutlineRule returns false, #i51089# 2005/08/03 12:22:55 hbrinkm 1.49.32.4: RESYNC: (1.49-1.50); FILE MERGED 2005/07/11 09:14:57 hbrinkm 1.49.32.3: #i51089# NumOrNoNum: only succeed if a real change is made 2005/07/07 12:49:41 hbrinkm 1.49.32.2: #i51089# PropagateOutlineRule: If a paragraph style has outline level and no numbering rule, set the documents's outline numbering rule, MakeUniqueRules: do not alter outline numbering rules 2005/06/22 10:24:52 hbrinkm 1.49.32.1: #i51089# new implementation of numbering
2005-11-08 16:16:30 +00:00
bResult = TRUE;
2004-05-13 09:42:18 +00:00
INTEGRATION: CWS swnumtree (1.49.32); FILE MERGED 2005/11/03 10:35:51 od 1.49.32.28: #i51089# improve performance - method <SwDoc::GetOutlineNumRule> now inline implemented. - consider change of <SwTxtNode::GetNum()> 2005/11/01 18:07:21 od 1.49.32.27: #i51089# - remove unused code 2005/10/26 10:47:23 od 1.49.32.26: RESYNC: (1.51-1.52); FILE MERGED 2005/10/26 09:34:37 od 1.49.32.25: #b6340308# <SwDoc::SetNumRule(..)> - Only clear numbering rule attribute at current text node, if its paragraph style already contains the new numbering rule. 2005/10/25 06:20:54 od 1.49.32.24: #i51089# - delete unused code. 2005/10/25 05:44:01 od 1.49.32.23: #i55391# <SwDoc::SearchNumRule(..)> - Investigate given start node, if requested. Request is indicated by new parameter <_bInvestigateStartNode> 2005/10/21 11:20:54 od 1.49.32.22: #i51089# - Only the counting of phantoms of the outline numbering rule depends on <SwDoc::IsOldNumbering()> 2005/10/21 08:33:31 od 1.49.32.21: #i55391# <SwDoc::SearchNumRule(..)> - start node has also been investigated. 2005/09/20 14:13:24 fme 1.49.32.20: #i51089# Removed compiler warnings 2005/09/20 11:16:23 hbrinkm 1.49.32.19: #i51089# SwNumRule::Invalidate->SwNumRule::SetInvalidRule(TRUE) 2005/09/14 13:37:29 hbrinkm 1.49.32.18: #i51089# SyncNumRulesAndNodes: UpdateOutlineNode 2005/09/13 20:27:33 hbrinkm 1.49.32.17: RESYNC: (1.50-1.51); FILE MERGED 2005/09/12 15:15:29 hbrinkm 1.49.32.16: #i51089# AddNumRuleRanges 2005/09/07 11:29:02 hbrinkm 1.49.32.15: #i51089# SyncNumRulesAndNodes 2005/09/01 14:46:47 hbrinkm 1.49.32.14: #i51089# NumOrNoNum: only remove hard numbering 2005/08/31 13:34:47 hbrinkm 1.49.32.13: #i51089# NumOrNoNum: Only touch paragraphs with hard numbering that shows number 2005/08/30 12:58:49 hbrinkm 1.49.32.12: #i51089# PropagateOutlineRule: SyncNumAndNumRule after setting of outline level 2005/08/26 13:43:44 hbrinkm 1.49.32.11: #i51089# SetNumRuleStart: bool <-> BOOL 2005/08/23 07:35:20 hbrinkm 1.49.32.10: #i51089# {Outline|Num}UpDown: call ChkCondColls if modified 2005/08/16 15:31:02 hbrinkm 1.49.32.9: #i51089# FindNumRulePtrWithPool 2005/08/11 09:27:49 hbrinkm 1.49.32.8: #i51089# SetNumRule: do not access zero pointer to numrule 2005/08/10 08:07:25 hbrinkm 1.49.32.7: #121445# PropagateOutlineRule: UpdateOutlineNode 2005/08/09 12:36:44 hbrinkm 1.49.32.6: #i51089# 2005/08/04 09:27:27 hbrinkm 1.49.32.5: #121445# PropagateOutlineRule: only propagate numrule if IsOutlineLevelYieldsOutlineRule returns false, #i51089# 2005/08/03 12:22:55 hbrinkm 1.49.32.4: RESYNC: (1.49-1.50); FILE MERGED 2005/07/11 09:14:57 hbrinkm 1.49.32.3: #i51089# NumOrNoNum: only succeed if a real change is made 2005/07/07 12:49:41 hbrinkm 1.49.32.2: #i51089# PropagateOutlineRule: If a paragraph style has outline level and no numbering rule, set the documents's outline numbering rule, MakeUniqueRules: do not alter outline numbering rules 2005/06/22 10:24:52 hbrinkm 1.49.32.1: #i51089# new implementation of numbering
2005-11-08 16:16:30 +00:00
if (DoesUndo())
{
INTEGRATION: CWS swnumtree (1.49.32); FILE MERGED 2005/11/03 10:35:51 od 1.49.32.28: #i51089# improve performance - method <SwDoc::GetOutlineNumRule> now inline implemented. - consider change of <SwTxtNode::GetNum()> 2005/11/01 18:07:21 od 1.49.32.27: #i51089# - remove unused code 2005/10/26 10:47:23 od 1.49.32.26: RESYNC: (1.51-1.52); FILE MERGED 2005/10/26 09:34:37 od 1.49.32.25: #b6340308# <SwDoc::SetNumRule(..)> - Only clear numbering rule attribute at current text node, if its paragraph style already contains the new numbering rule. 2005/10/25 06:20:54 od 1.49.32.24: #i51089# - delete unused code. 2005/10/25 05:44:01 od 1.49.32.23: #i55391# <SwDoc::SearchNumRule(..)> - Investigate given start node, if requested. Request is indicated by new parameter <_bInvestigateStartNode> 2005/10/21 11:20:54 od 1.49.32.22: #i51089# - Only the counting of phantoms of the outline numbering rule depends on <SwDoc::IsOldNumbering()> 2005/10/21 08:33:31 od 1.49.32.21: #i55391# <SwDoc::SearchNumRule(..)> - start node has also been investigated. 2005/09/20 14:13:24 fme 1.49.32.20: #i51089# Removed compiler warnings 2005/09/20 11:16:23 hbrinkm 1.49.32.19: #i51089# SwNumRule::Invalidate->SwNumRule::SetInvalidRule(TRUE) 2005/09/14 13:37:29 hbrinkm 1.49.32.18: #i51089# SyncNumRulesAndNodes: UpdateOutlineNode 2005/09/13 20:27:33 hbrinkm 1.49.32.17: RESYNC: (1.50-1.51); FILE MERGED 2005/09/12 15:15:29 hbrinkm 1.49.32.16: #i51089# AddNumRuleRanges 2005/09/07 11:29:02 hbrinkm 1.49.32.15: #i51089# SyncNumRulesAndNodes 2005/09/01 14:46:47 hbrinkm 1.49.32.14: #i51089# NumOrNoNum: only remove hard numbering 2005/08/31 13:34:47 hbrinkm 1.49.32.13: #i51089# NumOrNoNum: Only touch paragraphs with hard numbering that shows number 2005/08/30 12:58:49 hbrinkm 1.49.32.12: #i51089# PropagateOutlineRule: SyncNumAndNumRule after setting of outline level 2005/08/26 13:43:44 hbrinkm 1.49.32.11: #i51089# SetNumRuleStart: bool <-> BOOL 2005/08/23 07:35:20 hbrinkm 1.49.32.10: #i51089# {Outline|Num}UpDown: call ChkCondColls if modified 2005/08/16 15:31:02 hbrinkm 1.49.32.9: #i51089# FindNumRulePtrWithPool 2005/08/11 09:27:49 hbrinkm 1.49.32.8: #i51089# SetNumRule: do not access zero pointer to numrule 2005/08/10 08:07:25 hbrinkm 1.49.32.7: #121445# PropagateOutlineRule: UpdateOutlineNode 2005/08/09 12:36:44 hbrinkm 1.49.32.6: #i51089# 2005/08/04 09:27:27 hbrinkm 1.49.32.5: #121445# PropagateOutlineRule: only propagate numrule if IsOutlineLevelYieldsOutlineRule returns false, #i51089# 2005/08/03 12:22:55 hbrinkm 1.49.32.4: RESYNC: (1.49-1.50); FILE MERGED 2005/07/11 09:14:57 hbrinkm 1.49.32.3: #i51089# NumOrNoNum: only succeed if a real change is made 2005/07/07 12:49:41 hbrinkm 1.49.32.2: #i51089# PropagateOutlineRule: If a paragraph style has outline level and no numbering rule, set the documents's outline numbering rule, MakeUniqueRules: do not alter outline numbering rules 2005/06/22 10:24:52 hbrinkm 1.49.32.1: #i51089# new implementation of numbering
2005-11-08 16:16:30 +00:00
SwUndoNumOrNoNum * pUndo =
new SwUndoNumOrNoNum(rIdx, bOldNum, bNewNum);
INTEGRATION: CWS swnumtree (1.49.32); FILE MERGED 2005/11/03 10:35:51 od 1.49.32.28: #i51089# improve performance - method <SwDoc::GetOutlineNumRule> now inline implemented. - consider change of <SwTxtNode::GetNum()> 2005/11/01 18:07:21 od 1.49.32.27: #i51089# - remove unused code 2005/10/26 10:47:23 od 1.49.32.26: RESYNC: (1.51-1.52); FILE MERGED 2005/10/26 09:34:37 od 1.49.32.25: #b6340308# <SwDoc::SetNumRule(..)> - Only clear numbering rule attribute at current text node, if its paragraph style already contains the new numbering rule. 2005/10/25 06:20:54 od 1.49.32.24: #i51089# - delete unused code. 2005/10/25 05:44:01 od 1.49.32.23: #i55391# <SwDoc::SearchNumRule(..)> - Investigate given start node, if requested. Request is indicated by new parameter <_bInvestigateStartNode> 2005/10/21 11:20:54 od 1.49.32.22: #i51089# - Only the counting of phantoms of the outline numbering rule depends on <SwDoc::IsOldNumbering()> 2005/10/21 08:33:31 od 1.49.32.21: #i55391# <SwDoc::SearchNumRule(..)> - start node has also been investigated. 2005/09/20 14:13:24 fme 1.49.32.20: #i51089# Removed compiler warnings 2005/09/20 11:16:23 hbrinkm 1.49.32.19: #i51089# SwNumRule::Invalidate->SwNumRule::SetInvalidRule(TRUE) 2005/09/14 13:37:29 hbrinkm 1.49.32.18: #i51089# SyncNumRulesAndNodes: UpdateOutlineNode 2005/09/13 20:27:33 hbrinkm 1.49.32.17: RESYNC: (1.50-1.51); FILE MERGED 2005/09/12 15:15:29 hbrinkm 1.49.32.16: #i51089# AddNumRuleRanges 2005/09/07 11:29:02 hbrinkm 1.49.32.15: #i51089# SyncNumRulesAndNodes 2005/09/01 14:46:47 hbrinkm 1.49.32.14: #i51089# NumOrNoNum: only remove hard numbering 2005/08/31 13:34:47 hbrinkm 1.49.32.13: #i51089# NumOrNoNum: Only touch paragraphs with hard numbering that shows number 2005/08/30 12:58:49 hbrinkm 1.49.32.12: #i51089# PropagateOutlineRule: SyncNumAndNumRule after setting of outline level 2005/08/26 13:43:44 hbrinkm 1.49.32.11: #i51089# SetNumRuleStart: bool <-> BOOL 2005/08/23 07:35:20 hbrinkm 1.49.32.10: #i51089# {Outline|Num}UpDown: call ChkCondColls if modified 2005/08/16 15:31:02 hbrinkm 1.49.32.9: #i51089# FindNumRulePtrWithPool 2005/08/11 09:27:49 hbrinkm 1.49.32.8: #i51089# SetNumRule: do not access zero pointer to numrule 2005/08/10 08:07:25 hbrinkm 1.49.32.7: #121445# PropagateOutlineRule: UpdateOutlineNode 2005/08/09 12:36:44 hbrinkm 1.49.32.6: #i51089# 2005/08/04 09:27:27 hbrinkm 1.49.32.5: #121445# PropagateOutlineRule: only propagate numrule if IsOutlineLevelYieldsOutlineRule returns false, #i51089# 2005/08/03 12:22:55 hbrinkm 1.49.32.4: RESYNC: (1.49-1.50); FILE MERGED 2005/07/11 09:14:57 hbrinkm 1.49.32.3: #i51089# NumOrNoNum: only succeed if a real change is made 2005/07/07 12:49:41 hbrinkm 1.49.32.2: #i51089# PropagateOutlineRule: If a paragraph style has outline level and no numbering rule, set the documents's outline numbering rule, MakeUniqueRules: do not alter outline numbering rules 2005/06/22 10:24:52 hbrinkm 1.49.32.1: #i51089# new implementation of numbering
2005-11-08 16:16:30 +00:00
AppendUndo(pUndo);
}
2000-09-18 23:08:29 +00:00
}
INTEGRATION: CWS swnumtree (1.49.32); FILE MERGED 2005/11/03 10:35:51 od 1.49.32.28: #i51089# improve performance - method <SwDoc::GetOutlineNumRule> now inline implemented. - consider change of <SwTxtNode::GetNum()> 2005/11/01 18:07:21 od 1.49.32.27: #i51089# - remove unused code 2005/10/26 10:47:23 od 1.49.32.26: RESYNC: (1.51-1.52); FILE MERGED 2005/10/26 09:34:37 od 1.49.32.25: #b6340308# <SwDoc::SetNumRule(..)> - Only clear numbering rule attribute at current text node, if its paragraph style already contains the new numbering rule. 2005/10/25 06:20:54 od 1.49.32.24: #i51089# - delete unused code. 2005/10/25 05:44:01 od 1.49.32.23: #i55391# <SwDoc::SearchNumRule(..)> - Investigate given start node, if requested. Request is indicated by new parameter <_bInvestigateStartNode> 2005/10/21 11:20:54 od 1.49.32.22: #i51089# - Only the counting of phantoms of the outline numbering rule depends on <SwDoc::IsOldNumbering()> 2005/10/21 08:33:31 od 1.49.32.21: #i55391# <SwDoc::SearchNumRule(..)> - start node has also been investigated. 2005/09/20 14:13:24 fme 1.49.32.20: #i51089# Removed compiler warnings 2005/09/20 11:16:23 hbrinkm 1.49.32.19: #i51089# SwNumRule::Invalidate->SwNumRule::SetInvalidRule(TRUE) 2005/09/14 13:37:29 hbrinkm 1.49.32.18: #i51089# SyncNumRulesAndNodes: UpdateOutlineNode 2005/09/13 20:27:33 hbrinkm 1.49.32.17: RESYNC: (1.50-1.51); FILE MERGED 2005/09/12 15:15:29 hbrinkm 1.49.32.16: #i51089# AddNumRuleRanges 2005/09/07 11:29:02 hbrinkm 1.49.32.15: #i51089# SyncNumRulesAndNodes 2005/09/01 14:46:47 hbrinkm 1.49.32.14: #i51089# NumOrNoNum: only remove hard numbering 2005/08/31 13:34:47 hbrinkm 1.49.32.13: #i51089# NumOrNoNum: Only touch paragraphs with hard numbering that shows number 2005/08/30 12:58:49 hbrinkm 1.49.32.12: #i51089# PropagateOutlineRule: SyncNumAndNumRule after setting of outline level 2005/08/26 13:43:44 hbrinkm 1.49.32.11: #i51089# SetNumRuleStart: bool <-> BOOL 2005/08/23 07:35:20 hbrinkm 1.49.32.10: #i51089# {Outline|Num}UpDown: call ChkCondColls if modified 2005/08/16 15:31:02 hbrinkm 1.49.32.9: #i51089# FindNumRulePtrWithPool 2005/08/11 09:27:49 hbrinkm 1.49.32.8: #i51089# SetNumRule: do not access zero pointer to numrule 2005/08/10 08:07:25 hbrinkm 1.49.32.7: #121445# PropagateOutlineRule: UpdateOutlineNode 2005/08/09 12:36:44 hbrinkm 1.49.32.6: #i51089# 2005/08/04 09:27:27 hbrinkm 1.49.32.5: #121445# PropagateOutlineRule: only propagate numrule if IsOutlineLevelYieldsOutlineRule returns false, #i51089# 2005/08/03 12:22:55 hbrinkm 1.49.32.4: RESYNC: (1.49-1.50); FILE MERGED 2005/07/11 09:14:57 hbrinkm 1.49.32.3: #i51089# NumOrNoNum: only succeed if a real change is made 2005/07/07 12:49:41 hbrinkm 1.49.32.2: #i51089# PropagateOutlineRule: If a paragraph style has outline level and no numbering rule, set the documents's outline numbering rule, MakeUniqueRules: do not alter outline numbering rules 2005/06/22 10:24:52 hbrinkm 1.49.32.1: #i51089# new implementation of numbering
2005-11-08 16:16:30 +00:00
else if (bDel && pTxtNd->GetNumRule(FALSE) &&
pTxtNd->GetActualListLevel() >= 0 &&
pTxtNd->GetActualListLevel() < MAXLEVEL)
{
INTEGRATION: CWS swnumtree (1.49.32); FILE MERGED 2005/11/03 10:35:51 od 1.49.32.28: #i51089# improve performance - method <SwDoc::GetOutlineNumRule> now inline implemented. - consider change of <SwTxtNode::GetNum()> 2005/11/01 18:07:21 od 1.49.32.27: #i51089# - remove unused code 2005/10/26 10:47:23 od 1.49.32.26: RESYNC: (1.51-1.52); FILE MERGED 2005/10/26 09:34:37 od 1.49.32.25: #b6340308# <SwDoc::SetNumRule(..)> - Only clear numbering rule attribute at current text node, if its paragraph style already contains the new numbering rule. 2005/10/25 06:20:54 od 1.49.32.24: #i51089# - delete unused code. 2005/10/25 05:44:01 od 1.49.32.23: #i55391# <SwDoc::SearchNumRule(..)> - Investigate given start node, if requested. Request is indicated by new parameter <_bInvestigateStartNode> 2005/10/21 11:20:54 od 1.49.32.22: #i51089# - Only the counting of phantoms of the outline numbering rule depends on <SwDoc::IsOldNumbering()> 2005/10/21 08:33:31 od 1.49.32.21: #i55391# <SwDoc::SearchNumRule(..)> - start node has also been investigated. 2005/09/20 14:13:24 fme 1.49.32.20: #i51089# Removed compiler warnings 2005/09/20 11:16:23 hbrinkm 1.49.32.19: #i51089# SwNumRule::Invalidate->SwNumRule::SetInvalidRule(TRUE) 2005/09/14 13:37:29 hbrinkm 1.49.32.18: #i51089# SyncNumRulesAndNodes: UpdateOutlineNode 2005/09/13 20:27:33 hbrinkm 1.49.32.17: RESYNC: (1.50-1.51); FILE MERGED 2005/09/12 15:15:29 hbrinkm 1.49.32.16: #i51089# AddNumRuleRanges 2005/09/07 11:29:02 hbrinkm 1.49.32.15: #i51089# SyncNumRulesAndNodes 2005/09/01 14:46:47 hbrinkm 1.49.32.14: #i51089# NumOrNoNum: only remove hard numbering 2005/08/31 13:34:47 hbrinkm 1.49.32.13: #i51089# NumOrNoNum: Only touch paragraphs with hard numbering that shows number 2005/08/30 12:58:49 hbrinkm 1.49.32.12: #i51089# PropagateOutlineRule: SyncNumAndNumRule after setting of outline level 2005/08/26 13:43:44 hbrinkm 1.49.32.11: #i51089# SetNumRuleStart: bool <-> BOOL 2005/08/23 07:35:20 hbrinkm 1.49.32.10: #i51089# {Outline|Num}UpDown: call ChkCondColls if modified 2005/08/16 15:31:02 hbrinkm 1.49.32.9: #i51089# FindNumRulePtrWithPool 2005/08/11 09:27:49 hbrinkm 1.49.32.8: #i51089# SetNumRule: do not access zero pointer to numrule 2005/08/10 08:07:25 hbrinkm 1.49.32.7: #121445# PropagateOutlineRule: UpdateOutlineNode 2005/08/09 12:36:44 hbrinkm 1.49.32.6: #i51089# 2005/08/04 09:27:27 hbrinkm 1.49.32.5: #121445# PropagateOutlineRule: only propagate numrule if IsOutlineLevelYieldsOutlineRule returns false, #i51089# 2005/08/03 12:22:55 hbrinkm 1.49.32.4: RESYNC: (1.49-1.50); FILE MERGED 2005/07/11 09:14:57 hbrinkm 1.49.32.3: #i51089# NumOrNoNum: only succeed if a real change is made 2005/07/07 12:49:41 hbrinkm 1.49.32.2: #i51089# PropagateOutlineRule: If a paragraph style has outline level and no numbering rule, set the documents's outline numbering rule, MakeUniqueRules: do not alter outline numbering rules 2005/06/22 10:24:52 hbrinkm 1.49.32.1: #i51089# new implementation of numbering
2005-11-08 16:16:30 +00:00
SwPaM aPam(*pTxtNd);
DelNumRules(aPam);
INTEGRATION: CWS swnumtree (1.49.32); FILE MERGED 2005/11/03 10:35:51 od 1.49.32.28: #i51089# improve performance - method <SwDoc::GetOutlineNumRule> now inline implemented. - consider change of <SwTxtNode::GetNum()> 2005/11/01 18:07:21 od 1.49.32.27: #i51089# - remove unused code 2005/10/26 10:47:23 od 1.49.32.26: RESYNC: (1.51-1.52); FILE MERGED 2005/10/26 09:34:37 od 1.49.32.25: #b6340308# <SwDoc::SetNumRule(..)> - Only clear numbering rule attribute at current text node, if its paragraph style already contains the new numbering rule. 2005/10/25 06:20:54 od 1.49.32.24: #i51089# - delete unused code. 2005/10/25 05:44:01 od 1.49.32.23: #i55391# <SwDoc::SearchNumRule(..)> - Investigate given start node, if requested. Request is indicated by new parameter <_bInvestigateStartNode> 2005/10/21 11:20:54 od 1.49.32.22: #i51089# - Only the counting of phantoms of the outline numbering rule depends on <SwDoc::IsOldNumbering()> 2005/10/21 08:33:31 od 1.49.32.21: #i55391# <SwDoc::SearchNumRule(..)> - start node has also been investigated. 2005/09/20 14:13:24 fme 1.49.32.20: #i51089# Removed compiler warnings 2005/09/20 11:16:23 hbrinkm 1.49.32.19: #i51089# SwNumRule::Invalidate->SwNumRule::SetInvalidRule(TRUE) 2005/09/14 13:37:29 hbrinkm 1.49.32.18: #i51089# SyncNumRulesAndNodes: UpdateOutlineNode 2005/09/13 20:27:33 hbrinkm 1.49.32.17: RESYNC: (1.50-1.51); FILE MERGED 2005/09/12 15:15:29 hbrinkm 1.49.32.16: #i51089# AddNumRuleRanges 2005/09/07 11:29:02 hbrinkm 1.49.32.15: #i51089# SyncNumRulesAndNodes 2005/09/01 14:46:47 hbrinkm 1.49.32.14: #i51089# NumOrNoNum: only remove hard numbering 2005/08/31 13:34:47 hbrinkm 1.49.32.13: #i51089# NumOrNoNum: Only touch paragraphs with hard numbering that shows number 2005/08/30 12:58:49 hbrinkm 1.49.32.12: #i51089# PropagateOutlineRule: SyncNumAndNumRule after setting of outline level 2005/08/26 13:43:44 hbrinkm 1.49.32.11: #i51089# SetNumRuleStart: bool <-> BOOL 2005/08/23 07:35:20 hbrinkm 1.49.32.10: #i51089# {Outline|Num}UpDown: call ChkCondColls if modified 2005/08/16 15:31:02 hbrinkm 1.49.32.9: #i51089# FindNumRulePtrWithPool 2005/08/11 09:27:49 hbrinkm 1.49.32.8: #i51089# SetNumRule: do not access zero pointer to numrule 2005/08/10 08:07:25 hbrinkm 1.49.32.7: #121445# PropagateOutlineRule: UpdateOutlineNode 2005/08/09 12:36:44 hbrinkm 1.49.32.6: #i51089# 2005/08/04 09:27:27 hbrinkm 1.49.32.5: #121445# PropagateOutlineRule: only propagate numrule if IsOutlineLevelYieldsOutlineRule returns false, #i51089# 2005/08/03 12:22:55 hbrinkm 1.49.32.4: RESYNC: (1.49-1.50); FILE MERGED 2005/07/11 09:14:57 hbrinkm 1.49.32.3: #i51089# NumOrNoNum: only succeed if a real change is made 2005/07/07 12:49:41 hbrinkm 1.49.32.2: #i51089# PropagateOutlineRule: If a paragraph style has outline level and no numbering rule, set the documents's outline numbering rule, MakeUniqueRules: do not alter outline numbering rules 2005/06/22 10:24:52 hbrinkm 1.49.32.1: #i51089# new implementation of numbering
2005-11-08 16:16:30 +00:00
bResult = TRUE;
}
2000-09-18 23:08:29 +00:00
}
INTEGRATION: CWS swnumtree (1.49.32); FILE MERGED 2005/11/03 10:35:51 od 1.49.32.28: #i51089# improve performance - method <SwDoc::GetOutlineNumRule> now inline implemented. - consider change of <SwTxtNode::GetNum()> 2005/11/01 18:07:21 od 1.49.32.27: #i51089# - remove unused code 2005/10/26 10:47:23 od 1.49.32.26: RESYNC: (1.51-1.52); FILE MERGED 2005/10/26 09:34:37 od 1.49.32.25: #b6340308# <SwDoc::SetNumRule(..)> - Only clear numbering rule attribute at current text node, if its paragraph style already contains the new numbering rule. 2005/10/25 06:20:54 od 1.49.32.24: #i51089# - delete unused code. 2005/10/25 05:44:01 od 1.49.32.23: #i55391# <SwDoc::SearchNumRule(..)> - Investigate given start node, if requested. Request is indicated by new parameter <_bInvestigateStartNode> 2005/10/21 11:20:54 od 1.49.32.22: #i51089# - Only the counting of phantoms of the outline numbering rule depends on <SwDoc::IsOldNumbering()> 2005/10/21 08:33:31 od 1.49.32.21: #i55391# <SwDoc::SearchNumRule(..)> - start node has also been investigated. 2005/09/20 14:13:24 fme 1.49.32.20: #i51089# Removed compiler warnings 2005/09/20 11:16:23 hbrinkm 1.49.32.19: #i51089# SwNumRule::Invalidate->SwNumRule::SetInvalidRule(TRUE) 2005/09/14 13:37:29 hbrinkm 1.49.32.18: #i51089# SyncNumRulesAndNodes: UpdateOutlineNode 2005/09/13 20:27:33 hbrinkm 1.49.32.17: RESYNC: (1.50-1.51); FILE MERGED 2005/09/12 15:15:29 hbrinkm 1.49.32.16: #i51089# AddNumRuleRanges 2005/09/07 11:29:02 hbrinkm 1.49.32.15: #i51089# SyncNumRulesAndNodes 2005/09/01 14:46:47 hbrinkm 1.49.32.14: #i51089# NumOrNoNum: only remove hard numbering 2005/08/31 13:34:47 hbrinkm 1.49.32.13: #i51089# NumOrNoNum: Only touch paragraphs with hard numbering that shows number 2005/08/30 12:58:49 hbrinkm 1.49.32.12: #i51089# PropagateOutlineRule: SyncNumAndNumRule after setting of outline level 2005/08/26 13:43:44 hbrinkm 1.49.32.11: #i51089# SetNumRuleStart: bool <-> BOOL 2005/08/23 07:35:20 hbrinkm 1.49.32.10: #i51089# {Outline|Num}UpDown: call ChkCondColls if modified 2005/08/16 15:31:02 hbrinkm 1.49.32.9: #i51089# FindNumRulePtrWithPool 2005/08/11 09:27:49 hbrinkm 1.49.32.8: #i51089# SetNumRule: do not access zero pointer to numrule 2005/08/10 08:07:25 hbrinkm 1.49.32.7: #121445# PropagateOutlineRule: UpdateOutlineNode 2005/08/09 12:36:44 hbrinkm 1.49.32.6: #i51089# 2005/08/04 09:27:27 hbrinkm 1.49.32.5: #121445# PropagateOutlineRule: only propagate numrule if IsOutlineLevelYieldsOutlineRule returns false, #i51089# 2005/08/03 12:22:55 hbrinkm 1.49.32.4: RESYNC: (1.49-1.50); FILE MERGED 2005/07/11 09:14:57 hbrinkm 1.49.32.3: #i51089# NumOrNoNum: only succeed if a real change is made 2005/07/07 12:49:41 hbrinkm 1.49.32.2: #i51089# PropagateOutlineRule: If a paragraph style has outline level and no numbering rule, set the documents's outline numbering rule, MakeUniqueRules: do not alter outline numbering rules 2005/06/22 10:24:52 hbrinkm 1.49.32.1: #i51089# new implementation of numbering
2005-11-08 16:16:30 +00:00
return bResult;
2000-09-18 23:08:29 +00:00
}
SwNumRule* SwDoc::GetCurrNumRule( const SwPosition& rPos ) const
{
SwNumRule* pRet = 0;
SwTxtNode* pTNd = rPos.nNode.GetNode().GetTxtNode();
if( pTNd )
INTEGRATION: CWS swnumtree (1.49.32); FILE MERGED 2005/11/03 10:35:51 od 1.49.32.28: #i51089# improve performance - method <SwDoc::GetOutlineNumRule> now inline implemented. - consider change of <SwTxtNode::GetNum()> 2005/11/01 18:07:21 od 1.49.32.27: #i51089# - remove unused code 2005/10/26 10:47:23 od 1.49.32.26: RESYNC: (1.51-1.52); FILE MERGED 2005/10/26 09:34:37 od 1.49.32.25: #b6340308# <SwDoc::SetNumRule(..)> - Only clear numbering rule attribute at current text node, if its paragraph style already contains the new numbering rule. 2005/10/25 06:20:54 od 1.49.32.24: #i51089# - delete unused code. 2005/10/25 05:44:01 od 1.49.32.23: #i55391# <SwDoc::SearchNumRule(..)> - Investigate given start node, if requested. Request is indicated by new parameter <_bInvestigateStartNode> 2005/10/21 11:20:54 od 1.49.32.22: #i51089# - Only the counting of phantoms of the outline numbering rule depends on <SwDoc::IsOldNumbering()> 2005/10/21 08:33:31 od 1.49.32.21: #i55391# <SwDoc::SearchNumRule(..)> - start node has also been investigated. 2005/09/20 14:13:24 fme 1.49.32.20: #i51089# Removed compiler warnings 2005/09/20 11:16:23 hbrinkm 1.49.32.19: #i51089# SwNumRule::Invalidate->SwNumRule::SetInvalidRule(TRUE) 2005/09/14 13:37:29 hbrinkm 1.49.32.18: #i51089# SyncNumRulesAndNodes: UpdateOutlineNode 2005/09/13 20:27:33 hbrinkm 1.49.32.17: RESYNC: (1.50-1.51); FILE MERGED 2005/09/12 15:15:29 hbrinkm 1.49.32.16: #i51089# AddNumRuleRanges 2005/09/07 11:29:02 hbrinkm 1.49.32.15: #i51089# SyncNumRulesAndNodes 2005/09/01 14:46:47 hbrinkm 1.49.32.14: #i51089# NumOrNoNum: only remove hard numbering 2005/08/31 13:34:47 hbrinkm 1.49.32.13: #i51089# NumOrNoNum: Only touch paragraphs with hard numbering that shows number 2005/08/30 12:58:49 hbrinkm 1.49.32.12: #i51089# PropagateOutlineRule: SyncNumAndNumRule after setting of outline level 2005/08/26 13:43:44 hbrinkm 1.49.32.11: #i51089# SetNumRuleStart: bool <-> BOOL 2005/08/23 07:35:20 hbrinkm 1.49.32.10: #i51089# {Outline|Num}UpDown: call ChkCondColls if modified 2005/08/16 15:31:02 hbrinkm 1.49.32.9: #i51089# FindNumRulePtrWithPool 2005/08/11 09:27:49 hbrinkm 1.49.32.8: #i51089# SetNumRule: do not access zero pointer to numrule 2005/08/10 08:07:25 hbrinkm 1.49.32.7: #121445# PropagateOutlineRule: UpdateOutlineNode 2005/08/09 12:36:44 hbrinkm 1.49.32.6: #i51089# 2005/08/04 09:27:27 hbrinkm 1.49.32.5: #121445# PropagateOutlineRule: only propagate numrule if IsOutlineLevelYieldsOutlineRule returns false, #i51089# 2005/08/03 12:22:55 hbrinkm 1.49.32.4: RESYNC: (1.49-1.50); FILE MERGED 2005/07/11 09:14:57 hbrinkm 1.49.32.3: #i51089# NumOrNoNum: only succeed if a real change is made 2005/07/07 12:49:41 hbrinkm 1.49.32.2: #i51089# PropagateOutlineRule: If a paragraph style has outline level and no numbering rule, set the documents's outline numbering rule, MakeUniqueRules: do not alter outline numbering rules 2005/06/22 10:24:52 hbrinkm 1.49.32.1: #i51089# new implementation of numbering
2005-11-08 16:16:30 +00:00
{
// --> OD 2008-02-20 #refactorlists#
// pTNd->SyncNumberAndNumRule();
// <--
pRet = pTNd->GetNumRule();
INTEGRATION: CWS swnumtree (1.49.32); FILE MERGED 2005/11/03 10:35:51 od 1.49.32.28: #i51089# improve performance - method <SwDoc::GetOutlineNumRule> now inline implemented. - consider change of <SwTxtNode::GetNum()> 2005/11/01 18:07:21 od 1.49.32.27: #i51089# - remove unused code 2005/10/26 10:47:23 od 1.49.32.26: RESYNC: (1.51-1.52); FILE MERGED 2005/10/26 09:34:37 od 1.49.32.25: #b6340308# <SwDoc::SetNumRule(..)> - Only clear numbering rule attribute at current text node, if its paragraph style already contains the new numbering rule. 2005/10/25 06:20:54 od 1.49.32.24: #i51089# - delete unused code. 2005/10/25 05:44:01 od 1.49.32.23: #i55391# <SwDoc::SearchNumRule(..)> - Investigate given start node, if requested. Request is indicated by new parameter <_bInvestigateStartNode> 2005/10/21 11:20:54 od 1.49.32.22: #i51089# - Only the counting of phantoms of the outline numbering rule depends on <SwDoc::IsOldNumbering()> 2005/10/21 08:33:31 od 1.49.32.21: #i55391# <SwDoc::SearchNumRule(..)> - start node has also been investigated. 2005/09/20 14:13:24 fme 1.49.32.20: #i51089# Removed compiler warnings 2005/09/20 11:16:23 hbrinkm 1.49.32.19: #i51089# SwNumRule::Invalidate->SwNumRule::SetInvalidRule(TRUE) 2005/09/14 13:37:29 hbrinkm 1.49.32.18: #i51089# SyncNumRulesAndNodes: UpdateOutlineNode 2005/09/13 20:27:33 hbrinkm 1.49.32.17: RESYNC: (1.50-1.51); FILE MERGED 2005/09/12 15:15:29 hbrinkm 1.49.32.16: #i51089# AddNumRuleRanges 2005/09/07 11:29:02 hbrinkm 1.49.32.15: #i51089# SyncNumRulesAndNodes 2005/09/01 14:46:47 hbrinkm 1.49.32.14: #i51089# NumOrNoNum: only remove hard numbering 2005/08/31 13:34:47 hbrinkm 1.49.32.13: #i51089# NumOrNoNum: Only touch paragraphs with hard numbering that shows number 2005/08/30 12:58:49 hbrinkm 1.49.32.12: #i51089# PropagateOutlineRule: SyncNumAndNumRule after setting of outline level 2005/08/26 13:43:44 hbrinkm 1.49.32.11: #i51089# SetNumRuleStart: bool <-> BOOL 2005/08/23 07:35:20 hbrinkm 1.49.32.10: #i51089# {Outline|Num}UpDown: call ChkCondColls if modified 2005/08/16 15:31:02 hbrinkm 1.49.32.9: #i51089# FindNumRulePtrWithPool 2005/08/11 09:27:49 hbrinkm 1.49.32.8: #i51089# SetNumRule: do not access zero pointer to numrule 2005/08/10 08:07:25 hbrinkm 1.49.32.7: #121445# PropagateOutlineRule: UpdateOutlineNode 2005/08/09 12:36:44 hbrinkm 1.49.32.6: #i51089# 2005/08/04 09:27:27 hbrinkm 1.49.32.5: #121445# PropagateOutlineRule: only propagate numrule if IsOutlineLevelYieldsOutlineRule returns false, #i51089# 2005/08/03 12:22:55 hbrinkm 1.49.32.4: RESYNC: (1.49-1.50); FILE MERGED 2005/07/11 09:14:57 hbrinkm 1.49.32.3: #i51089# NumOrNoNum: only succeed if a real change is made 2005/07/07 12:49:41 hbrinkm 1.49.32.2: #i51089# PropagateOutlineRule: If a paragraph style has outline level and no numbering rule, set the documents's outline numbering rule, MakeUniqueRules: do not alter outline numbering rules 2005/06/22 10:24:52 hbrinkm 1.49.32.1: #i51089# new implementation of numbering
2005-11-08 16:16:30 +00:00
}
2000-09-18 23:08:29 +00:00
return pRet;
}
USHORT SwDoc::FindNumRule( const String& rName ) const
{
for( USHORT n = pNumRuleTbl->Count(); n; )
if( (*pNumRuleTbl)[ --n ]->GetName() == rName )
return n;
2000-09-18 23:08:29 +00:00
return USHRT_MAX;
}
SwNumRule* SwDoc::FindNumRulePtr( const String& rName ) const
{
SwNumRule * pResult = 0;
2000-09-18 23:08:29 +00:00
pResult = maNumRuleMap[rName];
if ( !pResult )
{
for (USHORT n = 0; n < pNumRuleTbl->Count(); ++n)
{
if ((*pNumRuleTbl)[n]->GetName() == rName)
{
pResult = (*pNumRuleTbl)[n];
break;
}
}
}
return pResult;
2000-09-18 23:08:29 +00:00
}
// #i36749#
void SwDoc::AddNumRule(SwNumRule * pRule)
{
pNumRuleTbl->Insert(pRule, pNumRuleTbl->Count());
maNumRuleMap[pRule->GetName()] = pRule;
pRule->SetNumRuleMap(&maNumRuleMap);
INTEGRATION: CWS swnumtree (1.49.32); FILE MERGED 2005/11/03 10:35:51 od 1.49.32.28: #i51089# improve performance - method <SwDoc::GetOutlineNumRule> now inline implemented. - consider change of <SwTxtNode::GetNum()> 2005/11/01 18:07:21 od 1.49.32.27: #i51089# - remove unused code 2005/10/26 10:47:23 od 1.49.32.26: RESYNC: (1.51-1.52); FILE MERGED 2005/10/26 09:34:37 od 1.49.32.25: #b6340308# <SwDoc::SetNumRule(..)> - Only clear numbering rule attribute at current text node, if its paragraph style already contains the new numbering rule. 2005/10/25 06:20:54 od 1.49.32.24: #i51089# - delete unused code. 2005/10/25 05:44:01 od 1.49.32.23: #i55391# <SwDoc::SearchNumRule(..)> - Investigate given start node, if requested. Request is indicated by new parameter <_bInvestigateStartNode> 2005/10/21 11:20:54 od 1.49.32.22: #i51089# - Only the counting of phantoms of the outline numbering rule depends on <SwDoc::IsOldNumbering()> 2005/10/21 08:33:31 od 1.49.32.21: #i55391# <SwDoc::SearchNumRule(..)> - start node has also been investigated. 2005/09/20 14:13:24 fme 1.49.32.20: #i51089# Removed compiler warnings 2005/09/20 11:16:23 hbrinkm 1.49.32.19: #i51089# SwNumRule::Invalidate->SwNumRule::SetInvalidRule(TRUE) 2005/09/14 13:37:29 hbrinkm 1.49.32.18: #i51089# SyncNumRulesAndNodes: UpdateOutlineNode 2005/09/13 20:27:33 hbrinkm 1.49.32.17: RESYNC: (1.50-1.51); FILE MERGED 2005/09/12 15:15:29 hbrinkm 1.49.32.16: #i51089# AddNumRuleRanges 2005/09/07 11:29:02 hbrinkm 1.49.32.15: #i51089# SyncNumRulesAndNodes 2005/09/01 14:46:47 hbrinkm 1.49.32.14: #i51089# NumOrNoNum: only remove hard numbering 2005/08/31 13:34:47 hbrinkm 1.49.32.13: #i51089# NumOrNoNum: Only touch paragraphs with hard numbering that shows number 2005/08/30 12:58:49 hbrinkm 1.49.32.12: #i51089# PropagateOutlineRule: SyncNumAndNumRule after setting of outline level 2005/08/26 13:43:44 hbrinkm 1.49.32.11: #i51089# SetNumRuleStart: bool <-> BOOL 2005/08/23 07:35:20 hbrinkm 1.49.32.10: #i51089# {Outline|Num}UpDown: call ChkCondColls if modified 2005/08/16 15:31:02 hbrinkm 1.49.32.9: #i51089# FindNumRulePtrWithPool 2005/08/11 09:27:49 hbrinkm 1.49.32.8: #i51089# SetNumRule: do not access zero pointer to numrule 2005/08/10 08:07:25 hbrinkm 1.49.32.7: #121445# PropagateOutlineRule: UpdateOutlineNode 2005/08/09 12:36:44 hbrinkm 1.49.32.6: #i51089# 2005/08/04 09:27:27 hbrinkm 1.49.32.5: #121445# PropagateOutlineRule: only propagate numrule if IsOutlineLevelYieldsOutlineRule returns false, #i51089# 2005/08/03 12:22:55 hbrinkm 1.49.32.4: RESYNC: (1.49-1.50); FILE MERGED 2005/07/11 09:14:57 hbrinkm 1.49.32.3: #i51089# NumOrNoNum: only succeed if a real change is made 2005/07/07 12:49:41 hbrinkm 1.49.32.2: #i51089# PropagateOutlineRule: If a paragraph style has outline level and no numbering rule, set the documents's outline numbering rule, MakeUniqueRules: do not alter outline numbering rules 2005/06/22 10:24:52 hbrinkm 1.49.32.1: #i51089# new implementation of numbering
2005-11-08 16:16:30 +00:00
// --> OD 2008-03-26 #refactorlists#
createListForListStyle( pRule->GetName() );
INTEGRATION: CWS swnumtree (1.49.32); FILE MERGED 2005/11/03 10:35:51 od 1.49.32.28: #i51089# improve performance - method <SwDoc::GetOutlineNumRule> now inline implemented. - consider change of <SwTxtNode::GetNum()> 2005/11/01 18:07:21 od 1.49.32.27: #i51089# - remove unused code 2005/10/26 10:47:23 od 1.49.32.26: RESYNC: (1.51-1.52); FILE MERGED 2005/10/26 09:34:37 od 1.49.32.25: #b6340308# <SwDoc::SetNumRule(..)> - Only clear numbering rule attribute at current text node, if its paragraph style already contains the new numbering rule. 2005/10/25 06:20:54 od 1.49.32.24: #i51089# - delete unused code. 2005/10/25 05:44:01 od 1.49.32.23: #i55391# <SwDoc::SearchNumRule(..)> - Investigate given start node, if requested. Request is indicated by new parameter <_bInvestigateStartNode> 2005/10/21 11:20:54 od 1.49.32.22: #i51089# - Only the counting of phantoms of the outline numbering rule depends on <SwDoc::IsOldNumbering()> 2005/10/21 08:33:31 od 1.49.32.21: #i55391# <SwDoc::SearchNumRule(..)> - start node has also been investigated. 2005/09/20 14:13:24 fme 1.49.32.20: #i51089# Removed compiler warnings 2005/09/20 11:16:23 hbrinkm 1.49.32.19: #i51089# SwNumRule::Invalidate->SwNumRule::SetInvalidRule(TRUE) 2005/09/14 13:37:29 hbrinkm 1.49.32.18: #i51089# SyncNumRulesAndNodes: UpdateOutlineNode 2005/09/13 20:27:33 hbrinkm 1.49.32.17: RESYNC: (1.50-1.51); FILE MERGED 2005/09/12 15:15:29 hbrinkm 1.49.32.16: #i51089# AddNumRuleRanges 2005/09/07 11:29:02 hbrinkm 1.49.32.15: #i51089# SyncNumRulesAndNodes 2005/09/01 14:46:47 hbrinkm 1.49.32.14: #i51089# NumOrNoNum: only remove hard numbering 2005/08/31 13:34:47 hbrinkm 1.49.32.13: #i51089# NumOrNoNum: Only touch paragraphs with hard numbering that shows number 2005/08/30 12:58:49 hbrinkm 1.49.32.12: #i51089# PropagateOutlineRule: SyncNumAndNumRule after setting of outline level 2005/08/26 13:43:44 hbrinkm 1.49.32.11: #i51089# SetNumRuleStart: bool <-> BOOL 2005/08/23 07:35:20 hbrinkm 1.49.32.10: #i51089# {Outline|Num}UpDown: call ChkCondColls if modified 2005/08/16 15:31:02 hbrinkm 1.49.32.9: #i51089# FindNumRulePtrWithPool 2005/08/11 09:27:49 hbrinkm 1.49.32.8: #i51089# SetNumRule: do not access zero pointer to numrule 2005/08/10 08:07:25 hbrinkm 1.49.32.7: #121445# PropagateOutlineRule: UpdateOutlineNode 2005/08/09 12:36:44 hbrinkm 1.49.32.6: #i51089# 2005/08/04 09:27:27 hbrinkm 1.49.32.5: #121445# PropagateOutlineRule: only propagate numrule if IsOutlineLevelYieldsOutlineRule returns false, #i51089# 2005/08/03 12:22:55 hbrinkm 1.49.32.4: RESYNC: (1.49-1.50); FILE MERGED 2005/07/11 09:14:57 hbrinkm 1.49.32.3: #i51089# NumOrNoNum: only succeed if a real change is made 2005/07/07 12:49:41 hbrinkm 1.49.32.2: #i51089# PropagateOutlineRule: If a paragraph style has outline level and no numbering rule, set the documents's outline numbering rule, MakeUniqueRules: do not alter outline numbering rules 2005/06/22 10:24:52 hbrinkm 1.49.32.1: #i51089# new implementation of numbering
2005-11-08 16:16:30 +00:00
// <--
}
// --> OD 2008-02-11 #newlistlevelattrs#
USHORT SwDoc::MakeNumRule( const String &rName,
const SwNumRule* pCpy,
BOOL bBroadcast,
const SvxNumberFormat::SvxNumPositionAndSpaceMode eDefaultNumberFormatPositionAndSpaceMode )
2000-09-18 23:08:29 +00:00
{
SwNumRule* pNew;
if( pCpy )
{
pNew = new SwNumRule( *pCpy );
INTEGRATION: CWS swnumtree (1.49.32); FILE MERGED 2005/11/03 10:35:51 od 1.49.32.28: #i51089# improve performance - method <SwDoc::GetOutlineNumRule> now inline implemented. - consider change of <SwTxtNode::GetNum()> 2005/11/01 18:07:21 od 1.49.32.27: #i51089# - remove unused code 2005/10/26 10:47:23 od 1.49.32.26: RESYNC: (1.51-1.52); FILE MERGED 2005/10/26 09:34:37 od 1.49.32.25: #b6340308# <SwDoc::SetNumRule(..)> - Only clear numbering rule attribute at current text node, if its paragraph style already contains the new numbering rule. 2005/10/25 06:20:54 od 1.49.32.24: #i51089# - delete unused code. 2005/10/25 05:44:01 od 1.49.32.23: #i55391# <SwDoc::SearchNumRule(..)> - Investigate given start node, if requested. Request is indicated by new parameter <_bInvestigateStartNode> 2005/10/21 11:20:54 od 1.49.32.22: #i51089# - Only the counting of phantoms of the outline numbering rule depends on <SwDoc::IsOldNumbering()> 2005/10/21 08:33:31 od 1.49.32.21: #i55391# <SwDoc::SearchNumRule(..)> - start node has also been investigated. 2005/09/20 14:13:24 fme 1.49.32.20: #i51089# Removed compiler warnings 2005/09/20 11:16:23 hbrinkm 1.49.32.19: #i51089# SwNumRule::Invalidate->SwNumRule::SetInvalidRule(TRUE) 2005/09/14 13:37:29 hbrinkm 1.49.32.18: #i51089# SyncNumRulesAndNodes: UpdateOutlineNode 2005/09/13 20:27:33 hbrinkm 1.49.32.17: RESYNC: (1.50-1.51); FILE MERGED 2005/09/12 15:15:29 hbrinkm 1.49.32.16: #i51089# AddNumRuleRanges 2005/09/07 11:29:02 hbrinkm 1.49.32.15: #i51089# SyncNumRulesAndNodes 2005/09/01 14:46:47 hbrinkm 1.49.32.14: #i51089# NumOrNoNum: only remove hard numbering 2005/08/31 13:34:47 hbrinkm 1.49.32.13: #i51089# NumOrNoNum: Only touch paragraphs with hard numbering that shows number 2005/08/30 12:58:49 hbrinkm 1.49.32.12: #i51089# PropagateOutlineRule: SyncNumAndNumRule after setting of outline level 2005/08/26 13:43:44 hbrinkm 1.49.32.11: #i51089# SetNumRuleStart: bool <-> BOOL 2005/08/23 07:35:20 hbrinkm 1.49.32.10: #i51089# {Outline|Num}UpDown: call ChkCondColls if modified 2005/08/16 15:31:02 hbrinkm 1.49.32.9: #i51089# FindNumRulePtrWithPool 2005/08/11 09:27:49 hbrinkm 1.49.32.8: #i51089# SetNumRule: do not access zero pointer to numrule 2005/08/10 08:07:25 hbrinkm 1.49.32.7: #121445# PropagateOutlineRule: UpdateOutlineNode 2005/08/09 12:36:44 hbrinkm 1.49.32.6: #i51089# 2005/08/04 09:27:27 hbrinkm 1.49.32.5: #121445# PropagateOutlineRule: only propagate numrule if IsOutlineLevelYieldsOutlineRule returns false, #i51089# 2005/08/03 12:22:55 hbrinkm 1.49.32.4: RESYNC: (1.49-1.50); FILE MERGED 2005/07/11 09:14:57 hbrinkm 1.49.32.3: #i51089# NumOrNoNum: only succeed if a real change is made 2005/07/07 12:49:41 hbrinkm 1.49.32.2: #i51089# PropagateOutlineRule: If a paragraph style has outline level and no numbering rule, set the documents's outline numbering rule, MakeUniqueRules: do not alter outline numbering rules 2005/06/22 10:24:52 hbrinkm 1.49.32.1: #i51089# new implementation of numbering
2005-11-08 16:16:30 +00:00
// --> OD 2008-07-08 #i91400#
pNew->SetName( GetUniqueNumRuleName( &rName ), *this );
// <--
2000-09-18 23:08:29 +00:00
if( pNew->GetName() != rName )
{
pNew->SetPoolFmtId( USHRT_MAX );
pNew->SetPoolHelpId( USHRT_MAX );
pNew->SetPoolHlpFileId( UCHAR_MAX );
// --> OD 2008-04-03 #refactorlists#
pNew->SetDefaultListId( String() );
// <--
2000-09-18 23:08:29 +00:00
}
pNew->CheckCharFmts( this );
}
else
{
// --> OD 2008-02-11 #newlistlevelattrs#
pNew = new SwNumRule( GetUniqueNumRuleName( &rName ),
eDefaultNumberFormatPositionAndSpaceMode );
// <--
}
INTEGRATION: CWS swnumtree (1.49.32); FILE MERGED 2005/11/03 10:35:51 od 1.49.32.28: #i51089# improve performance - method <SwDoc::GetOutlineNumRule> now inline implemented. - consider change of <SwTxtNode::GetNum()> 2005/11/01 18:07:21 od 1.49.32.27: #i51089# - remove unused code 2005/10/26 10:47:23 od 1.49.32.26: RESYNC: (1.51-1.52); FILE MERGED 2005/10/26 09:34:37 od 1.49.32.25: #b6340308# <SwDoc::SetNumRule(..)> - Only clear numbering rule attribute at current text node, if its paragraph style already contains the new numbering rule. 2005/10/25 06:20:54 od 1.49.32.24: #i51089# - delete unused code. 2005/10/25 05:44:01 od 1.49.32.23: #i55391# <SwDoc::SearchNumRule(..)> - Investigate given start node, if requested. Request is indicated by new parameter <_bInvestigateStartNode> 2005/10/21 11:20:54 od 1.49.32.22: #i51089# - Only the counting of phantoms of the outline numbering rule depends on <SwDoc::IsOldNumbering()> 2005/10/21 08:33:31 od 1.49.32.21: #i55391# <SwDoc::SearchNumRule(..)> - start node has also been investigated. 2005/09/20 14:13:24 fme 1.49.32.20: #i51089# Removed compiler warnings 2005/09/20 11:16:23 hbrinkm 1.49.32.19: #i51089# SwNumRule::Invalidate->SwNumRule::SetInvalidRule(TRUE) 2005/09/14 13:37:29 hbrinkm 1.49.32.18: #i51089# SyncNumRulesAndNodes: UpdateOutlineNode 2005/09/13 20:27:33 hbrinkm 1.49.32.17: RESYNC: (1.50-1.51); FILE MERGED 2005/09/12 15:15:29 hbrinkm 1.49.32.16: #i51089# AddNumRuleRanges 2005/09/07 11:29:02 hbrinkm 1.49.32.15: #i51089# SyncNumRulesAndNodes 2005/09/01 14:46:47 hbrinkm 1.49.32.14: #i51089# NumOrNoNum: only remove hard numbering 2005/08/31 13:34:47 hbrinkm 1.49.32.13: #i51089# NumOrNoNum: Only touch paragraphs with hard numbering that shows number 2005/08/30 12:58:49 hbrinkm 1.49.32.12: #i51089# PropagateOutlineRule: SyncNumAndNumRule after setting of outline level 2005/08/26 13:43:44 hbrinkm 1.49.32.11: #i51089# SetNumRuleStart: bool <-> BOOL 2005/08/23 07:35:20 hbrinkm 1.49.32.10: #i51089# {Outline|Num}UpDown: call ChkCondColls if modified 2005/08/16 15:31:02 hbrinkm 1.49.32.9: #i51089# FindNumRulePtrWithPool 2005/08/11 09:27:49 hbrinkm 1.49.32.8: #i51089# SetNumRule: do not access zero pointer to numrule 2005/08/10 08:07:25 hbrinkm 1.49.32.7: #121445# PropagateOutlineRule: UpdateOutlineNode 2005/08/09 12:36:44 hbrinkm 1.49.32.6: #i51089# 2005/08/04 09:27:27 hbrinkm 1.49.32.5: #121445# PropagateOutlineRule: only propagate numrule if IsOutlineLevelYieldsOutlineRule returns false, #i51089# 2005/08/03 12:22:55 hbrinkm 1.49.32.4: RESYNC: (1.49-1.50); FILE MERGED 2005/07/11 09:14:57 hbrinkm 1.49.32.3: #i51089# NumOrNoNum: only succeed if a real change is made 2005/07/07 12:49:41 hbrinkm 1.49.32.2: #i51089# PropagateOutlineRule: If a paragraph style has outline level and no numbering rule, set the documents's outline numbering rule, MakeUniqueRules: do not alter outline numbering rules 2005/06/22 10:24:52 hbrinkm 1.49.32.1: #i51089# new implementation of numbering
2005-11-08 16:16:30 +00:00
2000-09-18 23:08:29 +00:00
USHORT nRet = pNumRuleTbl->Count();
AddNumRule(pNew); // #i36749#
if (DoesUndo())
{
SwUndo * pUndo = new SwUndoNumruleCreate(pNew, this);
AppendUndo(pUndo);
}
if (bBroadcast)
BroadcastStyleOperation(pNew->GetName(), SFX_STYLE_FAMILY_PSEUDO,
SFX_STYLESHEET_CREATED);
2000-09-18 23:08:29 +00:00
return nRet;
}
String SwDoc::GetUniqueNumRuleName( const String* pChkStr, BOOL bAutoNum ) const
{
String aName;
if( bAutoNum )
{
long n = Time().GetTime();
n += Date().GetDate();
aName = String::CreateFromInt32( n );
if( pChkStr && !pChkStr->Len() )
pChkStr = 0;
}
else if( pChkStr && pChkStr->Len() )
aName = *pChkStr;
else
{
pChkStr = 0;
aName = SW_RESSTR( STR_NUMRULE_DEFNAME );
}
USHORT nNum(0), nTmp, nFlagSize = ( pNumRuleTbl->Count() / 8 ) +2;
2000-09-18 23:08:29 +00:00
BYTE* pSetFlags = new BYTE[ nFlagSize ];
memset( pSetFlags, 0, nFlagSize );
xub_StrLen nNmLen = aName.Len();
if( !bAutoNum && pChkStr )
{
while( nNmLen-- && '0' <= aName.GetChar( nNmLen ) &&
'9' >= aName.GetChar( nNmLen ) )
; //nop
if( ++nNmLen < aName.Len() )
{
aName.Erase( nNmLen );
pChkStr = 0;
}
}
const SwNumRule* pNumRule;
USHORT n;
for( n = 0; n < pNumRuleTbl->Count(); ++n )
2000-09-18 23:08:29 +00:00
if( 0 != ( pNumRule = (*pNumRuleTbl)[ n ] ) )
{
const String& rNm = pNumRule->GetName();
if( rNm.Match( aName ) == nNmLen )
{
// Nummer bestimmen und das Flag setzen
INTEGRATION: CWS swnumtree (1.49.32); FILE MERGED 2005/11/03 10:35:51 od 1.49.32.28: #i51089# improve performance - method <SwDoc::GetOutlineNumRule> now inline implemented. - consider change of <SwTxtNode::GetNum()> 2005/11/01 18:07:21 od 1.49.32.27: #i51089# - remove unused code 2005/10/26 10:47:23 od 1.49.32.26: RESYNC: (1.51-1.52); FILE MERGED 2005/10/26 09:34:37 od 1.49.32.25: #b6340308# <SwDoc::SetNumRule(..)> - Only clear numbering rule attribute at current text node, if its paragraph style already contains the new numbering rule. 2005/10/25 06:20:54 od 1.49.32.24: #i51089# - delete unused code. 2005/10/25 05:44:01 od 1.49.32.23: #i55391# <SwDoc::SearchNumRule(..)> - Investigate given start node, if requested. Request is indicated by new parameter <_bInvestigateStartNode> 2005/10/21 11:20:54 od 1.49.32.22: #i51089# - Only the counting of phantoms of the outline numbering rule depends on <SwDoc::IsOldNumbering()> 2005/10/21 08:33:31 od 1.49.32.21: #i55391# <SwDoc::SearchNumRule(..)> - start node has also been investigated. 2005/09/20 14:13:24 fme 1.49.32.20: #i51089# Removed compiler warnings 2005/09/20 11:16:23 hbrinkm 1.49.32.19: #i51089# SwNumRule::Invalidate->SwNumRule::SetInvalidRule(TRUE) 2005/09/14 13:37:29 hbrinkm 1.49.32.18: #i51089# SyncNumRulesAndNodes: UpdateOutlineNode 2005/09/13 20:27:33 hbrinkm 1.49.32.17: RESYNC: (1.50-1.51); FILE MERGED 2005/09/12 15:15:29 hbrinkm 1.49.32.16: #i51089# AddNumRuleRanges 2005/09/07 11:29:02 hbrinkm 1.49.32.15: #i51089# SyncNumRulesAndNodes 2005/09/01 14:46:47 hbrinkm 1.49.32.14: #i51089# NumOrNoNum: only remove hard numbering 2005/08/31 13:34:47 hbrinkm 1.49.32.13: #i51089# NumOrNoNum: Only touch paragraphs with hard numbering that shows number 2005/08/30 12:58:49 hbrinkm 1.49.32.12: #i51089# PropagateOutlineRule: SyncNumAndNumRule after setting of outline level 2005/08/26 13:43:44 hbrinkm 1.49.32.11: #i51089# SetNumRuleStart: bool <-> BOOL 2005/08/23 07:35:20 hbrinkm 1.49.32.10: #i51089# {Outline|Num}UpDown: call ChkCondColls if modified 2005/08/16 15:31:02 hbrinkm 1.49.32.9: #i51089# FindNumRulePtrWithPool 2005/08/11 09:27:49 hbrinkm 1.49.32.8: #i51089# SetNumRule: do not access zero pointer to numrule 2005/08/10 08:07:25 hbrinkm 1.49.32.7: #121445# PropagateOutlineRule: UpdateOutlineNode 2005/08/09 12:36:44 hbrinkm 1.49.32.6: #i51089# 2005/08/04 09:27:27 hbrinkm 1.49.32.5: #121445# PropagateOutlineRule: only propagate numrule if IsOutlineLevelYieldsOutlineRule returns false, #i51089# 2005/08/03 12:22:55 hbrinkm 1.49.32.4: RESYNC: (1.49-1.50); FILE MERGED 2005/07/11 09:14:57 hbrinkm 1.49.32.3: #i51089# NumOrNoNum: only succeed if a real change is made 2005/07/07 12:49:41 hbrinkm 1.49.32.2: #i51089# PropagateOutlineRule: If a paragraph style has outline level and no numbering rule, set the documents's outline numbering rule, MakeUniqueRules: do not alter outline numbering rules 2005/06/22 10:24:52 hbrinkm 1.49.32.1: #i51089# new implementation of numbering
2005-11-08 16:16:30 +00:00
nNum = (USHORT)rNm.Copy( nNmLen ).ToInt32();
2000-09-18 23:08:29 +00:00
if( nNum-- && nNum < pNumRuleTbl->Count() )
pSetFlags[ nNum / 8 ] |= (0x01 << ( nNum & 0x07 ));
}
if( pChkStr && pChkStr->Equals( rNm ) )
pChkStr = 0;
}
if( !pChkStr )
{
// alle Nummern entsprechend geflag, also bestimme die richtige Nummer
nNum = pNumRuleTbl->Count();
for( n = 0; n < nFlagSize; ++n )
if( 0xff != ( nTmp = pSetFlags[ n ] ))
{
// also die Nummer bestimmen
nNum = n * 8;
while( nTmp & 1 )
++nNum, nTmp >>= 1;
break;
}
}
delete [] pSetFlags;
2000-09-18 23:08:29 +00:00
if( pChkStr && pChkStr->Len() )
return *pChkStr;
return aName += String::CreateFromInt32( ++nNum );
}
void SwDoc::UpdateNumRule()
{
const SwNumRuleTbl& rNmTbl = GetNumRuleTbl();
2000-09-18 23:08:29 +00:00
for( USHORT n = 0; n < rNmTbl.Count(); ++n )
if( rNmTbl[ n ]->IsInvalidRule() )
INTEGRATION: CWS swnumtree (1.49.32); FILE MERGED 2005/11/03 10:35:51 od 1.49.32.28: #i51089# improve performance - method <SwDoc::GetOutlineNumRule> now inline implemented. - consider change of <SwTxtNode::GetNum()> 2005/11/01 18:07:21 od 1.49.32.27: #i51089# - remove unused code 2005/10/26 10:47:23 od 1.49.32.26: RESYNC: (1.51-1.52); FILE MERGED 2005/10/26 09:34:37 od 1.49.32.25: #b6340308# <SwDoc::SetNumRule(..)> - Only clear numbering rule attribute at current text node, if its paragraph style already contains the new numbering rule. 2005/10/25 06:20:54 od 1.49.32.24: #i51089# - delete unused code. 2005/10/25 05:44:01 od 1.49.32.23: #i55391# <SwDoc::SearchNumRule(..)> - Investigate given start node, if requested. Request is indicated by new parameter <_bInvestigateStartNode> 2005/10/21 11:20:54 od 1.49.32.22: #i51089# - Only the counting of phantoms of the outline numbering rule depends on <SwDoc::IsOldNumbering()> 2005/10/21 08:33:31 od 1.49.32.21: #i55391# <SwDoc::SearchNumRule(..)> - start node has also been investigated. 2005/09/20 14:13:24 fme 1.49.32.20: #i51089# Removed compiler warnings 2005/09/20 11:16:23 hbrinkm 1.49.32.19: #i51089# SwNumRule::Invalidate->SwNumRule::SetInvalidRule(TRUE) 2005/09/14 13:37:29 hbrinkm 1.49.32.18: #i51089# SyncNumRulesAndNodes: UpdateOutlineNode 2005/09/13 20:27:33 hbrinkm 1.49.32.17: RESYNC: (1.50-1.51); FILE MERGED 2005/09/12 15:15:29 hbrinkm 1.49.32.16: #i51089# AddNumRuleRanges 2005/09/07 11:29:02 hbrinkm 1.49.32.15: #i51089# SyncNumRulesAndNodes 2005/09/01 14:46:47 hbrinkm 1.49.32.14: #i51089# NumOrNoNum: only remove hard numbering 2005/08/31 13:34:47 hbrinkm 1.49.32.13: #i51089# NumOrNoNum: Only touch paragraphs with hard numbering that shows number 2005/08/30 12:58:49 hbrinkm 1.49.32.12: #i51089# PropagateOutlineRule: SyncNumAndNumRule after setting of outline level 2005/08/26 13:43:44 hbrinkm 1.49.32.11: #i51089# SetNumRuleStart: bool <-> BOOL 2005/08/23 07:35:20 hbrinkm 1.49.32.10: #i51089# {Outline|Num}UpDown: call ChkCondColls if modified 2005/08/16 15:31:02 hbrinkm 1.49.32.9: #i51089# FindNumRulePtrWithPool 2005/08/11 09:27:49 hbrinkm 1.49.32.8: #i51089# SetNumRule: do not access zero pointer to numrule 2005/08/10 08:07:25 hbrinkm 1.49.32.7: #121445# PropagateOutlineRule: UpdateOutlineNode 2005/08/09 12:36:44 hbrinkm 1.49.32.6: #i51089# 2005/08/04 09:27:27 hbrinkm 1.49.32.5: #121445# PropagateOutlineRule: only propagate numrule if IsOutlineLevelYieldsOutlineRule returns false, #i51089# 2005/08/03 12:22:55 hbrinkm 1.49.32.4: RESYNC: (1.49-1.50); FILE MERGED 2005/07/11 09:14:57 hbrinkm 1.49.32.3: #i51089# NumOrNoNum: only succeed if a real change is made 2005/07/07 12:49:41 hbrinkm 1.49.32.2: #i51089# PropagateOutlineRule: If a paragraph style has outline level and no numbering rule, set the documents's outline numbering rule, MakeUniqueRules: do not alter outline numbering rules 2005/06/22 10:24:52 hbrinkm 1.49.32.1: #i51089# new implementation of numbering
2005-11-08 16:16:30 +00:00
rNmTbl[ n ]->Validate();
}
// --> OD 2008-04-02 #refactorlists#
void SwDoc::MarkListLevel( const String& sListId,
const int nListLevel,
const BOOL bValue )
{
SwList* pList = getListByName( sListId );
if ( pList )
{
MarkListLevel( *pList, nListLevel, bValue );
}
}
void SwDoc::MarkListLevel( SwList& rList,
const int nListLevel,
const BOOL bValue )
{
// Set new marked list level and notify all affected nodes of the changed mark.
rList.MarkListLevel( nListLevel, bValue );
}
// <- #i27615#
// <--
// #i23726#
BOOL SwDoc::IsFirstOfNumRule(SwPosition & rPos)
{
BOOL bResult = FALSE;
SwTxtNode * pTxtNode = rPos.nNode.GetNode().GetTxtNode();
if (pTxtNode)
{
SwNumRule * pNumRule = pTxtNode->GetNumRule();
if (pNumRule)
INTEGRATION: CWS swnumtree (1.49.32); FILE MERGED 2005/11/03 10:35:51 od 1.49.32.28: #i51089# improve performance - method <SwDoc::GetOutlineNumRule> now inline implemented. - consider change of <SwTxtNode::GetNum()> 2005/11/01 18:07:21 od 1.49.32.27: #i51089# - remove unused code 2005/10/26 10:47:23 od 1.49.32.26: RESYNC: (1.51-1.52); FILE MERGED 2005/10/26 09:34:37 od 1.49.32.25: #b6340308# <SwDoc::SetNumRule(..)> - Only clear numbering rule attribute at current text node, if its paragraph style already contains the new numbering rule. 2005/10/25 06:20:54 od 1.49.32.24: #i51089# - delete unused code. 2005/10/25 05:44:01 od 1.49.32.23: #i55391# <SwDoc::SearchNumRule(..)> - Investigate given start node, if requested. Request is indicated by new parameter <_bInvestigateStartNode> 2005/10/21 11:20:54 od 1.49.32.22: #i51089# - Only the counting of phantoms of the outline numbering rule depends on <SwDoc::IsOldNumbering()> 2005/10/21 08:33:31 od 1.49.32.21: #i55391# <SwDoc::SearchNumRule(..)> - start node has also been investigated. 2005/09/20 14:13:24 fme 1.49.32.20: #i51089# Removed compiler warnings 2005/09/20 11:16:23 hbrinkm 1.49.32.19: #i51089# SwNumRule::Invalidate->SwNumRule::SetInvalidRule(TRUE) 2005/09/14 13:37:29 hbrinkm 1.49.32.18: #i51089# SyncNumRulesAndNodes: UpdateOutlineNode 2005/09/13 20:27:33 hbrinkm 1.49.32.17: RESYNC: (1.50-1.51); FILE MERGED 2005/09/12 15:15:29 hbrinkm 1.49.32.16: #i51089# AddNumRuleRanges 2005/09/07 11:29:02 hbrinkm 1.49.32.15: #i51089# SyncNumRulesAndNodes 2005/09/01 14:46:47 hbrinkm 1.49.32.14: #i51089# NumOrNoNum: only remove hard numbering 2005/08/31 13:34:47 hbrinkm 1.49.32.13: #i51089# NumOrNoNum: Only touch paragraphs with hard numbering that shows number 2005/08/30 12:58:49 hbrinkm 1.49.32.12: #i51089# PropagateOutlineRule: SyncNumAndNumRule after setting of outline level 2005/08/26 13:43:44 hbrinkm 1.49.32.11: #i51089# SetNumRuleStart: bool <-> BOOL 2005/08/23 07:35:20 hbrinkm 1.49.32.10: #i51089# {Outline|Num}UpDown: call ChkCondColls if modified 2005/08/16 15:31:02 hbrinkm 1.49.32.9: #i51089# FindNumRulePtrWithPool 2005/08/11 09:27:49 hbrinkm 1.49.32.8: #i51089# SetNumRule: do not access zero pointer to numrule 2005/08/10 08:07:25 hbrinkm 1.49.32.7: #121445# PropagateOutlineRule: UpdateOutlineNode 2005/08/09 12:36:44 hbrinkm 1.49.32.6: #i51089# 2005/08/04 09:27:27 hbrinkm 1.49.32.5: #121445# PropagateOutlineRule: only propagate numrule if IsOutlineLevelYieldsOutlineRule returns false, #i51089# 2005/08/03 12:22:55 hbrinkm 1.49.32.4: RESYNC: (1.49-1.50); FILE MERGED 2005/07/11 09:14:57 hbrinkm 1.49.32.3: #i51089# NumOrNoNum: only succeed if a real change is made 2005/07/07 12:49:41 hbrinkm 1.49.32.2: #i51089# PropagateOutlineRule: If a paragraph style has outline level and no numbering rule, set the documents's outline numbering rule, MakeUniqueRules: do not alter outline numbering rules 2005/06/22 10:24:52 hbrinkm 1.49.32.1: #i51089# new implementation of numbering
2005-11-08 16:16:30 +00:00
bResult = pTxtNode->IsFirstOfNumRule();
}
return bResult;
}
// --> OD 2007-10-26 #i83479#
// implementation for interface <IDocumentListItems>
bool SwDoc::lessThanNodeNum::operator()( const SwNodeNum* pNodeNumOne,
const SwNodeNum* pNodeNumTwo ) const
{
return pNodeNumOne->LessThan( *pNodeNumTwo );
}
void SwDoc::addListItem( const SwNodeNum& rNodeNum )
{
if ( mpListItemsList == 0 )
{
return;
}
const bool bAlreadyInserted(
mpListItemsList->find( &rNodeNum ) != mpListItemsList->end() );
ASSERT( !bAlreadyInserted,
"<SwDoc::InsertListItem(..)> - <SwNodeNum> instance already registered as numbered item!" );
if ( !bAlreadyInserted )
{
mpListItemsList->insert( &rNodeNum );
}
}
void SwDoc::removeListItem( const SwNodeNum& rNodeNum )
{
if ( mpListItemsList == 0 )
{
return;
}
const tImplSortedNodeNumList::size_type nDeleted = mpListItemsList->erase( &rNodeNum );
if ( nDeleted > 1 )
{
ASSERT( false,
"<SwDoc::RemoveListItem(..)> - <SwNodeNum> was registered more than once as numbered item!" );
}
}
String SwDoc::getListItemText( const SwNodeNum& rNodeNum,
const bool bWithNumber,
const bool bWithSpacesForLevel ) const
{
return rNodeNum.GetTxtNode()
? rNodeNum.GetTxtNode()->GetExpandTxt( 0, STRING_LEN, bWithNumber,
bWithNumber, bWithSpacesForLevel )
: String();
}
void SwDoc::getListItems( tSortedNodeNumList& orNodeNumList ) const
{
orNodeNumList.clear();
orNodeNumList.reserve( mpListItemsList->size() );
tImplSortedNodeNumList::iterator aIter;
tImplSortedNodeNumList::iterator aEndIter = mpListItemsList->end();
for ( aIter = mpListItemsList->begin(); aIter != aEndIter; ++aIter )
{
orNodeNumList.push_back( (*aIter) );
}
}
void SwDoc::getNumItems( tSortedNodeNumList& orNodeNumList ) const
{
orNodeNumList.clear();
orNodeNumList.reserve( mpListItemsList->size() );
tImplSortedNodeNumList::iterator aIter;
tImplSortedNodeNumList::iterator aEndIter = mpListItemsList->end();
for ( aIter = mpListItemsList->begin(); aIter != aEndIter; ++aIter )
{
const SwNodeNum* pNodeNum = (*aIter);
if ( pNodeNum->IsCounted() &&
pNodeNum->GetTxtNode() && pNodeNum->GetTxtNode()->HasNumber() )
{
orNodeNumList.push_back( pNodeNum );
}
}
}
// <--
// --> OD 2007-11-15 #i83479#
// implementation for interface <IDocumentOutlineNodes>
sal_Int32 SwDoc::getOutlineNodesCount() const
{
return GetNodes().GetOutLineNds().Count();
}
int SwDoc::getOutlineLevel( const sal_Int32 nIdx ) const
{
return GetNodes().GetOutLineNds()[ static_cast<USHORT>(nIdx) ]->
CWS-TOOLING: integrate CWS outlinelevel 2008-12-19 10:32:51 +0100 od r265718 : #i70748# method <SwWW8Writer::StartTOX(..)> - correction for custom to outline style assigned paragraph styles 2008-12-19 09:24:41 +0100 od r265715 : #i70748# method <HandleModifyAtTxtNode(..)> - retrieve former applied list style before potential reset of empty list style due to set outline level 2008-12-17 15:33:57 +0100 hde r265608 : #i97013# 2008-12-17 14:43:42 +0100 od r265603 : #i70748# adjust fix i44177 - adjustment of to outline style assigned paragraph styles only for OOo-Templates. 2008-12-17 12:59:42 +0100 od r265598 : #i70748# method <XMLTextImportHelper::SetStyleAndAttrs(..)> - special handling of OOo 2.x document regarding outline numbering of headings. 2008-12-17 12:45:53 +0100 od r265597 : #i70748# method <HandleModifyAtTxtNode(..)> - correct determination of new and former applied list style 2008-12-17 10:18:41 +0100 od r265581 : #i97312# method <XMLTextNumRuleInfo::Set(..)> - check, if numbering rules instance contains any numbering rule. 2008-12-16 14:34:22 +0100 hde r265542 : #i97013 2008-12-16 14:20:24 +0100 od r265541 : #i70748# adjust documentation of "Which"-ID numbers 2008-12-16 14:19:49 +0100 od r265539 : #i70748# Adjust Attribute-Function-Mapping table due to new attribute 2008-12-16 14:06:24 +0100 od r265538 : #i70748# - Correct handling of to outline style assigned paragraph styles on reset of all paragraph style attributes - WW8 import: Consider refactoring of paragraph style's outline level attribute - NO_NUMBERING define no longer exsits. 2008-12-16 10:37:19 +0100 od r265530 : #i70478# Correction on moving outline paragraph up respectively down in its outline level: - Check also outline paragraph, which are not an outline via a to outline style assigned paragraph style, if action is applicable. 2008-12-16 09:10:13 +0100 hde r265523 : #i97277 2008-12-16 09:09:30 +0100 hde r265522 : #i97277 2008-12-16 09:07:40 +0100 hde r265521 : Added control and purged obsolete id's 2008-12-10 13:09:36 +0100 od r265174 : #i70748# correction of previous fix due to warning-free code 2008-12-10 13:03:30 +0100 od r265172 : #i70748# method <XMLTextImportHelper::SetStyleAndAttrs(..)> - Due to performance issues avoid retrieving outline level value from paragraph's paragraph style for each paragraph. Instead retrieve current outline level value from paragraph, which is the inherited value from its paragraph style, and only when it is needed. 2008-12-09 16:50:36 +0100 ufi r265117 : help 2008-12-09 16:49:50 +0100 ufi r265116 : help 2008-12-09 15:45:05 +0100 od r265107 : #i70748# method <XMLTextImportHelper::SetStyleAndAttrs(..)> - some minor rework and check access to paragraph styles 2008-12-09 15:42:04 +0100 od r265106 : #i70748# adjust name of local variable to avoid hiding of class variable 2008-12-09 15:40:51 +0100 od r265105 : #i70748# correct initialization order 2008-12-09 15:35:07 +0100 od r265101 : #i70748# remove duplicate entry in certain property map 2008-12-09 15:33:39 +0100 od r265100 : #i70748# add end of file token 2008-12-07 15:11:54 +0100 zhaojianwei r264952 : conflicts left not to be resolved when cws rebase 2008-12-04 14:52:21 +0100 zhaojianwei r264846 : CWS-TOOLING: rebase CWS outlinelevel to trunk@264325 (milestone: DEV300:m36) 2008-11-28 03:42:09 +0100 zhaojianwei r264525 : #i70748#: migrate CWS outlinelevel to SVN 2008-11-28 03:41:39 +0100 zhaojianwei r264524 : #i70748#: migrate CWS outlinelevel to SVN 2008-11-28 03:41:11 +0100 zhaojianwei r264523 : #i70748#: migrate CWS outlinelevel to SVN
2009-01-07 11:57:24 +00:00
// GetTxtNode()->GetOutlineLevel(); //#outline level,zhaojianwei
GetTxtNode()->GetAttrOutlineLevel()-1; //<-end,zhaojianwei
}
String SwDoc::getOutlineText( const sal_Int32 nIdx,
const bool bWithNumber,
const bool bWithSpacesForLevel ) const
{
return GetNodes().GetOutLineNds()[ static_cast<USHORT>(nIdx) ]->
GetTxtNode()->GetExpandTxt( 0, STRING_LEN, bWithNumber,
bWithNumber, bWithSpacesForLevel );
}
SwTxtNode* SwDoc::getOutlineNode( const sal_Int32 nIdx ) const
{
return GetNodes().GetOutLineNds()[ static_cast<USHORT>(nIdx) ]->GetTxtNode();
}
void SwDoc::getOutlineNodes( IDocumentOutlineNodes::tSortedOutlineNodeList& orOutlineNodeList ) const
{
orOutlineNodeList.clear();
orOutlineNodeList.reserve( getOutlineNodesCount() );
const USHORT nOutlCount( static_cast<USHORT>(getOutlineNodesCount()) );
for ( USHORT i = 0; i < nOutlCount; ++i )
{
orOutlineNodeList.push_back(
GetNodes().GetOutLineNds()[i]->GetTxtNode() );
}
}
// <--
// --> OD 2008-03-26 #refactorlists#
// implementation of interface IDocumentListsAccess
SwList* SwDoc::createList( String sListId,
const String sDefaultListStyleName )
{
if ( sListId.Len() == 0 )
{
sListId = listfunc::CreateUniqueListId( *this );
}
if ( getListByName( sListId ) )
{
ASSERT( false,
"<SwDoc::createList(..)> - provided list id already used. Serious defect -> please inform OD." );
return 0;
}
SwNumRule* pDefaultNumRuleForNewList = FindNumRulePtr( sDefaultListStyleName );
if ( !pDefaultNumRuleForNewList )
{
ASSERT( false,
"<SwDoc::createList(..)> - for provided default list style name no list style is found. Serious defect -> please inform OD." );
return 0;
}
SwList* pNewList = new SwList( sListId, *pDefaultNumRuleForNewList, GetNodes() );
maLists[sListId] = pNewList;
return pNewList;
}
void SwDoc::deleteList( const String sListId )
{
SwList* pList = getListByName( sListId );
if ( pList )
{
maLists.erase( sListId );
delete pList;
}
}
SwList* SwDoc::getListByName( const String sListId ) const
{
SwList* pList = 0;
std::hash_map< String, SwList*, StringHash >::const_iterator
aListIter = maLists.find( sListId );
if ( aListIter != maLists.end() )
{
pList = (*aListIter).second;
}
return pList;
}
SwList* SwDoc::createListForListStyle( const String sListStyleName )
{
if ( sListStyleName.Len() == 0 )
{
ASSERT( false,
"<SwDoc::createListForListStyle(..)> - no list style name provided. Serious defect -> please inform OD." );
return 0;
}
if ( getListForListStyle( sListStyleName ) )
{
ASSERT( false,
"<SwDoc::createListForListStyle(..)> - a list for the provided list style name already exists. Serious defect -> please inform OD." );
return 0;
}
SwNumRule* pNumRule = FindNumRulePtr( sListStyleName );
if ( !pNumRule )
{
ASSERT( false,
"<SwDoc::createListForListStyle(..)> - for provided list style name no list style is found. Serious defect -> please inform OD." );
return 0;
}
String sListId( pNumRule->GetDefaultListId() ); // can be empty String
if ( getListByName( sListId ) )
{
sListId = String();
}
SwList* pNewList = createList( sListId, sListStyleName );
maListStyleLists[sListStyleName] = pNewList;
pNumRule->SetDefaultListId( pNewList->GetListId() );
return pNewList;
}
SwList* SwDoc::getListForListStyle( const String sListStyleName ) const
{
SwList* pList = 0;
std::hash_map< String, SwList*, StringHash >::const_iterator
aListIter = maListStyleLists.find( sListStyleName );
if ( aListIter != maListStyleLists.end() )
{
pList = (*aListIter).second;
}
return pList;
}
void SwDoc::deleteListForListStyle( const String sListStyleName )
{
String sListId;
{
SwList* pList = getListForListStyle( sListStyleName );
ASSERT( pList,
"<SwDoc::deleteListForListStyle(..)> - misusage of method: no list found for given list style name" );
if ( pList )
{
sListId = pList->GetListId();
}
}
if ( sListId.Len() > 0 )
{
maListStyleLists.erase( sListStyleName );
deleteList( sListId );
}
}
// <--
// --> OD 2008-07-08 #i91400#
void SwDoc::trackChangeOfListStyleName( const String sListStyleName,
const String sNewListStyleName )
{
SwList* pList = getListForListStyle( sListStyleName );
ASSERT( pList,
"<SwDoc::changeOfListStyleName(..)> - misusage of method: no list found for given list style name" );
if ( pList != 0 )
{
maListStyleLists.erase( sListStyleName );
maListStyleLists[sNewListStyleName] = pList;
}
}
// <--
// --> OD 2008-03-13 #refactorlists#
namespace listfunc
{
const String MakeListIdUnique( const SwDoc& rDoc,
const String aSuggestedUniqueListId )
{
long nHitCount = 0;
String aTmpStr = aSuggestedUniqueListId;
while ( rDoc.getListByName( aTmpStr ) )
{
++nHitCount;
aTmpStr = aSuggestedUniqueListId;
aTmpStr += String::CreateFromInt32( nHitCount );
}
return aTmpStr;
}
const String CreateUniqueListId( const SwDoc& rDoc )
{
// --> OD 2008-08-06 #i92478#
String aNewListId = String::CreateFromAscii( "list" );
// <--
sal_Int64 n = Time().GetTime();
n += Date().GetDate();
n += rand();
// --> OD 2008-08-06 #i92478#
aNewListId += String::CreateFromInt64( n );
// <--
return MakeListIdUnique( rDoc, aNewListId );
}
}
// <--