2000-09-18 23:08:29 +00:00
|
|
|
|
/*************************************************************************
|
|
|
|
|
*
|
2008-04-10 12:22:35 +00:00
|
|
|
|
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
|
2000-09-18 23:08:29 +00:00
|
|
|
|
*
|
2010-02-12 15:01:35 +01:00
|
|
|
|
* Copyright 2000, 2010 Oracle and/or its affiliates.
|
2000-09-18 23:08:29 +00:00
|
|
|
|
*
|
2008-04-10 12:22:35 +00:00
|
|
|
|
* OpenOffice.org - a multi-platform office productivity suite
|
2000-09-18 23:08:29 +00:00
|
|
|
|
*
|
2008-04-10 12:22:35 +00:00
|
|
|
|
* This file is part of OpenOffice.org.
|
2000-09-18 23:08:29 +00:00
|
|
|
|
*
|
2008-04-10 12:22:35 +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
|
|
|
|
*
|
2008-04-10 12:22:35 +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
|
|
|
|
*
|
2008-04-10 12:22:35 +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
|
|
|
|
*
|
|
|
|
|
************************************************************************/
|
|
|
|
|
|
2006-09-16 19:54:16 +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/shl.hxx>
|
2002-02-22 11:00:10 +00:00
|
|
|
|
#ifndef _SFX_ITEMITER_HXX //autogen
|
2009-10-16 00:05:16 +02:00
|
|
|
|
#include <svl/itemiter.hxx>
|
2002-02-22 11:00:10 +00:00
|
|
|
|
#endif
|
2000-09-18 23:08:29 +00:00
|
|
|
|
#include <sfx2/app.hxx>
|
2010-01-08 18:32:51 +01:00
|
|
|
|
#include <editeng/colritem.hxx>
|
|
|
|
|
#include <editeng/udlnitem.hxx>
|
|
|
|
|
#include <editeng/crsditem.hxx>
|
2000-09-18 23:08:29 +00:00
|
|
|
|
#include <swmodule.hxx>
|
|
|
|
|
#include <doc.hxx>
|
|
|
|
|
#include <docary.hxx>
|
|
|
|
|
#include <ndtxt.hxx>
|
|
|
|
|
#include <redline.hxx>
|
|
|
|
|
#include <swundo.hxx>
|
|
|
|
|
#include <undobj.hxx>
|
|
|
|
|
#include <pamtyp.hxx>
|
|
|
|
|
#include <poolfmt.hxx>
|
|
|
|
|
#include <viewsh.hxx>
|
|
|
|
|
#include <rootfrm.hxx>
|
|
|
|
|
|
2004-05-18 13:02:15 +00:00
|
|
|
|
#include <comcore.hrc>
|
|
|
|
|
|
2006-08-14 14:59:18 +00:00
|
|
|
|
using namespace com::sun::star;
|
|
|
|
|
|
2009-01-02 15:51:45 +00:00
|
|
|
|
TYPEINIT1(SwRedlineHint, SfxHint);
|
|
|
|
|
|
2009-07-10 14:03:42 +02:00
|
|
|
|
#ifndef DBG_UTIL
|
2000-09-18 23:08:29 +00:00
|
|
|
|
|
|
|
|
|
#define _CHECK_REDLINE( pDoc )
|
2006-04-19 13:16:59 +00:00
|
|
|
|
#define _DEBUG_REDLINE( pDoc )
|
2000-09-18 23:08:29 +00:00
|
|
|
|
|
|
|
|
|
#else
|
|
|
|
|
|
2003-12-01 08:38:17 +00:00
|
|
|
|
#define _ERROR_PREFIX "redline table corrupted: "
|
|
|
|
|
|
2002-06-27 13:23:50 +00:00
|
|
|
|
// helper function for lcl_CheckRedline
|
2003-12-01 08:38:17 +00:00
|
|
|
|
// 1. make sure that pPos->nContent points into pPos->nNode
|
|
|
|
|
// (or into the 'special' no-content-node-IndexReg)
|
|
|
|
|
// 2. check that position is valid and doesn't point behind text
|
2002-11-07 17:38:36 +00:00
|
|
|
|
void lcl_CheckPosition( const SwPosition* pPos )
|
2002-06-27 13:23:50 +00:00
|
|
|
|
{
|
2002-11-07 17:38:36 +00:00
|
|
|
|
SwPosition aComparePos( *pPos );
|
2002-06-27 13:23:50 +00:00
|
|
|
|
aComparePos.nContent.Assign(
|
|
|
|
|
aComparePos.nNode.GetNode().GetCntntNode(), 0 );
|
2003-12-01 08:38:17 +00:00
|
|
|
|
DBG_ASSERT( pPos->nContent.GetIdxReg() ==
|
|
|
|
|
aComparePos.nContent.GetIdxReg(),
|
|
|
|
|
_ERROR_PREFIX "illegal position" );
|
|
|
|
|
|
|
|
|
|
SwTxtNode* pTxtNode = pPos->nNode.GetNode().GetTxtNode();
|
|
|
|
|
if( pTxtNode == NULL )
|
|
|
|
|
{
|
|
|
|
|
DBG_ASSERT( pPos->nContent == 0,
|
|
|
|
|
_ERROR_PREFIX "non-text-node with content" );
|
|
|
|
|
}
|
|
|
|
|
else
|
|
|
|
|
{
|
|
|
|
|
DBG_ASSERT( pPos->nContent >= 0 &&
|
|
|
|
|
pPos->nContent <= pTxtNode->Len(),
|
|
|
|
|
_ERROR_PREFIX "index behind text" );
|
|
|
|
|
}
|
2002-06-27 13:23:50 +00:00
|
|
|
|
}
|
|
|
|
|
|
2002-11-07 17:38:36 +00:00
|
|
|
|
void lcl_CheckPam( const SwPaM* pPam )
|
|
|
|
|
{
|
2003-12-01 08:38:17 +00:00
|
|
|
|
DBG_ASSERT( pPam != NULL, _ERROR_PREFIX "illegal argument" );
|
2002-11-07 17:38:36 +00:00
|
|
|
|
lcl_CheckPosition( pPam->GetPoint() );
|
|
|
|
|
lcl_CheckPosition( pPam->GetMark() );
|
|
|
|
|
}
|
|
|
|
|
|
2002-06-27 13:23:50 +00:00
|
|
|
|
// check validity of the redline table. Checks redline bounds, and make
|
|
|
|
|
// sure the redlines are sorted and non-overlapping.
|
2000-09-18 23:08:29 +00:00
|
|
|
|
void lcl_CheckRedline( const SwDoc* pDoc )
|
|
|
|
|
{
|
|
|
|
|
const SwRedlineTbl& rTbl = pDoc->GetRedlineTbl();
|
2002-11-07 17:38:36 +00:00
|
|
|
|
|
|
|
|
|
// verify valid redline positions
|
|
|
|
|
for( USHORT i = 0; i < rTbl.Count(); ++i )
|
|
|
|
|
lcl_CheckPam( rTbl[ i ] );
|
|
|
|
|
|
2003-03-27 14:45:43 +00:00
|
|
|
|
for( USHORT j = 0; j < rTbl.Count(); ++j )
|
|
|
|
|
{
|
|
|
|
|
// check for empty redlines
|
2003-12-01 08:38:17 +00:00
|
|
|
|
DBG_ASSERT( ( *(rTbl[j]->GetPoint()) != *(rTbl[j]->GetMark()) ) ||
|
|
|
|
|
( rTbl[j]->GetContentIdx() != NULL ),
|
|
|
|
|
_ERROR_PREFIX "empty redline" );
|
2003-03-27 14:45:43 +00:00
|
|
|
|
}
|
|
|
|
|
|
2002-11-07 17:38:36 +00:00
|
|
|
|
// verify proper redline sorting
|
2000-09-18 23:08:29 +00:00
|
|
|
|
for( USHORT n = 1; n < rTbl.Count(); ++n )
|
|
|
|
|
{
|
2002-11-07 17:38:36 +00:00
|
|
|
|
const SwRedline* pPrev = rTbl[ n-1 ];
|
|
|
|
|
const SwRedline* pCurrent = rTbl[ n ];
|
2002-06-27 13:23:50 +00:00
|
|
|
|
|
2002-11-07 17:38:36 +00:00
|
|
|
|
// check redline sorting
|
2003-12-01 08:38:17 +00:00
|
|
|
|
DBG_ASSERT( *pPrev->Start() <= *pCurrent->Start(),
|
|
|
|
|
_ERROR_PREFIX "not sorted correctly" );
|
2002-06-27 13:23:50 +00:00
|
|
|
|
|
|
|
|
|
// check for overlapping redlines
|
2003-12-01 08:38:17 +00:00
|
|
|
|
DBG_ASSERT( *pPrev->End() <= *pCurrent->Start(),
|
|
|
|
|
_ERROR_PREFIX "overlapping redlines" );
|
2000-09-18 23:08:29 +00:00
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
#define _CHECK_REDLINE( pDoc ) lcl_CheckRedline( pDoc );
|
|
|
|
|
|
2006-04-19 13:16:59 +00:00
|
|
|
|
void lcl_DebugRedline( const SwDoc* pDoc )
|
|
|
|
|
{
|
|
|
|
|
static USHORT nWatch = 0;
|
|
|
|
|
const SwRedlineTbl& rTbl = pDoc->GetRedlineTbl();
|
|
|
|
|
for( USHORT n = 0; n < rTbl.Count(); ++n )
|
|
|
|
|
{
|
|
|
|
|
USHORT nDummy = 0;
|
|
|
|
|
const SwRedline* pCurrent = rTbl[ n ];
|
|
|
|
|
const SwRedline* pNext = n+1 < rTbl.Count() ? rTbl[ n+1 ] : 0;
|
2006-07-19 08:35:31 +00:00
|
|
|
|
if( pCurrent == pNext )
|
|
|
|
|
++nDummy;
|
2006-04-19 13:16:59 +00:00
|
|
|
|
if( n == nWatch )
|
|
|
|
|
++nDummy; // Possible debugger breakpoint
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
#define _DEBUG_REDLINE( pDoc ) lcl_DebugRedline( pDoc );
|
|
|
|
|
|
2000-09-18 23:08:29 +00:00
|
|
|
|
#endif
|
|
|
|
|
|
|
|
|
|
SV_IMPL_OP_PTRARR_SORT( _SwRedlineTbl, SwRedlinePtr )
|
|
|
|
|
|
2007-09-27 07:36:43 +00:00
|
|
|
|
RedlineMode_t SwDoc::GetRedlineMode() const
|
2006-08-14 14:59:18 +00:00
|
|
|
|
{
|
|
|
|
|
return eRedlineMode;
|
|
|
|
|
}
|
|
|
|
|
|
2007-09-27 07:36:43 +00:00
|
|
|
|
void SwDoc::SetRedlineMode( RedlineMode_t eMode )
|
2000-09-18 23:08:29 +00:00
|
|
|
|
{
|
|
|
|
|
if( eRedlineMode != eMode )
|
|
|
|
|
{
|
2007-09-27 07:36:43 +00:00
|
|
|
|
if( (nsRedlineMode_t::REDLINE_SHOW_MASK & eRedlineMode) != (nsRedlineMode_t::REDLINE_SHOW_MASK & eMode)
|
|
|
|
|
|| 0 == (nsRedlineMode_t::REDLINE_SHOW_MASK & eMode) )
|
2000-09-18 23:08:29 +00:00
|
|
|
|
{
|
2007-07-26 07:19:01 +00:00
|
|
|
|
bool bSaveInXMLImportFlag = IsInXMLImport();
|
|
|
|
|
SetInXMLImport( false );
|
2000-09-18 23:08:29 +00:00
|
|
|
|
// und dann alles verstecken, anzeigen
|
|
|
|
|
void (SwRedline::*pFnc)( USHORT ) = 0;
|
|
|
|
|
|
2007-09-27 07:36:43 +00:00
|
|
|
|
switch( nsRedlineMode_t::REDLINE_SHOW_MASK & eMode )
|
2000-09-18 23:08:29 +00:00
|
|
|
|
{
|
2007-09-27 07:36:43 +00:00
|
|
|
|
case nsRedlineMode_t::REDLINE_SHOW_INSERT | nsRedlineMode_t::REDLINE_SHOW_DELETE :
|
2000-09-18 23:08:29 +00:00
|
|
|
|
pFnc = &SwRedline::Show;
|
|
|
|
|
break;
|
2007-09-27 07:36:43 +00:00
|
|
|
|
case nsRedlineMode_t::REDLINE_SHOW_INSERT:
|
2000-09-18 23:08:29 +00:00
|
|
|
|
pFnc = &SwRedline::Hide;
|
|
|
|
|
break;
|
2007-09-27 07:36:43 +00:00
|
|
|
|
case nsRedlineMode_t::REDLINE_SHOW_DELETE:
|
2000-09-18 23:08:29 +00:00
|
|
|
|
pFnc = &SwRedline::ShowOriginal;
|
|
|
|
|
break;
|
|
|
|
|
|
|
|
|
|
default:
|
|
|
|
|
pFnc = &SwRedline::Hide;
|
2007-09-27 07:36:43 +00:00
|
|
|
|
eMode = (RedlineMode_t)(eMode | nsRedlineMode_t::REDLINE_SHOW_INSERT);
|
2000-09-18 23:08:29 +00:00
|
|
|
|
break;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
_CHECK_REDLINE( this )
|
|
|
|
|
|
|
|
|
|
if( pFnc )
|
|
|
|
|
for( USHORT nLoop = 1; nLoop <= 2; ++nLoop )
|
|
|
|
|
for( USHORT i = 0; i < pRedlineTbl->Count(); ++i )
|
|
|
|
|
((*pRedlineTbl)[ i ]->*pFnc)( nLoop );
|
|
|
|
|
_CHECK_REDLINE( this )
|
2007-07-26 07:19:01 +00:00
|
|
|
|
SetInXMLImport( bSaveInXMLImportFlag );
|
2000-09-18 23:08:29 +00:00
|
|
|
|
}
|
2006-08-14 14:59:18 +00:00
|
|
|
|
eRedlineMode = eMode;
|
2008-10-29 11:35:03 +00:00
|
|
|
|
SetModified();
|
2000-09-18 23:08:29 +00:00
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
2006-08-14 14:59:18 +00:00
|
|
|
|
bool SwDoc::IsRedlineOn() const
|
|
|
|
|
{
|
|
|
|
|
return IDocumentRedlineAccess::IsRedlineOn(eRedlineMode);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
bool SwDoc::IsIgnoreRedline() const
|
|
|
|
|
{
|
2007-09-27 07:36:43 +00:00
|
|
|
|
return (nsRedlineMode_t::REDLINE_IGNORE & eRedlineMode);
|
2006-08-14 14:59:18 +00:00
|
|
|
|
}
|
|
|
|
|
|
2007-09-27 07:36:43 +00:00
|
|
|
|
void SwDoc::SetRedlineMode_intern(RedlineMode_t eMode)
|
2006-08-14 14:59:18 +00:00
|
|
|
|
{
|
|
|
|
|
eRedlineMode = eMode;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
const SwRedlineTbl& SwDoc::GetRedlineTbl() const
|
|
|
|
|
{
|
|
|
|
|
return *pRedlineTbl;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
bool SwDoc::IsRedlineMove() const
|
|
|
|
|
{
|
|
|
|
|
return mbIsRedlineMove;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
void SwDoc::SetRedlineMove(bool bFlag)
|
|
|
|
|
{
|
|
|
|
|
mbIsRedlineMove = bFlag;
|
|
|
|
|
}
|
|
|
|
|
|
2007-09-27 07:36:43 +00:00
|
|
|
|
const uno::Sequence <sal_Int8>& SwDoc::GetRedlinePassword() const
|
2006-08-14 14:59:18 +00:00
|
|
|
|
{
|
|
|
|
|
return aRedlinePasswd;
|
|
|
|
|
}
|
|
|
|
|
|
2007-09-27 07:36:43 +00:00
|
|
|
|
inline bool IsPrevPos( const SwPosition rPos1, const SwPosition rPos2 )
|
2000-09-18 23:08:29 +00:00
|
|
|
|
{
|
|
|
|
|
const SwCntntNode* pCNd;
|
2008-05-05 12:36:36 +00:00
|
|
|
|
return 0 == rPos2.nContent.GetIndex() &&
|
2000-09-18 23:08:29 +00:00
|
|
|
|
rPos2.nNode.GetIndex() - 1 == rPos1.nNode.GetIndex() &&
|
|
|
|
|
0 != ( pCNd = rPos1.nNode.GetNode().GetCntntNode() )
|
|
|
|
|
? rPos1.nContent.GetIndex() == pCNd->Len()
|
2007-09-27 07:36:43 +00:00
|
|
|
|
: false;
|
2000-09-18 23:08:29 +00:00
|
|
|
|
}
|
|
|
|
|
|
2006-04-06 12:42:01 +00:00
|
|
|
|
#ifdef DEBUG
|
|
|
|
|
bool CheckPosition( const SwPosition* pStt, const SwPosition* pEnd )
|
|
|
|
|
{
|
|
|
|
|
int nError = 0;
|
|
|
|
|
SwNode* pSttNode = &pStt->nNode.GetNode();
|
|
|
|
|
SwNode* pEndNode = &pEnd->nNode.GetNode();
|
2006-08-14 14:59:18 +00:00
|
|
|
|
SwNode* pSttTab = pSttNode->StartOfSectionNode()->FindTableNode();
|
|
|
|
|
SwNode* pEndTab = pEndNode->StartOfSectionNode()->FindTableNode();
|
2006-04-06 12:42:01 +00:00
|
|
|
|
SwNode* pSttStart = pSttNode;
|
|
|
|
|
while( pSttStart && (!pSttStart->IsStartNode() || pSttStart->IsSectionNode() ||
|
|
|
|
|
pSttStart->IsTableNode() ) )
|
2006-08-14 14:59:18 +00:00
|
|
|
|
pSttStart = pSttStart->StartOfSectionNode();
|
2006-04-06 12:42:01 +00:00
|
|
|
|
SwNode* pEndStart = pEndNode;
|
|
|
|
|
while( pEndStart && (!pEndStart->IsStartNode() || pEndStart->IsSectionNode() ||
|
|
|
|
|
pEndStart->IsTableNode() ) )
|
2006-08-14 14:59:18 +00:00
|
|
|
|
pEndStart = pEndStart->StartOfSectionNode();
|
2006-04-06 12:42:01 +00:00
|
|
|
|
if( pSttTab != pEndTab )
|
|
|
|
|
nError = 1;
|
|
|
|
|
if( !pSttTab && pSttStart != pEndStart )
|
|
|
|
|
nError |= 2;
|
|
|
|
|
if( nError )
|
|
|
|
|
nError += 10;
|
|
|
|
|
return nError != 0;
|
|
|
|
|
}
|
|
|
|
|
#endif
|
|
|
|
|
|
2000-09-18 23:08:29 +00:00
|
|
|
|
/*
|
|
|
|
|
|
|
|
|
|
Text heisst, nicht von Redline "verseuchter" Text.
|
|
|
|
|
|
|
|
|
|
Verhalten von Insert-Redline:
|
|
|
|
|
- im Text - Redline Object einfuegen
|
|
|
|
|
- im InsertRedline (eigenes) - ignorieren, bestehendes wird
|
|
|
|
|
aufgespannt
|
|
|
|
|
- im InsertRedline (andere) - Insert Redline aufsplitten
|
|
|
|
|
Redline Object einfuegen
|
|
|
|
|
- in DeleteRedline - Delete Redline aufsplitten oder
|
|
|
|
|
am Ende/Anfang verschieben
|
|
|
|
|
|
|
|
|
|
Verhalten von Delete-Redline:
|
|
|
|
|
- im Text - Redline Object einfuegen
|
|
|
|
|
- im DeleteRedline (eigenes/andere) - ignorieren
|
|
|
|
|
- im InsertRedline (eigenes) - ignorieren, Zeichen aber loeschen
|
|
|
|
|
- im InsertRedline (andere) - Insert Redline aufsplitten
|
|
|
|
|
Redline Object einfuegen
|
|
|
|
|
- Ueberlappung von Text und - Text in eigenen Insert loeschen,
|
|
|
|
|
eigenem Insert im andereren Text aufspannen (bis
|
|
|
|
|
zum Insert!
|
|
|
|
|
- Ueberlappung von Text und - Redline Object einfuegen, der
|
|
|
|
|
anderem Insert andere Insert wird vom Delete
|
|
|
|
|
ueberlappt
|
|
|
|
|
*/
|
|
|
|
|
|
2006-08-14 14:59:18 +00:00
|
|
|
|
bool SwDoc::AppendRedline( SwRedline* pNewRedl, bool bCallDelete )
|
2000-09-18 23:08:29 +00:00
|
|
|
|
{
|
2009-10-16 15:49:11 +02:00
|
|
|
|
#if 0
|
2009-12-02 12:43:33 +01:00
|
|
|
|
// #i93179# disabled: ASSERT in ~SwIndexReg #ifdef DBG_UTIL
|
2006-10-11 07:48:48 +00:00
|
|
|
|
SwRedline aCopy( *pNewRedl );
|
|
|
|
|
#endif
|
2009-10-28 15:40:57 +00:00
|
|
|
|
bool bError = true;
|
2000-09-18 23:08:29 +00:00
|
|
|
|
_CHECK_REDLINE( this )
|
|
|
|
|
|
|
|
|
|
if( IsRedlineOn() && !IsShowOriginal( eRedlineMode ) &&
|
|
|
|
|
pNewRedl->GetAuthorString().Len() )
|
|
|
|
|
{
|
|
|
|
|
pNewRedl->InvalidateRange();
|
|
|
|
|
|
2006-08-14 14:59:18 +00:00
|
|
|
|
if( mbIsAutoFmtRedline )
|
2000-09-18 23:08:29 +00:00
|
|
|
|
{
|
|
|
|
|
pNewRedl->SetAutoFmtFlag();
|
|
|
|
|
if( pAutoFmtRedlnComment && pAutoFmtRedlnComment->Len() )
|
|
|
|
|
{
|
|
|
|
|
pNewRedl->SetComment( *pAutoFmtRedlnComment );
|
|
|
|
|
pNewRedl->SetSeqNo( nAutoFmtRedlnCommentNo );
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
SwPosition* pStt = pNewRedl->Start(),
|
|
|
|
|
* pEnd = pStt == pNewRedl->GetPoint() ? pNewRedl->GetMark()
|
|
|
|
|
: pNewRedl->GetPoint();
|
2006-08-14 09:02:07 +00:00
|
|
|
|
{
|
|
|
|
|
SwTxtNode* pTxtNode = pStt->nNode.GetNode().GetTxtNode();
|
|
|
|
|
if( pTxtNode == NULL )
|
|
|
|
|
{
|
|
|
|
|
if( pStt->nContent > 0 )
|
|
|
|
|
{
|
|
|
|
|
DBG_ASSERT( false, "Redline start: non-text-node with content" );
|
|
|
|
|
pStt->nContent = 0;
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
else
|
|
|
|
|
{
|
|
|
|
|
if( pStt->nContent > pTxtNode->Len() )
|
|
|
|
|
{
|
|
|
|
|
DBG_ASSERT( false, "Redline start: index behind text" );
|
|
|
|
|
pStt->nContent = pTxtNode->Len();
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
pTxtNode = pEnd->nNode.GetNode().GetTxtNode();
|
|
|
|
|
if( pTxtNode == NULL )
|
|
|
|
|
{
|
|
|
|
|
if( pEnd->nContent > 0 )
|
|
|
|
|
{
|
|
|
|
|
DBG_ASSERT( false, "Redline end: non-text-node with content" );
|
|
|
|
|
pEnd->nContent = 0;
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
else
|
|
|
|
|
{
|
|
|
|
|
if( pEnd->nContent > pTxtNode->Len() )
|
|
|
|
|
{
|
|
|
|
|
DBG_ASSERT( false, "Redline end: index behind text" );
|
|
|
|
|
pEnd->nContent = pTxtNode->Len();
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
}
|
2006-07-19 08:35:31 +00:00
|
|
|
|
if( ( *pStt == *pEnd ) &&
|
|
|
|
|
( pNewRedl->GetContentIdx() == NULL ) )
|
|
|
|
|
{ // Do not insert empty redlines
|
|
|
|
|
delete pNewRedl;
|
|
|
|
|
return FALSE;
|
|
|
|
|
}
|
|
|
|
|
BOOL bCompress = FALSE;
|
2000-09-18 23:08:29 +00:00
|
|
|
|
USHORT n = 0;
|
|
|
|
|
// zur StartPos das erste Redline suchen
|
|
|
|
|
if( !GetRedline( *pStt, &n ) && n )
|
|
|
|
|
--n;
|
2006-07-19 08:35:31 +00:00
|
|
|
|
bool bDec = false;
|
2000-09-18 23:08:29 +00:00
|
|
|
|
|
2006-07-19 08:35:31 +00:00
|
|
|
|
for( ; pNewRedl && n < pRedlineTbl->Count(); bDec ? n : ++n )
|
2000-09-18 23:08:29 +00:00
|
|
|
|
{
|
2006-07-19 08:35:31 +00:00
|
|
|
|
bDec = false;
|
2003-03-27 14:45:43 +00:00
|
|
|
|
#ifdef DVO_TEST
|
|
|
|
|
_CHECK_REDLINE( this )
|
|
|
|
|
#endif
|
|
|
|
|
|
2000-09-18 23:08:29 +00:00
|
|
|
|
SwRedline* pRedl = (*pRedlineTbl)[ n ];
|
|
|
|
|
SwPosition* pRStt = pRedl->Start(),
|
|
|
|
|
* pREnd = pRStt == pRedl->GetPoint() ? pRedl->GetMark()
|
|
|
|
|
: pRedl->GetPoint();
|
|
|
|
|
|
2003-03-27 14:45:43 +00:00
|
|
|
|
// #i8518# remove empty redlines while we're at it
|
|
|
|
|
if( ( *pRStt == *pREnd ) &&
|
|
|
|
|
( pRedl->GetContentIdx() == NULL ) )
|
|
|
|
|
{
|
|
|
|
|
pRedlineTbl->DeleteAndDestroy(n);
|
|
|
|
|
continue;
|
|
|
|
|
}
|
|
|
|
|
|
2000-09-18 23:08:29 +00:00
|
|
|
|
SwComparePosition eCmpPos = ComparePosition( *pStt, *pEnd, *pRStt, *pREnd );
|
|
|
|
|
|
|
|
|
|
switch( pNewRedl->GetType() )
|
|
|
|
|
{
|
2007-09-27 07:36:43 +00:00
|
|
|
|
case nsRedlineType_t::REDLINE_INSERT:
|
2000-09-18 23:08:29 +00:00
|
|
|
|
switch( pRedl->GetType() )
|
|
|
|
|
{
|
2007-09-27 07:36:43 +00:00
|
|
|
|
case nsRedlineType_t::REDLINE_INSERT:
|
2000-09-18 23:08:29 +00:00
|
|
|
|
if( pRedl->IsOwnRedline( *pNewRedl ) )
|
|
|
|
|
{
|
2003-04-01 15:00:35 +00:00
|
|
|
|
bool bDelete = false;
|
|
|
|
|
|
2000-09-18 23:08:29 +00:00
|
|
|
|
// ggfs. verschmelzen?
|
2001-01-26 17:09:51 +00:00
|
|
|
|
if( (( POS_BEHIND == eCmpPos &&
|
2002-11-11 14:27:26 +00:00
|
|
|
|
IsPrevPos( *pREnd, *pStt ) ) ||
|
|
|
|
|
( POS_COLLIDE_START == eCmpPos ) ||
|
|
|
|
|
( POS_OVERLAP_BEHIND == eCmpPos ) ) &&
|
2000-09-18 23:08:29 +00:00
|
|
|
|
pRedl->CanCombine( *pNewRedl ) &&
|
|
|
|
|
( n+1 >= pRedlineTbl->Count() ||
|
2006-10-11 07:48:48 +00:00
|
|
|
|
( *(*pRedlineTbl)[ n+1 ]->Start() >= *pEnd &&
|
|
|
|
|
*(*pRedlineTbl)[ n+1 ]->Start() != *pREnd ) ) )
|
2000-09-18 23:08:29 +00:00
|
|
|
|
{
|
|
|
|
|
pRedl->SetEnd( *pEnd, pREnd );
|
|
|
|
|
if( !pRedl->HasValidRange() )
|
|
|
|
|
{
|
|
|
|
|
// neu einsortieren
|
|
|
|
|
pRedlineTbl->Remove( n );
|
|
|
|
|
pRedlineTbl->Insert( pRedl );
|
|
|
|
|
}
|
2003-04-01 15:00:35 +00:00
|
|
|
|
|
2009-10-28 15:40:57 +00:00
|
|
|
|
bError = false;
|
2003-04-01 15:00:35 +00:00
|
|
|
|
bDelete = true;
|
2000-09-18 23:08:29 +00:00
|
|
|
|
}
|
2001-01-26 17:09:51 +00:00
|
|
|
|
else if( (( POS_BEFORE == eCmpPos &&
|
|
|
|
|
IsPrevPos( *pEnd, *pRStt ) ) ||
|
2002-11-11 14:27:26 +00:00
|
|
|
|
( POS_COLLIDE_END == eCmpPos ) ||
|
|
|
|
|
( POS_OVERLAP_BEFORE == eCmpPos ) ) &&
|
2000-09-18 23:08:29 +00:00
|
|
|
|
pRedl->CanCombine( *pNewRedl ) &&
|
|
|
|
|
( !n ||
|
|
|
|
|
*(*pRedlineTbl)[ n-1 ]->End() != *pRStt ))
|
|
|
|
|
{
|
|
|
|
|
pRedl->SetStart( *pStt, pRStt );
|
|
|
|
|
// neu einsortieren
|
|
|
|
|
pRedlineTbl->Remove( n );
|
|
|
|
|
pRedlineTbl->Insert( pRedl );
|
2003-04-01 15:00:35 +00:00
|
|
|
|
|
2009-10-28 15:40:57 +00:00
|
|
|
|
bError = false;
|
2003-04-01 15:00:35 +00:00
|
|
|
|
bDelete = true;
|
2000-09-18 23:08:29 +00:00
|
|
|
|
}
|
2003-03-27 14:45:43 +00:00
|
|
|
|
else if ( POS_OUTSIDE == eCmpPos )
|
|
|
|
|
{
|
|
|
|
|
// #107164# own insert-over-insert
|
|
|
|
|
// redlines: just scrap the inside ones
|
|
|
|
|
pRedlineTbl->Remove( n );
|
2006-10-11 07:48:48 +00:00
|
|
|
|
bDec = true;
|
2003-03-27 14:45:43 +00:00
|
|
|
|
}
|
2003-04-01 15:00:35 +00:00
|
|
|
|
// <- #107164#
|
|
|
|
|
else if( POS_OVERLAP_BEHIND == eCmpPos )
|
|
|
|
|
{
|
|
|
|
|
*pStt = *pREnd;
|
2006-07-19 08:35:31 +00:00
|
|
|
|
if( ( *pStt == *pEnd ) &&
|
|
|
|
|
( pNewRedl->GetContentIdx() == NULL ) )
|
|
|
|
|
bDelete = true;
|
2003-04-01 15:00:35 +00:00
|
|
|
|
}
|
|
|
|
|
else if( POS_OVERLAP_BEFORE == eCmpPos )
|
|
|
|
|
{
|
|
|
|
|
*pEnd = *pRStt;
|
2006-07-19 08:35:31 +00:00
|
|
|
|
if( ( *pStt == *pEnd ) &&
|
|
|
|
|
( pNewRedl->GetContentIdx() == NULL ) )
|
|
|
|
|
bDelete = true;
|
2003-04-01 15:00:35 +00:00
|
|
|
|
}
|
|
|
|
|
else if( POS_INSIDE == eCmpPos || POS_EQUAL == eCmpPos)
|
|
|
|
|
bDelete = true;
|
2000-09-18 23:08:29 +00:00
|
|
|
|
|
2003-04-01 15:00:35 +00:00
|
|
|
|
if( bDelete )
|
|
|
|
|
{
|
|
|
|
|
delete pNewRedl, pNewRedl = 0;
|
|
|
|
|
bCompress = TRUE;
|
|
|
|
|
}
|
2000-09-18 23:08:29 +00:00
|
|
|
|
}
|
|
|
|
|
else if( POS_INSIDE == eCmpPos )
|
|
|
|
|
{
|
|
|
|
|
// aufsplitten
|
|
|
|
|
if( *pEnd != *pREnd )
|
|
|
|
|
{
|
|
|
|
|
SwRedline* pCpy = new SwRedline( *pRedl );
|
|
|
|
|
pCpy->SetStart( *pEnd );
|
|
|
|
|
pRedlineTbl->Insert( pCpy );
|
|
|
|
|
}
|
|
|
|
|
pRedl->SetEnd( *pStt, pREnd );
|
2006-07-19 08:35:31 +00:00
|
|
|
|
if( ( *pStt == *pRStt ) &&
|
|
|
|
|
( pRedl->GetContentIdx() == NULL ) )
|
|
|
|
|
{
|
|
|
|
|
pRedlineTbl->DeleteAndDestroy( n );
|
|
|
|
|
bDec = true;
|
|
|
|
|
}
|
|
|
|
|
else if( !pRedl->HasValidRange() )
|
2000-09-18 23:08:29 +00:00
|
|
|
|
{
|
|
|
|
|
// neu einsortieren
|
|
|
|
|
pRedlineTbl->Remove( n );
|
|
|
|
|
pRedlineTbl->Insert( pRedl );
|
|
|
|
|
}
|
|
|
|
|
}
|
2002-10-11 14:01:32 +00:00
|
|
|
|
else if ( POS_OUTSIDE == eCmpPos )
|
|
|
|
|
{
|
|
|
|
|
// #102366# handle overlapping redlines in broken
|
|
|
|
|
// documents
|
|
|
|
|
|
|
|
|
|
// split up the new redline, since it covers the
|
|
|
|
|
// existing redline. Insert the first part, and
|
|
|
|
|
// progress with the remainder as usual
|
|
|
|
|
SwRedline* pSplit = new SwRedline( *pNewRedl );
|
|
|
|
|
pSplit->SetEnd( *pRStt );
|
|
|
|
|
pNewRedl->SetStart( *pREnd );
|
|
|
|
|
pRedlineTbl->Insert( pSplit );
|
2006-07-19 08:35:31 +00:00
|
|
|
|
if( *pStt == *pEnd && pNewRedl->GetContentIdx() == NULL )
|
|
|
|
|
{
|
|
|
|
|
delete pNewRedl;
|
|
|
|
|
pNewRedl = 0;
|
|
|
|
|
bCompress = true;
|
|
|
|
|
}
|
2002-10-11 14:01:32 +00:00
|
|
|
|
}
|
2003-03-27 14:45:43 +00:00
|
|
|
|
else if ( POS_OVERLAP_BEHIND == eCmpPos )
|
|
|
|
|
{
|
|
|
|
|
// #107164# handle overlapping redlines in broken
|
|
|
|
|
// documents
|
|
|
|
|
pNewRedl->SetStart( *pREnd );
|
|
|
|
|
}
|
|
|
|
|
else if ( POS_OVERLAP_BEFORE == eCmpPos )
|
|
|
|
|
{
|
|
|
|
|
// #107164# handle overlapping redlines in broken
|
|
|
|
|
// documents
|
2006-07-19 08:35:31 +00:00
|
|
|
|
*pEnd = *pRStt;
|
|
|
|
|
if( ( *pStt == *pEnd ) &&
|
|
|
|
|
( pNewRedl->GetContentIdx() == NULL ) )
|
|
|
|
|
{
|
|
|
|
|
delete pNewRedl;
|
|
|
|
|
pNewRedl = 0;
|
|
|
|
|
bCompress = true;
|
|
|
|
|
}
|
2003-03-27 14:45:43 +00:00
|
|
|
|
}
|
2000-09-18 23:08:29 +00:00
|
|
|
|
break;
|
2007-09-27 07:36:43 +00:00
|
|
|
|
case nsRedlineType_t::REDLINE_DELETE:
|
2000-09-18 23:08:29 +00:00
|
|
|
|
if( POS_INSIDE == eCmpPos )
|
|
|
|
|
{
|
|
|
|
|
// aufsplitten
|
2006-07-19 08:35:31 +00:00
|
|
|
|
if( *pEnd != *pREnd )
|
|
|
|
|
{
|
|
|
|
|
SwRedline* pCpy = new SwRedline( *pRedl );
|
|
|
|
|
pCpy->SetStart( *pEnd );
|
|
|
|
|
pRedlineTbl->Insert( pCpy );
|
|
|
|
|
}
|
2000-09-18 23:08:29 +00:00
|
|
|
|
pRedl->SetEnd( *pStt, pREnd );
|
2006-07-19 08:35:31 +00:00
|
|
|
|
if( ( *pStt == *pRStt ) &&
|
|
|
|
|
( pRedl->GetContentIdx() == NULL ) )
|
|
|
|
|
{
|
|
|
|
|
pRedlineTbl->DeleteAndDestroy( n );
|
|
|
|
|
bDec = true;
|
|
|
|
|
}
|
|
|
|
|
else if( !pRedl->HasValidRange() )
|
2000-09-18 23:08:29 +00:00
|
|
|
|
{
|
|
|
|
|
// neu einsortieren
|
|
|
|
|
pRedlineTbl->Remove( n );
|
|
|
|
|
pRedlineTbl->Insert( pRedl, n );
|
|
|
|
|
}
|
|
|
|
|
}
|
2002-10-11 14:01:32 +00:00
|
|
|
|
else if ( POS_OUTSIDE == eCmpPos )
|
|
|
|
|
{
|
|
|
|
|
// #102366# handle overlapping redlines in broken
|
|
|
|
|
// documents
|
|
|
|
|
|
|
|
|
|
// split up the new redline, since it covers the
|
|
|
|
|
// existing redline. Insert the first part, and
|
|
|
|
|
// progress with the remainder as usual
|
|
|
|
|
SwRedline* pSplit = new SwRedline( *pNewRedl );
|
|
|
|
|
pSplit->SetEnd( *pRStt );
|
|
|
|
|
pNewRedl->SetStart( *pREnd );
|
|
|
|
|
pRedlineTbl->Insert( pSplit );
|
2006-07-19 08:35:31 +00:00
|
|
|
|
if( *pStt == *pEnd && pNewRedl->GetContentIdx() == NULL )
|
|
|
|
|
{
|
|
|
|
|
delete pNewRedl;
|
|
|
|
|
pNewRedl = 0;
|
|
|
|
|
bCompress = true;
|
|
|
|
|
}
|
2002-10-11 14:01:32 +00:00
|
|
|
|
}
|
2004-06-11 07:54:19 +00:00
|
|
|
|
else if ( POS_EQUAL == eCmpPos )
|
|
|
|
|
{
|
|
|
|
|
// #112895# handle identical redlines in broken
|
|
|
|
|
// documents - delete old (delete) redline
|
2006-07-19 08:35:31 +00:00
|
|
|
|
pRedlineTbl->DeleteAndDestroy( n );
|
|
|
|
|
bDec = true;
|
2004-06-11 07:54:19 +00:00
|
|
|
|
}
|
2006-10-11 07:48:48 +00:00
|
|
|
|
else if ( POS_OVERLAP_BEHIND == eCmpPos )
|
|
|
|
|
{ // Another workaround for broken redlines (#107164#)
|
|
|
|
|
pNewRedl->SetStart( *pREnd );
|
|
|
|
|
}
|
2000-09-18 23:08:29 +00:00
|
|
|
|
break;
|
2007-09-27 07:36:43 +00:00
|
|
|
|
case nsRedlineType_t::REDLINE_FORMAT:
|
2000-09-18 23:08:29 +00:00
|
|
|
|
switch( eCmpPos )
|
|
|
|
|
{
|
|
|
|
|
case POS_OVERLAP_BEFORE:
|
|
|
|
|
pRedl->SetStart( *pEnd, pRStt );
|
|
|
|
|
// neu einsortieren
|
|
|
|
|
pRedlineTbl->Remove( n );
|
|
|
|
|
pRedlineTbl->Insert( pRedl, n );
|
2006-07-19 08:35:31 +00:00
|
|
|
|
bDec = true;
|
2000-09-18 23:08:29 +00:00
|
|
|
|
break;
|
|
|
|
|
|
|
|
|
|
case POS_OVERLAP_BEHIND:
|
|
|
|
|
pRedl->SetEnd( *pStt, pREnd );
|
2006-07-19 08:35:31 +00:00
|
|
|
|
if( *pStt == *pRStt && pRedl->GetContentIdx() == NULL )
|
|
|
|
|
{
|
|
|
|
|
pRedlineTbl->DeleteAndDestroy( n );
|
|
|
|
|
bDec = true;
|
|
|
|
|
}
|
2000-09-18 23:08:29 +00:00
|
|
|
|
break;
|
|
|
|
|
|
|
|
|
|
case POS_EQUAL:
|
|
|
|
|
case POS_OUTSIDE:
|
|
|
|
|
// ueberlappt den akt. komplett oder hat gleiche
|
|
|
|
|
// Ausdehung, dann muss der alte geloescht werden
|
2006-07-19 08:35:31 +00:00
|
|
|
|
pRedlineTbl->DeleteAndDestroy( n );
|
|
|
|
|
bDec = true;
|
2000-09-18 23:08:29 +00:00
|
|
|
|
break;
|
|
|
|
|
|
|
|
|
|
case POS_INSIDE:
|
|
|
|
|
// ueberlappt den akt. komplett, dann muss
|
|
|
|
|
// der neue gesplittet oder verkuertzt werden
|
|
|
|
|
if( *pEnd != *pREnd )
|
|
|
|
|
{
|
2006-07-19 08:35:31 +00:00
|
|
|
|
if( *pEnd != *pRStt )
|
|
|
|
|
{
|
|
|
|
|
SwRedline* pNew = new SwRedline( *pRedl );
|
|
|
|
|
pNew->SetStart( *pEnd );
|
|
|
|
|
pRedl->SetEnd( *pStt, pREnd );
|
|
|
|
|
if( *pStt == *pRStt && pRedl->GetContentIdx() == NULL )
|
|
|
|
|
pRedlineTbl->DeleteAndDestroy( n );
|
|
|
|
|
AppendRedline( pNew, bCallDelete );
|
|
|
|
|
n = 0; // neu Aufsetzen
|
|
|
|
|
bDec = true;
|
|
|
|
|
}
|
2000-09-18 23:08:29 +00:00
|
|
|
|
}
|
|
|
|
|
else
|
|
|
|
|
pRedl->SetEnd( *pStt, pREnd );
|
|
|
|
|
break;
|
2004-06-16 08:38:35 +00:00
|
|
|
|
default:
|
|
|
|
|
break;
|
2000-09-18 23:08:29 +00:00
|
|
|
|
}
|
|
|
|
|
break;
|
2004-06-16 08:38:35 +00:00
|
|
|
|
default:
|
|
|
|
|
break;
|
2000-09-18 23:08:29 +00:00
|
|
|
|
}
|
|
|
|
|
break;
|
|
|
|
|
|
2007-09-27 07:36:43 +00:00
|
|
|
|
case nsRedlineType_t::REDLINE_DELETE:
|
2000-09-18 23:08:29 +00:00
|
|
|
|
switch( pRedl->GetType() )
|
|
|
|
|
{
|
2007-09-27 07:36:43 +00:00
|
|
|
|
case nsRedlineType_t::REDLINE_DELETE:
|
2000-09-18 23:08:29 +00:00
|
|
|
|
switch( eCmpPos )
|
|
|
|
|
{
|
|
|
|
|
case POS_OUTSIDE:
|
|
|
|
|
{
|
|
|
|
|
// ueberlappt den akt. komplett
|
|
|
|
|
// dann muss der neue gesplittet werden
|
2001-04-25 10:30:51 +00:00
|
|
|
|
if( *pEnd != *pREnd )
|
|
|
|
|
{
|
|
|
|
|
SwRedline* pNew = new SwRedline( *pNewRedl );
|
|
|
|
|
pNew->SetStart( *pREnd );
|
|
|
|
|
pNewRedl->SetEnd( *pRStt, pEnd );
|
|
|
|
|
AppendRedline( pNew, bCallDelete );
|
2006-07-19 08:35:31 +00:00
|
|
|
|
n = 0; // neu Aufsetzen
|
|
|
|
|
bDec = true;
|
2001-04-25 10:30:51 +00:00
|
|
|
|
}
|
|
|
|
|
else
|
|
|
|
|
pNewRedl->SetEnd( *pRStt, pEnd );
|
2000-09-18 23:08:29 +00:00
|
|
|
|
}
|
|
|
|
|
break;
|
|
|
|
|
|
|
|
|
|
case POS_INSIDE:
|
|
|
|
|
case POS_EQUAL:
|
|
|
|
|
delete pNewRedl, pNewRedl = 0;
|
|
|
|
|
bCompress = TRUE;
|
|
|
|
|
break;
|
|
|
|
|
|
|
|
|
|
case POS_OVERLAP_BEFORE:
|
|
|
|
|
case POS_OVERLAP_BEHIND:
|
|
|
|
|
if( pRedl->IsOwnRedline( *pNewRedl ) &&
|
|
|
|
|
// 1 == pRedl->GetStackCount() &&
|
|
|
|
|
pRedl->CanCombine( *pNewRedl ))
|
|
|
|
|
{
|
|
|
|
|
// dann kann das zusammengefasst werden, sprich
|
|
|
|
|
// der neue deckt das schon ab.
|
|
|
|
|
if( POS_OVERLAP_BEHIND == eCmpPos )
|
|
|
|
|
pNewRedl->SetStart( *pRStt, pStt );
|
|
|
|
|
else
|
|
|
|
|
pNewRedl->SetEnd( *pREnd, pEnd );
|
2006-07-19 08:35:31 +00:00
|
|
|
|
pRedlineTbl->DeleteAndDestroy( n );
|
|
|
|
|
bDec = true;
|
2000-09-18 23:08:29 +00:00
|
|
|
|
}
|
|
|
|
|
else if( POS_OVERLAP_BEHIND == eCmpPos )
|
|
|
|
|
pNewRedl->SetStart( *pREnd, pStt );
|
|
|
|
|
else
|
|
|
|
|
pNewRedl->SetEnd( *pRStt, pEnd );
|
|
|
|
|
break;
|
2001-01-26 17:09:51 +00:00
|
|
|
|
|
|
|
|
|
case POS_COLLIDE_START:
|
|
|
|
|
case POS_COLLIDE_END:
|
2000-09-18 23:08:29 +00:00
|
|
|
|
if( pRedl->IsOwnRedline( *pNewRedl ) &&
|
|
|
|
|
// 1 == pRedl->GetStackCount() &&
|
2001-01-26 17:09:51 +00:00
|
|
|
|
pRedl->CanCombine( *pNewRedl ) )
|
2000-09-18 23:08:29 +00:00
|
|
|
|
{
|
|
|
|
|
if( IsHideChanges( eRedlineMode ))
|
|
|
|
|
{
|
|
|
|
|
// dann erstmal sichtbar machen, bevor
|
|
|
|
|
// die zusammengefasst werden koennen!
|
|
|
|
|
// Damit pNew auch beim Verschieben der
|
|
|
|
|
// Indizies behandelt wird, erstmal
|
|
|
|
|
// temporaer einfuegen
|
|
|
|
|
pRedlineTbl->SavePtrInArr( pNewRedl );
|
|
|
|
|
pRedl->Show();
|
|
|
|
|
pRedlineTbl->Remove( pRedlineTbl->GetPos(pNewRedl ));
|
|
|
|
|
pRStt = pRedl->Start();
|
|
|
|
|
pREnd = pRedl->End();
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
// dann kann das zusammengefasst werden, sprich
|
|
|
|
|
// der neue deckt das schon ab.
|
2001-01-26 17:09:51 +00:00
|
|
|
|
if( POS_COLLIDE_START == eCmpPos )
|
2000-09-18 23:08:29 +00:00
|
|
|
|
pNewRedl->SetStart( *pRStt, pStt );
|
|
|
|
|
else
|
|
|
|
|
pNewRedl->SetEnd( *pREnd, pEnd );
|
2003-03-27 14:45:43 +00:00
|
|
|
|
|
|
|
|
|
// delete current (below), and restart process with
|
|
|
|
|
// previous
|
|
|
|
|
USHORT nToBeDeleted = n;
|
2006-07-19 08:35:31 +00:00
|
|
|
|
bDec = true;
|
2003-03-27 14:45:43 +00:00
|
|
|
|
|
|
|
|
|
// #107359# Do it again, Sam!
|
|
|
|
|
// If you can do it for them, you can do it for me.
|
|
|
|
|
if( *(pNewRedl->Start()) <= *pREnd )
|
|
|
|
|
{
|
|
|
|
|
// Whoooah, we just extended the new 'redline'
|
|
|
|
|
// beyond previous redlines, so better start
|
|
|
|
|
// again. Of course this is not supposed to
|
|
|
|
|
// happen, and in an ideal world it doesn't,
|
|
|
|
|
// but unfortunately this code is buggy and
|
|
|
|
|
// totally rotten so it does happen and we
|
|
|
|
|
// better fix it.
|
2006-07-19 08:35:31 +00:00
|
|
|
|
n = 0;
|
|
|
|
|
bDec = true;
|
2003-03-27 14:45:43 +00:00
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
pRedlineTbl->DeleteAndDestroy( nToBeDeleted );
|
2000-09-18 23:08:29 +00:00
|
|
|
|
}
|
|
|
|
|
break;
|
2004-06-16 08:38:35 +00:00
|
|
|
|
default:
|
|
|
|
|
break;
|
2000-09-18 23:08:29 +00:00
|
|
|
|
}
|
|
|
|
|
break;
|
|
|
|
|
|
2007-09-27 07:36:43 +00:00
|
|
|
|
case nsRedlineType_t::REDLINE_INSERT:
|
2006-04-19 13:16:59 +00:00
|
|
|
|
{
|
|
|
|
|
// b62341295: Do not throw away redlines
|
|
|
|
|
// even if they are not allowed to be combined
|
2007-09-27 07:36:43 +00:00
|
|
|
|
RedlineMode_t eOld = eRedlineMode;
|
|
|
|
|
if( !( eOld & nsRedlineMode_t::REDLINE_DONTCOMBINE_REDLINES ) &&
|
2006-04-19 13:16:59 +00:00
|
|
|
|
pRedl->IsOwnRedline( *pNewRedl ) )
|
2000-09-18 23:08:29 +00:00
|
|
|
|
{
|
2001-05-23 15:00:15 +00:00
|
|
|
|
|
2000-09-18 23:08:29 +00:00
|
|
|
|
// auf NONE setzen, damit das Delete::Redo die RedlineDaten wieder richtig
|
|
|
|
|
// zusammen fasst! Der ShowMode muss erhalten bleiben!
|
2007-09-27 07:36:43 +00:00
|
|
|
|
eRedlineMode = (RedlineMode_t)(eOld & ~(nsRedlineMode_t::REDLINE_ON | nsRedlineMode_t::REDLINE_IGNORE));
|
2000-09-18 23:08:29 +00:00
|
|
|
|
switch( eCmpPos )
|
|
|
|
|
{
|
|
|
|
|
case POS_EQUAL:
|
|
|
|
|
bCompress = TRUE;
|
2006-07-19 08:35:31 +00:00
|
|
|
|
pRedlineTbl->DeleteAndDestroy( n );
|
|
|
|
|
bDec = true;
|
2000-09-18 23:08:29 +00:00
|
|
|
|
// kein break!
|
|
|
|
|
|
|
|
|
|
case POS_INSIDE:
|
|
|
|
|
if( bCallDelete )
|
|
|
|
|
{
|
2007-09-27 07:36:43 +00:00
|
|
|
|
eRedlineMode = (RedlineMode_t)(eRedlineMode | nsRedlineMode_t::REDLINE_IGNOREDELETE_REDLINES);
|
2002-05-29 09:41:25 +00:00
|
|
|
|
|
|
|
|
|
// #98863# DeleteAndJoin does not yield the
|
|
|
|
|
// desired result if there is no paragraph to
|
|
|
|
|
// join with, i.e. at the end of the document.
|
|
|
|
|
// For this case, we completely delete the
|
|
|
|
|
// paragraphs (if, of course, we also start on
|
|
|
|
|
// a paragraph boundary).
|
|
|
|
|
if( (pStt->nContent == 0) &&
|
|
|
|
|
pEnd->nNode.GetNode().IsEndNode() )
|
|
|
|
|
{
|
|
|
|
|
pEnd->nNode--;
|
|
|
|
|
pEnd->nContent.Assign(
|
|
|
|
|
pEnd->nNode.GetNode().GetTxtNode(), 0);
|
|
|
|
|
DelFullPara( *pNewRedl );
|
|
|
|
|
}
|
|
|
|
|
else
|
|
|
|
|
DeleteAndJoin( *pNewRedl );
|
|
|
|
|
|
2000-09-18 23:08:29 +00:00
|
|
|
|
bCompress = TRUE;
|
|
|
|
|
}
|
|
|
|
|
delete pNewRedl, pNewRedl = 0;
|
|
|
|
|
break;
|
|
|
|
|
|
|
|
|
|
case POS_OUTSIDE:
|
|
|
|
|
{
|
2006-07-19 08:35:31 +00:00
|
|
|
|
pRedlineTbl->Remove( n );
|
|
|
|
|
bDec = true;
|
2000-09-18 23:08:29 +00:00
|
|
|
|
// damit pNew auch beim Verschieben der Indizies
|
|
|
|
|
// behandelt wird, erstmal temp. einfuegen
|
|
|
|
|
if( bCallDelete )
|
|
|
|
|
{
|
|
|
|
|
pRedlineTbl->SavePtrInArr( pNewRedl );
|
|
|
|
|
DeleteAndJoin( *pRedl );
|
|
|
|
|
USHORT nFnd = pRedlineTbl->GetPos(pNewRedl );
|
|
|
|
|
if( USHRT_MAX != nFnd )
|
|
|
|
|
pRedlineTbl->Remove( nFnd );
|
|
|
|
|
else
|
|
|
|
|
pNewRedl = 0;
|
|
|
|
|
}
|
|
|
|
|
delete pRedl;
|
|
|
|
|
}
|
|
|
|
|
break;
|
|
|
|
|
|
|
|
|
|
case POS_OVERLAP_BEFORE:
|
|
|
|
|
{
|
|
|
|
|
SwPaM aPam( *pRStt, *pEnd );
|
|
|
|
|
|
|
|
|
|
if( *pEnd == *pREnd )
|
2006-07-19 08:35:31 +00:00
|
|
|
|
pRedlineTbl->DeleteAndDestroy( n );
|
2000-09-18 23:08:29 +00:00
|
|
|
|
else
|
|
|
|
|
{
|
|
|
|
|
pRedl->SetStart( *pEnd, pRStt );
|
|
|
|
|
// neu einsortieren
|
|
|
|
|
pRedlineTbl->Remove( n );
|
|
|
|
|
pRedlineTbl->Insert( pRedl, n );
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
if( bCallDelete )
|
|
|
|
|
{
|
|
|
|
|
// damit pNew auch beim Verschieben der Indizies
|
|
|
|
|
// behandelt wird, erstmal temp. einfuegen
|
|
|
|
|
pRedlineTbl->SavePtrInArr( pNewRedl );
|
|
|
|
|
DeleteAndJoin( aPam );
|
|
|
|
|
USHORT nFnd = pRedlineTbl->GetPos(pNewRedl );
|
|
|
|
|
if( USHRT_MAX != nFnd )
|
|
|
|
|
pRedlineTbl->Remove( nFnd );
|
|
|
|
|
else
|
|
|
|
|
pNewRedl = 0;
|
2006-07-19 08:35:31 +00:00
|
|
|
|
n = 0; // neu Aufsetzen
|
2000-09-18 23:08:29 +00:00
|
|
|
|
}
|
2006-07-19 08:35:31 +00:00
|
|
|
|
bDec = true;
|
2000-09-18 23:08:29 +00:00
|
|
|
|
}
|
|
|
|
|
break;
|
|
|
|
|
|
|
|
|
|
case POS_OVERLAP_BEHIND:
|
|
|
|
|
{
|
|
|
|
|
SwPaM aPam( *pStt, *pREnd );
|
|
|
|
|
|
|
|
|
|
if( *pStt == *pRStt )
|
2006-07-19 08:35:31 +00:00
|
|
|
|
{
|
|
|
|
|
pRedlineTbl->DeleteAndDestroy( n );
|
|
|
|
|
bDec = true;
|
|
|
|
|
}
|
2000-09-18 23:08:29 +00:00
|
|
|
|
else
|
|
|
|
|
pRedl->SetEnd( *pStt, pREnd );
|
|
|
|
|
|
|
|
|
|
if( bCallDelete )
|
|
|
|
|
{
|
|
|
|
|
// damit pNew auch beim Verschieben der Indizies
|
|
|
|
|
// behandelt wird, erstmal temp. einfuegen
|
|
|
|
|
pRedlineTbl->SavePtrInArr( pNewRedl );
|
|
|
|
|
DeleteAndJoin( aPam );
|
|
|
|
|
USHORT nFnd = pRedlineTbl->GetPos(pNewRedl );
|
|
|
|
|
if( USHRT_MAX != nFnd )
|
|
|
|
|
pRedlineTbl->Remove( nFnd );
|
|
|
|
|
else
|
|
|
|
|
pNewRedl = 0;
|
2006-07-19 08:35:31 +00:00
|
|
|
|
n = 0; // neu Aufsetzen
|
|
|
|
|
bDec = true;
|
2000-09-18 23:08:29 +00:00
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
break;
|
2004-06-16 08:38:35 +00:00
|
|
|
|
default:
|
|
|
|
|
break;
|
2000-09-18 23:08:29 +00:00
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
eRedlineMode = eOld;
|
|
|
|
|
}
|
|
|
|
|
else
|
|
|
|
|
{
|
2002-11-28 16:45:15 +00:00
|
|
|
|
// it may be necessary to split the existing redline in
|
|
|
|
|
// two. In this case, pRedl will be changed to cover
|
|
|
|
|
// only part of it's former range, and pNew will cover
|
|
|
|
|
// the remainder.
|
2000-09-18 23:08:29 +00:00
|
|
|
|
SwRedline* pNew = 0;
|
2002-11-28 16:45:15 +00:00
|
|
|
|
|
2000-09-18 23:08:29 +00:00
|
|
|
|
switch( eCmpPos )
|
|
|
|
|
{
|
|
|
|
|
case POS_EQUAL:
|
|
|
|
|
{
|
|
|
|
|
pRedl->PushData( *pNewRedl );
|
|
|
|
|
delete pNewRedl, pNewRedl = 0;
|
|
|
|
|
if( IsHideChanges( eRedlineMode ))
|
|
|
|
|
pRedl->Hide();
|
|
|
|
|
bCompress = TRUE;
|
|
|
|
|
}
|
|
|
|
|
break;
|
|
|
|
|
|
|
|
|
|
case POS_INSIDE:
|
|
|
|
|
{
|
|
|
|
|
if( *pRStt == *pStt )
|
|
|
|
|
{
|
2010-05-18 14:22:07 +02:00
|
|
|
|
// --> mst 2010-05-17 #i97421#
|
|
|
|
|
// redline w/out extent loops
|
|
|
|
|
if (*pStt != *pEnd)
|
|
|
|
|
// <--
|
|
|
|
|
{
|
|
|
|
|
pNewRedl->PushData( *pRedl, FALSE );
|
|
|
|
|
pRedl->SetStart( *pEnd, pRStt );
|
|
|
|
|
// re-insert
|
|
|
|
|
pRedlineTbl->Remove( n );
|
|
|
|
|
pRedlineTbl->Insert( pRedl, n );
|
|
|
|
|
bDec = true;
|
|
|
|
|
}
|
2000-09-18 23:08:29 +00:00
|
|
|
|
}
|
|
|
|
|
else
|
|
|
|
|
{
|
2010-05-18 14:22:07 +02:00
|
|
|
|
pNewRedl->PushData( *pRedl, FALSE );
|
2006-07-19 08:35:31 +00:00
|
|
|
|
if( *pREnd != *pEnd )
|
2000-09-18 23:08:29 +00:00
|
|
|
|
{
|
|
|
|
|
pNew = new SwRedline( *pRedl );
|
|
|
|
|
pNew->SetStart( *pEnd );
|
|
|
|
|
}
|
2006-07-19 08:35:31 +00:00
|
|
|
|
pRedl->SetEnd( *pStt, pREnd );
|
2000-09-18 23:08:29 +00:00
|
|
|
|
if( !pRedl->HasValidRange() )
|
|
|
|
|
{
|
|
|
|
|
// neu einsortieren
|
|
|
|
|
pRedlineTbl->Remove( n );
|
|
|
|
|
pRedlineTbl->Insert( pRedl, n );
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
break;
|
|
|
|
|
|
|
|
|
|
case POS_OUTSIDE:
|
|
|
|
|
{
|
|
|
|
|
pRedl->PushData( *pNewRedl );
|
2006-08-14 09:02:07 +00:00
|
|
|
|
if( *pEnd == *pREnd )
|
|
|
|
|
pNewRedl->SetEnd( *pRStt, pEnd );
|
|
|
|
|
else
|
|
|
|
|
{
|
|
|
|
|
pNew = new SwRedline( *pNewRedl );
|
|
|
|
|
pNew->SetEnd( *pRStt );
|
|
|
|
|
pNewRedl->SetStart( *pREnd, pStt );
|
|
|
|
|
}
|
2000-09-18 23:08:29 +00:00
|
|
|
|
bCompress = TRUE;
|
|
|
|
|
}
|
|
|
|
|
break;
|
|
|
|
|
|
|
|
|
|
case POS_OVERLAP_BEFORE:
|
|
|
|
|
{
|
|
|
|
|
if( *pEnd == *pREnd )
|
|
|
|
|
{
|
|
|
|
|
pRedl->PushData( *pNewRedl );
|
|
|
|
|
pNewRedl->SetEnd( *pRStt, pEnd );
|
|
|
|
|
if( IsHideChanges( eRedlineMode ))
|
|
|
|
|
{
|
|
|
|
|
pRedlineTbl->SavePtrInArr( pNewRedl );
|
|
|
|
|
pRedl->Hide();
|
|
|
|
|
pRedlineTbl->Remove(
|
|
|
|
|
pRedlineTbl->GetPos(pNewRedl ));
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
else
|
|
|
|
|
{
|
|
|
|
|
pNew = new SwRedline( *pRedl );
|
|
|
|
|
pNew->PushData( *pNewRedl );
|
|
|
|
|
pNew->SetEnd( *pEnd );
|
|
|
|
|
pNewRedl->SetEnd( *pRStt, pEnd );
|
|
|
|
|
pRedl->SetStart( *pNew->End(), pRStt ) ;
|
|
|
|
|
// neu einsortieren
|
|
|
|
|
pRedlineTbl->Remove( n );
|
|
|
|
|
pRedlineTbl->Insert( pRedl );
|
2006-07-19 08:35:31 +00:00
|
|
|
|
bDec = true;
|
2000-09-18 23:08:29 +00:00
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
break;
|
|
|
|
|
|
|
|
|
|
case POS_OVERLAP_BEHIND:
|
|
|
|
|
{
|
|
|
|
|
if( *pStt == *pRStt )
|
|
|
|
|
{
|
|
|
|
|
pRedl->PushData( *pNewRedl );
|
|
|
|
|
pNewRedl->SetStart( *pREnd, pStt );
|
|
|
|
|
if( IsHideChanges( eRedlineMode ))
|
|
|
|
|
{
|
|
|
|
|
pRedlineTbl->SavePtrInArr( pNewRedl );
|
|
|
|
|
pRedl->Hide();
|
|
|
|
|
pRedlineTbl->Remove(
|
|
|
|
|
pRedlineTbl->GetPos(pNewRedl ));
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
else
|
|
|
|
|
{
|
|
|
|
|
pNew = new SwRedline( *pRedl );
|
|
|
|
|
pNew->PushData( *pNewRedl );
|
|
|
|
|
pNew->SetStart( *pStt );
|
|
|
|
|
pNewRedl->SetStart( *pREnd, pStt );
|
|
|
|
|
pRedl->SetEnd( *pNew->Start(), pREnd );
|
|
|
|
|
if( !pRedl->HasValidRange() )
|
|
|
|
|
{
|
|
|
|
|
// neu einsortieren
|
|
|
|
|
pRedlineTbl->Remove( n );
|
|
|
|
|
pRedlineTbl->Insert( pRedl );
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
break;
|
2004-06-16 08:38:35 +00:00
|
|
|
|
default:
|
|
|
|
|
break;
|
2000-09-18 23:08:29 +00:00
|
|
|
|
}
|
2002-11-28 16:45:15 +00:00
|
|
|
|
|
|
|
|
|
// insert the pNew part (if it exists)
|
2000-09-18 23:08:29 +00:00
|
|
|
|
if( pNew )
|
|
|
|
|
{
|
2002-11-28 16:45:15 +00:00
|
|
|
|
// AppendRedline( pNew, bCallDelete );
|
2007-09-27 07:36:43 +00:00
|
|
|
|
//sal_Bool bRet =
|
|
|
|
|
pRedlineTbl->Insert( pNew );
|
2002-11-28 16:45:15 +00:00
|
|
|
|
|
|
|
|
|
// pNew must be deleted if Insert() wasn't
|
|
|
|
|
// successful. But that can't happen, since pNew is
|
|
|
|
|
// part of the original pRedl redline.
|
2007-09-27 07:36:43 +00:00
|
|
|
|
// ASSERT( bRet, "Can't insert existing redline?" );
|
2002-11-28 16:45:15 +00:00
|
|
|
|
|
|
|
|
|
// restart (now with pRedl being split up)
|
2006-07-19 08:35:31 +00:00
|
|
|
|
n = 0;
|
|
|
|
|
bDec = true;
|
2000-09-18 23:08:29 +00:00
|
|
|
|
}
|
|
|
|
|
}
|
2006-04-19 13:16:59 +00:00
|
|
|
|
}
|
|
|
|
|
break;
|
2000-09-18 23:08:29 +00:00
|
|
|
|
|
2007-09-27 07:36:43 +00:00
|
|
|
|
case nsRedlineType_t::REDLINE_FORMAT:
|
2000-09-18 23:08:29 +00:00
|
|
|
|
switch( eCmpPos )
|
|
|
|
|
{
|
|
|
|
|
case POS_OVERLAP_BEFORE:
|
|
|
|
|
pRedl->SetStart( *pEnd, pRStt );
|
|
|
|
|
// neu einsortieren
|
|
|
|
|
pRedlineTbl->Remove( n );
|
|
|
|
|
pRedlineTbl->Insert( pRedl, n );
|
2006-07-19 08:35:31 +00:00
|
|
|
|
bDec = true;
|
2000-09-18 23:08:29 +00:00
|
|
|
|
break;
|
|
|
|
|
|
|
|
|
|
case POS_OVERLAP_BEHIND:
|
|
|
|
|
pRedl->SetEnd( *pStt, pREnd );
|
|
|
|
|
break;
|
|
|
|
|
|
|
|
|
|
case POS_EQUAL:
|
|
|
|
|
case POS_OUTSIDE:
|
|
|
|
|
// ueberlappt den akt. komplett oder hat gleiche
|
|
|
|
|
// Ausdehung, dann muss der alte geloescht werden
|
2006-07-19 08:35:31 +00:00
|
|
|
|
pRedlineTbl->DeleteAndDestroy( n );
|
|
|
|
|
bDec = true;
|
2000-09-18 23:08:29 +00:00
|
|
|
|
break;
|
|
|
|
|
|
|
|
|
|
case POS_INSIDE:
|
|
|
|
|
// ueberlappt den akt. komplett, dann muss
|
|
|
|
|
// der neue gesplittet oder verkuertzt werden
|
|
|
|
|
if( *pEnd != *pREnd )
|
|
|
|
|
{
|
2006-07-19 08:35:31 +00:00
|
|
|
|
if( *pEnd != *pRStt )
|
|
|
|
|
{
|
|
|
|
|
SwRedline* pNew = new SwRedline( *pRedl );
|
|
|
|
|
pNew->SetStart( *pEnd );
|
|
|
|
|
pRedl->SetEnd( *pStt, pREnd );
|
|
|
|
|
if( ( *pStt == *pRStt ) &&
|
|
|
|
|
( pRedl->GetContentIdx() == NULL ) )
|
|
|
|
|
pRedlineTbl->DeleteAndDestroy( n );
|
|
|
|
|
AppendRedline( pNew, bCallDelete );
|
|
|
|
|
n = 0; // neu Aufsetzen
|
|
|
|
|
bDec = true;
|
|
|
|
|
}
|
2000-09-18 23:08:29 +00:00
|
|
|
|
}
|
|
|
|
|
else
|
|
|
|
|
pRedl->SetEnd( *pStt, pREnd );
|
|
|
|
|
break;
|
2004-06-16 08:38:35 +00:00
|
|
|
|
default:
|
|
|
|
|
break;
|
2000-09-18 23:08:29 +00:00
|
|
|
|
}
|
|
|
|
|
break;
|
2004-06-16 08:38:35 +00:00
|
|
|
|
default:
|
|
|
|
|
break;
|
2000-09-18 23:08:29 +00:00
|
|
|
|
}
|
|
|
|
|
break;
|
|
|
|
|
|
2007-09-27 07:36:43 +00:00
|
|
|
|
case nsRedlineType_t::REDLINE_FORMAT:
|
2000-09-18 23:08:29 +00:00
|
|
|
|
switch( pRedl->GetType() )
|
|
|
|
|
{
|
2007-09-27 07:36:43 +00:00
|
|
|
|
case nsRedlineType_t::REDLINE_INSERT:
|
|
|
|
|
case nsRedlineType_t::REDLINE_DELETE:
|
2000-09-18 23:08:29 +00:00
|
|
|
|
switch( eCmpPos )
|
|
|
|
|
{
|
|
|
|
|
case POS_OVERLAP_BEFORE:
|
|
|
|
|
pNewRedl->SetEnd( *pRStt, pEnd );
|
|
|
|
|
break;
|
|
|
|
|
|
|
|
|
|
case POS_OVERLAP_BEHIND:
|
|
|
|
|
pNewRedl->SetStart( *pREnd, pStt );
|
|
|
|
|
break;
|
|
|
|
|
|
|
|
|
|
case POS_EQUAL:
|
|
|
|
|
case POS_INSIDE:
|
2010-04-19 17:23:07 +02:00
|
|
|
|
delete pNewRedl, pNewRedl = 0;
|
2000-09-18 23:08:29 +00:00
|
|
|
|
break;
|
|
|
|
|
|
|
|
|
|
case POS_OUTSIDE:
|
|
|
|
|
// ueberlappt den akt. komplett, dann muss
|
2006-07-19 08:35:31 +00:00
|
|
|
|
// der neue gesplittet oder verkuerzt werden
|
2000-09-18 23:08:29 +00:00
|
|
|
|
if( *pEnd != *pREnd )
|
|
|
|
|
{
|
2006-07-19 08:35:31 +00:00
|
|
|
|
if( *pEnd != *pRStt )
|
|
|
|
|
{
|
|
|
|
|
SwRedline* pNew = new SwRedline( *pNewRedl );
|
|
|
|
|
pNew->SetStart( *pREnd );
|
|
|
|
|
pNewRedl->SetEnd( *pRStt, pEnd );
|
|
|
|
|
AppendRedline( pNew, bCallDelete );
|
|
|
|
|
n = 0; // neu Aufsetzen
|
|
|
|
|
bDec = true;
|
|
|
|
|
}
|
2000-09-18 23:08:29 +00:00
|
|
|
|
}
|
|
|
|
|
else
|
|
|
|
|
pNewRedl->SetEnd( *pRStt, pEnd );
|
|
|
|
|
break;
|
2004-06-16 08:38:35 +00:00
|
|
|
|
default:
|
|
|
|
|
break;
|
2000-09-18 23:08:29 +00:00
|
|
|
|
}
|
|
|
|
|
break;
|
2007-09-27 07:36:43 +00:00
|
|
|
|
case nsRedlineType_t::REDLINE_FORMAT:
|
2000-09-18 23:08:29 +00:00
|
|
|
|
switch( eCmpPos )
|
|
|
|
|
{
|
|
|
|
|
case POS_OUTSIDE:
|
|
|
|
|
case POS_EQUAL:
|
|
|
|
|
{
|
|
|
|
|
// ueberlappt den akt. komplett oder hat gleiche
|
2006-07-19 08:35:31 +00:00
|
|
|
|
// Ausdehnung, dann muss der alte geloescht werden
|
|
|
|
|
pRedlineTbl->DeleteAndDestroy( n );
|
|
|
|
|
bDec = true;
|
2000-09-18 23:08:29 +00:00
|
|
|
|
}
|
|
|
|
|
break;
|
|
|
|
|
|
|
|
|
|
case POS_INSIDE:
|
|
|
|
|
if( pRedl->IsOwnRedline( *pNewRedl ) &&
|
|
|
|
|
pRedl->CanCombine( *pNewRedl ))
|
|
|
|
|
// ein eigenes kann komplett ignoriert werden
|
|
|
|
|
delete pNewRedl, pNewRedl = 0;
|
|
|
|
|
|
|
|
|
|
else if( *pREnd == *pEnd )
|
|
|
|
|
// ansonsten nur den akt. verkuerzen
|
|
|
|
|
pRedl->SetEnd( *pStt, pREnd );
|
|
|
|
|
else if( *pRStt == *pStt )
|
|
|
|
|
{
|
|
|
|
|
// ansonsten nur den akt. verkuerzen
|
|
|
|
|
pRedl->SetStart( *pEnd, pRStt );
|
|
|
|
|
// neu einsortieren
|
|
|
|
|
pRedlineTbl->Remove( n );
|
|
|
|
|
pRedlineTbl->Insert( pRedl, n );
|
2006-07-19 08:35:31 +00:00
|
|
|
|
bDec = true;
|
2000-09-18 23:08:29 +00:00
|
|
|
|
}
|
|
|
|
|
else
|
|
|
|
|
{
|
|
|
|
|
// liegt komplett im akt.
|
|
|
|
|
// dann muss der gesplittet werden
|
|
|
|
|
SwRedline* pNew = new SwRedline( *pRedl );
|
|
|
|
|
pNew->SetStart( *pEnd );
|
|
|
|
|
pRedl->SetEnd( *pStt, pREnd );
|
|
|
|
|
AppendRedline( pNew, bCallDelete );
|
2006-07-19 08:35:31 +00:00
|
|
|
|
n = 0; // neu Aufsetzen
|
|
|
|
|
bDec = true;
|
2000-09-18 23:08:29 +00:00
|
|
|
|
}
|
|
|
|
|
break;
|
|
|
|
|
|
|
|
|
|
case POS_OVERLAP_BEFORE:
|
|
|
|
|
case POS_OVERLAP_BEHIND:
|
|
|
|
|
if( pRedl->IsOwnRedline( *pNewRedl ) &&
|
|
|
|
|
pRedl->CanCombine( *pNewRedl ))
|
|
|
|
|
{
|
|
|
|
|
// dann kann das zusammengefasst werden, sprich
|
|
|
|
|
// der neue deckt das schon ab.
|
|
|
|
|
if( POS_OVERLAP_BEHIND == eCmpPos )
|
|
|
|
|
pNewRedl->SetStart( *pRStt, pStt );
|
|
|
|
|
else
|
|
|
|
|
pNewRedl->SetEnd( *pREnd, pEnd );
|
2006-07-19 08:35:31 +00:00
|
|
|
|
pRedlineTbl->DeleteAndDestroy( n );
|
|
|
|
|
bDec = 0;
|
2000-09-18 23:08:29 +00:00
|
|
|
|
}
|
|
|
|
|
else if( POS_OVERLAP_BEHIND == eCmpPos )
|
|
|
|
|
pNewRedl->SetStart( *pREnd, pStt );
|
|
|
|
|
else
|
|
|
|
|
pNewRedl->SetEnd( *pRStt, pEnd );
|
|
|
|
|
break;
|
2001-01-26 17:09:51 +00:00
|
|
|
|
|
|
|
|
|
case POS_COLLIDE_END:
|
2000-09-18 23:08:29 +00:00
|
|
|
|
if( pRedl->IsOwnRedline( *pNewRedl ) &&
|
2001-01-26 17:09:51 +00:00
|
|
|
|
pRedl->CanCombine( *pNewRedl ) && n &&
|
2000-09-18 23:08:29 +00:00
|
|
|
|
*(*pRedlineTbl)[ n-1 ]->End() < *pStt )
|
|
|
|
|
{
|
|
|
|
|
// dann kann das zusammengefasst werden, sprich
|
|
|
|
|
// der neue deckt das schon ab.
|
|
|
|
|
pNewRedl->SetEnd( *pREnd, pEnd );
|
2006-07-19 08:35:31 +00:00
|
|
|
|
pRedlineTbl->DeleteAndDestroy( n );
|
|
|
|
|
bDec = true;
|
2000-09-18 23:08:29 +00:00
|
|
|
|
}
|
|
|
|
|
break;
|
2001-01-26 17:09:51 +00:00
|
|
|
|
case POS_COLLIDE_START:
|
2000-09-18 23:08:29 +00:00
|
|
|
|
if( pRedl->IsOwnRedline( *pNewRedl ) &&
|
|
|
|
|
pRedl->CanCombine( *pNewRedl ) &&
|
2001-01-26 17:09:51 +00:00
|
|
|
|
n+1 < pRedlineTbl->Count() &&
|
2000-09-18 23:08:29 +00:00
|
|
|
|
*(*pRedlineTbl)[ n+1 ]->Start() < *pEnd )
|
|
|
|
|
{
|
|
|
|
|
// dann kann das zusammengefasst werden, sprich
|
|
|
|
|
// der neue deckt das schon ab.
|
|
|
|
|
pNewRedl->SetStart( *pRStt, pStt );
|
2006-07-19 08:35:31 +00:00
|
|
|
|
pRedlineTbl->DeleteAndDestroy( n );
|
|
|
|
|
bDec = true;
|
2000-09-18 23:08:29 +00:00
|
|
|
|
}
|
|
|
|
|
break;
|
2004-06-16 08:38:35 +00:00
|
|
|
|
default:
|
|
|
|
|
break;
|
2000-09-18 23:08:29 +00:00
|
|
|
|
}
|
|
|
|
|
break;
|
2004-06-16 08:38:35 +00:00
|
|
|
|
default:
|
|
|
|
|
break;
|
2000-09-18 23:08:29 +00:00
|
|
|
|
}
|
|
|
|
|
break;
|
|
|
|
|
|
|
|
|
|
|
2007-09-27 07:36:43 +00:00
|
|
|
|
case nsRedlineType_t::REDLINE_FMTCOLL:
|
2000-09-18 23:08:29 +00:00
|
|
|
|
// wie soll das verhalten sein????
|
|
|
|
|
// erstmal so einfuegen
|
|
|
|
|
break;
|
2004-06-16 08:38:35 +00:00
|
|
|
|
default:
|
|
|
|
|
break;
|
2000-09-18 23:08:29 +00:00
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
if( pNewRedl )
|
2006-07-19 08:35:31 +00:00
|
|
|
|
{
|
|
|
|
|
if( ( *pStt == *pEnd ) &&
|
|
|
|
|
( pNewRedl->GetContentIdx() == NULL ) )
|
|
|
|
|
{ // Do not insert empty redlines
|
|
|
|
|
delete pNewRedl;
|
|
|
|
|
pNewRedl = 0;
|
|
|
|
|
}
|
|
|
|
|
else
|
|
|
|
|
pRedlineTbl->Insert( pNewRedl );
|
|
|
|
|
}
|
2000-09-18 23:08:29 +00:00
|
|
|
|
|
|
|
|
|
if( bCompress )
|
|
|
|
|
CompressRedlines();
|
|
|
|
|
}
|
|
|
|
|
else
|
|
|
|
|
{
|
2007-09-27 07:36:43 +00:00
|
|
|
|
if( bCallDelete && nsRedlineType_t::REDLINE_DELETE == pNewRedl->GetType() )
|
2000-09-18 23:08:29 +00:00
|
|
|
|
{
|
2007-09-27 07:36:43 +00:00
|
|
|
|
RedlineMode_t eOld = eRedlineMode;
|
2000-09-18 23:08:29 +00:00
|
|
|
|
// auf NONE setzen, damit das Delete::Redo die RedlineDaten wieder richtig
|
|
|
|
|
// zusammen fasst! Der ShowMode muss erhalten bleiben!
|
2007-09-27 07:36:43 +00:00
|
|
|
|
eRedlineMode = (RedlineMode_t)(eOld & ~(nsRedlineMode_t::REDLINE_ON | nsRedlineMode_t::REDLINE_IGNORE));
|
2000-09-18 23:08:29 +00:00
|
|
|
|
DeleteAndJoin( *pNewRedl );
|
|
|
|
|
eRedlineMode = eOld;
|
|
|
|
|
}
|
|
|
|
|
delete pNewRedl, pNewRedl = 0;
|
|
|
|
|
}
|
|
|
|
|
_CHECK_REDLINE( this )
|
|
|
|
|
|
2009-10-28 15:40:57 +00:00
|
|
|
|
return ( 0 != pNewRedl ) || !bError;
|
2000-09-18 23:08:29 +00:00
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
void SwDoc::CompressRedlines()
|
|
|
|
|
{
|
|
|
|
|
_CHECK_REDLINE( this )
|
|
|
|
|
|
|
|
|
|
void (SwRedline::*pFnc)(USHORT) = 0;
|
2007-09-27 07:36:43 +00:00
|
|
|
|
switch( nsRedlineMode_t::REDLINE_SHOW_MASK & eRedlineMode )
|
2000-09-18 23:08:29 +00:00
|
|
|
|
{
|
2007-09-27 07:36:43 +00:00
|
|
|
|
case nsRedlineMode_t::REDLINE_SHOW_INSERT | nsRedlineMode_t::REDLINE_SHOW_DELETE:
|
2000-09-18 23:08:29 +00:00
|
|
|
|
pFnc = &SwRedline::Show;
|
|
|
|
|
break;
|
2007-09-27 07:36:43 +00:00
|
|
|
|
case nsRedlineMode_t::REDLINE_SHOW_INSERT:
|
2000-09-18 23:08:29 +00:00
|
|
|
|
pFnc = &SwRedline::Hide;
|
|
|
|
|
break;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
// versuche gleiche zusammenzufassen
|
|
|
|
|
for( USHORT n = 1; n < pRedlineTbl->Count(); ++n )
|
|
|
|
|
{
|
|
|
|
|
SwRedline* pPrev = (*pRedlineTbl)[ n-1 ],
|
|
|
|
|
* pCur = (*pRedlineTbl)[ n ];
|
|
|
|
|
const SwPosition* pPrevStt = pPrev->Start(),
|
|
|
|
|
* pPrevEnd = pPrevStt == pPrev->GetPoint()
|
|
|
|
|
? pPrev->GetMark() : pPrev->GetPoint();
|
|
|
|
|
const SwPosition* pCurStt = pCur->Start(),
|
|
|
|
|
* pCurEnd = pCurStt == pCur->GetPoint()
|
|
|
|
|
? pCur->GetMark() : pCur->GetPoint();
|
|
|
|
|
if( *pPrevEnd == *pCurStt && pPrev->CanCombine( *pCur ) &&
|
2006-08-14 14:59:18 +00:00
|
|
|
|
pPrevStt->nNode.GetNode().StartOfSectionNode() ==
|
|
|
|
|
pCurEnd->nNode.GetNode().StartOfSectionNode() &&
|
|
|
|
|
!pCurEnd->nNode.GetNode().StartOfSectionNode()->IsTableNode() )
|
2000-09-18 23:08:29 +00:00
|
|
|
|
{
|
|
|
|
|
// dann koennen die zusammen gefasst werden
|
|
|
|
|
pPrev->Show();
|
|
|
|
|
pCur->Show();
|
|
|
|
|
|
|
|
|
|
pPrev->SetEnd( *pCur->End() );
|
|
|
|
|
pRedlineTbl->DeleteAndDestroy( n );
|
|
|
|
|
--n;
|
|
|
|
|
if( pFnc )
|
|
|
|
|
(pPrev->*pFnc)(0);
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
_CHECK_REDLINE( this )
|
|
|
|
|
}
|
|
|
|
|
|
2006-08-14 14:59:18 +00:00
|
|
|
|
bool SwDoc::SplitRedline( const SwPaM& rRange )
|
2000-09-18 23:08:29 +00:00
|
|
|
|
{
|
|
|
|
|
BOOL bChg = FALSE;
|
|
|
|
|
USHORT n = 0;
|
|
|
|
|
const SwPosition* pStt = rRange.Start(),
|
|
|
|
|
* pEnd = pStt == rRange.GetPoint() ? rRange.GetMark()
|
|
|
|
|
: rRange.GetPoint();
|
|
|
|
|
GetRedline( *pStt, &n );
|
|
|
|
|
for( ; n < pRedlineTbl->Count() ; ++n )
|
|
|
|
|
{
|
|
|
|
|
SwRedline* pTmp = (*pRedlineTbl)[ n ];
|
|
|
|
|
SwPosition* pTStt = pTmp->Start(),
|
|
|
|
|
* pTEnd = pTStt == pTmp->GetPoint() ? pTmp->GetMark()
|
|
|
|
|
: pTmp->GetPoint();
|
|
|
|
|
if( *pTStt <= *pStt && *pStt <= *pTEnd &&
|
|
|
|
|
*pTStt <= *pEnd && *pEnd <= *pTEnd )
|
|
|
|
|
{
|
|
|
|
|
bChg = TRUE;
|
|
|
|
|
int nn = 0;
|
|
|
|
|
if( *pStt == *pTStt )
|
|
|
|
|
nn += 1;
|
|
|
|
|
if( *pEnd == *pTEnd )
|
|
|
|
|
nn += 2;
|
|
|
|
|
|
|
|
|
|
SwRedline* pNew = 0;
|
|
|
|
|
switch( nn )
|
|
|
|
|
{
|
|
|
|
|
case 0:
|
|
|
|
|
pNew = new SwRedline( *pTmp );
|
|
|
|
|
pTmp->SetEnd( *pStt, pTEnd );
|
|
|
|
|
pNew->SetStart( *pEnd );
|
|
|
|
|
break;
|
|
|
|
|
|
|
|
|
|
case 1:
|
|
|
|
|
*pTStt = *pEnd;
|
|
|
|
|
break;
|
|
|
|
|
|
|
|
|
|
case 2:
|
|
|
|
|
*pTEnd = *pStt;
|
|
|
|
|
break;
|
|
|
|
|
|
|
|
|
|
case 3:
|
|
|
|
|
pTmp->InvalidateRange();
|
|
|
|
|
pRedlineTbl->DeleteAndDestroy( n-- );
|
|
|
|
|
pTmp = 0;
|
|
|
|
|
break;
|
|
|
|
|
}
|
|
|
|
|
if( pTmp && !pTmp->HasValidRange() )
|
|
|
|
|
{
|
|
|
|
|
// neu einsortieren
|
|
|
|
|
pRedlineTbl->Remove( n );
|
|
|
|
|
pRedlineTbl->Insert( pTmp, n );
|
|
|
|
|
}
|
|
|
|
|
if( pNew )
|
|
|
|
|
pRedlineTbl->Insert( pNew, n );
|
|
|
|
|
}
|
|
|
|
|
else if( *pEnd < *pTStt )
|
|
|
|
|
break;
|
|
|
|
|
}
|
|
|
|
|
return bChg;
|
|
|
|
|
}
|
|
|
|
|
|
2006-08-14 14:59:18 +00:00
|
|
|
|
bool SwDoc::DeleteRedline( const SwPaM& rRange, bool bSaveInUndo,
|
2000-09-18 23:08:29 +00:00
|
|
|
|
USHORT nDelType )
|
|
|
|
|
{
|
2007-09-27 07:36:43 +00:00
|
|
|
|
if( nsRedlineMode_t::REDLINE_IGNOREDELETE_REDLINES & eRedlineMode ||
|
2000-09-18 23:08:29 +00:00
|
|
|
|
!rRange.HasMark() || *rRange.GetMark() == *rRange.GetPoint() )
|
|
|
|
|
return FALSE;
|
|
|
|
|
|
|
|
|
|
BOOL bChg = FALSE;
|
|
|
|
|
|
|
|
|
|
if( bSaveInUndo && DoesUndo() )
|
|
|
|
|
{
|
|
|
|
|
SwUndoRedline* pUndo = new SwUndoRedline( UNDO_REDLINE, rRange );
|
|
|
|
|
if( pUndo->GetRedlSaveCount() )
|
|
|
|
|
{
|
|
|
|
|
ClearRedo();
|
|
|
|
|
AppendUndo( pUndo );
|
|
|
|
|
}
|
|
|
|
|
else
|
|
|
|
|
delete pUndo;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
const SwPosition* pStt = rRange.Start(),
|
|
|
|
|
* pEnd = pStt == rRange.GetPoint() ? rRange.GetMark()
|
|
|
|
|
: rRange.GetPoint();
|
|
|
|
|
USHORT n = 0;
|
|
|
|
|
GetRedline( *pStt, &n );
|
|
|
|
|
for( ; n < pRedlineTbl->Count() ; ++n )
|
|
|
|
|
{
|
|
|
|
|
SwRedline* pRedl = (*pRedlineTbl)[ n ];
|
|
|
|
|
if( USHRT_MAX != nDelType && nDelType != pRedl->GetType() )
|
|
|
|
|
continue;
|
|
|
|
|
|
|
|
|
|
SwPosition* pRStt = pRedl->Start(),
|
|
|
|
|
* pREnd = pRStt == pRedl->GetPoint() ? pRedl->GetMark()
|
|
|
|
|
: pRedl->GetPoint();
|
|
|
|
|
BOOL bDel = FALSE;
|
|
|
|
|
switch( ComparePosition( *pStt, *pEnd, *pRStt, *pREnd ) )
|
|
|
|
|
{
|
|
|
|
|
case POS_EQUAL:
|
|
|
|
|
case POS_OUTSIDE:
|
|
|
|
|
bDel = TRUE;
|
|
|
|
|
break;
|
|
|
|
|
|
|
|
|
|
case POS_OVERLAP_BEFORE:
|
|
|
|
|
if( *pEnd == *pREnd )
|
|
|
|
|
bDel = TRUE;
|
|
|
|
|
else
|
|
|
|
|
{
|
|
|
|
|
pRedl->InvalidateRange();
|
|
|
|
|
pRedl->SetStart( *pEnd, pRStt );
|
|
|
|
|
// neu einsortieren
|
|
|
|
|
pRedlineTbl->Remove( n );
|
|
|
|
|
pRedlineTbl->Insert( pRedl );
|
|
|
|
|
--n;
|
|
|
|
|
}
|
|
|
|
|
break;
|
|
|
|
|
|
|
|
|
|
case POS_OVERLAP_BEHIND:
|
|
|
|
|
if( *pStt == *pRStt )
|
|
|
|
|
bDel = TRUE;
|
|
|
|
|
else
|
|
|
|
|
{
|
|
|
|
|
pRedl->InvalidateRange();
|
|
|
|
|
pRedl->SetEnd( *pStt, pREnd );
|
|
|
|
|
if( !pRedl->HasValidRange() )
|
|
|
|
|
{
|
|
|
|
|
// neu einsortieren
|
|
|
|
|
pRedlineTbl->Remove( n );
|
|
|
|
|
pRedlineTbl->Insert( pRedl );
|
|
|
|
|
--n;
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
break;
|
|
|
|
|
|
|
|
|
|
case POS_INSIDE:
|
|
|
|
|
{
|
|
|
|
|
// der muss gesplittet werden
|
|
|
|
|
pRedl->InvalidateRange();
|
|
|
|
|
if( *pRStt == *pStt )
|
|
|
|
|
{
|
|
|
|
|
pRedl->SetStart( *pEnd, pRStt );
|
|
|
|
|
// neu einsortieren
|
|
|
|
|
pRedlineTbl->Remove( n );
|
|
|
|
|
pRedlineTbl->Insert( pRedl );
|
|
|
|
|
--n;
|
|
|
|
|
}
|
|
|
|
|
else
|
|
|
|
|
{
|
|
|
|
|
SwRedline* pCpy;
|
|
|
|
|
if( *pREnd != *pEnd )
|
|
|
|
|
{
|
|
|
|
|
pCpy = new SwRedline( *pRedl );
|
|
|
|
|
pCpy->SetStart( *pEnd );
|
|
|
|
|
}
|
|
|
|
|
else
|
|
|
|
|
pCpy = 0;
|
|
|
|
|
pRedl->SetEnd( *pStt, pREnd );
|
|
|
|
|
if( !pRedl->HasValidRange() )
|
|
|
|
|
{
|
|
|
|
|
// neu einsortieren
|
|
|
|
|
pRedlineTbl->Remove( pRedlineTbl->GetPos( pRedl ));
|
|
|
|
|
pRedlineTbl->Insert( pRedl );
|
|
|
|
|
--n;
|
|
|
|
|
}
|
|
|
|
|
if( pCpy )
|
|
|
|
|
pRedlineTbl->Insert( pCpy );
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
break;
|
|
|
|
|
|
2001-01-26 17:09:51 +00:00
|
|
|
|
case POS_COLLIDE_END:
|
2000-09-18 23:08:29 +00:00
|
|
|
|
case POS_BEFORE:
|
|
|
|
|
n = pRedlineTbl->Count();
|
|
|
|
|
break;
|
2004-06-16 08:38:35 +00:00
|
|
|
|
default:
|
|
|
|
|
break;
|
2000-09-18 23:08:29 +00:00
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
if( bDel )
|
|
|
|
|
{
|
|
|
|
|
pRedl->InvalidateRange();
|
|
|
|
|
pRedlineTbl->DeleteAndDestroy( n-- );
|
|
|
|
|
bChg = TRUE;
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
if( bChg )
|
|
|
|
|
SetModified();
|
|
|
|
|
|
|
|
|
|
return bChg;
|
|
|
|
|
}
|
|
|
|
|
|
2006-08-14 14:59:18 +00:00
|
|
|
|
bool SwDoc::DeleteRedline( const SwStartNode& rNode, bool bSaveInUndo,
|
2000-09-18 23:08:29 +00:00
|
|
|
|
USHORT nDelType )
|
|
|
|
|
{
|
2004-07-30 13:55:41 +00:00
|
|
|
|
SwPaM aTemp(*rNode.EndOfSectionNode(), rNode);
|
|
|
|
|
return DeleteRedline(aTemp, bSaveInUndo, nDelType);
|
2000-09-18 23:08:29 +00:00
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
USHORT SwDoc::GetRedlinePos( const SwNode& rNd, USHORT nType ) const
|
|
|
|
|
{
|
|
|
|
|
const ULONG nNdIdx = rNd.GetIndex();
|
|
|
|
|
for( USHORT n = 0; n < pRedlineTbl->Count() ; ++n )
|
|
|
|
|
{
|
|
|
|
|
const SwRedline* pTmp = (*pRedlineTbl)[ n ];
|
|
|
|
|
ULONG nPt = pTmp->GetPoint()->nNode.GetIndex(),
|
|
|
|
|
nMk = pTmp->GetMark()->nNode.GetIndex();
|
|
|
|
|
if( nPt < nMk ) { long nTmp = nMk; nMk = nPt; nPt = nTmp; }
|
|
|
|
|
|
|
|
|
|
if( ( USHRT_MAX == nType || nType == pTmp->GetType()) &&
|
|
|
|
|
nMk <= nNdIdx && nNdIdx <= nPt )
|
|
|
|
|
return n;
|
|
|
|
|
|
|
|
|
|
if( nMk > nNdIdx )
|
|
|
|
|
break;
|
|
|
|
|
}
|
|
|
|
|
return USHRT_MAX;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
const SwRedline* SwDoc::GetRedline( const SwPosition& rPos,
|
|
|
|
|
USHORT* pFndPos ) const
|
|
|
|
|
{
|
2007-09-27 07:36:43 +00:00
|
|
|
|
USHORT nO = pRedlineTbl->Count(), nM, nU = 0;
|
2000-09-18 23:08:29 +00:00
|
|
|
|
if( nO > 0 )
|
|
|
|
|
{
|
|
|
|
|
nO--;
|
|
|
|
|
while( nU <= nO )
|
|
|
|
|
{
|
|
|
|
|
nM = nU + ( nO - nU ) / 2;
|
|
|
|
|
const SwRedline* pRedl = (*pRedlineTbl)[ nM ];
|
|
|
|
|
const SwPosition* pStt = pRedl->Start();
|
|
|
|
|
const SwPosition* pEnd = pStt == pRedl->GetPoint()
|
|
|
|
|
? pRedl->GetMark()
|
|
|
|
|
: pRedl->GetPoint();
|
|
|
|
|
if( pEnd == pStt
|
|
|
|
|
? *pStt == rPos
|
|
|
|
|
: ( *pStt <= rPos && rPos < *pEnd ) )
|
|
|
|
|
{
|
2008-06-16 07:18:13 +00:00
|
|
|
|
/* #107318# returned wrong redline ???*/
|
|
|
|
|
while( nM && rPos == *(*pRedlineTbl)[ nM - 1 ]->End() &&
|
|
|
|
|
rPos == *(*pRedlineTbl)[ nM - 1 ]->Start() )
|
2000-09-18 23:08:29 +00:00
|
|
|
|
{
|
|
|
|
|
--nM;
|
|
|
|
|
pRedl = (*pRedlineTbl)[ nM ];
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
if( pFndPos )
|
|
|
|
|
*pFndPos = nM;
|
|
|
|
|
return pRedl;
|
|
|
|
|
}
|
|
|
|
|
else if( *pEnd <= rPos )
|
|
|
|
|
nU = nM + 1;
|
|
|
|
|
else if( nM == 0 )
|
|
|
|
|
{
|
|
|
|
|
if( pFndPos )
|
|
|
|
|
*pFndPos = nU;
|
|
|
|
|
return 0;
|
|
|
|
|
}
|
|
|
|
|
else
|
|
|
|
|
nO = nM - 1;
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
if( pFndPos )
|
|
|
|
|
*pFndPos = nU;
|
|
|
|
|
return 0;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
typedef BOOL (*Fn_AcceptReject)( SwRedlineTbl& rArr, USHORT& rPos,
|
|
|
|
|
BOOL bCallDelete,
|
|
|
|
|
const SwPosition* pSttRng,
|
|
|
|
|
const SwPosition* pEndRng);
|
|
|
|
|
|
|
|
|
|
BOOL lcl_AcceptRedline( SwRedlineTbl& rArr, USHORT& rPos,
|
|
|
|
|
BOOL bCallDelete,
|
|
|
|
|
const SwPosition* pSttRng = 0,
|
|
|
|
|
const SwPosition* pEndRng = 0 )
|
|
|
|
|
{
|
|
|
|
|
BOOL bRet = TRUE;
|
|
|
|
|
SwRedline* pRedl = rArr[ rPos ];
|
|
|
|
|
SwPosition *pRStt = 0, *pREnd = 0;
|
|
|
|
|
SwComparePosition eCmp = POS_OUTSIDE;
|
|
|
|
|
if( pSttRng && pEndRng )
|
|
|
|
|
{
|
|
|
|
|
pRStt = pRedl->Start();
|
|
|
|
|
pREnd = pRedl->End();
|
|
|
|
|
eCmp = ComparePosition( *pSttRng, *pEndRng, *pRStt, *pREnd );
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
pRedl->InvalidateRange();
|
|
|
|
|
|
|
|
|
|
switch( pRedl->GetType() )
|
|
|
|
|
{
|
2007-09-27 07:36:43 +00:00
|
|
|
|
case nsRedlineType_t::REDLINE_INSERT:
|
|
|
|
|
case nsRedlineType_t::REDLINE_FORMAT:
|
2000-09-18 23:08:29 +00:00
|
|
|
|
{
|
|
|
|
|
BOOL bCheck = FALSE, bReplace = FALSE;
|
|
|
|
|
switch( eCmp )
|
|
|
|
|
{
|
|
|
|
|
case POS_INSIDE:
|
|
|
|
|
if( *pSttRng == *pRStt )
|
|
|
|
|
pRedl->SetStart( *pEndRng, pRStt );
|
|
|
|
|
else
|
|
|
|
|
{
|
|
|
|
|
if( *pEndRng != *pREnd )
|
|
|
|
|
{
|
|
|
|
|
// aufsplitten
|
|
|
|
|
SwRedline* pNew = new SwRedline( *pRedl );
|
|
|
|
|
pNew->SetStart( *pEndRng );
|
|
|
|
|
rArr.Insert( pNew ); ++rPos;
|
|
|
|
|
}
|
|
|
|
|
pRedl->SetEnd( *pSttRng, pREnd );
|
|
|
|
|
bCheck = TRUE;
|
|
|
|
|
}
|
|
|
|
|
break;
|
|
|
|
|
|
|
|
|
|
case POS_OVERLAP_BEFORE:
|
|
|
|
|
pRedl->SetStart( *pEndRng, pRStt );
|
|
|
|
|
bReplace = TRUE;
|
|
|
|
|
break;
|
|
|
|
|
|
|
|
|
|
case POS_OVERLAP_BEHIND:
|
|
|
|
|
pRedl->SetEnd( *pSttRng, pREnd );
|
|
|
|
|
bCheck = TRUE;
|
|
|
|
|
break;
|
|
|
|
|
|
|
|
|
|
case POS_OUTSIDE:
|
|
|
|
|
case POS_EQUAL:
|
|
|
|
|
rArr.DeleteAndDestroy( rPos-- );
|
|
|
|
|
break;
|
|
|
|
|
|
|
|
|
|
default:
|
|
|
|
|
bRet = FALSE;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
if( bReplace || ( bCheck && !pRedl->HasValidRange() ))
|
|
|
|
|
{
|
|
|
|
|
// neu einsortieren
|
|
|
|
|
rArr.Remove( rArr.GetPos( pRedl ));
|
|
|
|
|
rArr.Insert( pRedl );
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
break;
|
2007-09-27 07:36:43 +00:00
|
|
|
|
case nsRedlineType_t::REDLINE_DELETE:
|
2000-09-18 23:08:29 +00:00
|
|
|
|
{
|
|
|
|
|
SwDoc& rDoc = *pRedl->GetDoc();
|
|
|
|
|
const SwPosition *pDelStt = 0, *pDelEnd = 0;
|
|
|
|
|
BOOL bDelRedl = FALSE;
|
|
|
|
|
switch( eCmp )
|
|
|
|
|
{
|
|
|
|
|
case POS_INSIDE:
|
|
|
|
|
if( bCallDelete )
|
|
|
|
|
{
|
|
|
|
|
pDelStt = pSttRng;
|
|
|
|
|
pDelEnd = pEndRng;
|
|
|
|
|
}
|
|
|
|
|
break;
|
|
|
|
|
|
|
|
|
|
case POS_OVERLAP_BEFORE:
|
|
|
|
|
if( bCallDelete )
|
|
|
|
|
{
|
|
|
|
|
pDelStt = pRStt;
|
|
|
|
|
pDelEnd = pEndRng;
|
|
|
|
|
}
|
|
|
|
|
break;
|
|
|
|
|
case POS_OVERLAP_BEHIND:
|
|
|
|
|
if( bCallDelete )
|
|
|
|
|
{
|
|
|
|
|
pDelStt = pREnd;
|
|
|
|
|
pDelEnd = pSttRng;
|
|
|
|
|
}
|
|
|
|
|
break;
|
|
|
|
|
|
|
|
|
|
case POS_OUTSIDE:
|
|
|
|
|
case POS_EQUAL:
|
|
|
|
|
{
|
|
|
|
|
rArr.Remove( rPos-- );
|
|
|
|
|
bDelRedl = TRUE;
|
|
|
|
|
if( bCallDelete )
|
|
|
|
|
{
|
|
|
|
|
pDelStt = pRedl->Start();
|
|
|
|
|
pDelEnd = pRedl->End();
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
break;
|
|
|
|
|
default:
|
|
|
|
|
bRet = FALSE;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
if( pDelStt && pDelEnd )
|
|
|
|
|
{
|
|
|
|
|
SwPaM aPam( *pDelStt, *pDelEnd );
|
2001-09-27 12:42:58 +00:00
|
|
|
|
SwCntntNode* pCSttNd = pDelStt->nNode.GetNode().GetCntntNode();
|
|
|
|
|
SwCntntNode* pCEndNd = pDelEnd->nNode.GetNode().GetCntntNode();
|
2000-09-18 23:08:29 +00:00
|
|
|
|
|
|
|
|
|
if( bDelRedl )
|
|
|
|
|
delete pRedl;
|
|
|
|
|
|
2007-09-27 07:36:43 +00:00
|
|
|
|
RedlineMode_t eOld = rDoc.GetRedlineMode();
|
|
|
|
|
rDoc.SetRedlineMode_intern( (RedlineMode_t)(eOld & ~(nsRedlineMode_t::REDLINE_ON | nsRedlineMode_t::REDLINE_IGNORE)));
|
2001-09-27 12:42:58 +00:00
|
|
|
|
|
|
|
|
|
if( pCSttNd && pCEndNd )
|
|
|
|
|
rDoc.DeleteAndJoin( aPam );
|
|
|
|
|
else
|
|
|
|
|
{
|
CWS-TOOLING: integrate CWS odfmetadata3
2009-09-11 Michael Stahl merge DEV300_m58
2009-09-07 Michael Stahl SwFmtFld::Modify(): do nothing on RES_OBJECTDYING
2009-08-27 Michael Stahl #i91565#, #i91566#: TextPortionEnumerationTest.java: add test document
2009-08-27 Michael Stahl #i91565#, #i91566#: add complex test: TextPortionEnumerationTest.java
2009-08-27 Michael Stahl CLiteral::initialize(): zero-length literals probably not an error
2009-08-27 Michael Stahl #i91565#, #i91566#: offapi: new InContentMetadata and MetadataField services
adapt TextPortion for InContentMetadata
2009-08-27 Michael Stahl #i91564#: xmloff: load/store xml:id and RDFa for text:bookmark(-start).
2009-08-27 Michael Stahl #i91564#: sw core: add support for xml:id at bookmarks:
sw::mark::Bookmark: derive from Metadatable.
SwHistoryBookmark, SaveBookmark: store a MetadatableUndo.
ndcopy.cxx: lcl_CopyBookmarks(): copy the xml:id.
SwXBookmark: derive from MetadatableMixin.
2009-08-27 Michael Stahl #i91565#, #i91566#: xmloff: refactor ruby import so nested meta(-field) works:
remove XMLRubyHint_Impl.
XMLImpRubyContext_Impl::~XMLImpRubyContext_Impl(): insert ruby directly.
2009-08-27 Michael Stahl #i91565#, #i91566#: xmloff: fix text:meta(-field) import/export:
new XMLTextParagraphExport::exportTextField() overload for XTextField.
CreateAndInsertMark(): set xml:id after insertion.
fix meta(-field) service names, bugs etc.
2009-08-27 Michael Stahl #i91565#, #i91566#: sw text formatting: paint background of meta(-field) body:
SwFont: add member m_nMetaCount.
txttypes.hxx: add POR_META.
atrstck.cxx: handle RES_TXTATR_META(FIELD).
itrform2.cxx: SwTxtFormatter::WhichTxtPor(): create new class SwMetaPortion.
2009-08-27 Michael Stahl #i91566#: sw text formatting: display meta-field prefix and suffix:
SwAttrIter::GetAttr(): replace with call to GetTxtAttrForCharAt().
SwTxtFormatter::NewExtraPortion(): handle meta-field prefix.
SwTxtFormatter: new member m_nHintEndIndex.
SwTxtFormatter::WhichFirstPortion(): call TryNewNoLengthPortion().
SwTxtFormatter::TryNewNoLengthPortion(): new; handle suffix of meta-field.
SwTxtFormatter::UnderFlow(): UGLY HACK: decrement m_nHintEndIndex.
SwFldPortion: add flag m_bNoLength: portion has zero length (for suffix).
2009-08-27 Michael Stahl #i91565#, #i91566#: extend text:meta(-field) uno wrapper with XText interface:
unoobj.hxx: new CursorType CURSOR_META.
unoobj2.cxx: refactor SwXText implementation to ensure that when the SwXText
belongs to a SwXMeta, content is always inserted inside the meta(-field).
unoobj.cxx: new SwXTextCursor::ForceIntoMeta(): cursor stays in meta(-field).
unometa.hxx: SwXMeta implements XText, forwarding to a member SwXMetaText.
DocInsertStringSplitCR(), SwX*::attachToRange(), SwX*::DeleteAndInsert():
use FORCEHINTEXPAND hack to ensure insert into the meta(-field) at the end.
2009-08-27 Michael Stahl #i91565#, #i91566#: add text:meta(-field) uno wrapper to sw:
fmtmeta.hxx, fmtatr2.cxx: new class sw::MetaField, new sw::MetaFieldManager.
doc.hxx, docnew.cxx: new SwDoc::GetMetaFieldManager().
unocoll.hxx,.cxx: new SW_SERVICE_FIELDTYPE_METAFIELD, SW_SERVICE_TYPE_META.
unomap.hxx,.cxx: new PROPERTY_MAP_METAFIELD.
unoprnms.hxx: new UNO_NAME_META.
unoport.hxx: new PORTION_META; add "InContentMetadata" prop to SwXTextPortion.
new unometa.hxx: new class SwXMeta and SwXMetaField.
unofield.cxx: SwXFieldEnumeration: include meta-fields.
unoportenum.cxx: handle RES_TXTATR_META(FIELD) by using a portion list stack.
unotext.cxx: SwXText::insertTextContent(): handle meta(-field) as attribute.
2009-08-27 Michael Stahl #i91565#, #i91566#: ndhints.cxx: remove sort number from SwTxtAttrNesting
2009-08-27 Michael Stahl #i91565#, #i91566#: add support for hints with end and CH_TXTATR to sw core:
doc.hxx, docedt.cxx: replace SwDoc::Delete(), DeleteAndJoin(), ReplaceRange()
with wrappers that split at left-overlapped end+CH_TXTATR hints.
txatbase.hxx: new member SwTxtAttr::m_bHasDummyChar.
ndtxt.hxx: rename SwTxtNode::GetTxtAttr() to GetTxtAttrForCharAt().
ndtxt.cxx: SwTxtNode::CopyText(): copy end+CH_TXTATR hints iff copy CH_TXTATR.
txtatr2.cxx, thints.cxx: SwTxtMeta gets a CH_TXTATR.
2009-08-27 Michael Stahl #i91565#, #i91566#: add text:meta(-field) to sw core:
txatbase.hxx: new member SwTxtAttr::m_bNesting.
hintids.hxx: new ids RES_TXTATR_META, RES_TXTATR_METAFIELD.
txtatr.hxx: new base class SwTxtAttrNesting.
new hint SwTxtMeta.
SwTxtRuby derives from SwTxtAttrNesting.
txtinet.hxx: SwTxtINetFmt derives from SwTxtAttrNesting.
new header fmtmeta.hxx: new pool item SwFmtMeta. new class sw::Meta.
ndhints.hxx, thints.cxx: new method SwpHints::TryInsertNesting().
thints.cxx: refactoring: BuildPortions() no longer handles Ruby/Hyperlink,
but TryInsertNesting(), which also handles meta(-field).
SwTxtNode::InsertItem(): check if the hint is actually inserted.
ndhints.cxx: sort nesting hints based on sort number.
ndtxt.cxx: lcl_CopyHint(): handle copy of meta/meta-field.
2009-08-27 Michael Stahl enable expanding hints with m_bLockExpandFlag set:
add new InsertFlag: INS_FORCEHINTEXPAND.
add new SetAttrMode: SETATTR_FORCEHINTEXPAND.
rename SwEditShell::Insert() to Insert2() because changed signature fails
to compile when SwWrtShell tries to overwrite these non-virtual members...
SwWrtShell::Insert() sets FOCEHINTEXPAND if range was selected/deleted.
adapt SwUndoInsert to store flags.
2009-08-27 Michael Stahl change formal parameters of item insertion methods to type SetAttrMode
2009-08-27 Michael Stahl fix incorrect resetting of text attributes in SwUndoInsSection, SwUndoInserts
2009-08-27 Michael Stahl clean up SwTxtNode::CutImpl() and lcl_CopyHint()
2009-08-27 Michael Stahl rename SwDoc::Copy() to CopyRange(), and _Copy() to CopyImpl()
2009-08-27 Michael Stahl rename SwNodes::Move() to MoveRange(), and remove unused parameter
2009-08-27 Michael Stahl rename SwDoc::Move() to MoveRange()/MoveNodeRange()
2009-08-27 Michael Stahl rename SwDoc::Insert() to InsertString(), and remove sal_Unicode variant
2009-08-27 Michael Stahl rename SwDoc::Insert() to InsertPoolItem()/InsertItemSet()/InsertSwSection()
2009-08-27 Michael Stahl rename SwDoc::Replace() to ReplaceRange()
2009-08-27 Michael Stahl remove SwDoc::Overwrite() sal_Unicode variant
2009-08-27 Michael Stahl split up SwDoc::DeleteAndJoin(): factor out DeleteAndJoinWithRedline()
2009-08-27 Michael Stahl rename overloaded SwDoc::Delete() to DeleteRange()/DeleteTOXMark()
2009-08-27 Michael Stahl rename SwTxtNode::Copy() to CopyText()
2009-08-27 Michael Stahl rename SwTxtNode::Cut() to CutText(), and _Cut() to CutImpl()
2009-08-27 Michael Stahl rename SwTxtNode::Delete() to DeleteAttribute()/DeleteAttributes()
2009-08-27 Michael Stahl rename SwTxtNode::Replace() to ReplaceText(), and remove the xub_Unicode variant
2009-08-27 Michael Stahl rename SwTxtNode::Erase() to EraseText()
2009-08-27 Michael Stahl rename SwTxtNode::Insert() to InsertText(), and remove the xub_Unicode variant
2009-08-27 Michael Stahl clean up SwTxtNode::Update()
2009-08-27 Michael Stahl remove SwTxtAttr::RemoveFromPool() and make destructor non-public,
to be invoked by new method SwTxtAttr::Destroy()
2009-08-27 Michael Stahl ensure that SwDoc::Insert() for item (set) returns success indicator:
replace SwRegHistory constructor with method InsertItems(), returning bool.
refactor InsAttr() so that it checks if InsertItems() succeeds.
2009-08-27 Michael Stahl move SwXTextPortionEnumeration from unoobj.hxx to unoport.hxx
2009-08-27 Michael Stahl add missing SolarMutex in SwXTextPortion methods
2009-08-27 Michael Stahl SwXTextPortion: new member m_xTextField (so the TextField property need not
be returned indirectly via SwUnoCursorHelper).
factor out function CreateSwXTextField().
2009-08-27 Michael Stahl SwXTextPortion: remove PORTION_CONTROL_CHAR and implementation of XTextField
2009-08-27 Michael Stahl remove obsolete hint SwTxtHardBlank and formats SwFmtHardBlank/SwFmtSoftHyph
2009-08-27 Michael Stahl clean up SwTxtAttr and friends:
remove many accessor methods for obsolete (due to autofmt) char format items.
remove unused flag SwTxtAttr::m_bDontMergeAttr.
MakeRedlineTxtAttr() now dedicated function, no longer calls MakeTxtAttr().
2009-08-27 Michael Stahl remove obsolete attribute SwTxt2Lines
2009-08-27 Michael Stahl SwXTextPortionEnumeration: finish refactoring CreatePortions
change ExportHints so it always returns a text portion for hint w/ CH_TXTATR.
remove special case for handling end of paragraph.
unfortunately had to refactor the fieldmarks export as well (got in the way).
2009-08-27 Michael Stahl SwXTextPortionEnumeration: refactor CreatePortions: frames export
extract function ExportFrames() from CreatePortions().
remove (un)dead code that calls evil MovePara(fnParaCurr, fnParaEnd)
2009-08-27 Michael Stahl clean up SwXParaFrameEnumeration
2009-08-27 Michael Stahl CollectFrameAtNode: replace SwDependArr with STL based FrameDependList_t
2009-08-27 Michael Stahl SwXTextPortionEnumeration: tweak refmark/toxmark export
so ExportHints returns the portion for point marks
2009-08-27 Michael Stahl clean up SwXTextPortionEnumeration:
prefix members, remove casts, replace SvWeirdArray with STL, etc.
make CreatePortions() method a function, and remove lots of members.
extract fieldmarks function from CreatePortions.
2009-08-27 Michael Stahl remove FOREACHUNOPAM_START/END macros
2009-08-27 Michael Stahl clean up SwXTextPortion:
prefix members, remove casts, etc.
remove SwXRubyPortion: replace it with another SwXTextPortion constructor
2009-08-27 Michael Stahl #i102541# SwXReferenceMark::InsertRefMark(): use flag SETATTR_DONTEXPAND
2009-08-27 Michael Stahl rename SwTxtNode::Insert to SwTxtNode::InsertHint, and
fix constness in SwTxtNode::InsertItem
2009-08-27 Michael Stahl turn SwTxtNode::MakeTxtAttr() methods into global functions in ndhints.hxx
2009-08-27 Michael Stahl remove obsolete sw/inc/bookmrk.hxx
2009-08-27 Michael Stahl pam.cxx: fix ComparePosition functions (returned wrong result in one case)
2009-08-27 Michael Stahl #i103613# only import RDF metadata on normal open of a document
2009-09-11 kz CWS-TOOLING: integrate CWS impress176
2009-09-08 20:18:24 +0200 sj r275957 : fixed warning (shadowed variable)
2009-09-08 18:02:05 +0200 cl r275948 : #i104315# added missing tab pages
2009-09-08 17:35:18 +0200 cl r275947 : #i104866# fixed angle import
2009-09-08 17:32:53 +0200 cl r275946 : #i104841# fixed angle import
2009-09-08 17:01:25 +0200 cl r275943 : #i103935# fixed the SID_EVENTCONFIG mess
2009-09-08 14:32:57 +0200 sj r275928 : #i104685# only comments
2009-09-07 12:37:36 +0200 sj r275886 : #i104683# fixed import of bold/italic attributes for normal text shapes
2009-09-04 15:07:46 +0200 sj r275808 : #104689# fixed bullet color problem
2009-09-03 15:25:07 +0200 sj r275753 : #160200# added vertical alignment of table cells
2009-09-11 kz CWS-TOOLING: integrate CWS dv14
2009-09-10 15:16:32 +0200 sg r276035 : #160513# updated wfs scheme to accept ports
2009-09-10 07:41:47 +0200 dv r276019 : #i104942# Better renaming algorithmen
2009-08-31 13:41:11 +0200 dv r275604 : #160505# Setting APP1PRODUCTNAME must not overwrite APP1PRODUCTDEF
2009-09-11 kz CWS-TOOLING: integrate CWS jl131
2009-09-02 16:42:40 +0200 jl r275720 : #i97896#
2009-08-31 13:01:53 +0200 jl r275599 : CWS-TOOLING: rebase CWS jl131 to trunk@275331 (milestone: DEV300:m56)
2009-07-31 14:35:30 +0200 jl r274531 : CWS-TOOLING: rebase CWS jl131 to trunk@274203 (milestone: DEV300:m53)
2009-07-23 14:20:32 +0200 jl r274272 : #i79839# better error text when trying to modify shared layer without having write permission, eg. unopkg add --shared, unopkg remove --shared, unopkg reinstall --shared
2009-07-22 16:38:02 +0200 jl r274252 : #i97896# localize error message for lock file
2009-07-22 16:37:22 +0200 jl r274251 : #i80462# unprecise wording in updatedialog
2009-07-22 16:36:06 +0200 jl r274250 : #i97896# localize error message for lock file
2009-07-22 16:35:20 +0200 jl r274249 : #i97896# localize error message for lock file
2009-07-22 15:07:30 +0200 jl r274242 : #i98873# minimum java version is 1.5 since OOo 3.0
2009-09-11 kz CWS-TOOLING: integrate CWS changehc
2009-08-31 19:38:50 +0200 pl r275633 : remove dbug printf
2009-08-31 17:41:50 +0200 pl r275623 : CWS-TOOLING: rebase CWS changehc to trunk@275331 (milestone: DEV300:m56)
2009-07-15 19:45:46 +0200 pl r274028 : #i35482# use HC flag to decide high contrast mode
2009-07-15 17:40:52 +0200 pl r274020 : #i35482# use HC flag to decide high contrast mode
2009-07-15 17:39:50 +0200 pl r274019 : #i35482# update autohc correctly in MergeSystemSettings
2009-07-15 17:38:57 +0200 pl r274018 : #i35482# update autohc correctly in MergeSystemSettings
2009-09-11 kz CWS-TOOLING: integrate CWS notes10
2009-08-24 07:25:57 +0200 mod r275287 : 2009-07-26 02:38:32 +0200 mod r274343 : #i#i103645#
2009-07-26 02:01:53 +0200 mod r274342 : #i103645#
2009-07-26 01:52:42 +0200 mod r274341 : #i103490#
2009-07-22 08:31:48 +0200 mod r274215 : #i103373#
2009-07-15 00:55:11 +0200 mod r273987 : #i101419#
2009-07-14 07:07:55 +0200 mod r273956 : #i101419#
2009-07-14 07:07:43 +0200 mod r273955 : #i101419#
2009-07-14 07:02:10 +0200 mod r273954 : changes from notes9
2009-07-14 06:14:25 +0200 mod r273953 : #i103476#
2009-09-11 kz CWS-TOOLING: integrate CWS ab70
2009-09-10 15:12:54 +0200 jsk r276034 : #i85434# - mandatory automatic update test
2009-09-10 15:11:06 +0200 jsk r276033 : #i85434# - mandatory automatic update test
2009-09-02 09:49:24 +0200 ab r275698 : #i85434# Dialog Import
2009-09-11 kz CWS-TOOLING: integrate CWS hb32bugs02
2009-09-02 Henning Brinkmann #i102420# revert changes
2009-08-26 Henning Brinkmann merged DEV300_m56
2009-08-19 Henning Brinkmann merged DEV300_m55
2009-08-14 Henning Brinkmann merged changes from wntmsci12
2009-08-12 Henning Brinkmann Implemented NoSpaceEdit constructor and destructor in .cxx to allow compile with debug on wntmsci12.
2009-08-12 Henning Brinkmann Added some SW_DLLPUBLIC to make compilable on wntmsci12.
2009-08-11 Henning Brinkmann #i102420# dbg_out: surround output for SwNodes with <nodes-array>.
2009-08-10 Henning Brinkmann #i102420# rewritten debug output for SwNodes.
2009-08-07 Henning Brinkmann #i102420# debug _MoveNodes: output the destination, too. Break after two iterations.
2009-08-07 Henning Brinkmann #i102420# _MoveNodes: Additionally check if destination index is inside source => false
Check if current range was already handled => loop
Debug output current range
2009-08-06 Henning Brinkmann merged DEV300_m54
2009-08-06 Henning Brinkmann added master fix
2009-08-06 Henning Brinkmann debug output for SwNodeRange
2009-08-04 Henning Brinkmann #i102844# robustness: check for NULL pointer to prevent crash
2009-08-03 Henning Brinkmann #i103475# applied patch and verified
2009-08-03 Henning Brinkmann Removed code preventing build of sw with DEBUG.
2009-09-11 convert-repo update tags
2009-09-10 kz CWS-TOOLING: integrate CWS os2port06dev300
2009-09-05 22:49:00 +0200 ydario r275858 : #i99588# applied os2port06 diff to DEV300 tree.
2009-09-10 kz CWS-TOOLING: integrate CWS mingwport23
2009-08-29 07:07:53 +0200 tono r275555 : i#104522: mingw port graphite
2009-08-29 07:07:26 +0200 tono r275554 : i#104522: mingw port printf format fix
2009-09-10 kz CWS-TOOLING: integrate CWS mh232
2009-08-26 03:52:57 +0200 mh r275385 : #i102182# FreeBSD patch
2009-08-26 03:43:20 +0200 mh r275384 : #i101333# patch for FreeBSD
2009-08-26 03:11:20 +0200 mh r275383 : #i39230
2009-08-26 03:07:51 +0200 mh r275382 : #i39230# more space for initials field
2009-08-26 02:41:19 +0200 mh r275380 : #i39230# use vos::osecurity for reading the user name
2009-08-18 22:06:00 +0200 mh r275130 : #i104243#, line ending problem with newer perl
2009-08-18 21:53:21 +0200 mh r275129 : #i39230# read initials via getpwnam
2009-08-18 21:34:05 +0200 mh r275128 : enable CAIROCANVAS for Linux and Mac, #i88613#
2009-08-17 18:02:59 +0200 mh r275067 : #i95498# make compile with gcc3
2009-09-10 kz CWS-TOOLING: integrate CWS tkr24
2009-09-07 14:31:06 +0200 is r275898 : #160081# adding NO_LICENSE_INTO_COPYRIGHT
2009-09-10 releng #i10000# change KeyMapping to SingletonRef<framework::KeyMapping>
2009-09-11 convert-repo update tags
2009-09-10 kz CWS-TOOLING: integrate CWS os2port06dev300
2009-09-05 22:49:00 +0200 ydario r275858 : #i99588# applied os2port06 diff to DEV300 tree.
2009-09-10 kz CWS-TOOLING: integrate CWS mingwport23
2009-08-29 07:07:53 +0200 tono r275555 : i#104522: mingw port graphite
2009-08-29 07:07:26 +0200 tono r275554 : i#104522: mingw port printf format fix
2009-09-10 kz CWS-TOOLING: integrate CWS mh232
2009-08-26 03:52:57 +0200 mh r275385 : #i102182# FreeBSD patch
2009-08-26 03:43:20 +0200 mh r275384 : #i101333# patch for FreeBSD
2009-08-26 03:11:20 +0200 mh r275383 : #i39230
2009-08-26 03:07:51 +0200 mh r275382 : #i39230# more space for initials field
2009-08-26 02:41:19 +0200 mh r275380 : #i39230# use vos::osecurity for reading the user name
2009-08-18 22:06:00 +0200 mh r275130 : #i104243#, line ending problem with newer perl
2009-08-18 21:53:21 +0200 mh r275129 : #i39230# read initials via getpwnam
2009-08-18 21:34:05 +0200 mh r275128 : enable CAIROCANVAS for Linux and Mac, #i88613#
2009-08-17 18:02:59 +0200 mh r275067 : #i95498# make compile with gcc3
2009-09-10 kz CWS-TOOLING: integrate CWS tkr24
2009-09-07 14:31:06 +0200 is r275898 : #160081# adding NO_LICENSE_INTO_COPYRIGHT
2009-09-10 releng #i10000# change KeyMapping to SingletonRef<framework::KeyMapping>
2009-09-11 14:29:45 +00:00
|
|
|
|
rDoc.DeleteRange( aPam );
|
2001-09-27 12:42:58 +00:00
|
|
|
|
|
|
|
|
|
if( pCSttNd && !pCEndNd )
|
|
|
|
|
{
|
|
|
|
|
aPam.GetBound( TRUE ).nContent.Assign( 0, 0 );
|
|
|
|
|
aPam.GetBound( FALSE ).nContent.Assign( 0, 0 );
|
|
|
|
|
aPam.DeleteMark();
|
|
|
|
|
rDoc.DelFullPara( aPam );
|
|
|
|
|
}
|
|
|
|
|
}
|
2000-09-18 23:08:29 +00:00
|
|
|
|
rDoc.SetRedlineMode_intern( eOld );
|
|
|
|
|
}
|
|
|
|
|
else if( bDelRedl )
|
|
|
|
|
delete pRedl;
|
|
|
|
|
}
|
|
|
|
|
break;
|
|
|
|
|
|
2007-09-27 07:36:43 +00:00
|
|
|
|
case nsRedlineType_t::REDLINE_FMTCOLL:
|
2000-09-18 23:08:29 +00:00
|
|
|
|
rArr.DeleteAndDestroy( rPos-- );
|
|
|
|
|
break;
|
|
|
|
|
|
|
|
|
|
default:
|
|
|
|
|
bRet = FALSE;
|
|
|
|
|
}
|
|
|
|
|
return bRet;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
BOOL lcl_RejectRedline( SwRedlineTbl& rArr, USHORT& rPos,
|
|
|
|
|
BOOL bCallDelete,
|
|
|
|
|
const SwPosition* pSttRng = 0,
|
|
|
|
|
const SwPosition* pEndRng = 0 )
|
|
|
|
|
{
|
|
|
|
|
BOOL bRet = TRUE;
|
|
|
|
|
SwRedline* pRedl = rArr[ rPos ];
|
|
|
|
|
SwPosition *pRStt = 0, *pREnd = 0;
|
|
|
|
|
SwComparePosition eCmp = POS_OUTSIDE;
|
|
|
|
|
if( pSttRng && pEndRng )
|
|
|
|
|
{
|
|
|
|
|
pRStt = pRedl->Start();
|
|
|
|
|
pREnd = pRedl->End();
|
|
|
|
|
eCmp = ComparePosition( *pSttRng, *pEndRng, *pRStt, *pREnd );
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
pRedl->InvalidateRange();
|
|
|
|
|
|
|
|
|
|
switch( pRedl->GetType() )
|
|
|
|
|
{
|
2007-09-27 07:36:43 +00:00
|
|
|
|
case nsRedlineType_t::REDLINE_INSERT:
|
2000-09-18 23:08:29 +00:00
|
|
|
|
{
|
|
|
|
|
SwDoc& rDoc = *pRedl->GetDoc();
|
|
|
|
|
const SwPosition *pDelStt = 0, *pDelEnd = 0;
|
|
|
|
|
BOOL bDelRedl = FALSE;
|
|
|
|
|
switch( eCmp )
|
|
|
|
|
{
|
|
|
|
|
case POS_INSIDE:
|
|
|
|
|
if( bCallDelete )
|
|
|
|
|
{
|
|
|
|
|
pDelStt = pSttRng;
|
|
|
|
|
pDelEnd = pEndRng;
|
|
|
|
|
}
|
|
|
|
|
break;
|
|
|
|
|
|
|
|
|
|
case POS_OVERLAP_BEFORE:
|
|
|
|
|
if( bCallDelete )
|
|
|
|
|
{
|
|
|
|
|
pDelStt = pRStt;
|
|
|
|
|
pDelEnd = pEndRng;
|
|
|
|
|
}
|
|
|
|
|
break;
|
|
|
|
|
case POS_OVERLAP_BEHIND:
|
|
|
|
|
if( bCallDelete )
|
|
|
|
|
{
|
|
|
|
|
pDelStt = pREnd;
|
|
|
|
|
pDelEnd = pSttRng;
|
|
|
|
|
}
|
|
|
|
|
break;
|
|
|
|
|
case POS_OUTSIDE:
|
|
|
|
|
case POS_EQUAL:
|
|
|
|
|
{
|
|
|
|
|
// dann den Bereich wieder loeschen
|
|
|
|
|
rArr.Remove( rPos-- );
|
|
|
|
|
bDelRedl = TRUE;
|
|
|
|
|
if( bCallDelete )
|
|
|
|
|
{
|
|
|
|
|
pDelStt = pRedl->Start();
|
|
|
|
|
pDelEnd = pRedl->End();
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
break;
|
|
|
|
|
|
|
|
|
|
default:
|
|
|
|
|
bRet = FALSE;
|
|
|
|
|
}
|
|
|
|
|
if( pDelStt && pDelEnd )
|
|
|
|
|
{
|
|
|
|
|
SwPaM aPam( *pDelStt, *pDelEnd );
|
|
|
|
|
|
2001-09-27 12:42:58 +00:00
|
|
|
|
SwCntntNode* pCSttNd = pDelStt->nNode.GetNode().GetCntntNode();
|
|
|
|
|
SwCntntNode* pCEndNd = pDelEnd->nNode.GetNode().GetCntntNode();
|
|
|
|
|
|
2000-09-18 23:08:29 +00:00
|
|
|
|
if( bDelRedl )
|
|
|
|
|
delete pRedl;
|
|
|
|
|
|
2007-09-27 07:36:43 +00:00
|
|
|
|
RedlineMode_t eOld = rDoc.GetRedlineMode();
|
|
|
|
|
rDoc.SetRedlineMode_intern( (RedlineMode_t)(eOld & ~(nsRedlineMode_t::REDLINE_ON | nsRedlineMode_t::REDLINE_IGNORE)));
|
2001-09-27 12:42:58 +00:00
|
|
|
|
|
|
|
|
|
if( pCSttNd && pCEndNd )
|
|
|
|
|
rDoc.DeleteAndJoin( aPam );
|
|
|
|
|
else
|
|
|
|
|
{
|
CWS-TOOLING: integrate CWS odfmetadata3
2009-09-11 Michael Stahl merge DEV300_m58
2009-09-07 Michael Stahl SwFmtFld::Modify(): do nothing on RES_OBJECTDYING
2009-08-27 Michael Stahl #i91565#, #i91566#: TextPortionEnumerationTest.java: add test document
2009-08-27 Michael Stahl #i91565#, #i91566#: add complex test: TextPortionEnumerationTest.java
2009-08-27 Michael Stahl CLiteral::initialize(): zero-length literals probably not an error
2009-08-27 Michael Stahl #i91565#, #i91566#: offapi: new InContentMetadata and MetadataField services
adapt TextPortion for InContentMetadata
2009-08-27 Michael Stahl #i91564#: xmloff: load/store xml:id and RDFa for text:bookmark(-start).
2009-08-27 Michael Stahl #i91564#: sw core: add support for xml:id at bookmarks:
sw::mark::Bookmark: derive from Metadatable.
SwHistoryBookmark, SaveBookmark: store a MetadatableUndo.
ndcopy.cxx: lcl_CopyBookmarks(): copy the xml:id.
SwXBookmark: derive from MetadatableMixin.
2009-08-27 Michael Stahl #i91565#, #i91566#: xmloff: refactor ruby import so nested meta(-field) works:
remove XMLRubyHint_Impl.
XMLImpRubyContext_Impl::~XMLImpRubyContext_Impl(): insert ruby directly.
2009-08-27 Michael Stahl #i91565#, #i91566#: xmloff: fix text:meta(-field) import/export:
new XMLTextParagraphExport::exportTextField() overload for XTextField.
CreateAndInsertMark(): set xml:id after insertion.
fix meta(-field) service names, bugs etc.
2009-08-27 Michael Stahl #i91565#, #i91566#: sw text formatting: paint background of meta(-field) body:
SwFont: add member m_nMetaCount.
txttypes.hxx: add POR_META.
atrstck.cxx: handle RES_TXTATR_META(FIELD).
itrform2.cxx: SwTxtFormatter::WhichTxtPor(): create new class SwMetaPortion.
2009-08-27 Michael Stahl #i91566#: sw text formatting: display meta-field prefix and suffix:
SwAttrIter::GetAttr(): replace with call to GetTxtAttrForCharAt().
SwTxtFormatter::NewExtraPortion(): handle meta-field prefix.
SwTxtFormatter: new member m_nHintEndIndex.
SwTxtFormatter::WhichFirstPortion(): call TryNewNoLengthPortion().
SwTxtFormatter::TryNewNoLengthPortion(): new; handle suffix of meta-field.
SwTxtFormatter::UnderFlow(): UGLY HACK: decrement m_nHintEndIndex.
SwFldPortion: add flag m_bNoLength: portion has zero length (for suffix).
2009-08-27 Michael Stahl #i91565#, #i91566#: extend text:meta(-field) uno wrapper with XText interface:
unoobj.hxx: new CursorType CURSOR_META.
unoobj2.cxx: refactor SwXText implementation to ensure that when the SwXText
belongs to a SwXMeta, content is always inserted inside the meta(-field).
unoobj.cxx: new SwXTextCursor::ForceIntoMeta(): cursor stays in meta(-field).
unometa.hxx: SwXMeta implements XText, forwarding to a member SwXMetaText.
DocInsertStringSplitCR(), SwX*::attachToRange(), SwX*::DeleteAndInsert():
use FORCEHINTEXPAND hack to ensure insert into the meta(-field) at the end.
2009-08-27 Michael Stahl #i91565#, #i91566#: add text:meta(-field) uno wrapper to sw:
fmtmeta.hxx, fmtatr2.cxx: new class sw::MetaField, new sw::MetaFieldManager.
doc.hxx, docnew.cxx: new SwDoc::GetMetaFieldManager().
unocoll.hxx,.cxx: new SW_SERVICE_FIELDTYPE_METAFIELD, SW_SERVICE_TYPE_META.
unomap.hxx,.cxx: new PROPERTY_MAP_METAFIELD.
unoprnms.hxx: new UNO_NAME_META.
unoport.hxx: new PORTION_META; add "InContentMetadata" prop to SwXTextPortion.
new unometa.hxx: new class SwXMeta and SwXMetaField.
unofield.cxx: SwXFieldEnumeration: include meta-fields.
unoportenum.cxx: handle RES_TXTATR_META(FIELD) by using a portion list stack.
unotext.cxx: SwXText::insertTextContent(): handle meta(-field) as attribute.
2009-08-27 Michael Stahl #i91565#, #i91566#: ndhints.cxx: remove sort number from SwTxtAttrNesting
2009-08-27 Michael Stahl #i91565#, #i91566#: add support for hints with end and CH_TXTATR to sw core:
doc.hxx, docedt.cxx: replace SwDoc::Delete(), DeleteAndJoin(), ReplaceRange()
with wrappers that split at left-overlapped end+CH_TXTATR hints.
txatbase.hxx: new member SwTxtAttr::m_bHasDummyChar.
ndtxt.hxx: rename SwTxtNode::GetTxtAttr() to GetTxtAttrForCharAt().
ndtxt.cxx: SwTxtNode::CopyText(): copy end+CH_TXTATR hints iff copy CH_TXTATR.
txtatr2.cxx, thints.cxx: SwTxtMeta gets a CH_TXTATR.
2009-08-27 Michael Stahl #i91565#, #i91566#: add text:meta(-field) to sw core:
txatbase.hxx: new member SwTxtAttr::m_bNesting.
hintids.hxx: new ids RES_TXTATR_META, RES_TXTATR_METAFIELD.
txtatr.hxx: new base class SwTxtAttrNesting.
new hint SwTxtMeta.
SwTxtRuby derives from SwTxtAttrNesting.
txtinet.hxx: SwTxtINetFmt derives from SwTxtAttrNesting.
new header fmtmeta.hxx: new pool item SwFmtMeta. new class sw::Meta.
ndhints.hxx, thints.cxx: new method SwpHints::TryInsertNesting().
thints.cxx: refactoring: BuildPortions() no longer handles Ruby/Hyperlink,
but TryInsertNesting(), which also handles meta(-field).
SwTxtNode::InsertItem(): check if the hint is actually inserted.
ndhints.cxx: sort nesting hints based on sort number.
ndtxt.cxx: lcl_CopyHint(): handle copy of meta/meta-field.
2009-08-27 Michael Stahl enable expanding hints with m_bLockExpandFlag set:
add new InsertFlag: INS_FORCEHINTEXPAND.
add new SetAttrMode: SETATTR_FORCEHINTEXPAND.
rename SwEditShell::Insert() to Insert2() because changed signature fails
to compile when SwWrtShell tries to overwrite these non-virtual members...
SwWrtShell::Insert() sets FOCEHINTEXPAND if range was selected/deleted.
adapt SwUndoInsert to store flags.
2009-08-27 Michael Stahl change formal parameters of item insertion methods to type SetAttrMode
2009-08-27 Michael Stahl fix incorrect resetting of text attributes in SwUndoInsSection, SwUndoInserts
2009-08-27 Michael Stahl clean up SwTxtNode::CutImpl() and lcl_CopyHint()
2009-08-27 Michael Stahl rename SwDoc::Copy() to CopyRange(), and _Copy() to CopyImpl()
2009-08-27 Michael Stahl rename SwNodes::Move() to MoveRange(), and remove unused parameter
2009-08-27 Michael Stahl rename SwDoc::Move() to MoveRange()/MoveNodeRange()
2009-08-27 Michael Stahl rename SwDoc::Insert() to InsertString(), and remove sal_Unicode variant
2009-08-27 Michael Stahl rename SwDoc::Insert() to InsertPoolItem()/InsertItemSet()/InsertSwSection()
2009-08-27 Michael Stahl rename SwDoc::Replace() to ReplaceRange()
2009-08-27 Michael Stahl remove SwDoc::Overwrite() sal_Unicode variant
2009-08-27 Michael Stahl split up SwDoc::DeleteAndJoin(): factor out DeleteAndJoinWithRedline()
2009-08-27 Michael Stahl rename overloaded SwDoc::Delete() to DeleteRange()/DeleteTOXMark()
2009-08-27 Michael Stahl rename SwTxtNode::Copy() to CopyText()
2009-08-27 Michael Stahl rename SwTxtNode::Cut() to CutText(), and _Cut() to CutImpl()
2009-08-27 Michael Stahl rename SwTxtNode::Delete() to DeleteAttribute()/DeleteAttributes()
2009-08-27 Michael Stahl rename SwTxtNode::Replace() to ReplaceText(), and remove the xub_Unicode variant
2009-08-27 Michael Stahl rename SwTxtNode::Erase() to EraseText()
2009-08-27 Michael Stahl rename SwTxtNode::Insert() to InsertText(), and remove the xub_Unicode variant
2009-08-27 Michael Stahl clean up SwTxtNode::Update()
2009-08-27 Michael Stahl remove SwTxtAttr::RemoveFromPool() and make destructor non-public,
to be invoked by new method SwTxtAttr::Destroy()
2009-08-27 Michael Stahl ensure that SwDoc::Insert() for item (set) returns success indicator:
replace SwRegHistory constructor with method InsertItems(), returning bool.
refactor InsAttr() so that it checks if InsertItems() succeeds.
2009-08-27 Michael Stahl move SwXTextPortionEnumeration from unoobj.hxx to unoport.hxx
2009-08-27 Michael Stahl add missing SolarMutex in SwXTextPortion methods
2009-08-27 Michael Stahl SwXTextPortion: new member m_xTextField (so the TextField property need not
be returned indirectly via SwUnoCursorHelper).
factor out function CreateSwXTextField().
2009-08-27 Michael Stahl SwXTextPortion: remove PORTION_CONTROL_CHAR and implementation of XTextField
2009-08-27 Michael Stahl remove obsolete hint SwTxtHardBlank and formats SwFmtHardBlank/SwFmtSoftHyph
2009-08-27 Michael Stahl clean up SwTxtAttr and friends:
remove many accessor methods for obsolete (due to autofmt) char format items.
remove unused flag SwTxtAttr::m_bDontMergeAttr.
MakeRedlineTxtAttr() now dedicated function, no longer calls MakeTxtAttr().
2009-08-27 Michael Stahl remove obsolete attribute SwTxt2Lines
2009-08-27 Michael Stahl SwXTextPortionEnumeration: finish refactoring CreatePortions
change ExportHints so it always returns a text portion for hint w/ CH_TXTATR.
remove special case for handling end of paragraph.
unfortunately had to refactor the fieldmarks export as well (got in the way).
2009-08-27 Michael Stahl SwXTextPortionEnumeration: refactor CreatePortions: frames export
extract function ExportFrames() from CreatePortions().
remove (un)dead code that calls evil MovePara(fnParaCurr, fnParaEnd)
2009-08-27 Michael Stahl clean up SwXParaFrameEnumeration
2009-08-27 Michael Stahl CollectFrameAtNode: replace SwDependArr with STL based FrameDependList_t
2009-08-27 Michael Stahl SwXTextPortionEnumeration: tweak refmark/toxmark export
so ExportHints returns the portion for point marks
2009-08-27 Michael Stahl clean up SwXTextPortionEnumeration:
prefix members, remove casts, replace SvWeirdArray with STL, etc.
make CreatePortions() method a function, and remove lots of members.
extract fieldmarks function from CreatePortions.
2009-08-27 Michael Stahl remove FOREACHUNOPAM_START/END macros
2009-08-27 Michael Stahl clean up SwXTextPortion:
prefix members, remove casts, etc.
remove SwXRubyPortion: replace it with another SwXTextPortion constructor
2009-08-27 Michael Stahl #i102541# SwXReferenceMark::InsertRefMark(): use flag SETATTR_DONTEXPAND
2009-08-27 Michael Stahl rename SwTxtNode::Insert to SwTxtNode::InsertHint, and
fix constness in SwTxtNode::InsertItem
2009-08-27 Michael Stahl turn SwTxtNode::MakeTxtAttr() methods into global functions in ndhints.hxx
2009-08-27 Michael Stahl remove obsolete sw/inc/bookmrk.hxx
2009-08-27 Michael Stahl pam.cxx: fix ComparePosition functions (returned wrong result in one case)
2009-08-27 Michael Stahl #i103613# only import RDF metadata on normal open of a document
2009-09-11 kz CWS-TOOLING: integrate CWS impress176
2009-09-08 20:18:24 +0200 sj r275957 : fixed warning (shadowed variable)
2009-09-08 18:02:05 +0200 cl r275948 : #i104315# added missing tab pages
2009-09-08 17:35:18 +0200 cl r275947 : #i104866# fixed angle import
2009-09-08 17:32:53 +0200 cl r275946 : #i104841# fixed angle import
2009-09-08 17:01:25 +0200 cl r275943 : #i103935# fixed the SID_EVENTCONFIG mess
2009-09-08 14:32:57 +0200 sj r275928 : #i104685# only comments
2009-09-07 12:37:36 +0200 sj r275886 : #i104683# fixed import of bold/italic attributes for normal text shapes
2009-09-04 15:07:46 +0200 sj r275808 : #104689# fixed bullet color problem
2009-09-03 15:25:07 +0200 sj r275753 : #160200# added vertical alignment of table cells
2009-09-11 kz CWS-TOOLING: integrate CWS dv14
2009-09-10 15:16:32 +0200 sg r276035 : #160513# updated wfs scheme to accept ports
2009-09-10 07:41:47 +0200 dv r276019 : #i104942# Better renaming algorithmen
2009-08-31 13:41:11 +0200 dv r275604 : #160505# Setting APP1PRODUCTNAME must not overwrite APP1PRODUCTDEF
2009-09-11 kz CWS-TOOLING: integrate CWS jl131
2009-09-02 16:42:40 +0200 jl r275720 : #i97896#
2009-08-31 13:01:53 +0200 jl r275599 : CWS-TOOLING: rebase CWS jl131 to trunk@275331 (milestone: DEV300:m56)
2009-07-31 14:35:30 +0200 jl r274531 : CWS-TOOLING: rebase CWS jl131 to trunk@274203 (milestone: DEV300:m53)
2009-07-23 14:20:32 +0200 jl r274272 : #i79839# better error text when trying to modify shared layer without having write permission, eg. unopkg add --shared, unopkg remove --shared, unopkg reinstall --shared
2009-07-22 16:38:02 +0200 jl r274252 : #i97896# localize error message for lock file
2009-07-22 16:37:22 +0200 jl r274251 : #i80462# unprecise wording in updatedialog
2009-07-22 16:36:06 +0200 jl r274250 : #i97896# localize error message for lock file
2009-07-22 16:35:20 +0200 jl r274249 : #i97896# localize error message for lock file
2009-07-22 15:07:30 +0200 jl r274242 : #i98873# minimum java version is 1.5 since OOo 3.0
2009-09-11 kz CWS-TOOLING: integrate CWS changehc
2009-08-31 19:38:50 +0200 pl r275633 : remove dbug printf
2009-08-31 17:41:50 +0200 pl r275623 : CWS-TOOLING: rebase CWS changehc to trunk@275331 (milestone: DEV300:m56)
2009-07-15 19:45:46 +0200 pl r274028 : #i35482# use HC flag to decide high contrast mode
2009-07-15 17:40:52 +0200 pl r274020 : #i35482# use HC flag to decide high contrast mode
2009-07-15 17:39:50 +0200 pl r274019 : #i35482# update autohc correctly in MergeSystemSettings
2009-07-15 17:38:57 +0200 pl r274018 : #i35482# update autohc correctly in MergeSystemSettings
2009-09-11 kz CWS-TOOLING: integrate CWS notes10
2009-08-24 07:25:57 +0200 mod r275287 : 2009-07-26 02:38:32 +0200 mod r274343 : #i#i103645#
2009-07-26 02:01:53 +0200 mod r274342 : #i103645#
2009-07-26 01:52:42 +0200 mod r274341 : #i103490#
2009-07-22 08:31:48 +0200 mod r274215 : #i103373#
2009-07-15 00:55:11 +0200 mod r273987 : #i101419#
2009-07-14 07:07:55 +0200 mod r273956 : #i101419#
2009-07-14 07:07:43 +0200 mod r273955 : #i101419#
2009-07-14 07:02:10 +0200 mod r273954 : changes from notes9
2009-07-14 06:14:25 +0200 mod r273953 : #i103476#
2009-09-11 kz CWS-TOOLING: integrate CWS ab70
2009-09-10 15:12:54 +0200 jsk r276034 : #i85434# - mandatory automatic update test
2009-09-10 15:11:06 +0200 jsk r276033 : #i85434# - mandatory automatic update test
2009-09-02 09:49:24 +0200 ab r275698 : #i85434# Dialog Import
2009-09-11 kz CWS-TOOLING: integrate CWS hb32bugs02
2009-09-02 Henning Brinkmann #i102420# revert changes
2009-08-26 Henning Brinkmann merged DEV300_m56
2009-08-19 Henning Brinkmann merged DEV300_m55
2009-08-14 Henning Brinkmann merged changes from wntmsci12
2009-08-12 Henning Brinkmann Implemented NoSpaceEdit constructor and destructor in .cxx to allow compile with debug on wntmsci12.
2009-08-12 Henning Brinkmann Added some SW_DLLPUBLIC to make compilable on wntmsci12.
2009-08-11 Henning Brinkmann #i102420# dbg_out: surround output for SwNodes with <nodes-array>.
2009-08-10 Henning Brinkmann #i102420# rewritten debug output for SwNodes.
2009-08-07 Henning Brinkmann #i102420# debug _MoveNodes: output the destination, too. Break after two iterations.
2009-08-07 Henning Brinkmann #i102420# _MoveNodes: Additionally check if destination index is inside source => false
Check if current range was already handled => loop
Debug output current range
2009-08-06 Henning Brinkmann merged DEV300_m54
2009-08-06 Henning Brinkmann added master fix
2009-08-06 Henning Brinkmann debug output for SwNodeRange
2009-08-04 Henning Brinkmann #i102844# robustness: check for NULL pointer to prevent crash
2009-08-03 Henning Brinkmann #i103475# applied patch and verified
2009-08-03 Henning Brinkmann Removed code preventing build of sw with DEBUG.
2009-09-11 convert-repo update tags
2009-09-10 kz CWS-TOOLING: integrate CWS os2port06dev300
2009-09-05 22:49:00 +0200 ydario r275858 : #i99588# applied os2port06 diff to DEV300 tree.
2009-09-10 kz CWS-TOOLING: integrate CWS mingwport23
2009-08-29 07:07:53 +0200 tono r275555 : i#104522: mingw port graphite
2009-08-29 07:07:26 +0200 tono r275554 : i#104522: mingw port printf format fix
2009-09-10 kz CWS-TOOLING: integrate CWS mh232
2009-08-26 03:52:57 +0200 mh r275385 : #i102182# FreeBSD patch
2009-08-26 03:43:20 +0200 mh r275384 : #i101333# patch for FreeBSD
2009-08-26 03:11:20 +0200 mh r275383 : #i39230
2009-08-26 03:07:51 +0200 mh r275382 : #i39230# more space for initials field
2009-08-26 02:41:19 +0200 mh r275380 : #i39230# use vos::osecurity for reading the user name
2009-08-18 22:06:00 +0200 mh r275130 : #i104243#, line ending problem with newer perl
2009-08-18 21:53:21 +0200 mh r275129 : #i39230# read initials via getpwnam
2009-08-18 21:34:05 +0200 mh r275128 : enable CAIROCANVAS for Linux and Mac, #i88613#
2009-08-17 18:02:59 +0200 mh r275067 : #i95498# make compile with gcc3
2009-09-10 kz CWS-TOOLING: integrate CWS tkr24
2009-09-07 14:31:06 +0200 is r275898 : #160081# adding NO_LICENSE_INTO_COPYRIGHT
2009-09-10 releng #i10000# change KeyMapping to SingletonRef<framework::KeyMapping>
2009-09-11 convert-repo update tags
2009-09-10 kz CWS-TOOLING: integrate CWS os2port06dev300
2009-09-05 22:49:00 +0200 ydario r275858 : #i99588# applied os2port06 diff to DEV300 tree.
2009-09-10 kz CWS-TOOLING: integrate CWS mingwport23
2009-08-29 07:07:53 +0200 tono r275555 : i#104522: mingw port graphite
2009-08-29 07:07:26 +0200 tono r275554 : i#104522: mingw port printf format fix
2009-09-10 kz CWS-TOOLING: integrate CWS mh232
2009-08-26 03:52:57 +0200 mh r275385 : #i102182# FreeBSD patch
2009-08-26 03:43:20 +0200 mh r275384 : #i101333# patch for FreeBSD
2009-08-26 03:11:20 +0200 mh r275383 : #i39230
2009-08-26 03:07:51 +0200 mh r275382 : #i39230# more space for initials field
2009-08-26 02:41:19 +0200 mh r275380 : #i39230# use vos::osecurity for reading the user name
2009-08-18 22:06:00 +0200 mh r275130 : #i104243#, line ending problem with newer perl
2009-08-18 21:53:21 +0200 mh r275129 : #i39230# read initials via getpwnam
2009-08-18 21:34:05 +0200 mh r275128 : enable CAIROCANVAS for Linux and Mac, #i88613#
2009-08-17 18:02:59 +0200 mh r275067 : #i95498# make compile with gcc3
2009-09-10 kz CWS-TOOLING: integrate CWS tkr24
2009-09-07 14:31:06 +0200 is r275898 : #160081# adding NO_LICENSE_INTO_COPYRIGHT
2009-09-10 releng #i10000# change KeyMapping to SingletonRef<framework::KeyMapping>
2009-09-11 14:29:45 +00:00
|
|
|
|
rDoc.DeleteRange( aPam );
|
2001-09-27 12:42:58 +00:00
|
|
|
|
|
|
|
|
|
if( pCSttNd && !pCEndNd )
|
|
|
|
|
{
|
|
|
|
|
aPam.GetBound( TRUE ).nContent.Assign( 0, 0 );
|
|
|
|
|
aPam.GetBound( FALSE ).nContent.Assign( 0, 0 );
|
|
|
|
|
aPam.DeleteMark();
|
|
|
|
|
rDoc.DelFullPara( aPam );
|
|
|
|
|
}
|
|
|
|
|
}
|
2000-09-18 23:08:29 +00:00
|
|
|
|
rDoc.SetRedlineMode_intern( eOld );
|
|
|
|
|
}
|
|
|
|
|
else if( bDelRedl )
|
|
|
|
|
delete pRedl;
|
|
|
|
|
}
|
|
|
|
|
break;
|
2007-09-27 07:36:43 +00:00
|
|
|
|
case nsRedlineType_t::REDLINE_DELETE:
|
2000-09-18 23:08:29 +00:00
|
|
|
|
{
|
|
|
|
|
SwRedline* pNew = 0;
|
|
|
|
|
BOOL bCheck = FALSE, bReplace = FALSE;
|
|
|
|
|
|
|
|
|
|
switch( eCmp )
|
|
|
|
|
{
|
|
|
|
|
case POS_INSIDE:
|
|
|
|
|
{
|
|
|
|
|
if( 1 < pRedl->GetStackCount() )
|
|
|
|
|
{
|
|
|
|
|
pNew = new SwRedline( *pRedl );
|
|
|
|
|
pNew->PopData();
|
|
|
|
|
}
|
|
|
|
|
if( *pSttRng == *pRStt )
|
|
|
|
|
{
|
|
|
|
|
pRedl->SetStart( *pEndRng, pRStt );
|
|
|
|
|
bReplace = TRUE;
|
|
|
|
|
if( pNew )
|
|
|
|
|
pNew->SetEnd( *pEndRng );
|
|
|
|
|
}
|
|
|
|
|
else
|
|
|
|
|
{
|
|
|
|
|
if( *pEndRng != *pREnd )
|
|
|
|
|
{
|
|
|
|
|
// aufsplitten
|
|
|
|
|
SwRedline* pCpy = new SwRedline( *pRedl );
|
|
|
|
|
pCpy->SetStart( *pEndRng );
|
|
|
|
|
rArr.Insert( pCpy ); ++rPos;
|
|
|
|
|
if( pNew )
|
|
|
|
|
pNew->SetEnd( *pEndRng );
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
pRedl->SetEnd( *pSttRng, pREnd );
|
|
|
|
|
bCheck = TRUE;
|
|
|
|
|
if( pNew )
|
|
|
|
|
pNew->SetStart( *pSttRng );
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
break;
|
|
|
|
|
|
|
|
|
|
case POS_OVERLAP_BEFORE:
|
|
|
|
|
if( 1 < pRedl->GetStackCount() )
|
|
|
|
|
{
|
|
|
|
|
pNew = new SwRedline( *pRedl );
|
|
|
|
|
pNew->PopData();
|
|
|
|
|
}
|
|
|
|
|
pRedl->SetStart( *pEndRng, pRStt );
|
|
|
|
|
bReplace = TRUE;
|
|
|
|
|
if( pNew )
|
|
|
|
|
pNew->SetEnd( *pEndRng );
|
|
|
|
|
break;
|
|
|
|
|
|
|
|
|
|
case POS_OVERLAP_BEHIND:
|
|
|
|
|
if( 1 < pRedl->GetStackCount() )
|
|
|
|
|
{
|
|
|
|
|
pNew = new SwRedline( *pRedl );
|
|
|
|
|
pNew->PopData();
|
|
|
|
|
}
|
|
|
|
|
pRedl->SetEnd( *pSttRng, pREnd );
|
|
|
|
|
bCheck = TRUE;
|
|
|
|
|
if( pNew )
|
|
|
|
|
pNew->SetStart( *pSttRng );
|
|
|
|
|
break;
|
|
|
|
|
|
|
|
|
|
case POS_OUTSIDE:
|
|
|
|
|
case POS_EQUAL:
|
|
|
|
|
if( !pRedl->PopData() )
|
|
|
|
|
// das RedlineObject loeschen reicht
|
|
|
|
|
rArr.DeleteAndDestroy( rPos-- );
|
|
|
|
|
break;
|
|
|
|
|
|
|
|
|
|
default:
|
|
|
|
|
bRet = FALSE;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
if( pNew )
|
|
|
|
|
{
|
|
|
|
|
rArr.Insert( pNew ); ++rPos;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
if( bReplace || ( bCheck && !pRedl->HasValidRange() ))
|
|
|
|
|
{
|
|
|
|
|
// neu einsortieren
|
|
|
|
|
rArr.Remove( rArr.GetPos( pRedl ));
|
|
|
|
|
rArr.Insert( pRedl );
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
break;
|
|
|
|
|
|
2007-09-27 07:36:43 +00:00
|
|
|
|
case nsRedlineType_t::REDLINE_FORMAT:
|
|
|
|
|
case nsRedlineType_t::REDLINE_FMTCOLL:
|
2000-09-18 23:08:29 +00:00
|
|
|
|
{
|
|
|
|
|
if( pRedl->GetExtraData() )
|
|
|
|
|
pRedl->GetExtraData()->Reject( *pRedl );
|
|
|
|
|
rArr.DeleteAndDestroy( rPos-- );
|
|
|
|
|
}
|
|
|
|
|
break;
|
|
|
|
|
|
|
|
|
|
default:
|
|
|
|
|
bRet = FALSE;
|
|
|
|
|
}
|
|
|
|
|
return bRet;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
const SwRedline* lcl_FindCurrRedline( const SwPosition& rSttPos,
|
|
|
|
|
USHORT& rPos,
|
|
|
|
|
BOOL bNext = TRUE )
|
|
|
|
|
{
|
|
|
|
|
const SwRedline* pFnd = 0;
|
|
|
|
|
const SwRedlineTbl& rArr = rSttPos.nNode.GetNode().GetDoc()->GetRedlineTbl();
|
|
|
|
|
for( ; rPos < rArr.Count() ; ++rPos )
|
|
|
|
|
{
|
|
|
|
|
const SwRedline* pTmp = rArr[ rPos ];
|
|
|
|
|
if( pTmp->HasMark() && pTmp->IsVisible() )
|
|
|
|
|
{
|
|
|
|
|
const SwPosition* pRStt = pTmp->Start(),
|
|
|
|
|
* pREnd = pRStt == pTmp->GetPoint() ? pTmp->GetMark()
|
|
|
|
|
: pTmp->GetPoint();
|
|
|
|
|
if( bNext ? *pRStt <= rSttPos : *pRStt < rSttPos )
|
|
|
|
|
{
|
|
|
|
|
if( bNext ? *pREnd > rSttPos : *pREnd >= rSttPos )
|
|
|
|
|
{
|
|
|
|
|
pFnd = pTmp;
|
|
|
|
|
break;
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
else
|
|
|
|
|
break;
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
return pFnd;
|
|
|
|
|
}
|
|
|
|
|
|
2004-05-18 13:02:15 +00:00
|
|
|
|
// #111827#
|
|
|
|
|
int lcl_AcceptRejectRedl( Fn_AcceptReject fn_AcceptReject,
|
2000-09-18 23:08:29 +00:00
|
|
|
|
SwRedlineTbl& rArr, BOOL bCallDelete,
|
2004-05-18 13:02:15 +00:00
|
|
|
|
const SwPaM& rPam)
|
2000-09-18 23:08:29 +00:00
|
|
|
|
{
|
|
|
|
|
USHORT n = 0;
|
2004-05-18 13:02:15 +00:00
|
|
|
|
int nCount = 0; // #111827#
|
|
|
|
|
|
2000-09-18 23:08:29 +00:00
|
|
|
|
const SwPosition* pStt = rPam.Start(),
|
|
|
|
|
* pEnd = pStt == rPam.GetPoint() ? rPam.GetMark()
|
|
|
|
|
: rPam.GetPoint();
|
|
|
|
|
const SwRedline* pFnd = lcl_FindCurrRedline( *pStt, n, TRUE );
|
|
|
|
|
if( pFnd && // neu ein Teil davon?
|
|
|
|
|
( *pFnd->Start() != *pStt || *pFnd->End() > *pEnd ))
|
|
|
|
|
{
|
|
|
|
|
// dann nur die TeilSelektion aufheben
|
|
|
|
|
if( (*fn_AcceptReject)( rArr, n, bCallDelete, pStt, pEnd ))
|
2004-05-18 13:02:15 +00:00
|
|
|
|
nCount++; // #111827#
|
2000-09-18 23:08:29 +00:00
|
|
|
|
++n;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
for( ; n < rArr.Count(); ++n )
|
|
|
|
|
{
|
|
|
|
|
SwRedline* pTmp = rArr[ n ];
|
|
|
|
|
if( pTmp->HasMark() && pTmp->IsVisible() )
|
|
|
|
|
{
|
|
|
|
|
if( *pTmp->End() <= *pEnd )
|
|
|
|
|
{
|
|
|
|
|
if( (*fn_AcceptReject)( rArr, n, bCallDelete, 0, 0 ))
|
2004-05-18 13:02:15 +00:00
|
|
|
|
nCount++; // #111827#
|
2000-09-18 23:08:29 +00:00
|
|
|
|
}
|
|
|
|
|
else
|
|
|
|
|
{
|
|
|
|
|
if( *pTmp->Start() < *pEnd )
|
|
|
|
|
{
|
|
|
|
|
// dann nur in der TeilSelektion aufheben
|
|
|
|
|
if( (*fn_AcceptReject)( rArr, n, bCallDelete, pStt, pEnd ))
|
2004-05-18 13:02:15 +00:00
|
|
|
|
nCount++; // #111827#
|
2000-09-18 23:08:29 +00:00
|
|
|
|
}
|
|
|
|
|
break;
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
}
|
2004-05-18 13:02:15 +00:00
|
|
|
|
return nCount; // #111827#
|
2000-09-18 23:08:29 +00:00
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
void lcl_AdjustRedlineRange( SwPaM& rPam )
|
|
|
|
|
{
|
|
|
|
|
// die Selektion steht nur im ContentBereich. Wenn es aber Redlines
|
|
|
|
|
// davor oder dahinter auf nicht ContentNodes stehen, dann erweiter die
|
|
|
|
|
// die Selection auf diese
|
|
|
|
|
SwPosition* pStt = rPam.Start(),
|
|
|
|
|
* pEnd = pStt == rPam.GetPoint() ? rPam.GetMark()
|
|
|
|
|
: rPam.GetPoint();
|
|
|
|
|
SwDoc* pDoc = rPam.GetDoc();
|
|
|
|
|
if( !pStt->nContent.GetIndex() &&
|
|
|
|
|
!pDoc->GetNodes()[ pStt->nNode.GetIndex() - 1 ]->IsCntntNode() )
|
|
|
|
|
{
|
2006-08-14 14:59:18 +00:00
|
|
|
|
const SwRedline* pRedl = pDoc->GetRedline( *pStt, 0 );
|
2000-09-18 23:08:29 +00:00
|
|
|
|
if( pRedl )
|
|
|
|
|
{
|
|
|
|
|
const SwPosition* pRStt = pRedl->Start();
|
|
|
|
|
if( !pRStt->nContent.GetIndex() && pRStt->nNode.GetIndex() ==
|
|
|
|
|
pStt->nNode.GetIndex() - 1 )
|
|
|
|
|
*pStt = *pRStt;
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
if( pEnd->nNode.GetNode().IsCntntNode() &&
|
|
|
|
|
!pDoc->GetNodes()[ pEnd->nNode.GetIndex() + 1 ]->IsCntntNode() &&
|
|
|
|
|
pEnd->nContent.GetIndex() == pEnd->nNode.GetNode().GetCntntNode()->Len() )
|
|
|
|
|
{
|
2006-08-14 14:59:18 +00:00
|
|
|
|
const SwRedline* pRedl = pDoc->GetRedline( *pEnd, 0 );
|
2000-09-18 23:08:29 +00:00
|
|
|
|
if( pRedl )
|
|
|
|
|
{
|
|
|
|
|
const SwPosition* pREnd = pRedl->End();
|
|
|
|
|
if( !pREnd->nContent.GetIndex() && pREnd->nNode.GetIndex() ==
|
|
|
|
|
pEnd->nNode.GetIndex() + 1 )
|
|
|
|
|
*pEnd = *pREnd;
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
2006-08-14 14:59:18 +00:00
|
|
|
|
bool SwDoc::AcceptRedline( USHORT nPos, bool bCallDelete )
|
2000-09-18 23:08:29 +00:00
|
|
|
|
{
|
|
|
|
|
BOOL bRet = FALSE;
|
|
|
|
|
|
|
|
|
|
// aufjedenfall auf sichtbar umschalten
|
2007-09-27 07:36:43 +00:00
|
|
|
|
if( (nsRedlineMode_t::REDLINE_SHOW_INSERT | nsRedlineMode_t::REDLINE_SHOW_DELETE) !=
|
|
|
|
|
(nsRedlineMode_t::REDLINE_SHOW_MASK & eRedlineMode) )
|
|
|
|
|
SetRedlineMode( (RedlineMode_t)(nsRedlineMode_t::REDLINE_SHOW_INSERT | nsRedlineMode_t::REDLINE_SHOW_DELETE | eRedlineMode));
|
2000-09-18 23:08:29 +00:00
|
|
|
|
|
|
|
|
|
SwRedline* pTmp = (*pRedlineTbl)[ nPos ];
|
|
|
|
|
if( pTmp->HasMark() && pTmp->IsVisible() )
|
|
|
|
|
{
|
|
|
|
|
if( DoesUndo() )
|
2004-05-18 13:02:15 +00:00
|
|
|
|
{
|
|
|
|
|
// #111827#
|
|
|
|
|
SwRewriter aRewriter;
|
|
|
|
|
|
|
|
|
|
aRewriter.AddRule(UNDO_ARG1, pTmp->GetDescr());
|
|
|
|
|
StartUndo( UNDO_ACCEPT_REDLINE, &aRewriter);
|
|
|
|
|
}
|
2000-09-18 23:08:29 +00:00
|
|
|
|
|
|
|
|
|
int nLoopCnt = 2;
|
|
|
|
|
USHORT nSeqNo = pTmp->GetSeqNo();
|
|
|
|
|
|
|
|
|
|
do {
|
|
|
|
|
|
|
|
|
|
if( DoesUndo() )
|
|
|
|
|
AppendUndo( new SwUndoAcceptRedline( *pTmp ));
|
|
|
|
|
|
|
|
|
|
bRet |= lcl_AcceptRedline( *pRedlineTbl, nPos, bCallDelete );
|
|
|
|
|
|
|
|
|
|
if( nSeqNo )
|
|
|
|
|
{
|
|
|
|
|
if( USHRT_MAX == nPos )
|
|
|
|
|
nPos = 0;
|
|
|
|
|
USHORT nFndPos = 2 == nLoopCnt
|
|
|
|
|
? pRedlineTbl->FindNextSeqNo( nSeqNo, nPos )
|
|
|
|
|
: pRedlineTbl->FindPrevSeqNo( nSeqNo, nPos );
|
|
|
|
|
if( USHRT_MAX != nFndPos || ( 0 != ( --nLoopCnt ) &&
|
|
|
|
|
USHRT_MAX != ( nFndPos =
|
|
|
|
|
pRedlineTbl->FindPrevSeqNo( nSeqNo, nPos ))) )
|
|
|
|
|
pTmp = (*pRedlineTbl)[ nPos = nFndPos ];
|
|
|
|
|
else
|
|
|
|
|
nLoopCnt = 0;
|
|
|
|
|
}
|
|
|
|
|
else
|
|
|
|
|
nLoopCnt = 0;
|
|
|
|
|
|
|
|
|
|
} while( nLoopCnt );
|
|
|
|
|
|
|
|
|
|
if( bRet )
|
|
|
|
|
{
|
|
|
|
|
CompressRedlines();
|
|
|
|
|
SetModified();
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
if( DoesUndo() )
|
2006-08-14 14:59:18 +00:00
|
|
|
|
EndUndo( UNDO_ACCEPT_REDLINE, NULL );
|
2000-09-18 23:08:29 +00:00
|
|
|
|
}
|
|
|
|
|
return bRet;
|
|
|
|
|
}
|
|
|
|
|
|
2006-08-14 14:59:18 +00:00
|
|
|
|
bool SwDoc::AcceptRedline( const SwPaM& rPam, bool bCallDelete )
|
2000-09-18 23:08:29 +00:00
|
|
|
|
{
|
|
|
|
|
// aufjedenfall auf sichtbar umschalten
|
2007-09-27 07:36:43 +00:00
|
|
|
|
if( (nsRedlineMode_t::REDLINE_SHOW_INSERT | nsRedlineMode_t::REDLINE_SHOW_DELETE) !=
|
|
|
|
|
(nsRedlineMode_t::REDLINE_SHOW_MASK & eRedlineMode) )
|
|
|
|
|
SetRedlineMode( (RedlineMode_t)(nsRedlineMode_t::REDLINE_SHOW_INSERT | nsRedlineMode_t::REDLINE_SHOW_DELETE | eRedlineMode));
|
2000-09-18 23:08:29 +00:00
|
|
|
|
|
|
|
|
|
// die Selektion steht nur im ContentBereich. Wenn es aber Redlines
|
|
|
|
|
// davor oder dahinter auf nicht ContentNodes stehen, dann erweiter die
|
|
|
|
|
// die Selection auf diese
|
|
|
|
|
SwPaM aPam( *rPam.GetMark(), *rPam.GetPoint() );
|
|
|
|
|
lcl_AdjustRedlineRange( aPam );
|
|
|
|
|
|
|
|
|
|
if( DoesUndo() )
|
|
|
|
|
{
|
2006-08-14 14:59:18 +00:00
|
|
|
|
StartUndo( UNDO_ACCEPT_REDLINE, NULL );
|
2000-09-18 23:08:29 +00:00
|
|
|
|
AppendUndo( new SwUndoAcceptRedline( aPam ));
|
|
|
|
|
}
|
|
|
|
|
|
2004-05-18 13:02:15 +00:00
|
|
|
|
// #111827#
|
|
|
|
|
int nRet = lcl_AcceptRejectRedl( lcl_AcceptRedline, *pRedlineTbl,
|
|
|
|
|
bCallDelete, aPam );
|
|
|
|
|
if( nRet > 0 )
|
2000-09-18 23:08:29 +00:00
|
|
|
|
{
|
|
|
|
|
CompressRedlines();
|
|
|
|
|
SetModified();
|
|
|
|
|
}
|
|
|
|
|
if( DoesUndo() )
|
2004-05-18 13:02:15 +00:00
|
|
|
|
{
|
|
|
|
|
// #111827#
|
|
|
|
|
String aTmpStr;
|
|
|
|
|
|
|
|
|
|
{
|
|
|
|
|
SwRewriter aRewriter;
|
|
|
|
|
aRewriter.AddRule(UNDO_ARG1, String::CreateFromInt32(nRet));
|
|
|
|
|
aTmpStr = aRewriter.Apply(String(SW_RES(STR_N_REDLINES)));
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
SwRewriter aRewriter;
|
|
|
|
|
aRewriter.AddRule(UNDO_ARG1, aTmpStr);
|
|
|
|
|
|
|
|
|
|
EndUndo( UNDO_ACCEPT_REDLINE, &aRewriter );
|
|
|
|
|
}
|
2006-07-19 08:35:31 +00:00
|
|
|
|
return nRet != 0;
|
2000-09-18 23:08:29 +00:00
|
|
|
|
}
|
|
|
|
|
|
2006-08-14 14:59:18 +00:00
|
|
|
|
bool SwDoc::RejectRedline( USHORT nPos, bool bCallDelete )
|
2000-09-18 23:08:29 +00:00
|
|
|
|
{
|
|
|
|
|
BOOL bRet = FALSE;
|
|
|
|
|
|
|
|
|
|
// aufjedenfall auf sichtbar umschalten
|
2007-09-27 07:36:43 +00:00
|
|
|
|
if( (nsRedlineMode_t::REDLINE_SHOW_INSERT | nsRedlineMode_t::REDLINE_SHOW_DELETE) !=
|
|
|
|
|
(nsRedlineMode_t::REDLINE_SHOW_MASK & eRedlineMode) )
|
|
|
|
|
SetRedlineMode( (RedlineMode_t)(nsRedlineMode_t::REDLINE_SHOW_INSERT | nsRedlineMode_t::REDLINE_SHOW_DELETE | eRedlineMode));
|
2000-09-18 23:08:29 +00:00
|
|
|
|
|
|
|
|
|
SwRedline* pTmp = (*pRedlineTbl)[ nPos ];
|
|
|
|
|
if( pTmp->HasMark() && pTmp->IsVisible() )
|
|
|
|
|
{
|
|
|
|
|
if( DoesUndo() )
|
2004-05-18 13:02:15 +00:00
|
|
|
|
{
|
|
|
|
|
// #111827#
|
|
|
|
|
SwRewriter aRewriter;
|
|
|
|
|
|
|
|
|
|
aRewriter.AddRule(UNDO_ARG1, pTmp->GetDescr());
|
2006-08-14 14:59:18 +00:00
|
|
|
|
StartUndo( UNDO_REJECT_REDLINE, NULL );
|
2004-05-18 13:02:15 +00:00
|
|
|
|
}
|
2000-09-18 23:08:29 +00:00
|
|
|
|
|
|
|
|
|
int nLoopCnt = 2;
|
|
|
|
|
USHORT nSeqNo = pTmp->GetSeqNo();
|
|
|
|
|
|
|
|
|
|
do {
|
|
|
|
|
|
|
|
|
|
if( DoesUndo() )
|
|
|
|
|
AppendUndo( new SwUndoRejectRedline( *pTmp ));
|
|
|
|
|
|
|
|
|
|
bRet |= lcl_RejectRedline( *pRedlineTbl, nPos, bCallDelete );
|
|
|
|
|
|
|
|
|
|
if( nSeqNo )
|
|
|
|
|
{
|
|
|
|
|
if( USHRT_MAX == nPos )
|
|
|
|
|
nPos = 0;
|
|
|
|
|
USHORT nFndPos = 2 == nLoopCnt
|
|
|
|
|
? pRedlineTbl->FindNextSeqNo( nSeqNo, nPos )
|
|
|
|
|
: pRedlineTbl->FindPrevSeqNo( nSeqNo, nPos );
|
|
|
|
|
if( USHRT_MAX != nFndPos || ( 0 != ( --nLoopCnt ) &&
|
|
|
|
|
USHRT_MAX != ( nFndPos =
|
|
|
|
|
pRedlineTbl->FindPrevSeqNo( nSeqNo, nPos ))) )
|
|
|
|
|
pTmp = (*pRedlineTbl)[ nPos = nFndPos ];
|
|
|
|
|
else
|
|
|
|
|
nLoopCnt = 0;
|
|
|
|
|
}
|
|
|
|
|
else
|
|
|
|
|
nLoopCnt = 0;
|
|
|
|
|
|
|
|
|
|
} while( nLoopCnt );
|
|
|
|
|
|
|
|
|
|
if( bRet )
|
|
|
|
|
{
|
|
|
|
|
CompressRedlines();
|
|
|
|
|
SetModified();
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
if( DoesUndo() )
|
2006-08-14 14:59:18 +00:00
|
|
|
|
EndUndo( UNDO_REJECT_REDLINE, NULL );
|
2000-09-18 23:08:29 +00:00
|
|
|
|
}
|
|
|
|
|
return bRet;
|
|
|
|
|
}
|
|
|
|
|
|
2006-08-14 14:59:18 +00:00
|
|
|
|
bool SwDoc::RejectRedline( const SwPaM& rPam, bool bCallDelete )
|
2000-09-18 23:08:29 +00:00
|
|
|
|
{
|
|
|
|
|
// aufjedenfall auf sichtbar umschalten
|
2007-09-27 07:36:43 +00:00
|
|
|
|
if( (nsRedlineMode_t::REDLINE_SHOW_INSERT | nsRedlineMode_t::REDLINE_SHOW_DELETE) !=
|
|
|
|
|
(nsRedlineMode_t::REDLINE_SHOW_MASK & eRedlineMode) )
|
|
|
|
|
SetRedlineMode((RedlineMode_t)(nsRedlineMode_t::REDLINE_SHOW_INSERT | nsRedlineMode_t::REDLINE_SHOW_DELETE | eRedlineMode));
|
2000-09-18 23:08:29 +00:00
|
|
|
|
|
|
|
|
|
// die Selektion steht nur im ContentBereich. Wenn es aber Redlines
|
|
|
|
|
// davor oder dahinter auf nicht ContentNodes stehen, dann erweiter die
|
|
|
|
|
// die Selection auf diese
|
|
|
|
|
SwPaM aPam( *rPam.GetMark(), *rPam.GetPoint() );
|
|
|
|
|
lcl_AdjustRedlineRange( aPam );
|
|
|
|
|
|
|
|
|
|
if( DoesUndo() )
|
|
|
|
|
{
|
2006-08-14 14:59:18 +00:00
|
|
|
|
StartUndo( UNDO_REJECT_REDLINE, NULL );
|
2000-09-18 23:08:29 +00:00
|
|
|
|
AppendUndo( new SwUndoRejectRedline( aPam ));
|
|
|
|
|
}
|
|
|
|
|
|
2004-05-18 13:02:15 +00:00
|
|
|
|
// #111827#
|
|
|
|
|
int nRet = lcl_AcceptRejectRedl( lcl_RejectRedline, *pRedlineTbl,
|
2000-09-18 23:08:29 +00:00
|
|
|
|
bCallDelete, aPam );
|
2004-05-18 13:02:15 +00:00
|
|
|
|
if( nRet > 0 )
|
2000-09-18 23:08:29 +00:00
|
|
|
|
{
|
|
|
|
|
CompressRedlines();
|
|
|
|
|
SetModified();
|
|
|
|
|
}
|
|
|
|
|
if( DoesUndo() )
|
2004-05-18 13:02:15 +00:00
|
|
|
|
{
|
|
|
|
|
// #111827#
|
|
|
|
|
String aTmpStr;
|
|
|
|
|
|
|
|
|
|
{
|
|
|
|
|
SwRewriter aRewriter;
|
|
|
|
|
aRewriter.AddRule(UNDO_ARG1, String::CreateFromInt32(nRet));
|
|
|
|
|
aTmpStr = aRewriter.Apply(String(SW_RES(STR_N_REDLINES)));
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
SwRewriter aRewriter;
|
|
|
|
|
aRewriter.AddRule(UNDO_ARG1, aTmpStr);
|
|
|
|
|
|
|
|
|
|
EndUndo( UNDO_REJECT_REDLINE, &aRewriter );
|
|
|
|
|
}
|
|
|
|
|
|
2006-07-19 08:35:31 +00:00
|
|
|
|
return nRet != 0;
|
2000-09-18 23:08:29 +00:00
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
const SwRedline* SwDoc::SelNextRedline( SwPaM& rPam ) const
|
|
|
|
|
{
|
|
|
|
|
rPam.DeleteMark();
|
|
|
|
|
rPam.SetMark();
|
|
|
|
|
|
|
|
|
|
SwPosition& rSttPos = *rPam.GetPoint();
|
|
|
|
|
SwPosition aSavePos( rSttPos );
|
|
|
|
|
BOOL bRestart;
|
|
|
|
|
|
|
|
|
|
// sollte die StartPos auf dem letzen gueligen ContentNode stehen,
|
|
|
|
|
// dann aufjedenfall das naechste Redline nehmen
|
|
|
|
|
USHORT n = 0;
|
|
|
|
|
const SwRedline* pFnd = lcl_FindCurrRedline( rSttPos, n, TRUE );
|
|
|
|
|
if( pFnd )
|
|
|
|
|
{
|
|
|
|
|
const SwPosition* pEnd = pFnd->End();
|
|
|
|
|
if( !pEnd->nNode.GetNode().IsCntntNode() )
|
|
|
|
|
{
|
|
|
|
|
SwNodeIndex aTmp( pEnd->nNode );
|
|
|
|
|
SwCntntNode* pCNd = GetNodes().GoPrevSection( &aTmp );
|
|
|
|
|
if( !pCNd || ( aTmp == rSttPos.nNode &&
|
|
|
|
|
pCNd->Len() == rSttPos.nContent.GetIndex() ))
|
|
|
|
|
pFnd = 0;
|
|
|
|
|
}
|
|
|
|
|
if( pFnd )
|
|
|
|
|
rSttPos = *pFnd->End();
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
do {
|
|
|
|
|
bRestart = FALSE;
|
|
|
|
|
|
|
|
|
|
for( ; !pFnd && n < pRedlineTbl->Count(); ++n )
|
|
|
|
|
{
|
|
|
|
|
pFnd = (*pRedlineTbl)[ n ];
|
|
|
|
|
if( pFnd->HasMark() && pFnd->IsVisible() )
|
|
|
|
|
{
|
|
|
|
|
*rPam.GetMark() = *pFnd->Start();
|
|
|
|
|
rSttPos = *pFnd->End();
|
|
|
|
|
break;
|
|
|
|
|
}
|
|
|
|
|
else
|
|
|
|
|
pFnd = 0;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
if( pFnd )
|
|
|
|
|
{
|
|
|
|
|
// alle vom gleichen Typ und Author, die hinter einander liegen
|
|
|
|
|
// zu einer Selektion zusammenfassen.
|
|
|
|
|
const SwPosition* pPrevEnd = pFnd->End();
|
|
|
|
|
while( ++n < pRedlineTbl->Count() )
|
|
|
|
|
{
|
|
|
|
|
const SwRedline* pTmp = (*pRedlineTbl)[ n ];
|
|
|
|
|
if( pTmp->HasMark() && pTmp->IsVisible() )
|
|
|
|
|
{
|
|
|
|
|
const SwPosition *pRStt;
|
|
|
|
|
if( pFnd->GetType() == pTmp->GetType() &&
|
|
|
|
|
pFnd->GetAuthor() == pTmp->GetAuthor() &&
|
|
|
|
|
( *pPrevEnd == *( pRStt = pTmp->Start() ) ||
|
|
|
|
|
IsPrevPos( *pPrevEnd, *pRStt )) )
|
|
|
|
|
{
|
|
|
|
|
pPrevEnd = pTmp->End();
|
|
|
|
|
rSttPos = *pPrevEnd;
|
|
|
|
|
}
|
|
|
|
|
else
|
|
|
|
|
break;
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
if( pFnd )
|
|
|
|
|
{
|
|
|
|
|
const SwRedline* pSaveFnd = pFnd;
|
|
|
|
|
|
|
|
|
|
SwCntntNode* pCNd;
|
|
|
|
|
SwNodeIndex* pIdx = &rPam.GetMark()->nNode;
|
|
|
|
|
if( !pIdx->GetNode().IsCntntNode() &&
|
|
|
|
|
0 != ( pCNd = GetNodes().GoNextSection( pIdx )) )
|
|
|
|
|
{
|
|
|
|
|
if( *pIdx <= rPam.GetPoint()->nNode )
|
|
|
|
|
rPam.GetMark()->nContent.Assign( pCNd, 0 );
|
|
|
|
|
else
|
|
|
|
|
pFnd = 0;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
if( pFnd )
|
|
|
|
|
{
|
|
|
|
|
pIdx = &rPam.GetPoint()->nNode;
|
|
|
|
|
if( !pIdx->GetNode().IsCntntNode() &&
|
|
|
|
|
0 != ( pCNd = GetNodes().GoPrevSection( pIdx )) )
|
|
|
|
|
{
|
|
|
|
|
if( *pIdx >= rPam.GetMark()->nNode )
|
|
|
|
|
rPam.GetPoint()->nContent.Assign( pCNd, pCNd->Len() );
|
|
|
|
|
else
|
|
|
|
|
pFnd = 0;
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
if( !pFnd || *rPam.GetMark() == *rPam.GetPoint() )
|
|
|
|
|
{
|
|
|
|
|
if( n < pRedlineTbl->Count() )
|
|
|
|
|
{
|
|
|
|
|
bRestart = TRUE;
|
|
|
|
|
*rPam.GetPoint() = *pSaveFnd->End();
|
|
|
|
|
}
|
|
|
|
|
else
|
|
|
|
|
{
|
|
|
|
|
rPam.DeleteMark();
|
|
|
|
|
*rPam.GetPoint() = aSavePos;
|
|
|
|
|
}
|
|
|
|
|
pFnd = 0;
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
} while( bRestart );
|
|
|
|
|
|
|
|
|
|
return pFnd;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
const SwRedline* SwDoc::SelPrevRedline( SwPaM& rPam ) const
|
|
|
|
|
{
|
|
|
|
|
rPam.DeleteMark();
|
|
|
|
|
rPam.SetMark();
|
|
|
|
|
|
|
|
|
|
SwPosition& rSttPos = *rPam.GetPoint();
|
|
|
|
|
SwPosition aSavePos( rSttPos );
|
|
|
|
|
BOOL bRestart;
|
|
|
|
|
|
|
|
|
|
// sollte die StartPos auf dem ersten gueligen ContentNode stehen,
|
|
|
|
|
// dann aufjedenfall das vorherige Redline nehmen
|
|
|
|
|
USHORT n = 0;
|
|
|
|
|
const SwRedline* pFnd = lcl_FindCurrRedline( rSttPos, n, FALSE );
|
|
|
|
|
if( pFnd )
|
|
|
|
|
{
|
|
|
|
|
const SwPosition* pStt = pFnd->Start();
|
|
|
|
|
if( !pStt->nNode.GetNode().IsCntntNode() )
|
|
|
|
|
{
|
|
|
|
|
SwNodeIndex aTmp( pStt->nNode );
|
|
|
|
|
SwCntntNode* pCNd = GetNodes().GoNextSection( &aTmp );
|
|
|
|
|
if( !pCNd || ( aTmp == rSttPos.nNode &&
|
|
|
|
|
!rSttPos.nContent.GetIndex() ))
|
|
|
|
|
pFnd = 0;
|
|
|
|
|
}
|
|
|
|
|
if( pFnd )
|
|
|
|
|
rSttPos = *pFnd->Start();
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
do {
|
|
|
|
|
bRestart = FALSE;
|
|
|
|
|
|
|
|
|
|
while( !pFnd && 0 < n )
|
|
|
|
|
{
|
|
|
|
|
pFnd = (*pRedlineTbl)[ --n ];
|
|
|
|
|
if( pFnd->HasMark() && pFnd->IsVisible() )
|
|
|
|
|
{
|
|
|
|
|
*rPam.GetMark() = *pFnd->End();
|
|
|
|
|
rSttPos = *pFnd->Start();
|
|
|
|
|
}
|
|
|
|
|
else
|
|
|
|
|
pFnd = 0;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
if( pFnd )
|
|
|
|
|
{
|
|
|
|
|
// alle vom gleichen Typ und Author, die hinter einander liegen
|
|
|
|
|
// zu einer Selektion zusammenfassen.
|
|
|
|
|
const SwPosition* pNextStt = pFnd->Start();
|
|
|
|
|
while( 0 < n )
|
|
|
|
|
{
|
|
|
|
|
const SwRedline* pTmp = (*pRedlineTbl)[ --n ];
|
|
|
|
|
if( pTmp->HasMark() && pTmp->IsVisible() )
|
|
|
|
|
{
|
|
|
|
|
const SwPosition *pREnd;
|
|
|
|
|
if( pFnd->GetType() == pTmp->GetType() &&
|
|
|
|
|
pFnd->GetAuthor() == pTmp->GetAuthor() &&
|
|
|
|
|
( *pNextStt == *( pREnd = pTmp->End() ) ||
|
|
|
|
|
IsPrevPos( *pREnd, *pNextStt )) )
|
|
|
|
|
{
|
|
|
|
|
pNextStt = pTmp->Start();
|
|
|
|
|
rSttPos = *pNextStt;
|
|
|
|
|
}
|
|
|
|
|
else
|
|
|
|
|
{
|
|
|
|
|
++n;
|
|
|
|
|
break;
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
if( pFnd )
|
|
|
|
|
{
|
|
|
|
|
const SwRedline* pSaveFnd = pFnd;
|
|
|
|
|
|
|
|
|
|
SwCntntNode* pCNd;
|
|
|
|
|
SwNodeIndex* pIdx = &rPam.GetMark()->nNode;
|
|
|
|
|
if( !pIdx->GetNode().IsCntntNode() &&
|
|
|
|
|
0 != ( pCNd = GetNodes().GoPrevSection( pIdx )) )
|
|
|
|
|
{
|
|
|
|
|
if( *pIdx >= rPam.GetPoint()->nNode )
|
|
|
|
|
rPam.GetMark()->nContent.Assign( pCNd, pCNd->Len() );
|
|
|
|
|
else
|
|
|
|
|
pFnd = 0;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
if( pFnd )
|
|
|
|
|
{
|
|
|
|
|
pIdx = &rPam.GetPoint()->nNode;
|
|
|
|
|
if( !pIdx->GetNode().IsCntntNode() &&
|
|
|
|
|
0 != ( pCNd = GetNodes().GoNextSection( pIdx )) )
|
|
|
|
|
{
|
|
|
|
|
if( *pIdx <= rPam.GetMark()->nNode )
|
|
|
|
|
rPam.GetPoint()->nContent.Assign( pCNd, 0 );
|
|
|
|
|
else
|
|
|
|
|
pFnd = 0;
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
if( !pFnd || *rPam.GetMark() == *rPam.GetPoint() )
|
|
|
|
|
{
|
|
|
|
|
if( n )
|
|
|
|
|
{
|
|
|
|
|
bRestart = TRUE;
|
|
|
|
|
*rPam.GetPoint() = *pSaveFnd->Start();
|
|
|
|
|
}
|
|
|
|
|
else
|
|
|
|
|
{
|
|
|
|
|
rPam.DeleteMark();
|
|
|
|
|
*rPam.GetPoint() = aSavePos;
|
|
|
|
|
}
|
|
|
|
|
pFnd = 0;
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
} while( bRestart );
|
|
|
|
|
|
|
|
|
|
return pFnd;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
// Kommentar am Redline setzen
|
2006-08-14 14:59:18 +00:00
|
|
|
|
bool SwDoc::SetRedlineComment( const SwPaM& rPaM, const String& rS )
|
2000-09-18 23:08:29 +00:00
|
|
|
|
{
|
|
|
|
|
BOOL bRet = FALSE;
|
|
|
|
|
const SwPosition* pStt = rPaM.Start(),
|
|
|
|
|
* pEnd = pStt == rPaM.GetPoint() ? rPaM.GetMark()
|
|
|
|
|
: rPaM.GetPoint();
|
|
|
|
|
USHORT n = 0;
|
|
|
|
|
if( lcl_FindCurrRedline( *pStt, n, TRUE ) )
|
|
|
|
|
{
|
|
|
|
|
for( ; n < pRedlineTbl->Count(); ++n )
|
|
|
|
|
{
|
|
|
|
|
bRet = TRUE;
|
|
|
|
|
SwRedline* pTmp = (*pRedlineTbl)[ n ];
|
|
|
|
|
if( pStt != pEnd && *pTmp->Start() > *pEnd )
|
|
|
|
|
break;
|
|
|
|
|
|
|
|
|
|
pTmp->SetComment( rS );
|
|
|
|
|
if( *pTmp->End() >= *pEnd )
|
|
|
|
|
break;
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
if( bRet )
|
|
|
|
|
SetModified();
|
|
|
|
|
|
|
|
|
|
return bRet;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
// legt gebenenfalls einen neuen Author an
|
|
|
|
|
USHORT SwDoc::GetRedlineAuthor()
|
|
|
|
|
{
|
|
|
|
|
return SW_MOD()->GetRedlineAuthor();
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
// fuer die Reader usw. - neuen Author in die Tabelle eintragen
|
|
|
|
|
USHORT SwDoc::InsertRedlineAuthor( const String& rNew )
|
|
|
|
|
{
|
|
|
|
|
return SW_MOD()->InsertRedlineAuthor(rNew);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
void SwDoc::UpdateRedlineAttr()
|
|
|
|
|
{
|
|
|
|
|
const SwRedlineTbl& rTbl = GetRedlineTbl();
|
|
|
|
|
for( USHORT n = 0; n < rTbl.Count(); ++n )
|
|
|
|
|
{
|
|
|
|
|
SwRedline* pRedl = rTbl[ n ];
|
|
|
|
|
if( pRedl->IsVisible() )
|
|
|
|
|
pRedl->InvalidateRange();
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
// setze Kommentar-Text fuers Redline, das dann per AppendRedline
|
|
|
|
|
// hereinkommt. Wird vom Autoformat benutzt. 0-Pointer setzt den Modus
|
|
|
|
|
// wieder zurueck. Pointer wird nicht kopiert, muss also gueltig bleiben!
|
|
|
|
|
void SwDoc::SetAutoFmtRedlineComment( const String* pTxt, USHORT nSeqNo )
|
|
|
|
|
{
|
2006-08-14 14:59:18 +00:00
|
|
|
|
mbIsAutoFmtRedline = 0 != pTxt;
|
2000-09-18 23:08:29 +00:00
|
|
|
|
if( pTxt )
|
|
|
|
|
{
|
|
|
|
|
if( !pAutoFmtRedlnComment )
|
|
|
|
|
pAutoFmtRedlnComment = new String( *pTxt );
|
|
|
|
|
else
|
|
|
|
|
*pAutoFmtRedlnComment = *pTxt;
|
|
|
|
|
}
|
|
|
|
|
else if( pAutoFmtRedlnComment )
|
|
|
|
|
delete pAutoFmtRedlnComment, pAutoFmtRedlnComment = 0;
|
|
|
|
|
|
|
|
|
|
nAutoFmtRedlnCommentNo = nSeqNo;
|
|
|
|
|
}
|
|
|
|
|
|
2006-08-14 14:59:18 +00:00
|
|
|
|
void SwDoc::SetRedlinePassword(
|
2007-09-27 07:36:43 +00:00
|
|
|
|
/*[in]*/const uno::Sequence <sal_Int8>& rNewPassword)
|
2001-04-23 13:07:53 +00:00
|
|
|
|
{
|
2006-08-14 14:59:18 +00:00
|
|
|
|
aRedlinePasswd = rNewPassword;
|
2001-09-20 11:44:27 +00:00
|
|
|
|
SetModified();
|
2001-04-23 13:07:53 +00:00
|
|
|
|
}
|
|
|
|
|
|
2000-09-18 23:08:29 +00:00
|
|
|
|
/* */
|
|
|
|
|
|
|
|
|
|
BOOL SwRedlineTbl::Insert( SwRedlinePtr& p, BOOL bIns )
|
|
|
|
|
{
|
|
|
|
|
BOOL bRet = FALSE;
|
|
|
|
|
if( p->HasValidRange() )
|
|
|
|
|
{
|
|
|
|
|
bRet = _SwRedlineTbl::Insert( p );
|
|
|
|
|
p->CallDisplayFunc();
|
|
|
|
|
}
|
|
|
|
|
else if( bIns )
|
|
|
|
|
bRet = InsertWithValidRanges( p );
|
|
|
|
|
else
|
|
|
|
|
{
|
|
|
|
|
ASSERT( !this, "Redline: falscher Bereich" );
|
|
|
|
|
}
|
|
|
|
|
return bRet;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
BOOL SwRedlineTbl::Insert( SwRedlinePtr& p, USHORT& rP, BOOL bIns )
|
|
|
|
|
{
|
|
|
|
|
BOOL bRet = FALSE;
|
|
|
|
|
if( p->HasValidRange() )
|
|
|
|
|
{
|
|
|
|
|
bRet = _SwRedlineTbl::Insert( p, rP );
|
|
|
|
|
p->CallDisplayFunc();
|
|
|
|
|
}
|
|
|
|
|
else if( bIns )
|
|
|
|
|
bRet = InsertWithValidRanges( p, &rP );
|
|
|
|
|
else
|
|
|
|
|
{
|
|
|
|
|
ASSERT( !this, "Redline: falscher Bereich" );
|
|
|
|
|
}
|
|
|
|
|
return bRet;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
BOOL SwRedlineTbl::InsertWithValidRanges( SwRedlinePtr& p, USHORT* pInsPos )
|
|
|
|
|
{
|
|
|
|
|
// erzeuge aus den Selektion gueltige "Teilbereiche".
|
|
|
|
|
BOOL bAnyIns = FALSE;
|
|
|
|
|
SwPosition* pStt = p->Start(),
|
|
|
|
|
* pEnd = pStt == p->GetPoint() ? p->GetMark() : p->GetPoint();
|
|
|
|
|
SwPosition aNewStt( *pStt );
|
|
|
|
|
SwNodes& rNds = aNewStt.nNode.GetNodes();
|
|
|
|
|
SwCntntNode* pC;
|
|
|
|
|
|
|
|
|
|
if( !aNewStt.nNode.GetNode().IsCntntNode() )
|
|
|
|
|
{
|
|
|
|
|
pC = rNds.GoNext( &aNewStt.nNode );
|
|
|
|
|
if( pC )
|
|
|
|
|
aNewStt.nContent.Assign( pC, 0 );
|
|
|
|
|
else
|
|
|
|
|
aNewStt.nNode = rNds.GetEndOfContent();
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
SwRedline* pNew = 0;
|
|
|
|
|
USHORT nInsPos;
|
|
|
|
|
|
|
|
|
|
if( aNewStt < *pEnd )
|
|
|
|
|
do {
|
|
|
|
|
if( !pNew )
|
|
|
|
|
pNew = new SwRedline( p->GetRedlineData(), aNewStt );
|
|
|
|
|
else
|
|
|
|
|
{
|
|
|
|
|
pNew->DeleteMark();
|
|
|
|
|
*pNew->GetPoint() = aNewStt;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
pNew->SetMark();
|
|
|
|
|
GoEndSection( pNew->GetPoint() );
|
2006-04-06 12:42:01 +00:00
|
|
|
|
// i60396: If the redlines starts before a table but the table is the last member
|
|
|
|
|
// of the section, the GoEndSection will end inside the table.
|
|
|
|
|
// This will result in an incorrect redline, so we've to go back
|
2006-08-14 14:59:18 +00:00
|
|
|
|
SwNode* pTab = pNew->GetPoint()->nNode.GetNode().StartOfSectionNode()->FindTableNode();
|
2006-04-06 12:42:01 +00:00
|
|
|
|
// We end in a table when pTab != 0
|
2006-08-14 14:59:18 +00:00
|
|
|
|
if( pTab && !pNew->GetMark()->nNode.GetNode().StartOfSectionNode()->FindTableNode() )
|
2006-04-06 12:42:01 +00:00
|
|
|
|
{ // but our Mark was outside the table => Correction
|
|
|
|
|
do
|
|
|
|
|
{
|
CWS-TOOLING: integrate CWS odfmetadata2
2009-06-22 11:48:36 +0200 mst r273206 : - connectivity/source/drivers/mozab/mozillasrc/MNSInclude.hxx:
+ add "include ustrbuf.hxx" to work around warning caused by
solaris <sys/kstat.h> declaring a global "long l ;"
2009-06-19 14:25:25 +0200 mst r273159 : - scp2/source/ooo/file_library_ooo.scp:
+ fix MinGW build
2009-06-08 12:52:33 +0200 mst r272727 : - redland/raptor-1.4.18.patch.mingw, redland/raptor/makefile.mk:
+ disable parsers that do not build on MinGW (thanks for patch by tono)
2009-05-15 17:31:07 +0200 mst r271957 : fix typos
2009-05-15 17:28:57 +0200 mst r271956 : #i101965#
- offapi/com/sun/star/text/TextPortion:
+ add missing properties:
SoftPageBreak, DocumentIndexMark, ReferenceMark, Footnote, TextField
+ fix read-only status of properties: Bookmark, IsStart, IsCollapsed
- offapi/type_reference/{typelibrary_history.txt,types.rdb}:
+ update reference types.rdb
2009-05-07 14:41:38 +0200 mst r271669 : - sw/inc/{fmtftn.hxx,unocoll.hxx,doc.hxx,editsh.hxx,ftninfo.hxx},
sw/source/core/layout/{flowfrm.cxx,ftnfrm.cxx},
sw/source/core/doc/docftn.cxx, sw/source/core/edit/edattr.cxx,
sw/source/core/txtnode/atrftn.cxx, sw/source/core/unocore/unocoll.cxx,
sw/source/ui/fldui/fldref.cxx:
+ fix warning ... the hard way
+ also fix signature of SwDoc::SetCurFtn
2009-05-05 19:52:55 +0200 mst r271556 : - sw/inc/undobj.hxx:
+ make some members const
2009-05-05 19:34:40 +0200 mst r271555 : - sw/inc/rolbck.hxx, sw/source/core/undo/rolbck.cxx:
+ make some members const
2009-05-05 19:13:14 +0200 mst r271553 : - sw/inc/{undobj.hxx,rolbck.hxx},
sw/source/core/undo/{unbkmk.cxx,rolbck.cxx}:
+ fix rebase merge error
+ rename SwHstryBookmark to SwHistoryBookmark
+ clean up SwUndoBookmark
2009-05-05 19:05:53 +0200 mst r271552 : - sw/source/core/unocore/unoportenum.cxx:
+ fix annoying assertion
2009-05-05 15:34:48 +0200 mst r271522 : CWS-TOOLING: rebase CWS odfmetadata2 to trunk@271427 (milestone: DEV300:m47)
2009-05-04 12:37:01 +0200 mst r271444 : trivial
2009-04-22 13:30:37 +0200 mst r271102 : - sfx2/inc/sfx2/dinfdlg.hxx:
+ trivial change
2009-04-21 16:46:58 +0200 mst r271043 : - sw/inc/hintids.hxx:
+ introduce some predicates for the various hints, and use them
2009-04-21 16:19:03 +0200 mst r271041 : - sw/inc/undobj.hxx,
sw/source/core/doc/{docfly.cxx,docfmt.cxx,docftn.cxx,doctxm.cxx},
sw/source/core/undo/{unattr.cxx,unins.cxx}:
+ clean up unattr.cxx:
remove/fix casts, prefix members, use auto_ptr, etc.
2009-04-21 15:34:23 +0200 mst r271039 : - sw/inc/{rolbck.hxx,undobj.hxx},
sw/source/core/doc/docfmt.cxx,
sw/source/core/txtnode/{thints.cxx,txtedt.cxx},
sw/source/core/undo/{rolbck.cxx,undel.cxx,undobj.cxx,unins.cxx,unmove.cxx,
unovwr.cxx,unsect.cxx,unspnd.cxx,untbl.cxx,untblk.cxx,unattr.cxx}:
+ clean up SwHistory, SwRegHistory and SwHistoryHint etc.:
remove/fix casts, prefix members, remove wrong const annotations,
use auto_ptr, remove unused members, etc.
2009-04-20 19:17:36 +0200 mst r271013 : - sw/inc/ndhints.hxx,
sw/source/core/text/{itrtxt.cxx,txtftn.cxx,itratr.cxx,porfly.cxx,
txtfrm.cxx,txtdrop.cxx,frmform.cxx},
sw/source/core/txtnode/{ndtxt.cxx,ndhints.cxx,thints.cxx,txtedt.cxx},
sw/source/core/edit/acorrect.cxx,
sw/source/core/doc/{docedt.cxx,docfmt.cxx},
sw/source/filter/html/swhtml.cxx:
+ clean up SwHintsArray and its subclasses: remove/fix casts, prefix members
2009-04-20 18:42:07 +0200 mst r271007 : - sw/source/core/text/txtio.cxx, sw/source/core/edit/edattr.cxx,
sw/source/core/undo/rolbck.cxx:
+ remove JP_NEWCORE dead code
2009-04-20 18:38:09 +0200 mst r271006 : - sw/source/core/unocore/unochart.cxx:
+ silence unxlngi warning (debug=t)
2009-04-20 16:36:13 +0200 mst r270991 : - sfx2/inc/sfx2/dinfdlg.hxx, sfx2/source/dialog/dinfdlg.cxx,
sfx2/source/doc/objserv.cxx, sw/source/ui/fldui/flddinf.hxx:
+ trivial cleanups
2009-04-20 15:28:52 +0200 mst r270990 : - sfx2/inc/sfx2/dinfdlg.hxx, sfx2/source/dialog/dinfdlg.cxx,
sfx2/source/doc/objserv.cxx:
+ fix bug: replaying a macro with a DocumentInfoItem removes all
user-defined properties
2009-03-10 15:08:20 +0100 mst r269273 : - sfx2/source/doc/Metadatable.cxx:
+ add missing SolarMutex guards
2009-03-10 14:46:29 +0100 mst r269272 : - unoxml/source/rdf/librdf_repository.cxx:
+ never free rdf_world because that would call libxm2 xmlCleanupParser
(and, to add insult to injury, other libxml2 functions later...)
2009-03-06 19:02:44 +0100 mst r269041 : argh! undo...
2009-03-06 19:00:58 +0100 mst r269040 : fix #i99931#
- sw/source/ui/uno/unomod.cxx:
+ SwXViewSettings::_getSingleValue returns uninitialized memory
for the ZoomType property if the value is PAGE_WIDTH_EXACT
2009-03-06 18:59:28 +0100 mst r269039 : - sw/inc/ndtxt.hxx, sw/source/core/txtnode/ndtxt.cxx,
sw/source/core/unocore/unoportenum.cxx:
+ fix some more wntmsci12 warnings...
2009-03-06 18:56:46 +0100 mst r269038 : - sd/source/ui/slidesorter/model/SlsPageEnumerationProvider.cxx:
+ work around spurious warning on unxsoli4 debug=t
2009-03-05 14:02:01 +0100 mst r268902 : - sw/inc/txatbase.hxx:
+ back to c-style casts, they also compile on wntmsci12...
2009-03-05 10:23:25 +0100 mst r268882 : - comphelper/inc/comphelper/processfactory.hxx,
comphelper/source/processfactory/processfactory.cxx:
+ revert change of return type of comphelper_getProcessComponentContext
to Reference: does not build on wntmsci12
2009-03-04 19:08:09 +0100 mst r268861 : - sw/source/core/txtnode/{atrtox.cxx,ndtxt.cxx}:
+ fix initialization
2009-03-04 14:37:30 +0100 mst r268831 : - solenv/inc/target.mk:
+ fix CLASSPATH so complex tests run (fix by sb)
2009-03-04 14:36:30 +0100 mst r268830 : - sw/inc/unoobj.hxx,
sw/source/core/unocore/{unoparagraph.cxx,unoobj.cxx,unoobj2.cxx}:
+ SwXParaFrameEnumeration constructor now takes SwPaM, not SwUnoCrsr
+ move SwParaSelection into unoparagraph.cxx, as it is only used there
+ bugfix: replace SwUnoCrsrs on stack with SwCursors
2009-03-04 14:34:46 +0100 mst r268829 : - sw/inc/pam.hxx, sw/source/core/crsr/pam.cxx,
sw/source/core/edit/eddel.cxx, sw/source/core/doc/docredln.cxx,
sw/source/core/undo/{untbl.cxx,undel.cxx}, sw/source/filter/rtf/swparrtf.cxx:
+ clean up SwPaM: prefix members
+ new constructor SwPosition(SwCntntNode&, xub_StrLen)
+ fix several broken SwPosition and SwPaM constructors
+ SwPam::DeleteMark now actually resets the unused position to default
2009-03-02 12:07:09 +0100 mst r268646 : - sw/inc/fmtcol.hxx:
+ fix annoying warning (gcc 4)
2009-03-02 12:06:27 +0100 mst r268645 : - odk/util/check.pl, odk/examples/DevelopersGuide/Text/TextDocuments.java:
+ rename module from FieldMaster to fieldmaster
2009-02-27 19:49:56 +0100 mst r268614 : - sfx2/inc/sfx2/Metadatable.hxx, sfx2/prj/d.lst,
sfx2/source/doc/{Metadatable.cxx,makefile.mk},
sw/inc/{SwMetadatable.hxx,unoobj.hxx,undobj.hxx,ndtxt.hxx},
sw/source/core/doc/{SwMetadatable.cxx,makefile.mk,docnew.cxx},
sw/source/core/undo/{untbl.cxx,unins.cxx},
sw/source/core/unocore/unoparagraph.cxx, sw/source/ui/app/docsh.cxx:
+ move Metadatable implementation from sw to sfx2
2009-02-27 17:58:55 +0100 mst r268608 : - sw/inc/{SwMetadatable.hxx,undobj.hxx}, sw/source/core/doc/SwMetadatable.cxx,
sw/source/core/undo/{untbl.cxx,unins.cxx,undel.cxx}:
+ CreateUndo now returns an opaque MetadatableUndo object
2009-02-27 13:15:44 +0100 mst r268587 : - sw/inc/ndtxt.hxx, sw/source/core/doc/docfmt.cxx,
sw/source/core/text/{itratr.cxx,porlay.cxx},
sw/source/core/txtnode/{txtedt.cxx,ndtxt.cxx,thints.cxx}:
+ clean up SwTxtNode: fix casts, prefix members
+ factor out inline function SwTxtNode::TryDeleteSwpHints()
2009-02-27 13:14:30 +0100 mst r268586 : - svx/inc/svx/emphitem.hxx:
+ fix borken header guard
2009-02-27 13:13:56 +0100 mst r268585 : - sfx2/source/bastyp/progress.cxx:
+ fix use of compiler specific macro
2009-02-27 11:00:32 +0100 mst r268564 : - sw/inc/{txatbase.hxx,txtatr.hxx,txtinet.hxx,txtfld.hxx,txtftn.hxx,
txtflcnt.hxx,txttxmrk.hxx,txtrfmrk.hxx},
sw/source/core/txtnode/{atrtox.cxx,atrref.cxx,atrflyin.cxx,atrftn.cxx,
txtatr2.cxx,txatbase.cxx,atrfld.cxx,txtedt.cxx},
sw/source/core/text/atrstck.cxx, sw/source/core/access/acchyperlink.cxx,
sw/source/core/doc/visiturl.cxx, sw/source/ui/wrtsh/wrtsh2.cxx:
+ clean up SwTxtAttr and its subclasses: remove/fix casts, prefix members
+ SwTxtINetFmt: remove unused member bColor
- sw/source/core/text/txtfld.cxx:
+ move SwTxtFld methods to atrfld.cxx
2009-02-27 10:58:44 +0100 mst r268563 : - sfx2/inc/sfx2/sfxbasemodel.hxx:
+ don't privately inherit BaseMutex, ScModelObj wants to access it
2009-02-27 10:58:02 +0100 mst r268562 : - xmloff/source/core/{RDFaExportHelper.cxx,RDFaImportHelper.cxx}:
+ arrrgh!!! someone thought it would be a good idea to have 2 different
versions of boost in external! and they're NOT compatible!!!
insert an ugly fragile hack that maybe works with both...
2009-02-26 17:42:26 +0100 mst r268544 : - comphelper/inc/comphelper/storagehelper.hxx.
sfx2/source/doc/DocumentMetadataAccess.cxx:
+ someone made IsValidZipEntryFileName a static method and didn't tell me
2009-02-26 15:52:56 +0100 mst r268529 : redland: split up patches
2009-02-26 13:17:56 +0100 mst r268509 : migration of cws odfmetadata2 from CVS (resync to m42): module sw
#i95863#
- sw/inc/segdefs{,_}.hxx:
+ remove obsolete files
- sw/source/ui/inc/itemdef.hxx:
+ remove itemdef.hxx
- sw/source/ui/app/[apphdl.cxx,docsh.cxx}, sw/source/ui/misc/glshell.cxx,
sw/source/ui/shells/*.cxx, sw/source/ui/uiview/*.cxx, sw/source/ui/web/*.cxx:
+ use sfx2/msg.hxx instead of itemdef.hxx
- sw/source/core/edit/eddel.cxx:
+ @ JP: SwEditShell::Replace:
you're right, deleting the text to be replaced first, and then inserting
a space, and then replacing that space is unnecessary.
whew, i'm so happy that we finally answered that question after 11 years.
- sw/inc/edimp.hxx:
+ remove FOREACHCURSOR_START, FOREACHCURSOR_END
- sw/inc/{swcrsr.hxx,unocrsr.hxx,viscrs.hxx},
sw/source/core/crsr/{crsrsh.cxx,swcrsr.cxx,trvlreg.cxx,trvltbl.cxx,
unocrsr.cxx,viscrs.cxx},
sw/source/core/doc/{docbm.cxx,doccorr.cxx},
sw/source/core/docnode/{ndtbl.cxx,ndtbl1.cxx},
sw/source/core/edit/editsh.cxx,
sw/source/core/frmedt/{fefly1.cxx,fetab.cxx,tblsel.cxx},
sw/source/core/layout/trvlfrm.cxx,
sw/source/core/unocore/{unochart.cxx,unoobj2.cxx,unoparagraph.cxx,
unoportenum.cxx,unotbl.cxx},
sw/source/core/view/vprint.cxx:
+ remove the hideous virtual operator SwFooCursor*
+ make SwCursor::IsReadOnlyAvailable() virtual
+ make SwUnoCrsr::Clone() virtual
+ refactor SwCursor methods IsSelOver(), LeftRight(), UpDown(), GotoTable():
replace dynamic_cast<...>(this) with new virtual methods
2009-02-26 13:14:58 +0100 mst r268508 : migration of cws odfmetadata2 from CVS (resync to m42): module sw
- sw/source/filter/xml/swxml.cxx:
+ XMLReader::Read: load RDF metadata of the ODF document
- sw/source/filter/xml/wrtxml.cxx:
+ SwXMLWriter::_Write: write RDF metadata of the ODF document if ODF >= 1.2
#i90620#: import xml:id in text tables (does not actually work yet)
- sw/source/filter/xml/xmltbli{.hxx,.cxx}:
+ SwXMLTableCellAttrTokens,aTableCellAttrTokenMap: add XML_TOK_TABLE_XMLID
+ SwXMLTableCellContext_Impl::SwXMLTableCellContext_Impl: attribute xml:id
+ SwXMLTableCellContext_Impl::CreateChildContext: attribute xml:id
+ SwXMLTableColContext_Impl::SwXMLTableColContext_Impl: attribute xml:id
+ SwXMLTableContext::SwXMLTableContext: attribute xml:id
fix #i98530#
- sw/inc/unoport.hxx, sw/source/core/unocore/unoport.cxx:
+ SwXTextPortion: make constructor params const&
- sw/source/core/unocore/unoportenum.cxx:
+ refactor to remove some code duplication
+ fix bug: paragraph w/out hints: bookmark before frame gets lost
#i97274# handle invalid tables
- sw/source/core/layout/tabfrm.cxx, sw/source/filter/xml/xmltbli.cxx:
+ SwXMLTableContext::MakeTable():
check that the table actually contains cells,
and abort (removing the inserted table nodes) if not
2009-02-26 13:11:48 +0100 mst r268507 : migration of cws odfmetadata2 from CVS (resync to m42): module sw
refactor SwXTextRange and SwXParagraph
- sw/inc/unoobj.hxx, sw/source/core/unocore/unoobj2.cxx:
+ remove 3 constructors of SwXTextRange
+ new method SwXTextRange::CreateParentXText
+ refactor SwXTextRange::CreateTextRangeFromPosition and
SwXTextRange::getText
- sw/inc/unoobj.hxx, sw/source/core/unocore/unoparagraph.cxx:
+ SwXParagraph no longer uses a cursor; it registers directly at SwTxtNode
+ replace SwXParagraph::GetCrsr with SwXParagraph::GetTxtNode
- sw/source/core/unocore/unotext.cxx, sw/source/ui/uno/unotxvw.cxx:
+ adapt to new SwXParagraph
#i90620#
- sw/inc/SwMetadatable.hxx,
sw/source/core/doc/SwMetadatable.cxx:
+ new files: base classes sw::Metadatable and sw::MetadatableMixin;
also, 2 implementations of IXmlIdRegistry:
sw::XmlIdRegistryDocument and sw::XmlIdRegistryClipboard
+ setMetadataReference: handle empty stream name as auto-detect
- sw/source/core/doc/makefile.mk:
+ add SwMetadatable
add a XmlIdRegistry to SwDoc
- sw/inc/doc.hxx:
+ SwDoc: add member m_pXmlIdRegistry, method GetXmlIdRegistry()
- sw/source/core/doc/docnew.cxx:
+ initialize XmlIdRegistry in SwDoc::GetXmlIdRegistry, not in constructor,
because the constructor is not told whether the SwDoc is a clipboard
- sw/inc/docsh.hxx, sw/source/ui/app/docsh.cxx:
+ SwDocShell: override GetXmlIdRegistry()
#i91563#: make the SwTxtNode metadatable
- sw/inc/ndtxt.hxx
+ SwTxtNode inherits sw::Metadatable
- sw/inc/unoobj.hxx, sw/source/core/unocore/unoparagraph.cxx:
+ SwXParagraph inherits sw::MetadatableMixin
#i91563#: handle SwTxtNode's metadata for delete
- sw/source/core/txtnode/ndtxt.cxx:
+ SwTxtNode::SplitCntntNode: handle XmlId
+ SwTxtNode::JoinNext: merge XmlIds
- sw/source/core/doc/docedt.cxx:
+ lcl_GetJoinFlags: document postcondition
+ SwDoc::Delete: remove XmlId only if SwTxtNode _becomes_ empty
#i91563#: handle SwTxtNode's metadata for delete with undo
- sw/inc/undobj.hxx
+ SwUndoDelete: new members m_pMetadataUndoStart, m_pMetadataUndoEnd
- sw/source/core/undo/undel.cxx:
+ SwUndoDelete::SaveCntnt: save XmlIds for start and end SwTxtNode
+ SwUndoDelete::SaveCntnt: remove XmlId only if SwTxtNode _becomes_ empty
+ SwUndoDelete::Undo: restore saved XmlIds for start and end SwTxtNode
- sw/source/core/docnode/ndcopy.cxx:
+ SwTxtNode::MakeCopy: register copy at XmlIdRegistry
#i91563#: handle SwTxtNode's metadata for find/replace with undo
- sw/source/core/undo/unins.cxx:
+ _UnReplaceData: rename members: add prefix m_
+ _UnReplaceData: new members m_pMetadataUndoStart, m_pMetadataUndoEnd
+ _UnReplaceData::_UnReplaceData: save XmlIds for start and end SwTxtNode
+ _UnReplaceData::Undo: restore saved XmlIds for start and end SwTxtNode
#i91563#: handle SwTxtNode's metadata for table-to-text with undo
- sw/source/core/undo/untbl.cxx:
+ SwTblToTxtSave: rename members: add prefix m_
+ SwTblToTxtSave: new members m_pMetadataUndoStart, m_pMetadataUndoEnd
+ SwTblToTxtSave::SwTblToTxtSave: save XmlIds for start and end SwTxtNode
+ SwTblToTxtSave::SwTblToTxtSave, SwNodes::UndoTableToText:
always store the index of the first SwTxtNode in the cell, instead of
the index of the first SwTxtNode in case of the first cell in a row,
and the cell start node in other cases
+ SwNodes::UndoTableToText: restore saved XmlIds for start and end SwTxtNode
- sw/source/core/docnode/ndtbl.cxx:
+ lcl_DelBox: simplify for refactored start index handling in SwTblToTxtSave
2009-02-26 13:02:28 +0100 mst r268505 : migration of cws odfmetadata2 from CVS (resync to m42): module sd
- sd/source/ui/table/tableobjectbar.cxx,sd/source/ui/view/*.cxx:
+ remove invocations of SFX_DECL_TYPE
- sd/source/ui/slideshow/SlideShowRestarter.cxx,
sd/source/ui/toolpanel/LayoutMenu.cxx,
sd/source/ui/unoidl/DrawController.cxx,
sd/source/ui/view/{ViewShellBase.cxx,ViewTabBar.cxx,frmview.cxx}:
+ fix abuses of comphelper_getProcessComponentContext (missing release)
2009-02-26 13:01:24 +0100 mst r268504 : migration of cws odfmetadata2 from CVS (resync to m42): module starmath
- starmath/source/document.cxx:
+ don't touch SfxObjectShell's privates
2009-02-26 13:00:37 +0100 mst r268503 : migration of cws odfmetadata2 from CVS (resync to m42): module sfx2
#i90620#
- sfx2/inc/sfx2/XmlIdRegistry.hxx:
+ new file: interfaces sfx2::IXmlIdRegistry and sfx2::IXmlIdRegistrySupplier
and a couple of utility functions
- sfx2/inc/sfx2/DocumentMetadataAccess.hxx,
sfx2/source/doc/DocumentMetadataAccess.cxx:
+ new class sfx2::DocumentMetadataAccess, implements XDocumentMetadataAccess
+ the URI of the DocumentMetadataAccess is now the URI from which the
document was loaded; for a new document, use a vnd.sun.star.tdoc URI
+ add new function sfx2::createBaseURI()
+ prevent using reserved file names
+ try not to recurse into embedded subdocuments
- sfx2/source/doc/makefile.mk:
+ add DocumentMetadataAccess
- sfx2/util/makefile.mk:
+ link libsfx2 against libxml2 (needed for xmlValidateNCName)
- sfx2/source/doc/makefile.mk:
+ add LIBXML_CFLAGS to CFLAGS
- sfx2/prj/build.lst:
+ add dependence on libxml2
- sfx2/prj/d.lst:
+ add XmlIdRegistry.hxx, DocumentMetadataAccess.hxx
- sfx2/inc/sfx2/objsh.hxx, sfx2/source/doc/objxtor.cxx:
+ make SfxObjectShell's members private
+ new method SfxObjectShell::GetAutoStyleFilterIndex
+ SfxObjectShell inherits sfx2::IXmlIdRegistrySupplier
- sfx2/source/dialog/templdlg.cxx, sfx2/source/doc/sfxbasemodel.cxx:
+ don't touch SfxObjectShell's privates
- sfx2/inc/sfx2/sfxbasemodel.hxx, sfx2/source/doc/sfxbasemodel.cxx:
+ SfxBaseModel inherits BaseMutex instead of IMPL_SfxBaseModel_MutexContainer
+ SfxBaseModel implements additional interface XDocumentMetadataAccess
+ IMPL_SfxBaseModel_DataContainer has new member:
a sfx2::DocumentMetadataAccess
+ implementation of XDocumentMetadataAccess forwards to
the sfx2::DocumentMetadataAccess member
- sfx2/qa/complex/DocumentMetadataAccessTest.java,
sfx2/qa/complex/{tests.sce,makefile.mk},
sfx2/qa/complex/testdocuments/TESTRDFA.odt:
+ add complex test: DocumentMetadataAccessTest
+ add RDFa test document
#i95863#
- sfx2/inc/sfx2/dinfdlg.hxx, sfx2/source/dialog/dinfdlg.cxx:
+ refactor SfxDocumentItem so it no longer requires a XDocumentInfo
+ move struct CustomProperty to implementation file
+ remove class SfxDocumentUserPage
+ QueryValue,PutValue: remove MID_DOCINFO_FIELD*
- sfx2/source/doc/objserv.cxx:
+ adapt to SfxDocumentItem change
- sfx2/inc/sfx2/sfx.hrc, sfx2/sdi/sfxslots.sdi, sfx2/inc/sfx2/msg.hxx:
+ remove MID_DOCINFO_FIELD*
+ put all invocations of SFX_DECL_TYPE in msg.hxx, and undef SFX_DECL_TYPE
- sfx2/source/doc/objxtor.cxx:
+ fix abuses of comphelper_getProcessComponentContext (missing release)
- sfx2/source/doc/docfile.cxx:
+ SfxMedium::SfxMedium: don't dereference NULL, throw exception instead
- sfx2/source/doc/objstor.cxx:
+ SfxObjectShell::DoLoad: fix bug: DocumentBaseURI is not initialized
2009-02-26 12:58:07 +0100 mst r268502 : migration of cws odfmetadata2 from CVS (resync to m42): module xmloff
#i90620#: implement RDFa import (interface change)
- xmloff/inc/xmloff/xmlimp.hxx. xmloff/source/core/xmlimp.cxx:
+ make SvXMLImport::GetAbsoluteReference() const
+ add SvXMLImport::GetComponentContext()
+ SvXMLImport::_InitCtor(): add RDFa namespace
+ add SvXMLImport::AddRDFa()
+ SvXMLImport::endDocument() inserts RDFa into document repository
- xmloff/inc/xmloff/xmltoken.hxx, xmloff/source/core/xmltoken.cxx:
+ new tokens for RDFa: XML_ABOUT, XML_DATATYPE
- xmloff/inc/RDFaImportHelper.hxx, xmloff/source/core/RDFaImportHelper.cxx:
+ new class RDFaImportHelper
+ adapt the code to the bleak reality of broken C++ implementations
+ handle empty xhtml:about attributes properly, which are actually
valid relative URIs
+ work around broken SvXMLImport::GetAbsoluteReference
- xmloff/source/core/makefile.mk:
+ add RDFaImportHelper.cxx
#i90620#: implement RDFa export
- xmloff/inc/xmloff/xmlexp.hxx, xmloff/source/core/xmlexp.cxx:
+ add SvXMLExport::EnsureNamespace(), and a stack of namespace maps
+ add SvXMLExport::GetComponentContext()
+ add SvXMLExport::AddAttributesRDFa()
- xmloff/inc/RDFaExportHelper.hxx, xmloff/source/core/RDFaExportHelper.cxx:
+ new class RDFaExportHelper
+ don't use std::map::data_type, which is actually called
std::map::mapped_type by libstdc++
- xmloff/source/core/makefile.mk:
+ add RDFaExportHelper.cxx
#i91563#
- xmloff/inc/xmloff/txtimp.hxx, xmloff/source/text/txtimp.cxx:
+ XMLTextPAttrTokens: add RDFa tokens
- xmloff/source/text/txtparai{.hxx,.cxx}:
+ import RDFa for text:p
- xmloff/source/text/txtparae.cxx:
+ export RDFa for text:p
interface change: use XHTML namespace instead of RDFA
- xmloff/inc/xmlnmspe.hxx, xmloff/inc/xmloff/xmltoken.hxx,
xmloff/source/core/{xmltoken.cxx,xmlimp.cxx,xmlexp.cxx,RDFaExportHelper.cxx},
xmloff/source/text/txtimp.cxx:
+ use XHTML namespace instead of RDFA
#i91565#, #i91566#: (preliminary) import for text:meta, text:meta-field
- xmloff/source/text/txtparai.cxx:
+ new class XMLMetaImportContextBase with subclasses to import
text:meta and text:meta-field
- xmloff/source/text/XMLTextMarkImportContext.cxx:
+ change XMLTextMarkImportContext::CreateAndInsertMark to handle marks
with no name (text:meta)
#i91565#, #i91566#: (preliminary) export for text:meta, text:meta-field
- xmloff/inc/txtflde.hxx, xmloff/source/text/txtflde.cxx:
+ add FIELD_ID_META to FieldIdEnum
+ new method XMLTextFieldExport::ExportMetaField()
+ change XMLTextFieldExport::ExportField{,AutoStyle,Helper}
to take additional parameter for progress bar
- xmloff/inc/xmloff/txtparae.hxx, xmloff/source/text/txtparae.cxx:
+ make XMLTextParagraphExport::exportTextRangeEnumeration() public
+ new method XMLTextParagraphExport::exportMeta()
#i90620#
- xmloff/inc/xmloff/xmlimp.hxx, xmloff/source/core/xmlimp.cxx,
xmloff/inc/xmloff/xmlexp.hxx, xmloff/source/core/xmlexp.cxx:
+ rename SvXML{Im,Ex}port::GetStreamPath() to GetStreamName()
+ fix xml:id {im,ex}port for embedded documents and non-packages
+ adapt to API change: XMetadatable
#i90620# GRDDL
- xmloff/inc/xmlnmspe.hxx, xmloff/inc/xmloff/xmltoken.hxx,
xmloff/source/core/{xmltoken.cxx,xmlexp.cxx}:
+ add GRDDL namespace
+ add token XML_TRANSFORMATION
+ add grddl:transformation attribute to root elements for meta.xml,
content.xml and styles.xml
2009-02-26 12:54:40 +0100 mst r268501 : migration of cws odfmetadata2 from CVS (resync to m42): module unoxml
#i90620#
- unoxml/source/rdf/librdf_repository.cxx:
+ librdf_Repository::importGraph: allocate buffer sized length of stream
+ switch from one librdf_world per repository to a single static world
because redland has global variables with a brain-damaged life-cycle...
+ exportGraph: use new raptor 1.4.18 feature to disable writing
an xml:base attribute in RDF/XML files
- unoxml/source/rdf/librdf_repository.cxx:
unoxml/qa/complex/RDFRepositoryTest.java:
+ adapt to predicate is URI change
+ adapt to RDFa API change
+ adapt to API change: RDFa has multiple predicates...
+ adapt to API change: XMetadatable derives from XURI
+ allow xhtml:datatype without xhtml:content
+ adapt to API change: attribute MetadataReference is StringPair
- unoxml/source/rdf/CURI.cxx:
+ add some more URI constants
2009-02-26 12:53:32 +0100 mst r268500 : migration of cws odfmetadata2 from CVS (resync to m42): module package
- package/inc/ImplValidCharacters.hxx:
+ remove (moved to comphelper)
2009-02-26 12:52:49 +0100 mst r268499 : migration of cws odfmetadata2 from CVS (resync to m42): module comphelper
- comphelper/inc/comphelper/processfactory.hxx,
comphelper/source/processfactory/processfactory.cxx:
+ add getProcessComponentContext()
+ change return type of comphelper_getProcessComponentContext to Reference
- comphelper/inc/comphelper/stl_types.hxx:
+ add OUStringBufferAppender
+ add algorithm intersperse
- comphelper/source/misc/string.cxx:
+ rewrite convertCommaSeparated with intersperse and OUStringBufferAppender
- comphelper/inc/comphelper/stlunosequence.hxx:
+ fix bug: begin() on empty sequence != end()
2009-02-26 12:50:47 +0100 mst r268498 : migration of cws odfmetadata2 from CVS (resync to m42): module offapi
#i96209#
- offapi/com/sun/star/text/fieldmaster/*.idl:
+ rename module from FieldMaster to fieldmaster
- offapi/type_reference/{typelibrary_history.txt,types.rdb}:
+ update reference types.rdb
#i90620#
- offapi/com/sun/star/rdf/{XMetadatable.idl,XDocumentMetadataAccess.idl}:
+ API change: XMetadatable derives from XURI
+ API change: replace XmlId (string) with MetadataReference (StringPair)
- offapi/com/sun/star/rdf/{Statement.idl,XDocumentRepository.idl,
XNamedGraph.idl,XRepository.idl}:
+ the predicate of a statement is a URI, not a Resource
- offapi/com/sun/star/rdf/XDocumentMetadataAccess.idl:
+ rename: s/Package/Document/
+ remove uuid
+ remove everything related to mapping
+ graph names are now generated from base URI and file names
+ load methods: improve error handling with XInteractionHandler
- offapi/com/sun/star/rdf/XDocumentRepository.idl:
+ change: RDFa permits using multiple predicates in one attribute
+ setStatementRDFa: subject is now XResource, object is now XMetadatable
- offapi/com/sun/star/rdf/URIs.idl:
+ add some more URI constants
- offapi/com/sun/star/rdf:
+ fix @since tags and replace <method> with <member>
2009-02-26 12:47:24 +0100 mst r268497 : migration of cws odfmetadata2 from CVS (resync to m42): module redland
fix #i93768#
- redland/raptor-1.4.17.patch, redland/raptor/makefile.mk:
+ disable GRDDL parser to prevent call to libxslt
xsltSetDefaultSecurityPrefs, which breaks xmlhelp
- redland/raptor/makefile.mk, redland/raptor-1.4.17.patch,
redland/raptor-1.4.18.patch:
+ upgrade raptor to 1.4.18
+ deactivate serializer for RSS/Atom (does not build)
- redland/rasqal/makefile.mk, redland/rasqal-0.9.15.patch,
redland/rasqal-0.9.16.patch,
+ upgrade rasqal to 0.9.16
- redland/redland/makefile.mk, redland/redland-1.0.7.patch,
redland/redland-1.0.8.patch:
+ upgrade redland to 1.0.8
- redland/redlandversion.mk:
+ the librasqal SONAME has changed
2009-07-02 09:05:03 +00:00
|
|
|
|
// We want to be before the table
|
|
|
|
|
*pNew->GetPoint() = SwPosition(*pTab);
|
2006-04-06 12:42:01 +00:00
|
|
|
|
pC = GoPreviousNds( &pNew->GetPoint()->nNode, FALSE ); // here we are.
|
|
|
|
|
if( pC )
|
|
|
|
|
pNew->GetPoint()->nContent.Assign( pC, 0 );
|
2006-08-14 14:59:18 +00:00
|
|
|
|
pTab = pNew->GetPoint()->nNode.GetNode().StartOfSectionNode()->FindTableNode();
|
2006-04-06 12:42:01 +00:00
|
|
|
|
}while( pTab ); // If there is another table we have to repeat our step backwards
|
|
|
|
|
}
|
|
|
|
|
|
2000-09-18 23:08:29 +00:00
|
|
|
|
if( *pNew->GetPoint() > *pEnd )
|
|
|
|
|
{
|
|
|
|
|
pC = 0;
|
|
|
|
|
if( aNewStt.nNode != pEnd->nNode )
|
|
|
|
|
do {
|
|
|
|
|
SwNode& rCurNd = aNewStt.nNode.GetNode();
|
|
|
|
|
if( rCurNd.IsStartNode() )
|
|
|
|
|
{
|
|
|
|
|
if( rCurNd.EndOfSectionIndex() < pEnd->nNode.GetIndex() )
|
|
|
|
|
aNewStt.nNode = *rCurNd.EndOfSectionNode();
|
|
|
|
|
else
|
|
|
|
|
break;
|
|
|
|
|
}
|
|
|
|
|
else if( rCurNd.IsCntntNode() )
|
|
|
|
|
pC = rCurNd.GetCntntNode();
|
|
|
|
|
aNewStt.nNode++;
|
|
|
|
|
} while( aNewStt.nNode.GetIndex() < pEnd->nNode.GetIndex() );
|
|
|
|
|
|
|
|
|
|
if( aNewStt.nNode == pEnd->nNode )
|
|
|
|
|
aNewStt.nContent = pEnd->nContent;
|
|
|
|
|
else if( pC )
|
|
|
|
|
{
|
|
|
|
|
aNewStt.nNode = *pC;
|
|
|
|
|
aNewStt.nContent.Assign( pC, pC->Len() );
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
if( aNewStt <= *pEnd )
|
|
|
|
|
*pNew->GetPoint() = aNewStt;
|
|
|
|
|
}
|
|
|
|
|
else
|
|
|
|
|
aNewStt = *pNew->GetPoint();
|
2006-04-06 12:42:01 +00:00
|
|
|
|
#ifdef DEBUG
|
|
|
|
|
CheckPosition( pNew->GetPoint(), pNew->GetMark() );
|
|
|
|
|
#endif
|
2000-09-18 23:08:29 +00:00
|
|
|
|
if( *pNew->GetPoint() != *pNew->GetMark() &&
|
|
|
|
|
_SwRedlineTbl::Insert( pNew, nInsPos ) )
|
|
|
|
|
{
|
|
|
|
|
pNew->CallDisplayFunc();
|
|
|
|
|
bAnyIns = TRUE;
|
|
|
|
|
pNew = 0;
|
|
|
|
|
if( pInsPos && *pInsPos < nInsPos )
|
|
|
|
|
*pInsPos = nInsPos;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
if( aNewStt >= *pEnd ||
|
|
|
|
|
0 == (pC = rNds.GoNext( &aNewStt.nNode )) )
|
|
|
|
|
break;
|
|
|
|
|
|
|
|
|
|
aNewStt.nContent.Assign( pC, 0 );
|
|
|
|
|
|
|
|
|
|
} while( aNewStt < *pEnd );
|
|
|
|
|
|
|
|
|
|
delete pNew;
|
|
|
|
|
delete p, p = 0;
|
|
|
|
|
return bAnyIns;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
void SwRedlineTbl::Remove( USHORT nP, USHORT nL )
|
|
|
|
|
{
|
|
|
|
|
SwDoc* pDoc = 0;
|
|
|
|
|
if( !nP && nL && nL == _SwRedlineTbl::Count() )
|
|
|
|
|
pDoc = _SwRedlineTbl::GetObject( 0 )->GetDoc();
|
|
|
|
|
|
|
|
|
|
_SwRedlineTbl::Remove( nP, nL );
|
|
|
|
|
|
|
|
|
|
ViewShell* pSh;
|
2010-06-13 15:22:56 +02:00
|
|
|
|
if( pDoc && !pDoc->IsInDtor() &&
|
|
|
|
|
0 != ( pSh = pDoc->GetCurrentViewShell()) ) //swmod 071108//swmod 071225
|
2000-09-18 23:08:29 +00:00
|
|
|
|
pSh->InvalidateWindows( SwRect( 0, 0, LONG_MAX, LONG_MAX ) );
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
void SwRedlineTbl::DeleteAndDestroy( USHORT nP, USHORT nL )
|
|
|
|
|
{
|
|
|
|
|
SwDoc* pDoc = 0;
|
|
|
|
|
if( !nP && nL && nL == _SwRedlineTbl::Count() )
|
|
|
|
|
pDoc = _SwRedlineTbl::GetObject( 0 )->GetDoc();
|
|
|
|
|
|
|
|
|
|
_SwRedlineTbl::DeleteAndDestroy( nP, nL );
|
|
|
|
|
|
|
|
|
|
ViewShell* pSh;
|
2010-06-13 15:22:56 +02:00
|
|
|
|
if( pDoc && !pDoc->IsInDtor() &&
|
|
|
|
|
0 != ( pSh = pDoc->GetCurrentViewShell() ) ) //swmod 071108//swmod 071225
|
2000-09-18 23:08:29 +00:00
|
|
|
|
pSh->InvalidateWindows( SwRect( 0, 0, LONG_MAX, LONG_MAX ) );
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
// suche den naechsten oder vorherigen Redline mit dergleichen Seq.No
|
|
|
|
|
// Mit dem Lookahead kann die Suche eingeschraenkt werden. 0 oder
|
|
|
|
|
// USHRT_MAX suchen im gesamten Array.
|
|
|
|
|
USHORT SwRedlineTbl::FindNextOfSeqNo( USHORT nSttPos, USHORT nLookahead ) const
|
|
|
|
|
{
|
|
|
|
|
return nSttPos + 1 < _SwRedlineTbl::Count()
|
|
|
|
|
? FindNextSeqNo( _SwRedlineTbl::GetObject( nSttPos )
|
|
|
|
|
->GetSeqNo(), nSttPos+1, nLookahead )
|
|
|
|
|
: USHRT_MAX;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
USHORT SwRedlineTbl::FindPrevOfSeqNo( USHORT nSttPos, USHORT nLookahead ) const
|
|
|
|
|
{
|
|
|
|
|
return nSttPos ? FindPrevSeqNo( _SwRedlineTbl::GetObject(
|
|
|
|
|
nSttPos )->GetSeqNo(),
|
|
|
|
|
nSttPos-1, nLookahead )
|
|
|
|
|
: USHRT_MAX;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
USHORT SwRedlineTbl::FindNextSeqNo( USHORT nSeqNo, USHORT nSttPos,
|
|
|
|
|
USHORT nLookahead ) const
|
|
|
|
|
{
|
|
|
|
|
USHORT nRet = USHRT_MAX, nEnd;
|
|
|
|
|
if( nSeqNo && nSttPos < _SwRedlineTbl::Count() )
|
|
|
|
|
{
|
|
|
|
|
nEnd = _SwRedlineTbl::Count();
|
|
|
|
|
if( nLookahead && USHRT_MAX != nLookahead &&
|
|
|
|
|
nSttPos + nLookahead < _SwRedlineTbl::Count() )
|
|
|
|
|
nEnd = nSttPos + nLookahead;
|
|
|
|
|
|
|
|
|
|
for( ; nSttPos < nEnd; ++nSttPos )
|
|
|
|
|
if( nSeqNo == _SwRedlineTbl::GetObject( nSttPos )->GetSeqNo() )
|
|
|
|
|
{
|
|
|
|
|
nRet = nSttPos;
|
|
|
|
|
break;
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
return nRet;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
USHORT SwRedlineTbl::FindPrevSeqNo( USHORT nSeqNo, USHORT nSttPos,
|
|
|
|
|
USHORT nLookahead ) const
|
|
|
|
|
{
|
|
|
|
|
USHORT nRet = USHRT_MAX, nEnd;
|
|
|
|
|
if( nSeqNo && nSttPos < _SwRedlineTbl::Count() )
|
|
|
|
|
{
|
|
|
|
|
nEnd = 0;
|
|
|
|
|
if( nLookahead && USHRT_MAX != nLookahead && nSttPos > nLookahead )
|
|
|
|
|
nEnd = nSttPos - nLookahead;
|
|
|
|
|
|
|
|
|
|
++nSttPos;
|
|
|
|
|
while( nSttPos > nEnd )
|
|
|
|
|
if( nSeqNo == _SwRedlineTbl::GetObject( --nSttPos )->GetSeqNo() )
|
|
|
|
|
{
|
|
|
|
|
nRet = nSttPos;
|
|
|
|
|
break;
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
return nRet;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
/* */
|
|
|
|
|
|
|
|
|
|
SwRedlineExtraData::~SwRedlineExtraData()
|
|
|
|
|
{
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
void SwRedlineExtraData::Accept( SwPaM& ) const
|
|
|
|
|
{
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
void SwRedlineExtraData::Reject( SwPaM& ) const
|
|
|
|
|
{
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
int SwRedlineExtraData::operator == ( const SwRedlineExtraData& ) const
|
|
|
|
|
{
|
|
|
|
|
return FALSE;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
SwRedlineExtraData_FmtColl::SwRedlineExtraData_FmtColl( const String& rColl,
|
|
|
|
|
USHORT nPoolFmtId,
|
|
|
|
|
const SfxItemSet* pItemSet )
|
2004-06-16 08:38:35 +00:00
|
|
|
|
: sFmtNm(rColl), pSet(0), nPoolId(nPoolFmtId)
|
2000-09-18 23:08:29 +00:00
|
|
|
|
{
|
|
|
|
|
if( pItemSet && pItemSet->Count() )
|
|
|
|
|
pSet = new SfxItemSet( *pItemSet );
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
SwRedlineExtraData_FmtColl::~SwRedlineExtraData_FmtColl()
|
|
|
|
|
{
|
|
|
|
|
delete pSet;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
SwRedlineExtraData* SwRedlineExtraData_FmtColl::CreateNew() const
|
|
|
|
|
{
|
|
|
|
|
return new SwRedlineExtraData_FmtColl( sFmtNm, nPoolId, pSet );
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
void SwRedlineExtraData_FmtColl::Reject( SwPaM& rPam ) const
|
|
|
|
|
{
|
|
|
|
|
SwDoc* pDoc = rPam.GetDoc();
|
|
|
|
|
|
|
|
|
|
// was ist mit Undo ? ist das abgeschaltet ??
|
|
|
|
|
SwTxtFmtColl* pColl = USHRT_MAX == nPoolId
|
|
|
|
|
? pDoc->FindTxtFmtCollByName( sFmtNm )
|
|
|
|
|
: pDoc->GetTxtCollFromPool( nPoolId );
|
|
|
|
|
if( pColl )
|
2007-12-12 12:23:18 +00:00
|
|
|
|
pDoc->SetTxtFmtColl( rPam, pColl, false );
|
2000-09-18 23:08:29 +00:00
|
|
|
|
|
|
|
|
|
if( pSet )
|
|
|
|
|
{
|
|
|
|
|
rPam.SetMark();
|
|
|
|
|
SwPosition& rMark = *rPam.GetMark();
|
|
|
|
|
SwTxtNode* pTNd = rMark.nNode.GetNode().GetTxtNode();
|
|
|
|
|
if( pTNd )
|
|
|
|
|
{
|
|
|
|
|
rMark.nContent.Assign( pTNd, pTNd->GetTxt().Len() );
|
|
|
|
|
|
2006-12-01 14:39:47 +00:00
|
|
|
|
if( pTNd->HasSwAttrSet() )
|
2000-09-18 23:08:29 +00:00
|
|
|
|
{
|
|
|
|
|
// nur die setzen, die nicht mehr vorhanden sind. Andere
|
|
|
|
|
// koennen jetzt veraendert drin stehen, aber die werden
|
|
|
|
|
// nicht angefasst.
|
|
|
|
|
SfxItemSet aTmp( *pSet );
|
|
|
|
|
aTmp.Differentiate( *pTNd->GetpSwAttrSet() );
|
CWS-TOOLING: integrate CWS odfmetadata3
2009-09-11 Michael Stahl merge DEV300_m58
2009-09-07 Michael Stahl SwFmtFld::Modify(): do nothing on RES_OBJECTDYING
2009-08-27 Michael Stahl #i91565#, #i91566#: TextPortionEnumerationTest.java: add test document
2009-08-27 Michael Stahl #i91565#, #i91566#: add complex test: TextPortionEnumerationTest.java
2009-08-27 Michael Stahl CLiteral::initialize(): zero-length literals probably not an error
2009-08-27 Michael Stahl #i91565#, #i91566#: offapi: new InContentMetadata and MetadataField services
adapt TextPortion for InContentMetadata
2009-08-27 Michael Stahl #i91564#: xmloff: load/store xml:id and RDFa for text:bookmark(-start).
2009-08-27 Michael Stahl #i91564#: sw core: add support for xml:id at bookmarks:
sw::mark::Bookmark: derive from Metadatable.
SwHistoryBookmark, SaveBookmark: store a MetadatableUndo.
ndcopy.cxx: lcl_CopyBookmarks(): copy the xml:id.
SwXBookmark: derive from MetadatableMixin.
2009-08-27 Michael Stahl #i91565#, #i91566#: xmloff: refactor ruby import so nested meta(-field) works:
remove XMLRubyHint_Impl.
XMLImpRubyContext_Impl::~XMLImpRubyContext_Impl(): insert ruby directly.
2009-08-27 Michael Stahl #i91565#, #i91566#: xmloff: fix text:meta(-field) import/export:
new XMLTextParagraphExport::exportTextField() overload for XTextField.
CreateAndInsertMark(): set xml:id after insertion.
fix meta(-field) service names, bugs etc.
2009-08-27 Michael Stahl #i91565#, #i91566#: sw text formatting: paint background of meta(-field) body:
SwFont: add member m_nMetaCount.
txttypes.hxx: add POR_META.
atrstck.cxx: handle RES_TXTATR_META(FIELD).
itrform2.cxx: SwTxtFormatter::WhichTxtPor(): create new class SwMetaPortion.
2009-08-27 Michael Stahl #i91566#: sw text formatting: display meta-field prefix and suffix:
SwAttrIter::GetAttr(): replace with call to GetTxtAttrForCharAt().
SwTxtFormatter::NewExtraPortion(): handle meta-field prefix.
SwTxtFormatter: new member m_nHintEndIndex.
SwTxtFormatter::WhichFirstPortion(): call TryNewNoLengthPortion().
SwTxtFormatter::TryNewNoLengthPortion(): new; handle suffix of meta-field.
SwTxtFormatter::UnderFlow(): UGLY HACK: decrement m_nHintEndIndex.
SwFldPortion: add flag m_bNoLength: portion has zero length (for suffix).
2009-08-27 Michael Stahl #i91565#, #i91566#: extend text:meta(-field) uno wrapper with XText interface:
unoobj.hxx: new CursorType CURSOR_META.
unoobj2.cxx: refactor SwXText implementation to ensure that when the SwXText
belongs to a SwXMeta, content is always inserted inside the meta(-field).
unoobj.cxx: new SwXTextCursor::ForceIntoMeta(): cursor stays in meta(-field).
unometa.hxx: SwXMeta implements XText, forwarding to a member SwXMetaText.
DocInsertStringSplitCR(), SwX*::attachToRange(), SwX*::DeleteAndInsert():
use FORCEHINTEXPAND hack to ensure insert into the meta(-field) at the end.
2009-08-27 Michael Stahl #i91565#, #i91566#: add text:meta(-field) uno wrapper to sw:
fmtmeta.hxx, fmtatr2.cxx: new class sw::MetaField, new sw::MetaFieldManager.
doc.hxx, docnew.cxx: new SwDoc::GetMetaFieldManager().
unocoll.hxx,.cxx: new SW_SERVICE_FIELDTYPE_METAFIELD, SW_SERVICE_TYPE_META.
unomap.hxx,.cxx: new PROPERTY_MAP_METAFIELD.
unoprnms.hxx: new UNO_NAME_META.
unoport.hxx: new PORTION_META; add "InContentMetadata" prop to SwXTextPortion.
new unometa.hxx: new class SwXMeta and SwXMetaField.
unofield.cxx: SwXFieldEnumeration: include meta-fields.
unoportenum.cxx: handle RES_TXTATR_META(FIELD) by using a portion list stack.
unotext.cxx: SwXText::insertTextContent(): handle meta(-field) as attribute.
2009-08-27 Michael Stahl #i91565#, #i91566#: ndhints.cxx: remove sort number from SwTxtAttrNesting
2009-08-27 Michael Stahl #i91565#, #i91566#: add support for hints with end and CH_TXTATR to sw core:
doc.hxx, docedt.cxx: replace SwDoc::Delete(), DeleteAndJoin(), ReplaceRange()
with wrappers that split at left-overlapped end+CH_TXTATR hints.
txatbase.hxx: new member SwTxtAttr::m_bHasDummyChar.
ndtxt.hxx: rename SwTxtNode::GetTxtAttr() to GetTxtAttrForCharAt().
ndtxt.cxx: SwTxtNode::CopyText(): copy end+CH_TXTATR hints iff copy CH_TXTATR.
txtatr2.cxx, thints.cxx: SwTxtMeta gets a CH_TXTATR.
2009-08-27 Michael Stahl #i91565#, #i91566#: add text:meta(-field) to sw core:
txatbase.hxx: new member SwTxtAttr::m_bNesting.
hintids.hxx: new ids RES_TXTATR_META, RES_TXTATR_METAFIELD.
txtatr.hxx: new base class SwTxtAttrNesting.
new hint SwTxtMeta.
SwTxtRuby derives from SwTxtAttrNesting.
txtinet.hxx: SwTxtINetFmt derives from SwTxtAttrNesting.
new header fmtmeta.hxx: new pool item SwFmtMeta. new class sw::Meta.
ndhints.hxx, thints.cxx: new method SwpHints::TryInsertNesting().
thints.cxx: refactoring: BuildPortions() no longer handles Ruby/Hyperlink,
but TryInsertNesting(), which also handles meta(-field).
SwTxtNode::InsertItem(): check if the hint is actually inserted.
ndhints.cxx: sort nesting hints based on sort number.
ndtxt.cxx: lcl_CopyHint(): handle copy of meta/meta-field.
2009-08-27 Michael Stahl enable expanding hints with m_bLockExpandFlag set:
add new InsertFlag: INS_FORCEHINTEXPAND.
add new SetAttrMode: SETATTR_FORCEHINTEXPAND.
rename SwEditShell::Insert() to Insert2() because changed signature fails
to compile when SwWrtShell tries to overwrite these non-virtual members...
SwWrtShell::Insert() sets FOCEHINTEXPAND if range was selected/deleted.
adapt SwUndoInsert to store flags.
2009-08-27 Michael Stahl change formal parameters of item insertion methods to type SetAttrMode
2009-08-27 Michael Stahl fix incorrect resetting of text attributes in SwUndoInsSection, SwUndoInserts
2009-08-27 Michael Stahl clean up SwTxtNode::CutImpl() and lcl_CopyHint()
2009-08-27 Michael Stahl rename SwDoc::Copy() to CopyRange(), and _Copy() to CopyImpl()
2009-08-27 Michael Stahl rename SwNodes::Move() to MoveRange(), and remove unused parameter
2009-08-27 Michael Stahl rename SwDoc::Move() to MoveRange()/MoveNodeRange()
2009-08-27 Michael Stahl rename SwDoc::Insert() to InsertString(), and remove sal_Unicode variant
2009-08-27 Michael Stahl rename SwDoc::Insert() to InsertPoolItem()/InsertItemSet()/InsertSwSection()
2009-08-27 Michael Stahl rename SwDoc::Replace() to ReplaceRange()
2009-08-27 Michael Stahl remove SwDoc::Overwrite() sal_Unicode variant
2009-08-27 Michael Stahl split up SwDoc::DeleteAndJoin(): factor out DeleteAndJoinWithRedline()
2009-08-27 Michael Stahl rename overloaded SwDoc::Delete() to DeleteRange()/DeleteTOXMark()
2009-08-27 Michael Stahl rename SwTxtNode::Copy() to CopyText()
2009-08-27 Michael Stahl rename SwTxtNode::Cut() to CutText(), and _Cut() to CutImpl()
2009-08-27 Michael Stahl rename SwTxtNode::Delete() to DeleteAttribute()/DeleteAttributes()
2009-08-27 Michael Stahl rename SwTxtNode::Replace() to ReplaceText(), and remove the xub_Unicode variant
2009-08-27 Michael Stahl rename SwTxtNode::Erase() to EraseText()
2009-08-27 Michael Stahl rename SwTxtNode::Insert() to InsertText(), and remove the xub_Unicode variant
2009-08-27 Michael Stahl clean up SwTxtNode::Update()
2009-08-27 Michael Stahl remove SwTxtAttr::RemoveFromPool() and make destructor non-public,
to be invoked by new method SwTxtAttr::Destroy()
2009-08-27 Michael Stahl ensure that SwDoc::Insert() for item (set) returns success indicator:
replace SwRegHistory constructor with method InsertItems(), returning bool.
refactor InsAttr() so that it checks if InsertItems() succeeds.
2009-08-27 Michael Stahl move SwXTextPortionEnumeration from unoobj.hxx to unoport.hxx
2009-08-27 Michael Stahl add missing SolarMutex in SwXTextPortion methods
2009-08-27 Michael Stahl SwXTextPortion: new member m_xTextField (so the TextField property need not
be returned indirectly via SwUnoCursorHelper).
factor out function CreateSwXTextField().
2009-08-27 Michael Stahl SwXTextPortion: remove PORTION_CONTROL_CHAR and implementation of XTextField
2009-08-27 Michael Stahl remove obsolete hint SwTxtHardBlank and formats SwFmtHardBlank/SwFmtSoftHyph
2009-08-27 Michael Stahl clean up SwTxtAttr and friends:
remove many accessor methods for obsolete (due to autofmt) char format items.
remove unused flag SwTxtAttr::m_bDontMergeAttr.
MakeRedlineTxtAttr() now dedicated function, no longer calls MakeTxtAttr().
2009-08-27 Michael Stahl remove obsolete attribute SwTxt2Lines
2009-08-27 Michael Stahl SwXTextPortionEnumeration: finish refactoring CreatePortions
change ExportHints so it always returns a text portion for hint w/ CH_TXTATR.
remove special case for handling end of paragraph.
unfortunately had to refactor the fieldmarks export as well (got in the way).
2009-08-27 Michael Stahl SwXTextPortionEnumeration: refactor CreatePortions: frames export
extract function ExportFrames() from CreatePortions().
remove (un)dead code that calls evil MovePara(fnParaCurr, fnParaEnd)
2009-08-27 Michael Stahl clean up SwXParaFrameEnumeration
2009-08-27 Michael Stahl CollectFrameAtNode: replace SwDependArr with STL based FrameDependList_t
2009-08-27 Michael Stahl SwXTextPortionEnumeration: tweak refmark/toxmark export
so ExportHints returns the portion for point marks
2009-08-27 Michael Stahl clean up SwXTextPortionEnumeration:
prefix members, remove casts, replace SvWeirdArray with STL, etc.
make CreatePortions() method a function, and remove lots of members.
extract fieldmarks function from CreatePortions.
2009-08-27 Michael Stahl remove FOREACHUNOPAM_START/END macros
2009-08-27 Michael Stahl clean up SwXTextPortion:
prefix members, remove casts, etc.
remove SwXRubyPortion: replace it with another SwXTextPortion constructor
2009-08-27 Michael Stahl #i102541# SwXReferenceMark::InsertRefMark(): use flag SETATTR_DONTEXPAND
2009-08-27 Michael Stahl rename SwTxtNode::Insert to SwTxtNode::InsertHint, and
fix constness in SwTxtNode::InsertItem
2009-08-27 Michael Stahl turn SwTxtNode::MakeTxtAttr() methods into global functions in ndhints.hxx
2009-08-27 Michael Stahl remove obsolete sw/inc/bookmrk.hxx
2009-08-27 Michael Stahl pam.cxx: fix ComparePosition functions (returned wrong result in one case)
2009-08-27 Michael Stahl #i103613# only import RDF metadata on normal open of a document
2009-09-11 kz CWS-TOOLING: integrate CWS impress176
2009-09-08 20:18:24 +0200 sj r275957 : fixed warning (shadowed variable)
2009-09-08 18:02:05 +0200 cl r275948 : #i104315# added missing tab pages
2009-09-08 17:35:18 +0200 cl r275947 : #i104866# fixed angle import
2009-09-08 17:32:53 +0200 cl r275946 : #i104841# fixed angle import
2009-09-08 17:01:25 +0200 cl r275943 : #i103935# fixed the SID_EVENTCONFIG mess
2009-09-08 14:32:57 +0200 sj r275928 : #i104685# only comments
2009-09-07 12:37:36 +0200 sj r275886 : #i104683# fixed import of bold/italic attributes for normal text shapes
2009-09-04 15:07:46 +0200 sj r275808 : #104689# fixed bullet color problem
2009-09-03 15:25:07 +0200 sj r275753 : #160200# added vertical alignment of table cells
2009-09-11 kz CWS-TOOLING: integrate CWS dv14
2009-09-10 15:16:32 +0200 sg r276035 : #160513# updated wfs scheme to accept ports
2009-09-10 07:41:47 +0200 dv r276019 : #i104942# Better renaming algorithmen
2009-08-31 13:41:11 +0200 dv r275604 : #160505# Setting APP1PRODUCTNAME must not overwrite APP1PRODUCTDEF
2009-09-11 kz CWS-TOOLING: integrate CWS jl131
2009-09-02 16:42:40 +0200 jl r275720 : #i97896#
2009-08-31 13:01:53 +0200 jl r275599 : CWS-TOOLING: rebase CWS jl131 to trunk@275331 (milestone: DEV300:m56)
2009-07-31 14:35:30 +0200 jl r274531 : CWS-TOOLING: rebase CWS jl131 to trunk@274203 (milestone: DEV300:m53)
2009-07-23 14:20:32 +0200 jl r274272 : #i79839# better error text when trying to modify shared layer without having write permission, eg. unopkg add --shared, unopkg remove --shared, unopkg reinstall --shared
2009-07-22 16:38:02 +0200 jl r274252 : #i97896# localize error message for lock file
2009-07-22 16:37:22 +0200 jl r274251 : #i80462# unprecise wording in updatedialog
2009-07-22 16:36:06 +0200 jl r274250 : #i97896# localize error message for lock file
2009-07-22 16:35:20 +0200 jl r274249 : #i97896# localize error message for lock file
2009-07-22 15:07:30 +0200 jl r274242 : #i98873# minimum java version is 1.5 since OOo 3.0
2009-09-11 kz CWS-TOOLING: integrate CWS changehc
2009-08-31 19:38:50 +0200 pl r275633 : remove dbug printf
2009-08-31 17:41:50 +0200 pl r275623 : CWS-TOOLING: rebase CWS changehc to trunk@275331 (milestone: DEV300:m56)
2009-07-15 19:45:46 +0200 pl r274028 : #i35482# use HC flag to decide high contrast mode
2009-07-15 17:40:52 +0200 pl r274020 : #i35482# use HC flag to decide high contrast mode
2009-07-15 17:39:50 +0200 pl r274019 : #i35482# update autohc correctly in MergeSystemSettings
2009-07-15 17:38:57 +0200 pl r274018 : #i35482# update autohc correctly in MergeSystemSettings
2009-09-11 kz CWS-TOOLING: integrate CWS notes10
2009-08-24 07:25:57 +0200 mod r275287 : 2009-07-26 02:38:32 +0200 mod r274343 : #i#i103645#
2009-07-26 02:01:53 +0200 mod r274342 : #i103645#
2009-07-26 01:52:42 +0200 mod r274341 : #i103490#
2009-07-22 08:31:48 +0200 mod r274215 : #i103373#
2009-07-15 00:55:11 +0200 mod r273987 : #i101419#
2009-07-14 07:07:55 +0200 mod r273956 : #i101419#
2009-07-14 07:07:43 +0200 mod r273955 : #i101419#
2009-07-14 07:02:10 +0200 mod r273954 : changes from notes9
2009-07-14 06:14:25 +0200 mod r273953 : #i103476#
2009-09-11 kz CWS-TOOLING: integrate CWS ab70
2009-09-10 15:12:54 +0200 jsk r276034 : #i85434# - mandatory automatic update test
2009-09-10 15:11:06 +0200 jsk r276033 : #i85434# - mandatory automatic update test
2009-09-02 09:49:24 +0200 ab r275698 : #i85434# Dialog Import
2009-09-11 kz CWS-TOOLING: integrate CWS hb32bugs02
2009-09-02 Henning Brinkmann #i102420# revert changes
2009-08-26 Henning Brinkmann merged DEV300_m56
2009-08-19 Henning Brinkmann merged DEV300_m55
2009-08-14 Henning Brinkmann merged changes from wntmsci12
2009-08-12 Henning Brinkmann Implemented NoSpaceEdit constructor and destructor in .cxx to allow compile with debug on wntmsci12.
2009-08-12 Henning Brinkmann Added some SW_DLLPUBLIC to make compilable on wntmsci12.
2009-08-11 Henning Brinkmann #i102420# dbg_out: surround output for SwNodes with <nodes-array>.
2009-08-10 Henning Brinkmann #i102420# rewritten debug output for SwNodes.
2009-08-07 Henning Brinkmann #i102420# debug _MoveNodes: output the destination, too. Break after two iterations.
2009-08-07 Henning Brinkmann #i102420# _MoveNodes: Additionally check if destination index is inside source => false
Check if current range was already handled => loop
Debug output current range
2009-08-06 Henning Brinkmann merged DEV300_m54
2009-08-06 Henning Brinkmann added master fix
2009-08-06 Henning Brinkmann debug output for SwNodeRange
2009-08-04 Henning Brinkmann #i102844# robustness: check for NULL pointer to prevent crash
2009-08-03 Henning Brinkmann #i103475# applied patch and verified
2009-08-03 Henning Brinkmann Removed code preventing build of sw with DEBUG.
2009-09-11 convert-repo update tags
2009-09-10 kz CWS-TOOLING: integrate CWS os2port06dev300
2009-09-05 22:49:00 +0200 ydario r275858 : #i99588# applied os2port06 diff to DEV300 tree.
2009-09-10 kz CWS-TOOLING: integrate CWS mingwport23
2009-08-29 07:07:53 +0200 tono r275555 : i#104522: mingw port graphite
2009-08-29 07:07:26 +0200 tono r275554 : i#104522: mingw port printf format fix
2009-09-10 kz CWS-TOOLING: integrate CWS mh232
2009-08-26 03:52:57 +0200 mh r275385 : #i102182# FreeBSD patch
2009-08-26 03:43:20 +0200 mh r275384 : #i101333# patch for FreeBSD
2009-08-26 03:11:20 +0200 mh r275383 : #i39230
2009-08-26 03:07:51 +0200 mh r275382 : #i39230# more space for initials field
2009-08-26 02:41:19 +0200 mh r275380 : #i39230# use vos::osecurity for reading the user name
2009-08-18 22:06:00 +0200 mh r275130 : #i104243#, line ending problem with newer perl
2009-08-18 21:53:21 +0200 mh r275129 : #i39230# read initials via getpwnam
2009-08-18 21:34:05 +0200 mh r275128 : enable CAIROCANVAS for Linux and Mac, #i88613#
2009-08-17 18:02:59 +0200 mh r275067 : #i95498# make compile with gcc3
2009-09-10 kz CWS-TOOLING: integrate CWS tkr24
2009-09-07 14:31:06 +0200 is r275898 : #160081# adding NO_LICENSE_INTO_COPYRIGHT
2009-09-10 releng #i10000# change KeyMapping to SingletonRef<framework::KeyMapping>
2009-09-11 convert-repo update tags
2009-09-10 kz CWS-TOOLING: integrate CWS os2port06dev300
2009-09-05 22:49:00 +0200 ydario r275858 : #i99588# applied os2port06 diff to DEV300 tree.
2009-09-10 kz CWS-TOOLING: integrate CWS mingwport23
2009-08-29 07:07:53 +0200 tono r275555 : i#104522: mingw port graphite
2009-08-29 07:07:26 +0200 tono r275554 : i#104522: mingw port printf format fix
2009-09-10 kz CWS-TOOLING: integrate CWS mh232
2009-08-26 03:52:57 +0200 mh r275385 : #i102182# FreeBSD patch
2009-08-26 03:43:20 +0200 mh r275384 : #i101333# patch for FreeBSD
2009-08-26 03:11:20 +0200 mh r275383 : #i39230
2009-08-26 03:07:51 +0200 mh r275382 : #i39230# more space for initials field
2009-08-26 02:41:19 +0200 mh r275380 : #i39230# use vos::osecurity for reading the user name
2009-08-18 22:06:00 +0200 mh r275130 : #i104243#, line ending problem with newer perl
2009-08-18 21:53:21 +0200 mh r275129 : #i39230# read initials via getpwnam
2009-08-18 21:34:05 +0200 mh r275128 : enable CAIROCANVAS for Linux and Mac, #i88613#
2009-08-17 18:02:59 +0200 mh r275067 : #i95498# make compile with gcc3
2009-09-10 kz CWS-TOOLING: integrate CWS tkr24
2009-09-07 14:31:06 +0200 is r275898 : #160081# adding NO_LICENSE_INTO_COPYRIGHT
2009-09-10 releng #i10000# change KeyMapping to SingletonRef<framework::KeyMapping>
2009-09-11 14:29:45 +00:00
|
|
|
|
pDoc->InsertItemSet( rPam, aTmp, 0 );
|
2000-09-18 23:08:29 +00:00
|
|
|
|
}
|
|
|
|
|
else
|
CWS-TOOLING: integrate CWS odfmetadata3
2009-09-11 Michael Stahl merge DEV300_m58
2009-09-07 Michael Stahl SwFmtFld::Modify(): do nothing on RES_OBJECTDYING
2009-08-27 Michael Stahl #i91565#, #i91566#: TextPortionEnumerationTest.java: add test document
2009-08-27 Michael Stahl #i91565#, #i91566#: add complex test: TextPortionEnumerationTest.java
2009-08-27 Michael Stahl CLiteral::initialize(): zero-length literals probably not an error
2009-08-27 Michael Stahl #i91565#, #i91566#: offapi: new InContentMetadata and MetadataField services
adapt TextPortion for InContentMetadata
2009-08-27 Michael Stahl #i91564#: xmloff: load/store xml:id and RDFa for text:bookmark(-start).
2009-08-27 Michael Stahl #i91564#: sw core: add support for xml:id at bookmarks:
sw::mark::Bookmark: derive from Metadatable.
SwHistoryBookmark, SaveBookmark: store a MetadatableUndo.
ndcopy.cxx: lcl_CopyBookmarks(): copy the xml:id.
SwXBookmark: derive from MetadatableMixin.
2009-08-27 Michael Stahl #i91565#, #i91566#: xmloff: refactor ruby import so nested meta(-field) works:
remove XMLRubyHint_Impl.
XMLImpRubyContext_Impl::~XMLImpRubyContext_Impl(): insert ruby directly.
2009-08-27 Michael Stahl #i91565#, #i91566#: xmloff: fix text:meta(-field) import/export:
new XMLTextParagraphExport::exportTextField() overload for XTextField.
CreateAndInsertMark(): set xml:id after insertion.
fix meta(-field) service names, bugs etc.
2009-08-27 Michael Stahl #i91565#, #i91566#: sw text formatting: paint background of meta(-field) body:
SwFont: add member m_nMetaCount.
txttypes.hxx: add POR_META.
atrstck.cxx: handle RES_TXTATR_META(FIELD).
itrform2.cxx: SwTxtFormatter::WhichTxtPor(): create new class SwMetaPortion.
2009-08-27 Michael Stahl #i91566#: sw text formatting: display meta-field prefix and suffix:
SwAttrIter::GetAttr(): replace with call to GetTxtAttrForCharAt().
SwTxtFormatter::NewExtraPortion(): handle meta-field prefix.
SwTxtFormatter: new member m_nHintEndIndex.
SwTxtFormatter::WhichFirstPortion(): call TryNewNoLengthPortion().
SwTxtFormatter::TryNewNoLengthPortion(): new; handle suffix of meta-field.
SwTxtFormatter::UnderFlow(): UGLY HACK: decrement m_nHintEndIndex.
SwFldPortion: add flag m_bNoLength: portion has zero length (for suffix).
2009-08-27 Michael Stahl #i91565#, #i91566#: extend text:meta(-field) uno wrapper with XText interface:
unoobj.hxx: new CursorType CURSOR_META.
unoobj2.cxx: refactor SwXText implementation to ensure that when the SwXText
belongs to a SwXMeta, content is always inserted inside the meta(-field).
unoobj.cxx: new SwXTextCursor::ForceIntoMeta(): cursor stays in meta(-field).
unometa.hxx: SwXMeta implements XText, forwarding to a member SwXMetaText.
DocInsertStringSplitCR(), SwX*::attachToRange(), SwX*::DeleteAndInsert():
use FORCEHINTEXPAND hack to ensure insert into the meta(-field) at the end.
2009-08-27 Michael Stahl #i91565#, #i91566#: add text:meta(-field) uno wrapper to sw:
fmtmeta.hxx, fmtatr2.cxx: new class sw::MetaField, new sw::MetaFieldManager.
doc.hxx, docnew.cxx: new SwDoc::GetMetaFieldManager().
unocoll.hxx,.cxx: new SW_SERVICE_FIELDTYPE_METAFIELD, SW_SERVICE_TYPE_META.
unomap.hxx,.cxx: new PROPERTY_MAP_METAFIELD.
unoprnms.hxx: new UNO_NAME_META.
unoport.hxx: new PORTION_META; add "InContentMetadata" prop to SwXTextPortion.
new unometa.hxx: new class SwXMeta and SwXMetaField.
unofield.cxx: SwXFieldEnumeration: include meta-fields.
unoportenum.cxx: handle RES_TXTATR_META(FIELD) by using a portion list stack.
unotext.cxx: SwXText::insertTextContent(): handle meta(-field) as attribute.
2009-08-27 Michael Stahl #i91565#, #i91566#: ndhints.cxx: remove sort number from SwTxtAttrNesting
2009-08-27 Michael Stahl #i91565#, #i91566#: add support for hints with end and CH_TXTATR to sw core:
doc.hxx, docedt.cxx: replace SwDoc::Delete(), DeleteAndJoin(), ReplaceRange()
with wrappers that split at left-overlapped end+CH_TXTATR hints.
txatbase.hxx: new member SwTxtAttr::m_bHasDummyChar.
ndtxt.hxx: rename SwTxtNode::GetTxtAttr() to GetTxtAttrForCharAt().
ndtxt.cxx: SwTxtNode::CopyText(): copy end+CH_TXTATR hints iff copy CH_TXTATR.
txtatr2.cxx, thints.cxx: SwTxtMeta gets a CH_TXTATR.
2009-08-27 Michael Stahl #i91565#, #i91566#: add text:meta(-field) to sw core:
txatbase.hxx: new member SwTxtAttr::m_bNesting.
hintids.hxx: new ids RES_TXTATR_META, RES_TXTATR_METAFIELD.
txtatr.hxx: new base class SwTxtAttrNesting.
new hint SwTxtMeta.
SwTxtRuby derives from SwTxtAttrNesting.
txtinet.hxx: SwTxtINetFmt derives from SwTxtAttrNesting.
new header fmtmeta.hxx: new pool item SwFmtMeta. new class sw::Meta.
ndhints.hxx, thints.cxx: new method SwpHints::TryInsertNesting().
thints.cxx: refactoring: BuildPortions() no longer handles Ruby/Hyperlink,
but TryInsertNesting(), which also handles meta(-field).
SwTxtNode::InsertItem(): check if the hint is actually inserted.
ndhints.cxx: sort nesting hints based on sort number.
ndtxt.cxx: lcl_CopyHint(): handle copy of meta/meta-field.
2009-08-27 Michael Stahl enable expanding hints with m_bLockExpandFlag set:
add new InsertFlag: INS_FORCEHINTEXPAND.
add new SetAttrMode: SETATTR_FORCEHINTEXPAND.
rename SwEditShell::Insert() to Insert2() because changed signature fails
to compile when SwWrtShell tries to overwrite these non-virtual members...
SwWrtShell::Insert() sets FOCEHINTEXPAND if range was selected/deleted.
adapt SwUndoInsert to store flags.
2009-08-27 Michael Stahl change formal parameters of item insertion methods to type SetAttrMode
2009-08-27 Michael Stahl fix incorrect resetting of text attributes in SwUndoInsSection, SwUndoInserts
2009-08-27 Michael Stahl clean up SwTxtNode::CutImpl() and lcl_CopyHint()
2009-08-27 Michael Stahl rename SwDoc::Copy() to CopyRange(), and _Copy() to CopyImpl()
2009-08-27 Michael Stahl rename SwNodes::Move() to MoveRange(), and remove unused parameter
2009-08-27 Michael Stahl rename SwDoc::Move() to MoveRange()/MoveNodeRange()
2009-08-27 Michael Stahl rename SwDoc::Insert() to InsertString(), and remove sal_Unicode variant
2009-08-27 Michael Stahl rename SwDoc::Insert() to InsertPoolItem()/InsertItemSet()/InsertSwSection()
2009-08-27 Michael Stahl rename SwDoc::Replace() to ReplaceRange()
2009-08-27 Michael Stahl remove SwDoc::Overwrite() sal_Unicode variant
2009-08-27 Michael Stahl split up SwDoc::DeleteAndJoin(): factor out DeleteAndJoinWithRedline()
2009-08-27 Michael Stahl rename overloaded SwDoc::Delete() to DeleteRange()/DeleteTOXMark()
2009-08-27 Michael Stahl rename SwTxtNode::Copy() to CopyText()
2009-08-27 Michael Stahl rename SwTxtNode::Cut() to CutText(), and _Cut() to CutImpl()
2009-08-27 Michael Stahl rename SwTxtNode::Delete() to DeleteAttribute()/DeleteAttributes()
2009-08-27 Michael Stahl rename SwTxtNode::Replace() to ReplaceText(), and remove the xub_Unicode variant
2009-08-27 Michael Stahl rename SwTxtNode::Erase() to EraseText()
2009-08-27 Michael Stahl rename SwTxtNode::Insert() to InsertText(), and remove the xub_Unicode variant
2009-08-27 Michael Stahl clean up SwTxtNode::Update()
2009-08-27 Michael Stahl remove SwTxtAttr::RemoveFromPool() and make destructor non-public,
to be invoked by new method SwTxtAttr::Destroy()
2009-08-27 Michael Stahl ensure that SwDoc::Insert() for item (set) returns success indicator:
replace SwRegHistory constructor with method InsertItems(), returning bool.
refactor InsAttr() so that it checks if InsertItems() succeeds.
2009-08-27 Michael Stahl move SwXTextPortionEnumeration from unoobj.hxx to unoport.hxx
2009-08-27 Michael Stahl add missing SolarMutex in SwXTextPortion methods
2009-08-27 Michael Stahl SwXTextPortion: new member m_xTextField (so the TextField property need not
be returned indirectly via SwUnoCursorHelper).
factor out function CreateSwXTextField().
2009-08-27 Michael Stahl SwXTextPortion: remove PORTION_CONTROL_CHAR and implementation of XTextField
2009-08-27 Michael Stahl remove obsolete hint SwTxtHardBlank and formats SwFmtHardBlank/SwFmtSoftHyph
2009-08-27 Michael Stahl clean up SwTxtAttr and friends:
remove many accessor methods for obsolete (due to autofmt) char format items.
remove unused flag SwTxtAttr::m_bDontMergeAttr.
MakeRedlineTxtAttr() now dedicated function, no longer calls MakeTxtAttr().
2009-08-27 Michael Stahl remove obsolete attribute SwTxt2Lines
2009-08-27 Michael Stahl SwXTextPortionEnumeration: finish refactoring CreatePortions
change ExportHints so it always returns a text portion for hint w/ CH_TXTATR.
remove special case for handling end of paragraph.
unfortunately had to refactor the fieldmarks export as well (got in the way).
2009-08-27 Michael Stahl SwXTextPortionEnumeration: refactor CreatePortions: frames export
extract function ExportFrames() from CreatePortions().
remove (un)dead code that calls evil MovePara(fnParaCurr, fnParaEnd)
2009-08-27 Michael Stahl clean up SwXParaFrameEnumeration
2009-08-27 Michael Stahl CollectFrameAtNode: replace SwDependArr with STL based FrameDependList_t
2009-08-27 Michael Stahl SwXTextPortionEnumeration: tweak refmark/toxmark export
so ExportHints returns the portion for point marks
2009-08-27 Michael Stahl clean up SwXTextPortionEnumeration:
prefix members, remove casts, replace SvWeirdArray with STL, etc.
make CreatePortions() method a function, and remove lots of members.
extract fieldmarks function from CreatePortions.
2009-08-27 Michael Stahl remove FOREACHUNOPAM_START/END macros
2009-08-27 Michael Stahl clean up SwXTextPortion:
prefix members, remove casts, etc.
remove SwXRubyPortion: replace it with another SwXTextPortion constructor
2009-08-27 Michael Stahl #i102541# SwXReferenceMark::InsertRefMark(): use flag SETATTR_DONTEXPAND
2009-08-27 Michael Stahl rename SwTxtNode::Insert to SwTxtNode::InsertHint, and
fix constness in SwTxtNode::InsertItem
2009-08-27 Michael Stahl turn SwTxtNode::MakeTxtAttr() methods into global functions in ndhints.hxx
2009-08-27 Michael Stahl remove obsolete sw/inc/bookmrk.hxx
2009-08-27 Michael Stahl pam.cxx: fix ComparePosition functions (returned wrong result in one case)
2009-08-27 Michael Stahl #i103613# only import RDF metadata on normal open of a document
2009-09-11 kz CWS-TOOLING: integrate CWS impress176
2009-09-08 20:18:24 +0200 sj r275957 : fixed warning (shadowed variable)
2009-09-08 18:02:05 +0200 cl r275948 : #i104315# added missing tab pages
2009-09-08 17:35:18 +0200 cl r275947 : #i104866# fixed angle import
2009-09-08 17:32:53 +0200 cl r275946 : #i104841# fixed angle import
2009-09-08 17:01:25 +0200 cl r275943 : #i103935# fixed the SID_EVENTCONFIG mess
2009-09-08 14:32:57 +0200 sj r275928 : #i104685# only comments
2009-09-07 12:37:36 +0200 sj r275886 : #i104683# fixed import of bold/italic attributes for normal text shapes
2009-09-04 15:07:46 +0200 sj r275808 : #104689# fixed bullet color problem
2009-09-03 15:25:07 +0200 sj r275753 : #160200# added vertical alignment of table cells
2009-09-11 kz CWS-TOOLING: integrate CWS dv14
2009-09-10 15:16:32 +0200 sg r276035 : #160513# updated wfs scheme to accept ports
2009-09-10 07:41:47 +0200 dv r276019 : #i104942# Better renaming algorithmen
2009-08-31 13:41:11 +0200 dv r275604 : #160505# Setting APP1PRODUCTNAME must not overwrite APP1PRODUCTDEF
2009-09-11 kz CWS-TOOLING: integrate CWS jl131
2009-09-02 16:42:40 +0200 jl r275720 : #i97896#
2009-08-31 13:01:53 +0200 jl r275599 : CWS-TOOLING: rebase CWS jl131 to trunk@275331 (milestone: DEV300:m56)
2009-07-31 14:35:30 +0200 jl r274531 : CWS-TOOLING: rebase CWS jl131 to trunk@274203 (milestone: DEV300:m53)
2009-07-23 14:20:32 +0200 jl r274272 : #i79839# better error text when trying to modify shared layer without having write permission, eg. unopkg add --shared, unopkg remove --shared, unopkg reinstall --shared
2009-07-22 16:38:02 +0200 jl r274252 : #i97896# localize error message for lock file
2009-07-22 16:37:22 +0200 jl r274251 : #i80462# unprecise wording in updatedialog
2009-07-22 16:36:06 +0200 jl r274250 : #i97896# localize error message for lock file
2009-07-22 16:35:20 +0200 jl r274249 : #i97896# localize error message for lock file
2009-07-22 15:07:30 +0200 jl r274242 : #i98873# minimum java version is 1.5 since OOo 3.0
2009-09-11 kz CWS-TOOLING: integrate CWS changehc
2009-08-31 19:38:50 +0200 pl r275633 : remove dbug printf
2009-08-31 17:41:50 +0200 pl r275623 : CWS-TOOLING: rebase CWS changehc to trunk@275331 (milestone: DEV300:m56)
2009-07-15 19:45:46 +0200 pl r274028 : #i35482# use HC flag to decide high contrast mode
2009-07-15 17:40:52 +0200 pl r274020 : #i35482# use HC flag to decide high contrast mode
2009-07-15 17:39:50 +0200 pl r274019 : #i35482# update autohc correctly in MergeSystemSettings
2009-07-15 17:38:57 +0200 pl r274018 : #i35482# update autohc correctly in MergeSystemSettings
2009-09-11 kz CWS-TOOLING: integrate CWS notes10
2009-08-24 07:25:57 +0200 mod r275287 : 2009-07-26 02:38:32 +0200 mod r274343 : #i#i103645#
2009-07-26 02:01:53 +0200 mod r274342 : #i103645#
2009-07-26 01:52:42 +0200 mod r274341 : #i103490#
2009-07-22 08:31:48 +0200 mod r274215 : #i103373#
2009-07-15 00:55:11 +0200 mod r273987 : #i101419#
2009-07-14 07:07:55 +0200 mod r273956 : #i101419#
2009-07-14 07:07:43 +0200 mod r273955 : #i101419#
2009-07-14 07:02:10 +0200 mod r273954 : changes from notes9
2009-07-14 06:14:25 +0200 mod r273953 : #i103476#
2009-09-11 kz CWS-TOOLING: integrate CWS ab70
2009-09-10 15:12:54 +0200 jsk r276034 : #i85434# - mandatory automatic update test
2009-09-10 15:11:06 +0200 jsk r276033 : #i85434# - mandatory automatic update test
2009-09-02 09:49:24 +0200 ab r275698 : #i85434# Dialog Import
2009-09-11 kz CWS-TOOLING: integrate CWS hb32bugs02
2009-09-02 Henning Brinkmann #i102420# revert changes
2009-08-26 Henning Brinkmann merged DEV300_m56
2009-08-19 Henning Brinkmann merged DEV300_m55
2009-08-14 Henning Brinkmann merged changes from wntmsci12
2009-08-12 Henning Brinkmann Implemented NoSpaceEdit constructor and destructor in .cxx to allow compile with debug on wntmsci12.
2009-08-12 Henning Brinkmann Added some SW_DLLPUBLIC to make compilable on wntmsci12.
2009-08-11 Henning Brinkmann #i102420# dbg_out: surround output for SwNodes with <nodes-array>.
2009-08-10 Henning Brinkmann #i102420# rewritten debug output for SwNodes.
2009-08-07 Henning Brinkmann #i102420# debug _MoveNodes: output the destination, too. Break after two iterations.
2009-08-07 Henning Brinkmann #i102420# _MoveNodes: Additionally check if destination index is inside source => false
Check if current range was already handled => loop
Debug output current range
2009-08-06 Henning Brinkmann merged DEV300_m54
2009-08-06 Henning Brinkmann added master fix
2009-08-06 Henning Brinkmann debug output for SwNodeRange
2009-08-04 Henning Brinkmann #i102844# robustness: check for NULL pointer to prevent crash
2009-08-03 Henning Brinkmann #i103475# applied patch and verified
2009-08-03 Henning Brinkmann Removed code preventing build of sw with DEBUG.
2009-09-11 convert-repo update tags
2009-09-10 kz CWS-TOOLING: integrate CWS os2port06dev300
2009-09-05 22:49:00 +0200 ydario r275858 : #i99588# applied os2port06 diff to DEV300 tree.
2009-09-10 kz CWS-TOOLING: integrate CWS mingwport23
2009-08-29 07:07:53 +0200 tono r275555 : i#104522: mingw port graphite
2009-08-29 07:07:26 +0200 tono r275554 : i#104522: mingw port printf format fix
2009-09-10 kz CWS-TOOLING: integrate CWS mh232
2009-08-26 03:52:57 +0200 mh r275385 : #i102182# FreeBSD patch
2009-08-26 03:43:20 +0200 mh r275384 : #i101333# patch for FreeBSD
2009-08-26 03:11:20 +0200 mh r275383 : #i39230
2009-08-26 03:07:51 +0200 mh r275382 : #i39230# more space for initials field
2009-08-26 02:41:19 +0200 mh r275380 : #i39230# use vos::osecurity for reading the user name
2009-08-18 22:06:00 +0200 mh r275130 : #i104243#, line ending problem with newer perl
2009-08-18 21:53:21 +0200 mh r275129 : #i39230# read initials via getpwnam
2009-08-18 21:34:05 +0200 mh r275128 : enable CAIROCANVAS for Linux and Mac, #i88613#
2009-08-17 18:02:59 +0200 mh r275067 : #i95498# make compile with gcc3
2009-09-10 kz CWS-TOOLING: integrate CWS tkr24
2009-09-07 14:31:06 +0200 is r275898 : #160081# adding NO_LICENSE_INTO_COPYRIGHT
2009-09-10 releng #i10000# change KeyMapping to SingletonRef<framework::KeyMapping>
2009-09-11 convert-repo update tags
2009-09-10 kz CWS-TOOLING: integrate CWS os2port06dev300
2009-09-05 22:49:00 +0200 ydario r275858 : #i99588# applied os2port06 diff to DEV300 tree.
2009-09-10 kz CWS-TOOLING: integrate CWS mingwport23
2009-08-29 07:07:53 +0200 tono r275555 : i#104522: mingw port graphite
2009-08-29 07:07:26 +0200 tono r275554 : i#104522: mingw port printf format fix
2009-09-10 kz CWS-TOOLING: integrate CWS mh232
2009-08-26 03:52:57 +0200 mh r275385 : #i102182# FreeBSD patch
2009-08-26 03:43:20 +0200 mh r275384 : #i101333# patch for FreeBSD
2009-08-26 03:11:20 +0200 mh r275383 : #i39230
2009-08-26 03:07:51 +0200 mh r275382 : #i39230# more space for initials field
2009-08-26 02:41:19 +0200 mh r275380 : #i39230# use vos::osecurity for reading the user name
2009-08-18 22:06:00 +0200 mh r275130 : #i104243#, line ending problem with newer perl
2009-08-18 21:53:21 +0200 mh r275129 : #i39230# read initials via getpwnam
2009-08-18 21:34:05 +0200 mh r275128 : enable CAIROCANVAS for Linux and Mac, #i88613#
2009-08-17 18:02:59 +0200 mh r275067 : #i95498# make compile with gcc3
2009-09-10 kz CWS-TOOLING: integrate CWS tkr24
2009-09-07 14:31:06 +0200 is r275898 : #160081# adding NO_LICENSE_INTO_COPYRIGHT
2009-09-10 releng #i10000# change KeyMapping to SingletonRef<framework::KeyMapping>
2009-09-11 14:29:45 +00:00
|
|
|
|
{
|
|
|
|
|
pDoc->InsertItemSet( rPam, *pSet, 0 );
|
|
|
|
|
}
|
2000-09-18 23:08:29 +00:00
|
|
|
|
}
|
|
|
|
|
rPam.DeleteMark();
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
int SwRedlineExtraData_FmtColl::operator == ( const SwRedlineExtraData& r) const
|
|
|
|
|
{
|
|
|
|
|
const SwRedlineExtraData_FmtColl& rCmp = (SwRedlineExtraData_FmtColl&)r;
|
|
|
|
|
return sFmtNm == rCmp.sFmtNm && nPoolId == rCmp.nPoolId &&
|
|
|
|
|
( ( !pSet && !rCmp.pSet ) ||
|
|
|
|
|
( pSet && rCmp.pSet && *pSet == *rCmp.pSet ) );
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
void SwRedlineExtraData_FmtColl::SetItemSet( const SfxItemSet& rSet )
|
|
|
|
|
{
|
|
|
|
|
delete pSet;
|
|
|
|
|
if( rSet.Count() )
|
|
|
|
|
pSet = new SfxItemSet( rSet );
|
|
|
|
|
else
|
|
|
|
|
pSet = 0;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
2002-02-22 11:00:10 +00:00
|
|
|
|
SwRedlineExtraData_Format::SwRedlineExtraData_Format( const SfxItemSet& rSet )
|
|
|
|
|
{
|
|
|
|
|
SfxItemIter aIter( rSet );
|
|
|
|
|
const SfxPoolItem* pItem = aIter.FirstItem();
|
|
|
|
|
while( TRUE )
|
|
|
|
|
{
|
|
|
|
|
aWhichIds.Insert( pItem->Which(), aWhichIds.Count() );
|
|
|
|
|
if( aIter.IsAtEnd() )
|
|
|
|
|
break;
|
|
|
|
|
pItem = aIter.NextItem();
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
SwRedlineExtraData_Format::SwRedlineExtraData_Format(
|
|
|
|
|
const SwRedlineExtraData_Format& rCpy )
|
2007-09-27 07:36:43 +00:00
|
|
|
|
: SwRedlineExtraData(), aWhichIds( (BYTE)rCpy.aWhichIds.Count() )
|
2000-09-18 23:08:29 +00:00
|
|
|
|
{
|
2002-02-22 11:00:10 +00:00
|
|
|
|
aWhichIds.Insert( &rCpy.aWhichIds, 0 );
|
2000-09-18 23:08:29 +00:00
|
|
|
|
}
|
|
|
|
|
|
2002-02-22 11:00:10 +00:00
|
|
|
|
SwRedlineExtraData_Format::~SwRedlineExtraData_Format()
|
|
|
|
|
{
|
|
|
|
|
}
|
2000-09-18 23:08:29 +00:00
|
|
|
|
|
|
|
|
|
SwRedlineExtraData* SwRedlineExtraData_Format::CreateNew() const
|
|
|
|
|
{
|
2002-02-22 11:00:10 +00:00
|
|
|
|
return new SwRedlineExtraData_Format( *this );
|
2000-09-18 23:08:29 +00:00
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
void SwRedlineExtraData_Format::Reject( SwPaM& rPam ) const
|
|
|
|
|
{
|
|
|
|
|
SwDoc* pDoc = rPam.GetDoc();
|
|
|
|
|
|
2007-09-27 07:36:43 +00:00
|
|
|
|
RedlineMode_t eOld = pDoc->GetRedlineMode();
|
|
|
|
|
pDoc->SetRedlineMode_intern((RedlineMode_t)(eOld & ~(nsRedlineMode_t::REDLINE_ON | nsRedlineMode_t::REDLINE_IGNORE)));
|
2000-09-18 23:08:29 +00:00
|
|
|
|
|
|
|
|
|
// eigentlich muesste hier das Attribut zurueck gesetzt werden!!!
|
2002-02-22 11:00:10 +00:00
|
|
|
|
for( USHORT n = 0, nEnd = aWhichIds.Count(); n < nEnd; ++n )
|
CWS-TOOLING: integrate CWS odfmetadata3
2009-09-11 Michael Stahl merge DEV300_m58
2009-09-07 Michael Stahl SwFmtFld::Modify(): do nothing on RES_OBJECTDYING
2009-08-27 Michael Stahl #i91565#, #i91566#: TextPortionEnumerationTest.java: add test document
2009-08-27 Michael Stahl #i91565#, #i91566#: add complex test: TextPortionEnumerationTest.java
2009-08-27 Michael Stahl CLiteral::initialize(): zero-length literals probably not an error
2009-08-27 Michael Stahl #i91565#, #i91566#: offapi: new InContentMetadata and MetadataField services
adapt TextPortion for InContentMetadata
2009-08-27 Michael Stahl #i91564#: xmloff: load/store xml:id and RDFa for text:bookmark(-start).
2009-08-27 Michael Stahl #i91564#: sw core: add support for xml:id at bookmarks:
sw::mark::Bookmark: derive from Metadatable.
SwHistoryBookmark, SaveBookmark: store a MetadatableUndo.
ndcopy.cxx: lcl_CopyBookmarks(): copy the xml:id.
SwXBookmark: derive from MetadatableMixin.
2009-08-27 Michael Stahl #i91565#, #i91566#: xmloff: refactor ruby import so nested meta(-field) works:
remove XMLRubyHint_Impl.
XMLImpRubyContext_Impl::~XMLImpRubyContext_Impl(): insert ruby directly.
2009-08-27 Michael Stahl #i91565#, #i91566#: xmloff: fix text:meta(-field) import/export:
new XMLTextParagraphExport::exportTextField() overload for XTextField.
CreateAndInsertMark(): set xml:id after insertion.
fix meta(-field) service names, bugs etc.
2009-08-27 Michael Stahl #i91565#, #i91566#: sw text formatting: paint background of meta(-field) body:
SwFont: add member m_nMetaCount.
txttypes.hxx: add POR_META.
atrstck.cxx: handle RES_TXTATR_META(FIELD).
itrform2.cxx: SwTxtFormatter::WhichTxtPor(): create new class SwMetaPortion.
2009-08-27 Michael Stahl #i91566#: sw text formatting: display meta-field prefix and suffix:
SwAttrIter::GetAttr(): replace with call to GetTxtAttrForCharAt().
SwTxtFormatter::NewExtraPortion(): handle meta-field prefix.
SwTxtFormatter: new member m_nHintEndIndex.
SwTxtFormatter::WhichFirstPortion(): call TryNewNoLengthPortion().
SwTxtFormatter::TryNewNoLengthPortion(): new; handle suffix of meta-field.
SwTxtFormatter::UnderFlow(): UGLY HACK: decrement m_nHintEndIndex.
SwFldPortion: add flag m_bNoLength: portion has zero length (for suffix).
2009-08-27 Michael Stahl #i91565#, #i91566#: extend text:meta(-field) uno wrapper with XText interface:
unoobj.hxx: new CursorType CURSOR_META.
unoobj2.cxx: refactor SwXText implementation to ensure that when the SwXText
belongs to a SwXMeta, content is always inserted inside the meta(-field).
unoobj.cxx: new SwXTextCursor::ForceIntoMeta(): cursor stays in meta(-field).
unometa.hxx: SwXMeta implements XText, forwarding to a member SwXMetaText.
DocInsertStringSplitCR(), SwX*::attachToRange(), SwX*::DeleteAndInsert():
use FORCEHINTEXPAND hack to ensure insert into the meta(-field) at the end.
2009-08-27 Michael Stahl #i91565#, #i91566#: add text:meta(-field) uno wrapper to sw:
fmtmeta.hxx, fmtatr2.cxx: new class sw::MetaField, new sw::MetaFieldManager.
doc.hxx, docnew.cxx: new SwDoc::GetMetaFieldManager().
unocoll.hxx,.cxx: new SW_SERVICE_FIELDTYPE_METAFIELD, SW_SERVICE_TYPE_META.
unomap.hxx,.cxx: new PROPERTY_MAP_METAFIELD.
unoprnms.hxx: new UNO_NAME_META.
unoport.hxx: new PORTION_META; add "InContentMetadata" prop to SwXTextPortion.
new unometa.hxx: new class SwXMeta and SwXMetaField.
unofield.cxx: SwXFieldEnumeration: include meta-fields.
unoportenum.cxx: handle RES_TXTATR_META(FIELD) by using a portion list stack.
unotext.cxx: SwXText::insertTextContent(): handle meta(-field) as attribute.
2009-08-27 Michael Stahl #i91565#, #i91566#: ndhints.cxx: remove sort number from SwTxtAttrNesting
2009-08-27 Michael Stahl #i91565#, #i91566#: add support for hints with end and CH_TXTATR to sw core:
doc.hxx, docedt.cxx: replace SwDoc::Delete(), DeleteAndJoin(), ReplaceRange()
with wrappers that split at left-overlapped end+CH_TXTATR hints.
txatbase.hxx: new member SwTxtAttr::m_bHasDummyChar.
ndtxt.hxx: rename SwTxtNode::GetTxtAttr() to GetTxtAttrForCharAt().
ndtxt.cxx: SwTxtNode::CopyText(): copy end+CH_TXTATR hints iff copy CH_TXTATR.
txtatr2.cxx, thints.cxx: SwTxtMeta gets a CH_TXTATR.
2009-08-27 Michael Stahl #i91565#, #i91566#: add text:meta(-field) to sw core:
txatbase.hxx: new member SwTxtAttr::m_bNesting.
hintids.hxx: new ids RES_TXTATR_META, RES_TXTATR_METAFIELD.
txtatr.hxx: new base class SwTxtAttrNesting.
new hint SwTxtMeta.
SwTxtRuby derives from SwTxtAttrNesting.
txtinet.hxx: SwTxtINetFmt derives from SwTxtAttrNesting.
new header fmtmeta.hxx: new pool item SwFmtMeta. new class sw::Meta.
ndhints.hxx, thints.cxx: new method SwpHints::TryInsertNesting().
thints.cxx: refactoring: BuildPortions() no longer handles Ruby/Hyperlink,
but TryInsertNesting(), which also handles meta(-field).
SwTxtNode::InsertItem(): check if the hint is actually inserted.
ndhints.cxx: sort nesting hints based on sort number.
ndtxt.cxx: lcl_CopyHint(): handle copy of meta/meta-field.
2009-08-27 Michael Stahl enable expanding hints with m_bLockExpandFlag set:
add new InsertFlag: INS_FORCEHINTEXPAND.
add new SetAttrMode: SETATTR_FORCEHINTEXPAND.
rename SwEditShell::Insert() to Insert2() because changed signature fails
to compile when SwWrtShell tries to overwrite these non-virtual members...
SwWrtShell::Insert() sets FOCEHINTEXPAND if range was selected/deleted.
adapt SwUndoInsert to store flags.
2009-08-27 Michael Stahl change formal parameters of item insertion methods to type SetAttrMode
2009-08-27 Michael Stahl fix incorrect resetting of text attributes in SwUndoInsSection, SwUndoInserts
2009-08-27 Michael Stahl clean up SwTxtNode::CutImpl() and lcl_CopyHint()
2009-08-27 Michael Stahl rename SwDoc::Copy() to CopyRange(), and _Copy() to CopyImpl()
2009-08-27 Michael Stahl rename SwNodes::Move() to MoveRange(), and remove unused parameter
2009-08-27 Michael Stahl rename SwDoc::Move() to MoveRange()/MoveNodeRange()
2009-08-27 Michael Stahl rename SwDoc::Insert() to InsertString(), and remove sal_Unicode variant
2009-08-27 Michael Stahl rename SwDoc::Insert() to InsertPoolItem()/InsertItemSet()/InsertSwSection()
2009-08-27 Michael Stahl rename SwDoc::Replace() to ReplaceRange()
2009-08-27 Michael Stahl remove SwDoc::Overwrite() sal_Unicode variant
2009-08-27 Michael Stahl split up SwDoc::DeleteAndJoin(): factor out DeleteAndJoinWithRedline()
2009-08-27 Michael Stahl rename overloaded SwDoc::Delete() to DeleteRange()/DeleteTOXMark()
2009-08-27 Michael Stahl rename SwTxtNode::Copy() to CopyText()
2009-08-27 Michael Stahl rename SwTxtNode::Cut() to CutText(), and _Cut() to CutImpl()
2009-08-27 Michael Stahl rename SwTxtNode::Delete() to DeleteAttribute()/DeleteAttributes()
2009-08-27 Michael Stahl rename SwTxtNode::Replace() to ReplaceText(), and remove the xub_Unicode variant
2009-08-27 Michael Stahl rename SwTxtNode::Erase() to EraseText()
2009-08-27 Michael Stahl rename SwTxtNode::Insert() to InsertText(), and remove the xub_Unicode variant
2009-08-27 Michael Stahl clean up SwTxtNode::Update()
2009-08-27 Michael Stahl remove SwTxtAttr::RemoveFromPool() and make destructor non-public,
to be invoked by new method SwTxtAttr::Destroy()
2009-08-27 Michael Stahl ensure that SwDoc::Insert() for item (set) returns success indicator:
replace SwRegHistory constructor with method InsertItems(), returning bool.
refactor InsAttr() so that it checks if InsertItems() succeeds.
2009-08-27 Michael Stahl move SwXTextPortionEnumeration from unoobj.hxx to unoport.hxx
2009-08-27 Michael Stahl add missing SolarMutex in SwXTextPortion methods
2009-08-27 Michael Stahl SwXTextPortion: new member m_xTextField (so the TextField property need not
be returned indirectly via SwUnoCursorHelper).
factor out function CreateSwXTextField().
2009-08-27 Michael Stahl SwXTextPortion: remove PORTION_CONTROL_CHAR and implementation of XTextField
2009-08-27 Michael Stahl remove obsolete hint SwTxtHardBlank and formats SwFmtHardBlank/SwFmtSoftHyph
2009-08-27 Michael Stahl clean up SwTxtAttr and friends:
remove many accessor methods for obsolete (due to autofmt) char format items.
remove unused flag SwTxtAttr::m_bDontMergeAttr.
MakeRedlineTxtAttr() now dedicated function, no longer calls MakeTxtAttr().
2009-08-27 Michael Stahl remove obsolete attribute SwTxt2Lines
2009-08-27 Michael Stahl SwXTextPortionEnumeration: finish refactoring CreatePortions
change ExportHints so it always returns a text portion for hint w/ CH_TXTATR.
remove special case for handling end of paragraph.
unfortunately had to refactor the fieldmarks export as well (got in the way).
2009-08-27 Michael Stahl SwXTextPortionEnumeration: refactor CreatePortions: frames export
extract function ExportFrames() from CreatePortions().
remove (un)dead code that calls evil MovePara(fnParaCurr, fnParaEnd)
2009-08-27 Michael Stahl clean up SwXParaFrameEnumeration
2009-08-27 Michael Stahl CollectFrameAtNode: replace SwDependArr with STL based FrameDependList_t
2009-08-27 Michael Stahl SwXTextPortionEnumeration: tweak refmark/toxmark export
so ExportHints returns the portion for point marks
2009-08-27 Michael Stahl clean up SwXTextPortionEnumeration:
prefix members, remove casts, replace SvWeirdArray with STL, etc.
make CreatePortions() method a function, and remove lots of members.
extract fieldmarks function from CreatePortions.
2009-08-27 Michael Stahl remove FOREACHUNOPAM_START/END macros
2009-08-27 Michael Stahl clean up SwXTextPortion:
prefix members, remove casts, etc.
remove SwXRubyPortion: replace it with another SwXTextPortion constructor
2009-08-27 Michael Stahl #i102541# SwXReferenceMark::InsertRefMark(): use flag SETATTR_DONTEXPAND
2009-08-27 Michael Stahl rename SwTxtNode::Insert to SwTxtNode::InsertHint, and
fix constness in SwTxtNode::InsertItem
2009-08-27 Michael Stahl turn SwTxtNode::MakeTxtAttr() methods into global functions in ndhints.hxx
2009-08-27 Michael Stahl remove obsolete sw/inc/bookmrk.hxx
2009-08-27 Michael Stahl pam.cxx: fix ComparePosition functions (returned wrong result in one case)
2009-08-27 Michael Stahl #i103613# only import RDF metadata on normal open of a document
2009-09-11 kz CWS-TOOLING: integrate CWS impress176
2009-09-08 20:18:24 +0200 sj r275957 : fixed warning (shadowed variable)
2009-09-08 18:02:05 +0200 cl r275948 : #i104315# added missing tab pages
2009-09-08 17:35:18 +0200 cl r275947 : #i104866# fixed angle import
2009-09-08 17:32:53 +0200 cl r275946 : #i104841# fixed angle import
2009-09-08 17:01:25 +0200 cl r275943 : #i103935# fixed the SID_EVENTCONFIG mess
2009-09-08 14:32:57 +0200 sj r275928 : #i104685# only comments
2009-09-07 12:37:36 +0200 sj r275886 : #i104683# fixed import of bold/italic attributes for normal text shapes
2009-09-04 15:07:46 +0200 sj r275808 : #104689# fixed bullet color problem
2009-09-03 15:25:07 +0200 sj r275753 : #160200# added vertical alignment of table cells
2009-09-11 kz CWS-TOOLING: integrate CWS dv14
2009-09-10 15:16:32 +0200 sg r276035 : #160513# updated wfs scheme to accept ports
2009-09-10 07:41:47 +0200 dv r276019 : #i104942# Better renaming algorithmen
2009-08-31 13:41:11 +0200 dv r275604 : #160505# Setting APP1PRODUCTNAME must not overwrite APP1PRODUCTDEF
2009-09-11 kz CWS-TOOLING: integrate CWS jl131
2009-09-02 16:42:40 +0200 jl r275720 : #i97896#
2009-08-31 13:01:53 +0200 jl r275599 : CWS-TOOLING: rebase CWS jl131 to trunk@275331 (milestone: DEV300:m56)
2009-07-31 14:35:30 +0200 jl r274531 : CWS-TOOLING: rebase CWS jl131 to trunk@274203 (milestone: DEV300:m53)
2009-07-23 14:20:32 +0200 jl r274272 : #i79839# better error text when trying to modify shared layer without having write permission, eg. unopkg add --shared, unopkg remove --shared, unopkg reinstall --shared
2009-07-22 16:38:02 +0200 jl r274252 : #i97896# localize error message for lock file
2009-07-22 16:37:22 +0200 jl r274251 : #i80462# unprecise wording in updatedialog
2009-07-22 16:36:06 +0200 jl r274250 : #i97896# localize error message for lock file
2009-07-22 16:35:20 +0200 jl r274249 : #i97896# localize error message for lock file
2009-07-22 15:07:30 +0200 jl r274242 : #i98873# minimum java version is 1.5 since OOo 3.0
2009-09-11 kz CWS-TOOLING: integrate CWS changehc
2009-08-31 19:38:50 +0200 pl r275633 : remove dbug printf
2009-08-31 17:41:50 +0200 pl r275623 : CWS-TOOLING: rebase CWS changehc to trunk@275331 (milestone: DEV300:m56)
2009-07-15 19:45:46 +0200 pl r274028 : #i35482# use HC flag to decide high contrast mode
2009-07-15 17:40:52 +0200 pl r274020 : #i35482# use HC flag to decide high contrast mode
2009-07-15 17:39:50 +0200 pl r274019 : #i35482# update autohc correctly in MergeSystemSettings
2009-07-15 17:38:57 +0200 pl r274018 : #i35482# update autohc correctly in MergeSystemSettings
2009-09-11 kz CWS-TOOLING: integrate CWS notes10
2009-08-24 07:25:57 +0200 mod r275287 : 2009-07-26 02:38:32 +0200 mod r274343 : #i#i103645#
2009-07-26 02:01:53 +0200 mod r274342 : #i103645#
2009-07-26 01:52:42 +0200 mod r274341 : #i103490#
2009-07-22 08:31:48 +0200 mod r274215 : #i103373#
2009-07-15 00:55:11 +0200 mod r273987 : #i101419#
2009-07-14 07:07:55 +0200 mod r273956 : #i101419#
2009-07-14 07:07:43 +0200 mod r273955 : #i101419#
2009-07-14 07:02:10 +0200 mod r273954 : changes from notes9
2009-07-14 06:14:25 +0200 mod r273953 : #i103476#
2009-09-11 kz CWS-TOOLING: integrate CWS ab70
2009-09-10 15:12:54 +0200 jsk r276034 : #i85434# - mandatory automatic update test
2009-09-10 15:11:06 +0200 jsk r276033 : #i85434# - mandatory automatic update test
2009-09-02 09:49:24 +0200 ab r275698 : #i85434# Dialog Import
2009-09-11 kz CWS-TOOLING: integrate CWS hb32bugs02
2009-09-02 Henning Brinkmann #i102420# revert changes
2009-08-26 Henning Brinkmann merged DEV300_m56
2009-08-19 Henning Brinkmann merged DEV300_m55
2009-08-14 Henning Brinkmann merged changes from wntmsci12
2009-08-12 Henning Brinkmann Implemented NoSpaceEdit constructor and destructor in .cxx to allow compile with debug on wntmsci12.
2009-08-12 Henning Brinkmann Added some SW_DLLPUBLIC to make compilable on wntmsci12.
2009-08-11 Henning Brinkmann #i102420# dbg_out: surround output for SwNodes with <nodes-array>.
2009-08-10 Henning Brinkmann #i102420# rewritten debug output for SwNodes.
2009-08-07 Henning Brinkmann #i102420# debug _MoveNodes: output the destination, too. Break after two iterations.
2009-08-07 Henning Brinkmann #i102420# _MoveNodes: Additionally check if destination index is inside source => false
Check if current range was already handled => loop
Debug output current range
2009-08-06 Henning Brinkmann merged DEV300_m54
2009-08-06 Henning Brinkmann added master fix
2009-08-06 Henning Brinkmann debug output for SwNodeRange
2009-08-04 Henning Brinkmann #i102844# robustness: check for NULL pointer to prevent crash
2009-08-03 Henning Brinkmann #i103475# applied patch and verified
2009-08-03 Henning Brinkmann Removed code preventing build of sw with DEBUG.
2009-09-11 convert-repo update tags
2009-09-10 kz CWS-TOOLING: integrate CWS os2port06dev300
2009-09-05 22:49:00 +0200 ydario r275858 : #i99588# applied os2port06 diff to DEV300 tree.
2009-09-10 kz CWS-TOOLING: integrate CWS mingwport23
2009-08-29 07:07:53 +0200 tono r275555 : i#104522: mingw port graphite
2009-08-29 07:07:26 +0200 tono r275554 : i#104522: mingw port printf format fix
2009-09-10 kz CWS-TOOLING: integrate CWS mh232
2009-08-26 03:52:57 +0200 mh r275385 : #i102182# FreeBSD patch
2009-08-26 03:43:20 +0200 mh r275384 : #i101333# patch for FreeBSD
2009-08-26 03:11:20 +0200 mh r275383 : #i39230
2009-08-26 03:07:51 +0200 mh r275382 : #i39230# more space for initials field
2009-08-26 02:41:19 +0200 mh r275380 : #i39230# use vos::osecurity for reading the user name
2009-08-18 22:06:00 +0200 mh r275130 : #i104243#, line ending problem with newer perl
2009-08-18 21:53:21 +0200 mh r275129 : #i39230# read initials via getpwnam
2009-08-18 21:34:05 +0200 mh r275128 : enable CAIROCANVAS for Linux and Mac, #i88613#
2009-08-17 18:02:59 +0200 mh r275067 : #i95498# make compile with gcc3
2009-09-10 kz CWS-TOOLING: integrate CWS tkr24
2009-09-07 14:31:06 +0200 is r275898 : #160081# adding NO_LICENSE_INTO_COPYRIGHT
2009-09-10 releng #i10000# change KeyMapping to SingletonRef<framework::KeyMapping>
2009-09-11 convert-repo update tags
2009-09-10 kz CWS-TOOLING: integrate CWS os2port06dev300
2009-09-05 22:49:00 +0200 ydario r275858 : #i99588# applied os2port06 diff to DEV300 tree.
2009-09-10 kz CWS-TOOLING: integrate CWS mingwport23
2009-08-29 07:07:53 +0200 tono r275555 : i#104522: mingw port graphite
2009-08-29 07:07:26 +0200 tono r275554 : i#104522: mingw port printf format fix
2009-09-10 kz CWS-TOOLING: integrate CWS mh232
2009-08-26 03:52:57 +0200 mh r275385 : #i102182# FreeBSD patch
2009-08-26 03:43:20 +0200 mh r275384 : #i101333# patch for FreeBSD
2009-08-26 03:11:20 +0200 mh r275383 : #i39230
2009-08-26 03:07:51 +0200 mh r275382 : #i39230# more space for initials field
2009-08-26 02:41:19 +0200 mh r275380 : #i39230# use vos::osecurity for reading the user name
2009-08-18 22:06:00 +0200 mh r275130 : #i104243#, line ending problem with newer perl
2009-08-18 21:53:21 +0200 mh r275129 : #i39230# read initials via getpwnam
2009-08-18 21:34:05 +0200 mh r275128 : enable CAIROCANVAS for Linux and Mac, #i88613#
2009-08-17 18:02:59 +0200 mh r275067 : #i95498# make compile with gcc3
2009-09-10 kz CWS-TOOLING: integrate CWS tkr24
2009-09-07 14:31:06 +0200 is r275898 : #160081# adding NO_LICENSE_INTO_COPYRIGHT
2009-09-10 releng #i10000# change KeyMapping to SingletonRef<framework::KeyMapping>
2009-09-11 14:29:45 +00:00
|
|
|
|
{
|
|
|
|
|
pDoc->InsertPoolItem( rPam, *GetDfltAttr( aWhichIds[ n ] ),
|
|
|
|
|
nsSetAttrMode::SETATTR_DONTEXPAND );
|
|
|
|
|
}
|
2000-09-18 23:08:29 +00:00
|
|
|
|
|
|
|
|
|
pDoc->SetRedlineMode_intern( eOld );
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
int SwRedlineExtraData_Format::operator == ( const SwRedlineExtraData& rCmp ) const
|
|
|
|
|
{
|
2002-02-22 11:00:10 +00:00
|
|
|
|
int nRet = 1;
|
|
|
|
|
USHORT n = 0, nEnd = aWhichIds.Count();
|
|
|
|
|
if( nEnd != ((SwRedlineExtraData_Format&)rCmp).aWhichIds.Count() )
|
|
|
|
|
nRet = 0;
|
|
|
|
|
else
|
|
|
|
|
for( ; n < nEnd; ++n )
|
|
|
|
|
if( ((SwRedlineExtraData_Format&)rCmp).aWhichIds[n] != aWhichIds[n])
|
|
|
|
|
{
|
|
|
|
|
nRet = 0;
|
|
|
|
|
break;
|
|
|
|
|
}
|
|
|
|
|
return nRet;
|
2000-09-18 23:08:29 +00:00
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
/* */
|
|
|
|
|
|
2007-09-27 07:36:43 +00:00
|
|
|
|
SwRedlineData::SwRedlineData( RedlineType_t eT, USHORT nAut )
|
2004-06-16 08:38:35 +00:00
|
|
|
|
: pNext( 0 ), pExtraData( 0 ), eType( eT ), nAuthor( nAut ), nSeqNo( 0 )
|
2000-09-18 23:08:29 +00:00
|
|
|
|
{
|
|
|
|
|
aStamp.SetSec( 0 );
|
|
|
|
|
aStamp.Set100Sec( 0 );
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
SwRedlineData::SwRedlineData( const SwRedlineData& rCpy, BOOL bCpyNext )
|
2004-06-16 08:38:35 +00:00
|
|
|
|
:
|
|
|
|
|
pNext( (bCpyNext && rCpy.pNext) ? new SwRedlineData( *rCpy.pNext ) : 0 ),
|
2000-09-18 23:08:29 +00:00
|
|
|
|
pExtraData( rCpy.pExtraData ? rCpy.pExtraData->CreateNew() : 0 ),
|
2004-06-16 08:38:35 +00:00
|
|
|
|
sComment( rCpy.sComment ), aStamp( rCpy.aStamp ), eType( rCpy.eType ),
|
|
|
|
|
nAuthor( rCpy.nAuthor ), nSeqNo( rCpy.nSeqNo )
|
2000-09-18 23:08:29 +00:00
|
|
|
|
{
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
// fuer sw3io: pNext geht in eigenen Besitz ueber!
|
2007-09-27 07:36:43 +00:00
|
|
|
|
SwRedlineData::SwRedlineData(RedlineType_t eT, USHORT nAut, const DateTime& rDT,
|
2004-06-16 08:38:35 +00:00
|
|
|
|
const String& rCmnt, SwRedlineData *pNxt, SwRedlineExtraData* pData)
|
|
|
|
|
: pNext(pNxt), pExtraData(pData), sComment(rCmnt), aStamp(rDT),
|
|
|
|
|
eType(eT), nAuthor(nAut), nSeqNo(0)
|
2000-09-18 23:08:29 +00:00
|
|
|
|
{
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
SwRedlineData::~SwRedlineData()
|
|
|
|
|
{
|
|
|
|
|
delete pExtraData;
|
|
|
|
|
delete pNext;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
// ExtraData wird kopiert, der Pointer geht also NICHT in den Besitz
|
|
|
|
|
// des RedlineObjectes!
|
|
|
|
|
void SwRedlineData::SetExtraData( const SwRedlineExtraData* pData )
|
|
|
|
|
{
|
|
|
|
|
delete pExtraData;
|
|
|
|
|
|
|
|
|
|
if( pData )
|
|
|
|
|
pExtraData = pData->CreateNew();
|
|
|
|
|
else
|
|
|
|
|
pExtraData = 0;
|
|
|
|
|
}
|
|
|
|
|
|
2004-05-18 13:02:15 +00:00
|
|
|
|
// #111827#
|
|
|
|
|
String SwRedlineData::GetDescr() const
|
|
|
|
|
{
|
|
|
|
|
String aResult;
|
|
|
|
|
|
|
|
|
|
aResult += String(SW_RES(STR_REDLINE_INSERT + GetType()));
|
|
|
|
|
|
|
|
|
|
return aResult;
|
|
|
|
|
}
|
|
|
|
|
|
2000-09-18 23:08:29 +00:00
|
|
|
|
/* */
|
|
|
|
|
|
2007-09-27 07:36:43 +00:00
|
|
|
|
SwRedline::SwRedline(RedlineType_t eTyp, const SwPaM& rPam )
|
2000-09-18 23:08:29 +00:00
|
|
|
|
: SwPaM( *rPam.GetMark(), *rPam.GetPoint() ),
|
2004-06-16 08:38:35 +00:00
|
|
|
|
pRedlineData( new SwRedlineData( eTyp, GetDoc()->GetRedlineAuthor() ) ),
|
|
|
|
|
pCntntSect( 0 )
|
2000-09-18 23:08:29 +00:00
|
|
|
|
{
|
|
|
|
|
bDelLastPara = bIsLastParaDelete = FALSE;
|
|
|
|
|
bIsVisible = TRUE;
|
|
|
|
|
if( !rPam.HasMark() )
|
|
|
|
|
DeleteMark();
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
SwRedline::SwRedline( const SwRedlineData& rData, const SwPaM& rPam )
|
|
|
|
|
: SwPaM( *rPam.GetMark(), *rPam.GetPoint() ),
|
2004-06-16 08:38:35 +00:00
|
|
|
|
pRedlineData( new SwRedlineData( rData )),
|
|
|
|
|
pCntntSect( 0 )
|
2000-09-18 23:08:29 +00:00
|
|
|
|
{
|
|
|
|
|
bDelLastPara = bIsLastParaDelete = FALSE;
|
|
|
|
|
bIsVisible = TRUE;
|
|
|
|
|
if( !rPam.HasMark() )
|
|
|
|
|
DeleteMark();
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
SwRedline::SwRedline( const SwRedlineData& rData, const SwPosition& rPos )
|
|
|
|
|
: SwPaM( rPos ),
|
2004-06-16 08:38:35 +00:00
|
|
|
|
pRedlineData( new SwRedlineData( rData )),
|
|
|
|
|
pCntntSect( 0 )
|
2000-09-18 23:08:29 +00:00
|
|
|
|
{
|
|
|
|
|
bDelLastPara = bIsLastParaDelete = FALSE;
|
|
|
|
|
bIsVisible = TRUE;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
SwRedline::SwRedline( const SwRedline& rCpy )
|
|
|
|
|
: SwPaM( *rCpy.GetMark(), *rCpy.GetPoint() ),
|
2004-06-16 08:38:35 +00:00
|
|
|
|
pRedlineData( new SwRedlineData( *rCpy.pRedlineData )),
|
|
|
|
|
pCntntSect( 0 )
|
2000-09-18 23:08:29 +00:00
|
|
|
|
{
|
|
|
|
|
bDelLastPara = bIsLastParaDelete = FALSE;
|
|
|
|
|
bIsVisible = TRUE;
|
|
|
|
|
if( !rCpy.HasMark() )
|
|
|
|
|
DeleteMark();
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
SwRedline::~SwRedline()
|
|
|
|
|
{
|
|
|
|
|
if( pCntntSect )
|
|
|
|
|
{
|
|
|
|
|
// dann den Content Bereich loeschen
|
|
|
|
|
if( !GetDoc()->IsInDtor() )
|
|
|
|
|
GetDoc()->DeleteSection( &pCntntSect->GetNode() );
|
|
|
|
|
delete pCntntSect;
|
|
|
|
|
}
|
|
|
|
|
delete pRedlineData;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
// liegt eine gueltige Selektion vor?
|
|
|
|
|
BOOL SwRedline::HasValidRange() const
|
|
|
|
|
{
|
|
|
|
|
const SwNode* pPtNd = &GetPoint()->nNode.GetNode(),
|
|
|
|
|
* pMkNd = &GetMark()->nNode.GetNode();
|
2006-08-14 14:59:18 +00:00
|
|
|
|
if( pPtNd->StartOfSectionNode() == pMkNd->StartOfSectionNode() &&
|
|
|
|
|
!pPtNd->StartOfSectionNode()->IsTableNode() &&
|
2001-05-18 13:44:24 +00:00
|
|
|
|
// JP 18.5.2001: Bug 87222 - invalid if points on the end of content
|
2002-03-25 15:02:23 +00:00
|
|
|
|
// DVO 25.03.2002: #96530# end-of-content only invalid if no content
|
|
|
|
|
// index exists
|
|
|
|
|
( pPtNd != pMkNd || GetContentIdx() != NULL ||
|
|
|
|
|
pPtNd != &pPtNd->GetNodes().GetEndOfContent() )
|
2001-05-18 13:44:24 +00:00
|
|
|
|
)
|
2000-09-18 23:08:29 +00:00
|
|
|
|
return TRUE;
|
|
|
|
|
return FALSE;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
void SwRedline::CallDisplayFunc( USHORT nLoop )
|
|
|
|
|
{
|
2007-09-27 07:36:43 +00:00
|
|
|
|
switch( nsRedlineMode_t::REDLINE_SHOW_MASK & GetDoc()->GetRedlineMode() )
|
2000-09-18 23:08:29 +00:00
|
|
|
|
{
|
2007-09-27 07:36:43 +00:00
|
|
|
|
case nsRedlineMode_t::REDLINE_SHOW_INSERT | nsRedlineMode_t::REDLINE_SHOW_DELETE:
|
2000-09-18 23:08:29 +00:00
|
|
|
|
Show( nLoop );
|
|
|
|
|
break;
|
2007-09-27 07:36:43 +00:00
|
|
|
|
case nsRedlineMode_t::REDLINE_SHOW_INSERT:
|
2000-09-18 23:08:29 +00:00
|
|
|
|
Hide( nLoop );
|
|
|
|
|
break;
|
2007-09-27 07:36:43 +00:00
|
|
|
|
case nsRedlineMode_t::REDLINE_SHOW_DELETE:
|
2000-09-18 23:08:29 +00:00
|
|
|
|
ShowOriginal( nLoop );
|
|
|
|
|
break;
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
void SwRedline::Show( USHORT nLoop )
|
|
|
|
|
{
|
|
|
|
|
if( 1 <= nLoop )
|
|
|
|
|
{
|
|
|
|
|
SwDoc* pDoc = GetDoc();
|
2007-09-27 07:36:43 +00:00
|
|
|
|
RedlineMode_t eOld = pDoc->GetRedlineMode();
|
|
|
|
|
pDoc->SetRedlineMode_intern((RedlineMode_t)(eOld | nsRedlineMode_t::REDLINE_IGNORE));
|
2000-09-18 23:08:29 +00:00
|
|
|
|
BOOL bUndo = pDoc->DoesUndo();
|
|
|
|
|
pDoc->DoUndo( FALSE );
|
|
|
|
|
|
|
|
|
|
switch( GetType() )
|
|
|
|
|
{
|
2007-09-27 07:36:43 +00:00
|
|
|
|
case nsRedlineType_t::REDLINE_INSERT: // Inhalt wurde eingefuegt
|
2000-09-18 23:08:29 +00:00
|
|
|
|
bIsVisible = TRUE;
|
|
|
|
|
MoveFromSection();
|
|
|
|
|
break;
|
|
|
|
|
|
2007-09-27 07:36:43 +00:00
|
|
|
|
case nsRedlineType_t::REDLINE_DELETE: // Inhalt wurde geloescht
|
2000-09-18 23:08:29 +00:00
|
|
|
|
bIsVisible = TRUE;
|
|
|
|
|
MoveFromSection();
|
|
|
|
|
break;
|
|
|
|
|
|
2007-09-27 07:36:43 +00:00
|
|
|
|
case nsRedlineType_t::REDLINE_FORMAT: // Attributierung wurde angewendet
|
|
|
|
|
case nsRedlineType_t::REDLINE_TABLE: // TabellenStruktur wurde veraendert
|
2000-09-18 23:08:29 +00:00
|
|
|
|
InvalidateRange();
|
|
|
|
|
break;
|
2004-06-16 08:38:35 +00:00
|
|
|
|
default:
|
|
|
|
|
break;
|
2000-09-18 23:08:29 +00:00
|
|
|
|
}
|
|
|
|
|
pDoc->SetRedlineMode_intern( eOld );
|
|
|
|
|
pDoc->DoUndo( bUndo );
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
void SwRedline::Hide( USHORT nLoop )
|
|
|
|
|
{
|
|
|
|
|
SwDoc* pDoc = GetDoc();
|
2007-09-27 07:36:43 +00:00
|
|
|
|
RedlineMode_t eOld = pDoc->GetRedlineMode();
|
|
|
|
|
pDoc->SetRedlineMode_intern((RedlineMode_t)(eOld | nsRedlineMode_t::REDLINE_IGNORE));
|
2000-09-18 23:08:29 +00:00
|
|
|
|
BOOL bUndo = pDoc->DoesUndo();
|
|
|
|
|
pDoc->DoUndo( FALSE );
|
|
|
|
|
|
|
|
|
|
switch( GetType() )
|
|
|
|
|
{
|
2007-09-27 07:36:43 +00:00
|
|
|
|
case nsRedlineType_t::REDLINE_INSERT: // Inhalt wurde eingefuegt
|
2000-09-18 23:08:29 +00:00
|
|
|
|
bIsVisible = TRUE;
|
|
|
|
|
if( 1 <= nLoop )
|
|
|
|
|
MoveFromSection();
|
|
|
|
|
break;
|
|
|
|
|
|
2007-09-27 07:36:43 +00:00
|
|
|
|
case nsRedlineType_t::REDLINE_DELETE: // Inhalt wurde geloescht
|
2000-09-18 23:08:29 +00:00
|
|
|
|
bIsVisible = FALSE;
|
|
|
|
|
switch( nLoop )
|
|
|
|
|
{
|
|
|
|
|
case 0: MoveToSection(); break;
|
|
|
|
|
case 1: CopyToSection(); break;
|
|
|
|
|
case 2: DelCopyOfSection(); break;
|
|
|
|
|
}
|
|
|
|
|
break;
|
|
|
|
|
|
2007-09-27 07:36:43 +00:00
|
|
|
|
case nsRedlineType_t::REDLINE_FORMAT: // Attributierung wurde angewendet
|
|
|
|
|
case nsRedlineType_t::REDLINE_TABLE: // TabellenStruktur wurde veraendert
|
2000-09-18 23:08:29 +00:00
|
|
|
|
if( 1 <= nLoop )
|
|
|
|
|
InvalidateRange();
|
|
|
|
|
break;
|
2004-06-16 08:38:35 +00:00
|
|
|
|
default:
|
|
|
|
|
break;
|
2000-09-18 23:08:29 +00:00
|
|
|
|
}
|
|
|
|
|
pDoc->SetRedlineMode_intern( eOld );
|
|
|
|
|
pDoc->DoUndo( bUndo );
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
void SwRedline::ShowOriginal( USHORT nLoop )
|
|
|
|
|
{
|
|
|
|
|
SwDoc* pDoc = GetDoc();
|
2007-09-27 07:36:43 +00:00
|
|
|
|
RedlineMode_t eOld = pDoc->GetRedlineMode();
|
2003-12-01 15:35:02 +00:00
|
|
|
|
SwRedlineData* pCur;
|
|
|
|
|
|
2007-09-27 07:36:43 +00:00
|
|
|
|
pDoc->SetRedlineMode_intern((RedlineMode_t)(eOld | nsRedlineMode_t::REDLINE_IGNORE));
|
2000-09-18 23:08:29 +00:00
|
|
|
|
BOOL bUndo = pDoc->DoesUndo();
|
|
|
|
|
pDoc->DoUndo( FALSE );
|
|
|
|
|
|
|
|
|
|
// bestimme den Type, ist der erste auf Stack
|
2003-12-01 15:35:02 +00:00
|
|
|
|
for( pCur = pRedlineData; pCur->pNext; )
|
2000-09-18 23:08:29 +00:00
|
|
|
|
pCur = pCur->pNext;
|
|
|
|
|
|
|
|
|
|
switch( pCur->eType )
|
|
|
|
|
{
|
2007-09-27 07:36:43 +00:00
|
|
|
|
case nsRedlineType_t::REDLINE_INSERT: // Inhalt wurde eingefuegt
|
2000-09-18 23:08:29 +00:00
|
|
|
|
bIsVisible = FALSE;
|
|
|
|
|
switch( nLoop )
|
|
|
|
|
{
|
|
|
|
|
case 0: MoveToSection(); break;
|
|
|
|
|
case 1: CopyToSection(); break;
|
|
|
|
|
case 2: DelCopyOfSection(); break;
|
|
|
|
|
}
|
|
|
|
|
break;
|
|
|
|
|
|
2007-09-27 07:36:43 +00:00
|
|
|
|
case nsRedlineType_t::REDLINE_DELETE: // Inhalt wurde geloescht
|
2000-09-18 23:08:29 +00:00
|
|
|
|
bIsVisible = TRUE;
|
|
|
|
|
if( 1 <= nLoop )
|
|
|
|
|
MoveFromSection();
|
|
|
|
|
break;
|
|
|
|
|
|
2007-09-27 07:36:43 +00:00
|
|
|
|
case nsRedlineType_t::REDLINE_FORMAT: // Attributierung wurde angewendet
|
|
|
|
|
case nsRedlineType_t::REDLINE_TABLE: // TabellenStruktur wurde veraendert
|
2000-09-18 23:08:29 +00:00
|
|
|
|
if( 1 <= nLoop )
|
|
|
|
|
InvalidateRange();
|
|
|
|
|
break;
|
2004-06-16 08:38:35 +00:00
|
|
|
|
default:
|
|
|
|
|
break;
|
2000-09-18 23:08:29 +00:00
|
|
|
|
}
|
|
|
|
|
pDoc->SetRedlineMode_intern( eOld );
|
|
|
|
|
pDoc->DoUndo( bUndo );
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
void SwRedline::InvalidateRange() // das Layout anstossen
|
|
|
|
|
{
|
|
|
|
|
ULONG nSttNd = GetMark()->nNode.GetIndex(),
|
|
|
|
|
nEndNd = GetPoint()->nNode.GetIndex();
|
|
|
|
|
USHORT nSttCnt = GetMark()->nContent.GetIndex(),
|
|
|
|
|
nEndCnt = GetPoint()->nContent.GetIndex();
|
|
|
|
|
|
|
|
|
|
if( nSttNd > nEndNd || ( nSttNd == nEndNd && nSttCnt > nEndCnt ))
|
|
|
|
|
{
|
|
|
|
|
ULONG nTmp = nSttNd; nSttNd = nEndNd; nEndNd = nTmp;
|
|
|
|
|
nTmp = nSttCnt; nSttCnt = nEndCnt; nEndCnt = (USHORT)nTmp;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
SwUpdateAttr aHt( 0, 0, RES_FMT_CHG );
|
|
|
|
|
SwNodes& rNds = GetDoc()->GetNodes();
|
|
|
|
|
SwNode* pNd;
|
|
|
|
|
for( ULONG n = nSttNd; n <= nEndNd; ++n )
|
|
|
|
|
if( ND_TEXTNODE == ( pNd = rNds[ n ] )->GetNodeType() )
|
|
|
|
|
{
|
|
|
|
|
aHt.nStart = n == nSttNd ? nSttCnt : 0;
|
|
|
|
|
aHt.nEnd = n == nEndNd ? nEndCnt : ((SwTxtNode*)pNd)->GetTxt().Len();
|
|
|
|
|
((SwTxtNode*)pNd)->Modify( &aHt, &aHt );
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
2001-04-27 12:33:52 +00:00
|
|
|
|
/*************************************************************************
|
|
|
|
|
* SwRedline::CalcStartEnd()
|
|
|
|
|
* Calculates the start and end position of the intersection rTmp and
|
|
|
|
|
* text node nNdIdx
|
|
|
|
|
*************************************************************************/
|
|
|
|
|
|
2005-04-18 13:33:00 +00:00
|
|
|
|
void SwRedline::CalcStartEnd( ULONG nNdIdx, USHORT& nStart, USHORT& nEnd ) const
|
2001-04-27 12:33:52 +00:00
|
|
|
|
{
|
|
|
|
|
const SwPosition *pRStt = Start(), *pREnd = End();
|
|
|
|
|
if( pRStt->nNode < nNdIdx )
|
|
|
|
|
{
|
|
|
|
|
if( pREnd->nNode > nNdIdx )
|
|
|
|
|
{
|
|
|
|
|
nStart = 0; // Absatz ist komplett enthalten
|
|
|
|
|
nEnd = STRING_LEN;
|
|
|
|
|
}
|
|
|
|
|
else
|
|
|
|
|
{
|
|
|
|
|
ASSERT( pREnd->nNode == nNdIdx,
|
|
|
|
|
"SwRedlineItr::Seek: GetRedlinePos Error" );
|
|
|
|
|
nStart = 0; // Absatz wird vorne ueberlappt
|
|
|
|
|
nEnd = pREnd->nContent.GetIndex();
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
else if( pRStt->nNode == nNdIdx )
|
|
|
|
|
{
|
|
|
|
|
nStart = pRStt->nContent.GetIndex();
|
|
|
|
|
if( pREnd->nNode == nNdIdx )
|
|
|
|
|
nEnd = pREnd->nContent.GetIndex(); // Innerhalb des Absatzes
|
|
|
|
|
else
|
|
|
|
|
nEnd = STRING_LEN; // Absatz wird hinten ueberlappt
|
|
|
|
|
}
|
|
|
|
|
else
|
|
|
|
|
{
|
|
|
|
|
nStart = STRING_LEN;
|
|
|
|
|
nEnd = STRING_LEN;
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
2000-09-18 23:08:29 +00:00
|
|
|
|
void SwRedline::MoveToSection()
|
|
|
|
|
{
|
|
|
|
|
if( !pCntntSect )
|
|
|
|
|
{
|
|
|
|
|
const SwPosition* pStt = Start(),
|
|
|
|
|
* pEnd = pStt == GetPoint() ? GetMark() : GetPoint();
|
|
|
|
|
|
|
|
|
|
SwDoc* pDoc = GetDoc();
|
|
|
|
|
SwPaM aPam( *pStt, *pEnd );
|
|
|
|
|
SwCntntNode* pCSttNd = pStt->nNode.GetNode().GetCntntNode();
|
|
|
|
|
SwCntntNode* pCEndNd = pEnd->nNode.GetNode().GetCntntNode();
|
|
|
|
|
|
|
|
|
|
if( !pCSttNd )
|
|
|
|
|
{
|
|
|
|
|
// damit die Indizies der anderen Redlines nicht mitverschoben
|
|
|
|
|
// werden, diese aufs Ende setzen (ist exclusive).
|
|
|
|
|
const SwRedlineTbl& rTbl = pDoc->GetRedlineTbl();
|
|
|
|
|
for( USHORT n = 0; n < rTbl.Count(); ++n )
|
|
|
|
|
{
|
|
|
|
|
SwRedline* pRedl = rTbl[ n ];
|
|
|
|
|
if( pRedl->GetBound(TRUE) == *pStt )
|
|
|
|
|
pRedl->GetBound(TRUE) = *pEnd;
|
|
|
|
|
if( pRedl->GetBound(FALSE) == *pStt )
|
|
|
|
|
pRedl->GetBound(FALSE) = *pEnd;
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
SwStartNode* pSttNd;
|
|
|
|
|
SwNodes& rNds = pDoc->GetNodes();
|
|
|
|
|
if( pCSttNd || pCEndNd )
|
|
|
|
|
{
|
|
|
|
|
SwTxtFmtColl* pColl = (pCSttNd && pCSttNd->IsTxtNode() )
|
|
|
|
|
? ((SwTxtNode*)pCSttNd)->GetTxtColl()
|
|
|
|
|
: (pCEndNd && pCEndNd->IsTxtNode() )
|
|
|
|
|
? ((SwTxtNode*)pCEndNd)->GetTxtColl()
|
|
|
|
|
: pDoc->GetTxtCollFromPool(
|
|
|
|
|
RES_POOLCOLL_STANDARD );
|
|
|
|
|
|
|
|
|
|
pSttNd = rNds.MakeTextSection( SwNodeIndex( rNds.GetEndOfRedlines() ),
|
|
|
|
|
SwNormalStartNode, pColl );
|
|
|
|
|
SwTxtNode* pTxtNd = rNds[ pSttNd->GetIndex() + 1 ]->GetTxtNode();
|
|
|
|
|
|
|
|
|
|
SwNodeIndex aNdIdx( *pTxtNd );
|
|
|
|
|
SwPosition aPos( aNdIdx, SwIndex( pTxtNd ));
|
|
|
|
|
if( pCSttNd && pCEndNd )
|
2006-08-14 14:59:18 +00:00
|
|
|
|
pDoc->MoveAndJoin( aPam, aPos, IDocumentContentOperations::DOC_MOVEDEFAULT );
|
2000-09-18 23:08:29 +00:00
|
|
|
|
else
|
|
|
|
|
{
|
|
|
|
|
if( pCSttNd && !pCEndNd )
|
|
|
|
|
bDelLastPara = TRUE;
|
CWS-TOOLING: integrate CWS odfmetadata3
2009-09-11 Michael Stahl merge DEV300_m58
2009-09-07 Michael Stahl SwFmtFld::Modify(): do nothing on RES_OBJECTDYING
2009-08-27 Michael Stahl #i91565#, #i91566#: TextPortionEnumerationTest.java: add test document
2009-08-27 Michael Stahl #i91565#, #i91566#: add complex test: TextPortionEnumerationTest.java
2009-08-27 Michael Stahl CLiteral::initialize(): zero-length literals probably not an error
2009-08-27 Michael Stahl #i91565#, #i91566#: offapi: new InContentMetadata and MetadataField services
adapt TextPortion for InContentMetadata
2009-08-27 Michael Stahl #i91564#: xmloff: load/store xml:id and RDFa for text:bookmark(-start).
2009-08-27 Michael Stahl #i91564#: sw core: add support for xml:id at bookmarks:
sw::mark::Bookmark: derive from Metadatable.
SwHistoryBookmark, SaveBookmark: store a MetadatableUndo.
ndcopy.cxx: lcl_CopyBookmarks(): copy the xml:id.
SwXBookmark: derive from MetadatableMixin.
2009-08-27 Michael Stahl #i91565#, #i91566#: xmloff: refactor ruby import so nested meta(-field) works:
remove XMLRubyHint_Impl.
XMLImpRubyContext_Impl::~XMLImpRubyContext_Impl(): insert ruby directly.
2009-08-27 Michael Stahl #i91565#, #i91566#: xmloff: fix text:meta(-field) import/export:
new XMLTextParagraphExport::exportTextField() overload for XTextField.
CreateAndInsertMark(): set xml:id after insertion.
fix meta(-field) service names, bugs etc.
2009-08-27 Michael Stahl #i91565#, #i91566#: sw text formatting: paint background of meta(-field) body:
SwFont: add member m_nMetaCount.
txttypes.hxx: add POR_META.
atrstck.cxx: handle RES_TXTATR_META(FIELD).
itrform2.cxx: SwTxtFormatter::WhichTxtPor(): create new class SwMetaPortion.
2009-08-27 Michael Stahl #i91566#: sw text formatting: display meta-field prefix and suffix:
SwAttrIter::GetAttr(): replace with call to GetTxtAttrForCharAt().
SwTxtFormatter::NewExtraPortion(): handle meta-field prefix.
SwTxtFormatter: new member m_nHintEndIndex.
SwTxtFormatter::WhichFirstPortion(): call TryNewNoLengthPortion().
SwTxtFormatter::TryNewNoLengthPortion(): new; handle suffix of meta-field.
SwTxtFormatter::UnderFlow(): UGLY HACK: decrement m_nHintEndIndex.
SwFldPortion: add flag m_bNoLength: portion has zero length (for suffix).
2009-08-27 Michael Stahl #i91565#, #i91566#: extend text:meta(-field) uno wrapper with XText interface:
unoobj.hxx: new CursorType CURSOR_META.
unoobj2.cxx: refactor SwXText implementation to ensure that when the SwXText
belongs to a SwXMeta, content is always inserted inside the meta(-field).
unoobj.cxx: new SwXTextCursor::ForceIntoMeta(): cursor stays in meta(-field).
unometa.hxx: SwXMeta implements XText, forwarding to a member SwXMetaText.
DocInsertStringSplitCR(), SwX*::attachToRange(), SwX*::DeleteAndInsert():
use FORCEHINTEXPAND hack to ensure insert into the meta(-field) at the end.
2009-08-27 Michael Stahl #i91565#, #i91566#: add text:meta(-field) uno wrapper to sw:
fmtmeta.hxx, fmtatr2.cxx: new class sw::MetaField, new sw::MetaFieldManager.
doc.hxx, docnew.cxx: new SwDoc::GetMetaFieldManager().
unocoll.hxx,.cxx: new SW_SERVICE_FIELDTYPE_METAFIELD, SW_SERVICE_TYPE_META.
unomap.hxx,.cxx: new PROPERTY_MAP_METAFIELD.
unoprnms.hxx: new UNO_NAME_META.
unoport.hxx: new PORTION_META; add "InContentMetadata" prop to SwXTextPortion.
new unometa.hxx: new class SwXMeta and SwXMetaField.
unofield.cxx: SwXFieldEnumeration: include meta-fields.
unoportenum.cxx: handle RES_TXTATR_META(FIELD) by using a portion list stack.
unotext.cxx: SwXText::insertTextContent(): handle meta(-field) as attribute.
2009-08-27 Michael Stahl #i91565#, #i91566#: ndhints.cxx: remove sort number from SwTxtAttrNesting
2009-08-27 Michael Stahl #i91565#, #i91566#: add support for hints with end and CH_TXTATR to sw core:
doc.hxx, docedt.cxx: replace SwDoc::Delete(), DeleteAndJoin(), ReplaceRange()
with wrappers that split at left-overlapped end+CH_TXTATR hints.
txatbase.hxx: new member SwTxtAttr::m_bHasDummyChar.
ndtxt.hxx: rename SwTxtNode::GetTxtAttr() to GetTxtAttrForCharAt().
ndtxt.cxx: SwTxtNode::CopyText(): copy end+CH_TXTATR hints iff copy CH_TXTATR.
txtatr2.cxx, thints.cxx: SwTxtMeta gets a CH_TXTATR.
2009-08-27 Michael Stahl #i91565#, #i91566#: add text:meta(-field) to sw core:
txatbase.hxx: new member SwTxtAttr::m_bNesting.
hintids.hxx: new ids RES_TXTATR_META, RES_TXTATR_METAFIELD.
txtatr.hxx: new base class SwTxtAttrNesting.
new hint SwTxtMeta.
SwTxtRuby derives from SwTxtAttrNesting.
txtinet.hxx: SwTxtINetFmt derives from SwTxtAttrNesting.
new header fmtmeta.hxx: new pool item SwFmtMeta. new class sw::Meta.
ndhints.hxx, thints.cxx: new method SwpHints::TryInsertNesting().
thints.cxx: refactoring: BuildPortions() no longer handles Ruby/Hyperlink,
but TryInsertNesting(), which also handles meta(-field).
SwTxtNode::InsertItem(): check if the hint is actually inserted.
ndhints.cxx: sort nesting hints based on sort number.
ndtxt.cxx: lcl_CopyHint(): handle copy of meta/meta-field.
2009-08-27 Michael Stahl enable expanding hints with m_bLockExpandFlag set:
add new InsertFlag: INS_FORCEHINTEXPAND.
add new SetAttrMode: SETATTR_FORCEHINTEXPAND.
rename SwEditShell::Insert() to Insert2() because changed signature fails
to compile when SwWrtShell tries to overwrite these non-virtual members...
SwWrtShell::Insert() sets FOCEHINTEXPAND if range was selected/deleted.
adapt SwUndoInsert to store flags.
2009-08-27 Michael Stahl change formal parameters of item insertion methods to type SetAttrMode
2009-08-27 Michael Stahl fix incorrect resetting of text attributes in SwUndoInsSection, SwUndoInserts
2009-08-27 Michael Stahl clean up SwTxtNode::CutImpl() and lcl_CopyHint()
2009-08-27 Michael Stahl rename SwDoc::Copy() to CopyRange(), and _Copy() to CopyImpl()
2009-08-27 Michael Stahl rename SwNodes::Move() to MoveRange(), and remove unused parameter
2009-08-27 Michael Stahl rename SwDoc::Move() to MoveRange()/MoveNodeRange()
2009-08-27 Michael Stahl rename SwDoc::Insert() to InsertString(), and remove sal_Unicode variant
2009-08-27 Michael Stahl rename SwDoc::Insert() to InsertPoolItem()/InsertItemSet()/InsertSwSection()
2009-08-27 Michael Stahl rename SwDoc::Replace() to ReplaceRange()
2009-08-27 Michael Stahl remove SwDoc::Overwrite() sal_Unicode variant
2009-08-27 Michael Stahl split up SwDoc::DeleteAndJoin(): factor out DeleteAndJoinWithRedline()
2009-08-27 Michael Stahl rename overloaded SwDoc::Delete() to DeleteRange()/DeleteTOXMark()
2009-08-27 Michael Stahl rename SwTxtNode::Copy() to CopyText()
2009-08-27 Michael Stahl rename SwTxtNode::Cut() to CutText(), and _Cut() to CutImpl()
2009-08-27 Michael Stahl rename SwTxtNode::Delete() to DeleteAttribute()/DeleteAttributes()
2009-08-27 Michael Stahl rename SwTxtNode::Replace() to ReplaceText(), and remove the xub_Unicode variant
2009-08-27 Michael Stahl rename SwTxtNode::Erase() to EraseText()
2009-08-27 Michael Stahl rename SwTxtNode::Insert() to InsertText(), and remove the xub_Unicode variant
2009-08-27 Michael Stahl clean up SwTxtNode::Update()
2009-08-27 Michael Stahl remove SwTxtAttr::RemoveFromPool() and make destructor non-public,
to be invoked by new method SwTxtAttr::Destroy()
2009-08-27 Michael Stahl ensure that SwDoc::Insert() for item (set) returns success indicator:
replace SwRegHistory constructor with method InsertItems(), returning bool.
refactor InsAttr() so that it checks if InsertItems() succeeds.
2009-08-27 Michael Stahl move SwXTextPortionEnumeration from unoobj.hxx to unoport.hxx
2009-08-27 Michael Stahl add missing SolarMutex in SwXTextPortion methods
2009-08-27 Michael Stahl SwXTextPortion: new member m_xTextField (so the TextField property need not
be returned indirectly via SwUnoCursorHelper).
factor out function CreateSwXTextField().
2009-08-27 Michael Stahl SwXTextPortion: remove PORTION_CONTROL_CHAR and implementation of XTextField
2009-08-27 Michael Stahl remove obsolete hint SwTxtHardBlank and formats SwFmtHardBlank/SwFmtSoftHyph
2009-08-27 Michael Stahl clean up SwTxtAttr and friends:
remove many accessor methods for obsolete (due to autofmt) char format items.
remove unused flag SwTxtAttr::m_bDontMergeAttr.
MakeRedlineTxtAttr() now dedicated function, no longer calls MakeTxtAttr().
2009-08-27 Michael Stahl remove obsolete attribute SwTxt2Lines
2009-08-27 Michael Stahl SwXTextPortionEnumeration: finish refactoring CreatePortions
change ExportHints so it always returns a text portion for hint w/ CH_TXTATR.
remove special case for handling end of paragraph.
unfortunately had to refactor the fieldmarks export as well (got in the way).
2009-08-27 Michael Stahl SwXTextPortionEnumeration: refactor CreatePortions: frames export
extract function ExportFrames() from CreatePortions().
remove (un)dead code that calls evil MovePara(fnParaCurr, fnParaEnd)
2009-08-27 Michael Stahl clean up SwXParaFrameEnumeration
2009-08-27 Michael Stahl CollectFrameAtNode: replace SwDependArr with STL based FrameDependList_t
2009-08-27 Michael Stahl SwXTextPortionEnumeration: tweak refmark/toxmark export
so ExportHints returns the portion for point marks
2009-08-27 Michael Stahl clean up SwXTextPortionEnumeration:
prefix members, remove casts, replace SvWeirdArray with STL, etc.
make CreatePortions() method a function, and remove lots of members.
extract fieldmarks function from CreatePortions.
2009-08-27 Michael Stahl remove FOREACHUNOPAM_START/END macros
2009-08-27 Michael Stahl clean up SwXTextPortion:
prefix members, remove casts, etc.
remove SwXRubyPortion: replace it with another SwXTextPortion constructor
2009-08-27 Michael Stahl #i102541# SwXReferenceMark::InsertRefMark(): use flag SETATTR_DONTEXPAND
2009-08-27 Michael Stahl rename SwTxtNode::Insert to SwTxtNode::InsertHint, and
fix constness in SwTxtNode::InsertItem
2009-08-27 Michael Stahl turn SwTxtNode::MakeTxtAttr() methods into global functions in ndhints.hxx
2009-08-27 Michael Stahl remove obsolete sw/inc/bookmrk.hxx
2009-08-27 Michael Stahl pam.cxx: fix ComparePosition functions (returned wrong result in one case)
2009-08-27 Michael Stahl #i103613# only import RDF metadata on normal open of a document
2009-09-11 kz CWS-TOOLING: integrate CWS impress176
2009-09-08 20:18:24 +0200 sj r275957 : fixed warning (shadowed variable)
2009-09-08 18:02:05 +0200 cl r275948 : #i104315# added missing tab pages
2009-09-08 17:35:18 +0200 cl r275947 : #i104866# fixed angle import
2009-09-08 17:32:53 +0200 cl r275946 : #i104841# fixed angle import
2009-09-08 17:01:25 +0200 cl r275943 : #i103935# fixed the SID_EVENTCONFIG mess
2009-09-08 14:32:57 +0200 sj r275928 : #i104685# only comments
2009-09-07 12:37:36 +0200 sj r275886 : #i104683# fixed import of bold/italic attributes for normal text shapes
2009-09-04 15:07:46 +0200 sj r275808 : #104689# fixed bullet color problem
2009-09-03 15:25:07 +0200 sj r275753 : #160200# added vertical alignment of table cells
2009-09-11 kz CWS-TOOLING: integrate CWS dv14
2009-09-10 15:16:32 +0200 sg r276035 : #160513# updated wfs scheme to accept ports
2009-09-10 07:41:47 +0200 dv r276019 : #i104942# Better renaming algorithmen
2009-08-31 13:41:11 +0200 dv r275604 : #160505# Setting APP1PRODUCTNAME must not overwrite APP1PRODUCTDEF
2009-09-11 kz CWS-TOOLING: integrate CWS jl131
2009-09-02 16:42:40 +0200 jl r275720 : #i97896#
2009-08-31 13:01:53 +0200 jl r275599 : CWS-TOOLING: rebase CWS jl131 to trunk@275331 (milestone: DEV300:m56)
2009-07-31 14:35:30 +0200 jl r274531 : CWS-TOOLING: rebase CWS jl131 to trunk@274203 (milestone: DEV300:m53)
2009-07-23 14:20:32 +0200 jl r274272 : #i79839# better error text when trying to modify shared layer without having write permission, eg. unopkg add --shared, unopkg remove --shared, unopkg reinstall --shared
2009-07-22 16:38:02 +0200 jl r274252 : #i97896# localize error message for lock file
2009-07-22 16:37:22 +0200 jl r274251 : #i80462# unprecise wording in updatedialog
2009-07-22 16:36:06 +0200 jl r274250 : #i97896# localize error message for lock file
2009-07-22 16:35:20 +0200 jl r274249 : #i97896# localize error message for lock file
2009-07-22 15:07:30 +0200 jl r274242 : #i98873# minimum java version is 1.5 since OOo 3.0
2009-09-11 kz CWS-TOOLING: integrate CWS changehc
2009-08-31 19:38:50 +0200 pl r275633 : remove dbug printf
2009-08-31 17:41:50 +0200 pl r275623 : CWS-TOOLING: rebase CWS changehc to trunk@275331 (milestone: DEV300:m56)
2009-07-15 19:45:46 +0200 pl r274028 : #i35482# use HC flag to decide high contrast mode
2009-07-15 17:40:52 +0200 pl r274020 : #i35482# use HC flag to decide high contrast mode
2009-07-15 17:39:50 +0200 pl r274019 : #i35482# update autohc correctly in MergeSystemSettings
2009-07-15 17:38:57 +0200 pl r274018 : #i35482# update autohc correctly in MergeSystemSettings
2009-09-11 kz CWS-TOOLING: integrate CWS notes10
2009-08-24 07:25:57 +0200 mod r275287 : 2009-07-26 02:38:32 +0200 mod r274343 : #i#i103645#
2009-07-26 02:01:53 +0200 mod r274342 : #i103645#
2009-07-26 01:52:42 +0200 mod r274341 : #i103490#
2009-07-22 08:31:48 +0200 mod r274215 : #i103373#
2009-07-15 00:55:11 +0200 mod r273987 : #i101419#
2009-07-14 07:07:55 +0200 mod r273956 : #i101419#
2009-07-14 07:07:43 +0200 mod r273955 : #i101419#
2009-07-14 07:02:10 +0200 mod r273954 : changes from notes9
2009-07-14 06:14:25 +0200 mod r273953 : #i103476#
2009-09-11 kz CWS-TOOLING: integrate CWS ab70
2009-09-10 15:12:54 +0200 jsk r276034 : #i85434# - mandatory automatic update test
2009-09-10 15:11:06 +0200 jsk r276033 : #i85434# - mandatory automatic update test
2009-09-02 09:49:24 +0200 ab r275698 : #i85434# Dialog Import
2009-09-11 kz CWS-TOOLING: integrate CWS hb32bugs02
2009-09-02 Henning Brinkmann #i102420# revert changes
2009-08-26 Henning Brinkmann merged DEV300_m56
2009-08-19 Henning Brinkmann merged DEV300_m55
2009-08-14 Henning Brinkmann merged changes from wntmsci12
2009-08-12 Henning Brinkmann Implemented NoSpaceEdit constructor and destructor in .cxx to allow compile with debug on wntmsci12.
2009-08-12 Henning Brinkmann Added some SW_DLLPUBLIC to make compilable on wntmsci12.
2009-08-11 Henning Brinkmann #i102420# dbg_out: surround output for SwNodes with <nodes-array>.
2009-08-10 Henning Brinkmann #i102420# rewritten debug output for SwNodes.
2009-08-07 Henning Brinkmann #i102420# debug _MoveNodes: output the destination, too. Break after two iterations.
2009-08-07 Henning Brinkmann #i102420# _MoveNodes: Additionally check if destination index is inside source => false
Check if current range was already handled => loop
Debug output current range
2009-08-06 Henning Brinkmann merged DEV300_m54
2009-08-06 Henning Brinkmann added master fix
2009-08-06 Henning Brinkmann debug output for SwNodeRange
2009-08-04 Henning Brinkmann #i102844# robustness: check for NULL pointer to prevent crash
2009-08-03 Henning Brinkmann #i103475# applied patch and verified
2009-08-03 Henning Brinkmann Removed code preventing build of sw with DEBUG.
2009-09-11 convert-repo update tags
2009-09-10 kz CWS-TOOLING: integrate CWS os2port06dev300
2009-09-05 22:49:00 +0200 ydario r275858 : #i99588# applied os2port06 diff to DEV300 tree.
2009-09-10 kz CWS-TOOLING: integrate CWS mingwport23
2009-08-29 07:07:53 +0200 tono r275555 : i#104522: mingw port graphite
2009-08-29 07:07:26 +0200 tono r275554 : i#104522: mingw port printf format fix
2009-09-10 kz CWS-TOOLING: integrate CWS mh232
2009-08-26 03:52:57 +0200 mh r275385 : #i102182# FreeBSD patch
2009-08-26 03:43:20 +0200 mh r275384 : #i101333# patch for FreeBSD
2009-08-26 03:11:20 +0200 mh r275383 : #i39230
2009-08-26 03:07:51 +0200 mh r275382 : #i39230# more space for initials field
2009-08-26 02:41:19 +0200 mh r275380 : #i39230# use vos::osecurity for reading the user name
2009-08-18 22:06:00 +0200 mh r275130 : #i104243#, line ending problem with newer perl
2009-08-18 21:53:21 +0200 mh r275129 : #i39230# read initials via getpwnam
2009-08-18 21:34:05 +0200 mh r275128 : enable CAIROCANVAS for Linux and Mac, #i88613#
2009-08-17 18:02:59 +0200 mh r275067 : #i95498# make compile with gcc3
2009-09-10 kz CWS-TOOLING: integrate CWS tkr24
2009-09-07 14:31:06 +0200 is r275898 : #160081# adding NO_LICENSE_INTO_COPYRIGHT
2009-09-10 releng #i10000# change KeyMapping to SingletonRef<framework::KeyMapping>
2009-09-11 convert-repo update tags
2009-09-10 kz CWS-TOOLING: integrate CWS os2port06dev300
2009-09-05 22:49:00 +0200 ydario r275858 : #i99588# applied os2port06 diff to DEV300 tree.
2009-09-10 kz CWS-TOOLING: integrate CWS mingwport23
2009-08-29 07:07:53 +0200 tono r275555 : i#104522: mingw port graphite
2009-08-29 07:07:26 +0200 tono r275554 : i#104522: mingw port printf format fix
2009-09-10 kz CWS-TOOLING: integrate CWS mh232
2009-08-26 03:52:57 +0200 mh r275385 : #i102182# FreeBSD patch
2009-08-26 03:43:20 +0200 mh r275384 : #i101333# patch for FreeBSD
2009-08-26 03:11:20 +0200 mh r275383 : #i39230
2009-08-26 03:07:51 +0200 mh r275382 : #i39230# more space for initials field
2009-08-26 02:41:19 +0200 mh r275380 : #i39230# use vos::osecurity for reading the user name
2009-08-18 22:06:00 +0200 mh r275130 : #i104243#, line ending problem with newer perl
2009-08-18 21:53:21 +0200 mh r275129 : #i39230# read initials via getpwnam
2009-08-18 21:34:05 +0200 mh r275128 : enable CAIROCANVAS for Linux and Mac, #i88613#
2009-08-17 18:02:59 +0200 mh r275067 : #i95498# make compile with gcc3
2009-09-10 kz CWS-TOOLING: integrate CWS tkr24
2009-09-07 14:31:06 +0200 is r275898 : #160081# adding NO_LICENSE_INTO_COPYRIGHT
2009-09-10 releng #i10000# change KeyMapping to SingletonRef<framework::KeyMapping>
2009-09-11 14:29:45 +00:00
|
|
|
|
pDoc->MoveRange( aPam, aPos,
|
|
|
|
|
IDocumentContentOperations::DOC_MOVEDEFAULT );
|
2000-09-18 23:08:29 +00:00
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
else
|
|
|
|
|
{
|
|
|
|
|
pSttNd = rNds.MakeEmptySection( SwNodeIndex( rNds.GetEndOfRedlines() ),
|
|
|
|
|
SwNormalStartNode );
|
|
|
|
|
|
|
|
|
|
SwPosition aPos( *pSttNd->EndOfSectionNode() );
|
CWS-TOOLING: integrate CWS odfmetadata3
2009-09-11 Michael Stahl merge DEV300_m58
2009-09-07 Michael Stahl SwFmtFld::Modify(): do nothing on RES_OBJECTDYING
2009-08-27 Michael Stahl #i91565#, #i91566#: TextPortionEnumerationTest.java: add test document
2009-08-27 Michael Stahl #i91565#, #i91566#: add complex test: TextPortionEnumerationTest.java
2009-08-27 Michael Stahl CLiteral::initialize(): zero-length literals probably not an error
2009-08-27 Michael Stahl #i91565#, #i91566#: offapi: new InContentMetadata and MetadataField services
adapt TextPortion for InContentMetadata
2009-08-27 Michael Stahl #i91564#: xmloff: load/store xml:id and RDFa for text:bookmark(-start).
2009-08-27 Michael Stahl #i91564#: sw core: add support for xml:id at bookmarks:
sw::mark::Bookmark: derive from Metadatable.
SwHistoryBookmark, SaveBookmark: store a MetadatableUndo.
ndcopy.cxx: lcl_CopyBookmarks(): copy the xml:id.
SwXBookmark: derive from MetadatableMixin.
2009-08-27 Michael Stahl #i91565#, #i91566#: xmloff: refactor ruby import so nested meta(-field) works:
remove XMLRubyHint_Impl.
XMLImpRubyContext_Impl::~XMLImpRubyContext_Impl(): insert ruby directly.
2009-08-27 Michael Stahl #i91565#, #i91566#: xmloff: fix text:meta(-field) import/export:
new XMLTextParagraphExport::exportTextField() overload for XTextField.
CreateAndInsertMark(): set xml:id after insertion.
fix meta(-field) service names, bugs etc.
2009-08-27 Michael Stahl #i91565#, #i91566#: sw text formatting: paint background of meta(-field) body:
SwFont: add member m_nMetaCount.
txttypes.hxx: add POR_META.
atrstck.cxx: handle RES_TXTATR_META(FIELD).
itrform2.cxx: SwTxtFormatter::WhichTxtPor(): create new class SwMetaPortion.
2009-08-27 Michael Stahl #i91566#: sw text formatting: display meta-field prefix and suffix:
SwAttrIter::GetAttr(): replace with call to GetTxtAttrForCharAt().
SwTxtFormatter::NewExtraPortion(): handle meta-field prefix.
SwTxtFormatter: new member m_nHintEndIndex.
SwTxtFormatter::WhichFirstPortion(): call TryNewNoLengthPortion().
SwTxtFormatter::TryNewNoLengthPortion(): new; handle suffix of meta-field.
SwTxtFormatter::UnderFlow(): UGLY HACK: decrement m_nHintEndIndex.
SwFldPortion: add flag m_bNoLength: portion has zero length (for suffix).
2009-08-27 Michael Stahl #i91565#, #i91566#: extend text:meta(-field) uno wrapper with XText interface:
unoobj.hxx: new CursorType CURSOR_META.
unoobj2.cxx: refactor SwXText implementation to ensure that when the SwXText
belongs to a SwXMeta, content is always inserted inside the meta(-field).
unoobj.cxx: new SwXTextCursor::ForceIntoMeta(): cursor stays in meta(-field).
unometa.hxx: SwXMeta implements XText, forwarding to a member SwXMetaText.
DocInsertStringSplitCR(), SwX*::attachToRange(), SwX*::DeleteAndInsert():
use FORCEHINTEXPAND hack to ensure insert into the meta(-field) at the end.
2009-08-27 Michael Stahl #i91565#, #i91566#: add text:meta(-field) uno wrapper to sw:
fmtmeta.hxx, fmtatr2.cxx: new class sw::MetaField, new sw::MetaFieldManager.
doc.hxx, docnew.cxx: new SwDoc::GetMetaFieldManager().
unocoll.hxx,.cxx: new SW_SERVICE_FIELDTYPE_METAFIELD, SW_SERVICE_TYPE_META.
unomap.hxx,.cxx: new PROPERTY_MAP_METAFIELD.
unoprnms.hxx: new UNO_NAME_META.
unoport.hxx: new PORTION_META; add "InContentMetadata" prop to SwXTextPortion.
new unometa.hxx: new class SwXMeta and SwXMetaField.
unofield.cxx: SwXFieldEnumeration: include meta-fields.
unoportenum.cxx: handle RES_TXTATR_META(FIELD) by using a portion list stack.
unotext.cxx: SwXText::insertTextContent(): handle meta(-field) as attribute.
2009-08-27 Michael Stahl #i91565#, #i91566#: ndhints.cxx: remove sort number from SwTxtAttrNesting
2009-08-27 Michael Stahl #i91565#, #i91566#: add support for hints with end and CH_TXTATR to sw core:
doc.hxx, docedt.cxx: replace SwDoc::Delete(), DeleteAndJoin(), ReplaceRange()
with wrappers that split at left-overlapped end+CH_TXTATR hints.
txatbase.hxx: new member SwTxtAttr::m_bHasDummyChar.
ndtxt.hxx: rename SwTxtNode::GetTxtAttr() to GetTxtAttrForCharAt().
ndtxt.cxx: SwTxtNode::CopyText(): copy end+CH_TXTATR hints iff copy CH_TXTATR.
txtatr2.cxx, thints.cxx: SwTxtMeta gets a CH_TXTATR.
2009-08-27 Michael Stahl #i91565#, #i91566#: add text:meta(-field) to sw core:
txatbase.hxx: new member SwTxtAttr::m_bNesting.
hintids.hxx: new ids RES_TXTATR_META, RES_TXTATR_METAFIELD.
txtatr.hxx: new base class SwTxtAttrNesting.
new hint SwTxtMeta.
SwTxtRuby derives from SwTxtAttrNesting.
txtinet.hxx: SwTxtINetFmt derives from SwTxtAttrNesting.
new header fmtmeta.hxx: new pool item SwFmtMeta. new class sw::Meta.
ndhints.hxx, thints.cxx: new method SwpHints::TryInsertNesting().
thints.cxx: refactoring: BuildPortions() no longer handles Ruby/Hyperlink,
but TryInsertNesting(), which also handles meta(-field).
SwTxtNode::InsertItem(): check if the hint is actually inserted.
ndhints.cxx: sort nesting hints based on sort number.
ndtxt.cxx: lcl_CopyHint(): handle copy of meta/meta-field.
2009-08-27 Michael Stahl enable expanding hints with m_bLockExpandFlag set:
add new InsertFlag: INS_FORCEHINTEXPAND.
add new SetAttrMode: SETATTR_FORCEHINTEXPAND.
rename SwEditShell::Insert() to Insert2() because changed signature fails
to compile when SwWrtShell tries to overwrite these non-virtual members...
SwWrtShell::Insert() sets FOCEHINTEXPAND if range was selected/deleted.
adapt SwUndoInsert to store flags.
2009-08-27 Michael Stahl change formal parameters of item insertion methods to type SetAttrMode
2009-08-27 Michael Stahl fix incorrect resetting of text attributes in SwUndoInsSection, SwUndoInserts
2009-08-27 Michael Stahl clean up SwTxtNode::CutImpl() and lcl_CopyHint()
2009-08-27 Michael Stahl rename SwDoc::Copy() to CopyRange(), and _Copy() to CopyImpl()
2009-08-27 Michael Stahl rename SwNodes::Move() to MoveRange(), and remove unused parameter
2009-08-27 Michael Stahl rename SwDoc::Move() to MoveRange()/MoveNodeRange()
2009-08-27 Michael Stahl rename SwDoc::Insert() to InsertString(), and remove sal_Unicode variant
2009-08-27 Michael Stahl rename SwDoc::Insert() to InsertPoolItem()/InsertItemSet()/InsertSwSection()
2009-08-27 Michael Stahl rename SwDoc::Replace() to ReplaceRange()
2009-08-27 Michael Stahl remove SwDoc::Overwrite() sal_Unicode variant
2009-08-27 Michael Stahl split up SwDoc::DeleteAndJoin(): factor out DeleteAndJoinWithRedline()
2009-08-27 Michael Stahl rename overloaded SwDoc::Delete() to DeleteRange()/DeleteTOXMark()
2009-08-27 Michael Stahl rename SwTxtNode::Copy() to CopyText()
2009-08-27 Michael Stahl rename SwTxtNode::Cut() to CutText(), and _Cut() to CutImpl()
2009-08-27 Michael Stahl rename SwTxtNode::Delete() to DeleteAttribute()/DeleteAttributes()
2009-08-27 Michael Stahl rename SwTxtNode::Replace() to ReplaceText(), and remove the xub_Unicode variant
2009-08-27 Michael Stahl rename SwTxtNode::Erase() to EraseText()
2009-08-27 Michael Stahl rename SwTxtNode::Insert() to InsertText(), and remove the xub_Unicode variant
2009-08-27 Michael Stahl clean up SwTxtNode::Update()
2009-08-27 Michael Stahl remove SwTxtAttr::RemoveFromPool() and make destructor non-public,
to be invoked by new method SwTxtAttr::Destroy()
2009-08-27 Michael Stahl ensure that SwDoc::Insert() for item (set) returns success indicator:
replace SwRegHistory constructor with method InsertItems(), returning bool.
refactor InsAttr() so that it checks if InsertItems() succeeds.
2009-08-27 Michael Stahl move SwXTextPortionEnumeration from unoobj.hxx to unoport.hxx
2009-08-27 Michael Stahl add missing SolarMutex in SwXTextPortion methods
2009-08-27 Michael Stahl SwXTextPortion: new member m_xTextField (so the TextField property need not
be returned indirectly via SwUnoCursorHelper).
factor out function CreateSwXTextField().
2009-08-27 Michael Stahl SwXTextPortion: remove PORTION_CONTROL_CHAR and implementation of XTextField
2009-08-27 Michael Stahl remove obsolete hint SwTxtHardBlank and formats SwFmtHardBlank/SwFmtSoftHyph
2009-08-27 Michael Stahl clean up SwTxtAttr and friends:
remove many accessor methods for obsolete (due to autofmt) char format items.
remove unused flag SwTxtAttr::m_bDontMergeAttr.
MakeRedlineTxtAttr() now dedicated function, no longer calls MakeTxtAttr().
2009-08-27 Michael Stahl remove obsolete attribute SwTxt2Lines
2009-08-27 Michael Stahl SwXTextPortionEnumeration: finish refactoring CreatePortions
change ExportHints so it always returns a text portion for hint w/ CH_TXTATR.
remove special case for handling end of paragraph.
unfortunately had to refactor the fieldmarks export as well (got in the way).
2009-08-27 Michael Stahl SwXTextPortionEnumeration: refactor CreatePortions: frames export
extract function ExportFrames() from CreatePortions().
remove (un)dead code that calls evil MovePara(fnParaCurr, fnParaEnd)
2009-08-27 Michael Stahl clean up SwXParaFrameEnumeration
2009-08-27 Michael Stahl CollectFrameAtNode: replace SwDependArr with STL based FrameDependList_t
2009-08-27 Michael Stahl SwXTextPortionEnumeration: tweak refmark/toxmark export
so ExportHints returns the portion for point marks
2009-08-27 Michael Stahl clean up SwXTextPortionEnumeration:
prefix members, remove casts, replace SvWeirdArray with STL, etc.
make CreatePortions() method a function, and remove lots of members.
extract fieldmarks function from CreatePortions.
2009-08-27 Michael Stahl remove FOREACHUNOPAM_START/END macros
2009-08-27 Michael Stahl clean up SwXTextPortion:
prefix members, remove casts, etc.
remove SwXRubyPortion: replace it with another SwXTextPortion constructor
2009-08-27 Michael Stahl #i102541# SwXReferenceMark::InsertRefMark(): use flag SETATTR_DONTEXPAND
2009-08-27 Michael Stahl rename SwTxtNode::Insert to SwTxtNode::InsertHint, and
fix constness in SwTxtNode::InsertItem
2009-08-27 Michael Stahl turn SwTxtNode::MakeTxtAttr() methods into global functions in ndhints.hxx
2009-08-27 Michael Stahl remove obsolete sw/inc/bookmrk.hxx
2009-08-27 Michael Stahl pam.cxx: fix ComparePosition functions (returned wrong result in one case)
2009-08-27 Michael Stahl #i103613# only import RDF metadata on normal open of a document
2009-09-11 kz CWS-TOOLING: integrate CWS impress176
2009-09-08 20:18:24 +0200 sj r275957 : fixed warning (shadowed variable)
2009-09-08 18:02:05 +0200 cl r275948 : #i104315# added missing tab pages
2009-09-08 17:35:18 +0200 cl r275947 : #i104866# fixed angle import
2009-09-08 17:32:53 +0200 cl r275946 : #i104841# fixed angle import
2009-09-08 17:01:25 +0200 cl r275943 : #i103935# fixed the SID_EVENTCONFIG mess
2009-09-08 14:32:57 +0200 sj r275928 : #i104685# only comments
2009-09-07 12:37:36 +0200 sj r275886 : #i104683# fixed import of bold/italic attributes for normal text shapes
2009-09-04 15:07:46 +0200 sj r275808 : #104689# fixed bullet color problem
2009-09-03 15:25:07 +0200 sj r275753 : #160200# added vertical alignment of table cells
2009-09-11 kz CWS-TOOLING: integrate CWS dv14
2009-09-10 15:16:32 +0200 sg r276035 : #160513# updated wfs scheme to accept ports
2009-09-10 07:41:47 +0200 dv r276019 : #i104942# Better renaming algorithmen
2009-08-31 13:41:11 +0200 dv r275604 : #160505# Setting APP1PRODUCTNAME must not overwrite APP1PRODUCTDEF
2009-09-11 kz CWS-TOOLING: integrate CWS jl131
2009-09-02 16:42:40 +0200 jl r275720 : #i97896#
2009-08-31 13:01:53 +0200 jl r275599 : CWS-TOOLING: rebase CWS jl131 to trunk@275331 (milestone: DEV300:m56)
2009-07-31 14:35:30 +0200 jl r274531 : CWS-TOOLING: rebase CWS jl131 to trunk@274203 (milestone: DEV300:m53)
2009-07-23 14:20:32 +0200 jl r274272 : #i79839# better error text when trying to modify shared layer without having write permission, eg. unopkg add --shared, unopkg remove --shared, unopkg reinstall --shared
2009-07-22 16:38:02 +0200 jl r274252 : #i97896# localize error message for lock file
2009-07-22 16:37:22 +0200 jl r274251 : #i80462# unprecise wording in updatedialog
2009-07-22 16:36:06 +0200 jl r274250 : #i97896# localize error message for lock file
2009-07-22 16:35:20 +0200 jl r274249 : #i97896# localize error message for lock file
2009-07-22 15:07:30 +0200 jl r274242 : #i98873# minimum java version is 1.5 since OOo 3.0
2009-09-11 kz CWS-TOOLING: integrate CWS changehc
2009-08-31 19:38:50 +0200 pl r275633 : remove dbug printf
2009-08-31 17:41:50 +0200 pl r275623 : CWS-TOOLING: rebase CWS changehc to trunk@275331 (milestone: DEV300:m56)
2009-07-15 19:45:46 +0200 pl r274028 : #i35482# use HC flag to decide high contrast mode
2009-07-15 17:40:52 +0200 pl r274020 : #i35482# use HC flag to decide high contrast mode
2009-07-15 17:39:50 +0200 pl r274019 : #i35482# update autohc correctly in MergeSystemSettings
2009-07-15 17:38:57 +0200 pl r274018 : #i35482# update autohc correctly in MergeSystemSettings
2009-09-11 kz CWS-TOOLING: integrate CWS notes10
2009-08-24 07:25:57 +0200 mod r275287 : 2009-07-26 02:38:32 +0200 mod r274343 : #i#i103645#
2009-07-26 02:01:53 +0200 mod r274342 : #i103645#
2009-07-26 01:52:42 +0200 mod r274341 : #i103490#
2009-07-22 08:31:48 +0200 mod r274215 : #i103373#
2009-07-15 00:55:11 +0200 mod r273987 : #i101419#
2009-07-14 07:07:55 +0200 mod r273956 : #i101419#
2009-07-14 07:07:43 +0200 mod r273955 : #i101419#
2009-07-14 07:02:10 +0200 mod r273954 : changes from notes9
2009-07-14 06:14:25 +0200 mod r273953 : #i103476#
2009-09-11 kz CWS-TOOLING: integrate CWS ab70
2009-09-10 15:12:54 +0200 jsk r276034 : #i85434# - mandatory automatic update test
2009-09-10 15:11:06 +0200 jsk r276033 : #i85434# - mandatory automatic update test
2009-09-02 09:49:24 +0200 ab r275698 : #i85434# Dialog Import
2009-09-11 kz CWS-TOOLING: integrate CWS hb32bugs02
2009-09-02 Henning Brinkmann #i102420# revert changes
2009-08-26 Henning Brinkmann merged DEV300_m56
2009-08-19 Henning Brinkmann merged DEV300_m55
2009-08-14 Henning Brinkmann merged changes from wntmsci12
2009-08-12 Henning Brinkmann Implemented NoSpaceEdit constructor and destructor in .cxx to allow compile with debug on wntmsci12.
2009-08-12 Henning Brinkmann Added some SW_DLLPUBLIC to make compilable on wntmsci12.
2009-08-11 Henning Brinkmann #i102420# dbg_out: surround output for SwNodes with <nodes-array>.
2009-08-10 Henning Brinkmann #i102420# rewritten debug output for SwNodes.
2009-08-07 Henning Brinkmann #i102420# debug _MoveNodes: output the destination, too. Break after two iterations.
2009-08-07 Henning Brinkmann #i102420# _MoveNodes: Additionally check if destination index is inside source => false
Check if current range was already handled => loop
Debug output current range
2009-08-06 Henning Brinkmann merged DEV300_m54
2009-08-06 Henning Brinkmann added master fix
2009-08-06 Henning Brinkmann debug output for SwNodeRange
2009-08-04 Henning Brinkmann #i102844# robustness: check for NULL pointer to prevent crash
2009-08-03 Henning Brinkmann #i103475# applied patch and verified
2009-08-03 Henning Brinkmann Removed code preventing build of sw with DEBUG.
2009-09-11 convert-repo update tags
2009-09-10 kz CWS-TOOLING: integrate CWS os2port06dev300
2009-09-05 22:49:00 +0200 ydario r275858 : #i99588# applied os2port06 diff to DEV300 tree.
2009-09-10 kz CWS-TOOLING: integrate CWS mingwport23
2009-08-29 07:07:53 +0200 tono r275555 : i#104522: mingw port graphite
2009-08-29 07:07:26 +0200 tono r275554 : i#104522: mingw port printf format fix
2009-09-10 kz CWS-TOOLING: integrate CWS mh232
2009-08-26 03:52:57 +0200 mh r275385 : #i102182# FreeBSD patch
2009-08-26 03:43:20 +0200 mh r275384 : #i101333# patch for FreeBSD
2009-08-26 03:11:20 +0200 mh r275383 : #i39230
2009-08-26 03:07:51 +0200 mh r275382 : #i39230# more space for initials field
2009-08-26 02:41:19 +0200 mh r275380 : #i39230# use vos::osecurity for reading the user name
2009-08-18 22:06:00 +0200 mh r275130 : #i104243#, line ending problem with newer perl
2009-08-18 21:53:21 +0200 mh r275129 : #i39230# read initials via getpwnam
2009-08-18 21:34:05 +0200 mh r275128 : enable CAIROCANVAS for Linux and Mac, #i88613#
2009-08-17 18:02:59 +0200 mh r275067 : #i95498# make compile with gcc3
2009-09-10 kz CWS-TOOLING: integrate CWS tkr24
2009-09-07 14:31:06 +0200 is r275898 : #160081# adding NO_LICENSE_INTO_COPYRIGHT
2009-09-10 releng #i10000# change KeyMapping to SingletonRef<framework::KeyMapping>
2009-09-11 convert-repo update tags
2009-09-10 kz CWS-TOOLING: integrate CWS os2port06dev300
2009-09-05 22:49:00 +0200 ydario r275858 : #i99588# applied os2port06 diff to DEV300 tree.
2009-09-10 kz CWS-TOOLING: integrate CWS mingwport23
2009-08-29 07:07:53 +0200 tono r275555 : i#104522: mingw port graphite
2009-08-29 07:07:26 +0200 tono r275554 : i#104522: mingw port printf format fix
2009-09-10 kz CWS-TOOLING: integrate CWS mh232
2009-08-26 03:52:57 +0200 mh r275385 : #i102182# FreeBSD patch
2009-08-26 03:43:20 +0200 mh r275384 : #i101333# patch for FreeBSD
2009-08-26 03:11:20 +0200 mh r275383 : #i39230
2009-08-26 03:07:51 +0200 mh r275382 : #i39230# more space for initials field
2009-08-26 02:41:19 +0200 mh r275380 : #i39230# use vos::osecurity for reading the user name
2009-08-18 22:06:00 +0200 mh r275130 : #i104243#, line ending problem with newer perl
2009-08-18 21:53:21 +0200 mh r275129 : #i39230# read initials via getpwnam
2009-08-18 21:34:05 +0200 mh r275128 : enable CAIROCANVAS for Linux and Mac, #i88613#
2009-08-17 18:02:59 +0200 mh r275067 : #i95498# make compile with gcc3
2009-09-10 kz CWS-TOOLING: integrate CWS tkr24
2009-09-07 14:31:06 +0200 is r275898 : #160081# adding NO_LICENSE_INTO_COPYRIGHT
2009-09-10 releng #i10000# change KeyMapping to SingletonRef<framework::KeyMapping>
2009-09-11 14:29:45 +00:00
|
|
|
|
pDoc->MoveRange( aPam, aPos,
|
|
|
|
|
IDocumentContentOperations::DOC_MOVEDEFAULT );
|
2000-09-18 23:08:29 +00:00
|
|
|
|
}
|
|
|
|
|
pCntntSect = new SwNodeIndex( *pSttNd );
|
|
|
|
|
|
|
|
|
|
if( pStt == GetPoint() )
|
|
|
|
|
Exchange();
|
|
|
|
|
|
|
|
|
|
DeleteMark();
|
|
|
|
|
}
|
|
|
|
|
else
|
|
|
|
|
InvalidateRange();
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
void SwRedline::CopyToSection()
|
|
|
|
|
{
|
|
|
|
|
if( !pCntntSect )
|
|
|
|
|
{
|
|
|
|
|
const SwPosition* pStt = Start(),
|
|
|
|
|
* pEnd = pStt == GetPoint() ? GetMark() : GetPoint();
|
|
|
|
|
|
|
|
|
|
SwCntntNode* pCSttNd = pStt->nNode.GetNode().GetCntntNode();
|
|
|
|
|
SwCntntNode* pCEndNd = pEnd->nNode.GetNode().GetCntntNode();
|
|
|
|
|
|
|
|
|
|
SwStartNode* pSttNd;
|
|
|
|
|
SwDoc* pDoc = GetDoc();
|
|
|
|
|
SwNodes& rNds = pDoc->GetNodes();
|
|
|
|
|
|
|
|
|
|
BOOL bSaveCopyFlag = pDoc->IsCopyIsMove(),
|
|
|
|
|
bSaveRdlMoveFlg = pDoc->IsRedlineMove();
|
|
|
|
|
pDoc->SetCopyIsMove( TRUE );
|
2002-07-03 09:29:55 +00:00
|
|
|
|
|
|
|
|
|
// #100619# The IsRedlineMove() flag causes the behaviour of the
|
|
|
|
|
// SwDoc::_CopyFlyInFly method to change, which will eventually be
|
|
|
|
|
// called by the pDoc->Copy line below (through SwDoc::_Copy,
|
|
|
|
|
// SwDoc::CopyWithFlyInFly). This rather obscure bugfix was introduced
|
|
|
|
|
// for #63198# and #64896#, and apparently never really worked.
|
|
|
|
|
pDoc->SetRedlineMove( pStt->nContent == 0 );
|
2000-09-18 23:08:29 +00:00
|
|
|
|
|
|
|
|
|
if( pCSttNd )
|
|
|
|
|
{
|
|
|
|
|
SwTxtFmtColl* pColl = (pCSttNd && pCSttNd->IsTxtNode() )
|
|
|
|
|
? ((SwTxtNode*)pCSttNd)->GetTxtColl()
|
|
|
|
|
: pDoc->GetTxtCollFromPool(
|
|
|
|
|
RES_POOLCOLL_STANDARD );
|
|
|
|
|
|
|
|
|
|
pSttNd = rNds.MakeTextSection( SwNodeIndex( rNds.GetEndOfRedlines() ),
|
|
|
|
|
SwNormalStartNode, pColl );
|
|
|
|
|
|
|
|
|
|
SwNodeIndex aNdIdx( *pSttNd, 1 );
|
|
|
|
|
SwTxtNode* pTxtNd = aNdIdx.GetNode().GetTxtNode();
|
|
|
|
|
SwPosition aPos( aNdIdx, SwIndex( pTxtNd ));
|
CWS-TOOLING: integrate CWS odfmetadata3
2009-09-11 Michael Stahl merge DEV300_m58
2009-09-07 Michael Stahl SwFmtFld::Modify(): do nothing on RES_OBJECTDYING
2009-08-27 Michael Stahl #i91565#, #i91566#: TextPortionEnumerationTest.java: add test document
2009-08-27 Michael Stahl #i91565#, #i91566#: add complex test: TextPortionEnumerationTest.java
2009-08-27 Michael Stahl CLiteral::initialize(): zero-length literals probably not an error
2009-08-27 Michael Stahl #i91565#, #i91566#: offapi: new InContentMetadata and MetadataField services
adapt TextPortion for InContentMetadata
2009-08-27 Michael Stahl #i91564#: xmloff: load/store xml:id and RDFa for text:bookmark(-start).
2009-08-27 Michael Stahl #i91564#: sw core: add support for xml:id at bookmarks:
sw::mark::Bookmark: derive from Metadatable.
SwHistoryBookmark, SaveBookmark: store a MetadatableUndo.
ndcopy.cxx: lcl_CopyBookmarks(): copy the xml:id.
SwXBookmark: derive from MetadatableMixin.
2009-08-27 Michael Stahl #i91565#, #i91566#: xmloff: refactor ruby import so nested meta(-field) works:
remove XMLRubyHint_Impl.
XMLImpRubyContext_Impl::~XMLImpRubyContext_Impl(): insert ruby directly.
2009-08-27 Michael Stahl #i91565#, #i91566#: xmloff: fix text:meta(-field) import/export:
new XMLTextParagraphExport::exportTextField() overload for XTextField.
CreateAndInsertMark(): set xml:id after insertion.
fix meta(-field) service names, bugs etc.
2009-08-27 Michael Stahl #i91565#, #i91566#: sw text formatting: paint background of meta(-field) body:
SwFont: add member m_nMetaCount.
txttypes.hxx: add POR_META.
atrstck.cxx: handle RES_TXTATR_META(FIELD).
itrform2.cxx: SwTxtFormatter::WhichTxtPor(): create new class SwMetaPortion.
2009-08-27 Michael Stahl #i91566#: sw text formatting: display meta-field prefix and suffix:
SwAttrIter::GetAttr(): replace with call to GetTxtAttrForCharAt().
SwTxtFormatter::NewExtraPortion(): handle meta-field prefix.
SwTxtFormatter: new member m_nHintEndIndex.
SwTxtFormatter::WhichFirstPortion(): call TryNewNoLengthPortion().
SwTxtFormatter::TryNewNoLengthPortion(): new; handle suffix of meta-field.
SwTxtFormatter::UnderFlow(): UGLY HACK: decrement m_nHintEndIndex.
SwFldPortion: add flag m_bNoLength: portion has zero length (for suffix).
2009-08-27 Michael Stahl #i91565#, #i91566#: extend text:meta(-field) uno wrapper with XText interface:
unoobj.hxx: new CursorType CURSOR_META.
unoobj2.cxx: refactor SwXText implementation to ensure that when the SwXText
belongs to a SwXMeta, content is always inserted inside the meta(-field).
unoobj.cxx: new SwXTextCursor::ForceIntoMeta(): cursor stays in meta(-field).
unometa.hxx: SwXMeta implements XText, forwarding to a member SwXMetaText.
DocInsertStringSplitCR(), SwX*::attachToRange(), SwX*::DeleteAndInsert():
use FORCEHINTEXPAND hack to ensure insert into the meta(-field) at the end.
2009-08-27 Michael Stahl #i91565#, #i91566#: add text:meta(-field) uno wrapper to sw:
fmtmeta.hxx, fmtatr2.cxx: new class sw::MetaField, new sw::MetaFieldManager.
doc.hxx, docnew.cxx: new SwDoc::GetMetaFieldManager().
unocoll.hxx,.cxx: new SW_SERVICE_FIELDTYPE_METAFIELD, SW_SERVICE_TYPE_META.
unomap.hxx,.cxx: new PROPERTY_MAP_METAFIELD.
unoprnms.hxx: new UNO_NAME_META.
unoport.hxx: new PORTION_META; add "InContentMetadata" prop to SwXTextPortion.
new unometa.hxx: new class SwXMeta and SwXMetaField.
unofield.cxx: SwXFieldEnumeration: include meta-fields.
unoportenum.cxx: handle RES_TXTATR_META(FIELD) by using a portion list stack.
unotext.cxx: SwXText::insertTextContent(): handle meta(-field) as attribute.
2009-08-27 Michael Stahl #i91565#, #i91566#: ndhints.cxx: remove sort number from SwTxtAttrNesting
2009-08-27 Michael Stahl #i91565#, #i91566#: add support for hints with end and CH_TXTATR to sw core:
doc.hxx, docedt.cxx: replace SwDoc::Delete(), DeleteAndJoin(), ReplaceRange()
with wrappers that split at left-overlapped end+CH_TXTATR hints.
txatbase.hxx: new member SwTxtAttr::m_bHasDummyChar.
ndtxt.hxx: rename SwTxtNode::GetTxtAttr() to GetTxtAttrForCharAt().
ndtxt.cxx: SwTxtNode::CopyText(): copy end+CH_TXTATR hints iff copy CH_TXTATR.
txtatr2.cxx, thints.cxx: SwTxtMeta gets a CH_TXTATR.
2009-08-27 Michael Stahl #i91565#, #i91566#: add text:meta(-field) to sw core:
txatbase.hxx: new member SwTxtAttr::m_bNesting.
hintids.hxx: new ids RES_TXTATR_META, RES_TXTATR_METAFIELD.
txtatr.hxx: new base class SwTxtAttrNesting.
new hint SwTxtMeta.
SwTxtRuby derives from SwTxtAttrNesting.
txtinet.hxx: SwTxtINetFmt derives from SwTxtAttrNesting.
new header fmtmeta.hxx: new pool item SwFmtMeta. new class sw::Meta.
ndhints.hxx, thints.cxx: new method SwpHints::TryInsertNesting().
thints.cxx: refactoring: BuildPortions() no longer handles Ruby/Hyperlink,
but TryInsertNesting(), which also handles meta(-field).
SwTxtNode::InsertItem(): check if the hint is actually inserted.
ndhints.cxx: sort nesting hints based on sort number.
ndtxt.cxx: lcl_CopyHint(): handle copy of meta/meta-field.
2009-08-27 Michael Stahl enable expanding hints with m_bLockExpandFlag set:
add new InsertFlag: INS_FORCEHINTEXPAND.
add new SetAttrMode: SETATTR_FORCEHINTEXPAND.
rename SwEditShell::Insert() to Insert2() because changed signature fails
to compile when SwWrtShell tries to overwrite these non-virtual members...
SwWrtShell::Insert() sets FOCEHINTEXPAND if range was selected/deleted.
adapt SwUndoInsert to store flags.
2009-08-27 Michael Stahl change formal parameters of item insertion methods to type SetAttrMode
2009-08-27 Michael Stahl fix incorrect resetting of text attributes in SwUndoInsSection, SwUndoInserts
2009-08-27 Michael Stahl clean up SwTxtNode::CutImpl() and lcl_CopyHint()
2009-08-27 Michael Stahl rename SwDoc::Copy() to CopyRange(), and _Copy() to CopyImpl()
2009-08-27 Michael Stahl rename SwNodes::Move() to MoveRange(), and remove unused parameter
2009-08-27 Michael Stahl rename SwDoc::Move() to MoveRange()/MoveNodeRange()
2009-08-27 Michael Stahl rename SwDoc::Insert() to InsertString(), and remove sal_Unicode variant
2009-08-27 Michael Stahl rename SwDoc::Insert() to InsertPoolItem()/InsertItemSet()/InsertSwSection()
2009-08-27 Michael Stahl rename SwDoc::Replace() to ReplaceRange()
2009-08-27 Michael Stahl remove SwDoc::Overwrite() sal_Unicode variant
2009-08-27 Michael Stahl split up SwDoc::DeleteAndJoin(): factor out DeleteAndJoinWithRedline()
2009-08-27 Michael Stahl rename overloaded SwDoc::Delete() to DeleteRange()/DeleteTOXMark()
2009-08-27 Michael Stahl rename SwTxtNode::Copy() to CopyText()
2009-08-27 Michael Stahl rename SwTxtNode::Cut() to CutText(), and _Cut() to CutImpl()
2009-08-27 Michael Stahl rename SwTxtNode::Delete() to DeleteAttribute()/DeleteAttributes()
2009-08-27 Michael Stahl rename SwTxtNode::Replace() to ReplaceText(), and remove the xub_Unicode variant
2009-08-27 Michael Stahl rename SwTxtNode::Erase() to EraseText()
2009-08-27 Michael Stahl rename SwTxtNode::Insert() to InsertText(), and remove the xub_Unicode variant
2009-08-27 Michael Stahl clean up SwTxtNode::Update()
2009-08-27 Michael Stahl remove SwTxtAttr::RemoveFromPool() and make destructor non-public,
to be invoked by new method SwTxtAttr::Destroy()
2009-08-27 Michael Stahl ensure that SwDoc::Insert() for item (set) returns success indicator:
replace SwRegHistory constructor with method InsertItems(), returning bool.
refactor InsAttr() so that it checks if InsertItems() succeeds.
2009-08-27 Michael Stahl move SwXTextPortionEnumeration from unoobj.hxx to unoport.hxx
2009-08-27 Michael Stahl add missing SolarMutex in SwXTextPortion methods
2009-08-27 Michael Stahl SwXTextPortion: new member m_xTextField (so the TextField property need not
be returned indirectly via SwUnoCursorHelper).
factor out function CreateSwXTextField().
2009-08-27 Michael Stahl SwXTextPortion: remove PORTION_CONTROL_CHAR and implementation of XTextField
2009-08-27 Michael Stahl remove obsolete hint SwTxtHardBlank and formats SwFmtHardBlank/SwFmtSoftHyph
2009-08-27 Michael Stahl clean up SwTxtAttr and friends:
remove many accessor methods for obsolete (due to autofmt) char format items.
remove unused flag SwTxtAttr::m_bDontMergeAttr.
MakeRedlineTxtAttr() now dedicated function, no longer calls MakeTxtAttr().
2009-08-27 Michael Stahl remove obsolete attribute SwTxt2Lines
2009-08-27 Michael Stahl SwXTextPortionEnumeration: finish refactoring CreatePortions
change ExportHints so it always returns a text portion for hint w/ CH_TXTATR.
remove special case for handling end of paragraph.
unfortunately had to refactor the fieldmarks export as well (got in the way).
2009-08-27 Michael Stahl SwXTextPortionEnumeration: refactor CreatePortions: frames export
extract function ExportFrames() from CreatePortions().
remove (un)dead code that calls evil MovePara(fnParaCurr, fnParaEnd)
2009-08-27 Michael Stahl clean up SwXParaFrameEnumeration
2009-08-27 Michael Stahl CollectFrameAtNode: replace SwDependArr with STL based FrameDependList_t
2009-08-27 Michael Stahl SwXTextPortionEnumeration: tweak refmark/toxmark export
so ExportHints returns the portion for point marks
2009-08-27 Michael Stahl clean up SwXTextPortionEnumeration:
prefix members, remove casts, replace SvWeirdArray with STL, etc.
make CreatePortions() method a function, and remove lots of members.
extract fieldmarks function from CreatePortions.
2009-08-27 Michael Stahl remove FOREACHUNOPAM_START/END macros
2009-08-27 Michael Stahl clean up SwXTextPortion:
prefix members, remove casts, etc.
remove SwXRubyPortion: replace it with another SwXTextPortion constructor
2009-08-27 Michael Stahl #i102541# SwXReferenceMark::InsertRefMark(): use flag SETATTR_DONTEXPAND
2009-08-27 Michael Stahl rename SwTxtNode::Insert to SwTxtNode::InsertHint, and
fix constness in SwTxtNode::InsertItem
2009-08-27 Michael Stahl turn SwTxtNode::MakeTxtAttr() methods into global functions in ndhints.hxx
2009-08-27 Michael Stahl remove obsolete sw/inc/bookmrk.hxx
2009-08-27 Michael Stahl pam.cxx: fix ComparePosition functions (returned wrong result in one case)
2009-08-27 Michael Stahl #i103613# only import RDF metadata on normal open of a document
2009-09-11 kz CWS-TOOLING: integrate CWS impress176
2009-09-08 20:18:24 +0200 sj r275957 : fixed warning (shadowed variable)
2009-09-08 18:02:05 +0200 cl r275948 : #i104315# added missing tab pages
2009-09-08 17:35:18 +0200 cl r275947 : #i104866# fixed angle import
2009-09-08 17:32:53 +0200 cl r275946 : #i104841# fixed angle import
2009-09-08 17:01:25 +0200 cl r275943 : #i103935# fixed the SID_EVENTCONFIG mess
2009-09-08 14:32:57 +0200 sj r275928 : #i104685# only comments
2009-09-07 12:37:36 +0200 sj r275886 : #i104683# fixed import of bold/italic attributes for normal text shapes
2009-09-04 15:07:46 +0200 sj r275808 : #104689# fixed bullet color problem
2009-09-03 15:25:07 +0200 sj r275753 : #160200# added vertical alignment of table cells
2009-09-11 kz CWS-TOOLING: integrate CWS dv14
2009-09-10 15:16:32 +0200 sg r276035 : #160513# updated wfs scheme to accept ports
2009-09-10 07:41:47 +0200 dv r276019 : #i104942# Better renaming algorithmen
2009-08-31 13:41:11 +0200 dv r275604 : #160505# Setting APP1PRODUCTNAME must not overwrite APP1PRODUCTDEF
2009-09-11 kz CWS-TOOLING: integrate CWS jl131
2009-09-02 16:42:40 +0200 jl r275720 : #i97896#
2009-08-31 13:01:53 +0200 jl r275599 : CWS-TOOLING: rebase CWS jl131 to trunk@275331 (milestone: DEV300:m56)
2009-07-31 14:35:30 +0200 jl r274531 : CWS-TOOLING: rebase CWS jl131 to trunk@274203 (milestone: DEV300:m53)
2009-07-23 14:20:32 +0200 jl r274272 : #i79839# better error text when trying to modify shared layer without having write permission, eg. unopkg add --shared, unopkg remove --shared, unopkg reinstall --shared
2009-07-22 16:38:02 +0200 jl r274252 : #i97896# localize error message for lock file
2009-07-22 16:37:22 +0200 jl r274251 : #i80462# unprecise wording in updatedialog
2009-07-22 16:36:06 +0200 jl r274250 : #i97896# localize error message for lock file
2009-07-22 16:35:20 +0200 jl r274249 : #i97896# localize error message for lock file
2009-07-22 15:07:30 +0200 jl r274242 : #i98873# minimum java version is 1.5 since OOo 3.0
2009-09-11 kz CWS-TOOLING: integrate CWS changehc
2009-08-31 19:38:50 +0200 pl r275633 : remove dbug printf
2009-08-31 17:41:50 +0200 pl r275623 : CWS-TOOLING: rebase CWS changehc to trunk@275331 (milestone: DEV300:m56)
2009-07-15 19:45:46 +0200 pl r274028 : #i35482# use HC flag to decide high contrast mode
2009-07-15 17:40:52 +0200 pl r274020 : #i35482# use HC flag to decide high contrast mode
2009-07-15 17:39:50 +0200 pl r274019 : #i35482# update autohc correctly in MergeSystemSettings
2009-07-15 17:38:57 +0200 pl r274018 : #i35482# update autohc correctly in MergeSystemSettings
2009-09-11 kz CWS-TOOLING: integrate CWS notes10
2009-08-24 07:25:57 +0200 mod r275287 : 2009-07-26 02:38:32 +0200 mod r274343 : #i#i103645#
2009-07-26 02:01:53 +0200 mod r274342 : #i103645#
2009-07-26 01:52:42 +0200 mod r274341 : #i103490#
2009-07-22 08:31:48 +0200 mod r274215 : #i103373#
2009-07-15 00:55:11 +0200 mod r273987 : #i101419#
2009-07-14 07:07:55 +0200 mod r273956 : #i101419#
2009-07-14 07:07:43 +0200 mod r273955 : #i101419#
2009-07-14 07:02:10 +0200 mod r273954 : changes from notes9
2009-07-14 06:14:25 +0200 mod r273953 : #i103476#
2009-09-11 kz CWS-TOOLING: integrate CWS ab70
2009-09-10 15:12:54 +0200 jsk r276034 : #i85434# - mandatory automatic update test
2009-09-10 15:11:06 +0200 jsk r276033 : #i85434# - mandatory automatic update test
2009-09-02 09:49:24 +0200 ab r275698 : #i85434# Dialog Import
2009-09-11 kz CWS-TOOLING: integrate CWS hb32bugs02
2009-09-02 Henning Brinkmann #i102420# revert changes
2009-08-26 Henning Brinkmann merged DEV300_m56
2009-08-19 Henning Brinkmann merged DEV300_m55
2009-08-14 Henning Brinkmann merged changes from wntmsci12
2009-08-12 Henning Brinkmann Implemented NoSpaceEdit constructor and destructor in .cxx to allow compile with debug on wntmsci12.
2009-08-12 Henning Brinkmann Added some SW_DLLPUBLIC to make compilable on wntmsci12.
2009-08-11 Henning Brinkmann #i102420# dbg_out: surround output for SwNodes with <nodes-array>.
2009-08-10 Henning Brinkmann #i102420# rewritten debug output for SwNodes.
2009-08-07 Henning Brinkmann #i102420# debug _MoveNodes: output the destination, too. Break after two iterations.
2009-08-07 Henning Brinkmann #i102420# _MoveNodes: Additionally check if destination index is inside source => false
Check if current range was already handled => loop
Debug output current range
2009-08-06 Henning Brinkmann merged DEV300_m54
2009-08-06 Henning Brinkmann added master fix
2009-08-06 Henning Brinkmann debug output for SwNodeRange
2009-08-04 Henning Brinkmann #i102844# robustness: check for NULL pointer to prevent crash
2009-08-03 Henning Brinkmann #i103475# applied patch and verified
2009-08-03 Henning Brinkmann Removed code preventing build of sw with DEBUG.
2009-09-11 convert-repo update tags
2009-09-10 kz CWS-TOOLING: integrate CWS os2port06dev300
2009-09-05 22:49:00 +0200 ydario r275858 : #i99588# applied os2port06 diff to DEV300 tree.
2009-09-10 kz CWS-TOOLING: integrate CWS mingwport23
2009-08-29 07:07:53 +0200 tono r275555 : i#104522: mingw port graphite
2009-08-29 07:07:26 +0200 tono r275554 : i#104522: mingw port printf format fix
2009-09-10 kz CWS-TOOLING: integrate CWS mh232
2009-08-26 03:52:57 +0200 mh r275385 : #i102182# FreeBSD patch
2009-08-26 03:43:20 +0200 mh r275384 : #i101333# patch for FreeBSD
2009-08-26 03:11:20 +0200 mh r275383 : #i39230
2009-08-26 03:07:51 +0200 mh r275382 : #i39230# more space for initials field
2009-08-26 02:41:19 +0200 mh r275380 : #i39230# use vos::osecurity for reading the user name
2009-08-18 22:06:00 +0200 mh r275130 : #i104243#, line ending problem with newer perl
2009-08-18 21:53:21 +0200 mh r275129 : #i39230# read initials via getpwnam
2009-08-18 21:34:05 +0200 mh r275128 : enable CAIROCANVAS for Linux and Mac, #i88613#
2009-08-17 18:02:59 +0200 mh r275067 : #i95498# make compile with gcc3
2009-09-10 kz CWS-TOOLING: integrate CWS tkr24
2009-09-07 14:31:06 +0200 is r275898 : #160081# adding NO_LICENSE_INTO_COPYRIGHT
2009-09-10 releng #i10000# change KeyMapping to SingletonRef<framework::KeyMapping>
2009-09-11 convert-repo update tags
2009-09-10 kz CWS-TOOLING: integrate CWS os2port06dev300
2009-09-05 22:49:00 +0200 ydario r275858 : #i99588# applied os2port06 diff to DEV300 tree.
2009-09-10 kz CWS-TOOLING: integrate CWS mingwport23
2009-08-29 07:07:53 +0200 tono r275555 : i#104522: mingw port graphite
2009-08-29 07:07:26 +0200 tono r275554 : i#104522: mingw port printf format fix
2009-09-10 kz CWS-TOOLING: integrate CWS mh232
2009-08-26 03:52:57 +0200 mh r275385 : #i102182# FreeBSD patch
2009-08-26 03:43:20 +0200 mh r275384 : #i101333# patch for FreeBSD
2009-08-26 03:11:20 +0200 mh r275383 : #i39230
2009-08-26 03:07:51 +0200 mh r275382 : #i39230# more space for initials field
2009-08-26 02:41:19 +0200 mh r275380 : #i39230# use vos::osecurity for reading the user name
2009-08-18 22:06:00 +0200 mh r275130 : #i104243#, line ending problem with newer perl
2009-08-18 21:53:21 +0200 mh r275129 : #i39230# read initials via getpwnam
2009-08-18 21:34:05 +0200 mh r275128 : enable CAIROCANVAS for Linux and Mac, #i88613#
2009-08-17 18:02:59 +0200 mh r275067 : #i95498# make compile with gcc3
2009-09-10 kz CWS-TOOLING: integrate CWS tkr24
2009-09-07 14:31:06 +0200 is r275898 : #160081# adding NO_LICENSE_INTO_COPYRIGHT
2009-09-10 releng #i10000# change KeyMapping to SingletonRef<framework::KeyMapping>
2009-09-11 14:29:45 +00:00
|
|
|
|
pDoc->CopyRange( *this, aPos, false );
|
2000-09-18 23:08:29 +00:00
|
|
|
|
|
|
|
|
|
// JP 08.10.98: die Vorlage vom EndNode ggfs. mit uebernehmen
|
|
|
|
|
// - ist im Doc::Copy nicht erwuenscht
|
|
|
|
|
if( pCEndNd && pCEndNd != pCSttNd )
|
|
|
|
|
{
|
|
|
|
|
SwCntntNode* pDestNd = aPos.nNode.GetNode().GetCntntNode();
|
|
|
|
|
if( pDestNd )
|
|
|
|
|
{
|
|
|
|
|
if( pDestNd->IsTxtNode() && pCEndNd->IsTxtNode() )
|
|
|
|
|
((SwTxtNode*)pCEndNd)->CopyCollFmt(
|
|
|
|
|
*(SwTxtNode*)pDestNd );
|
|
|
|
|
else
|
|
|
|
|
pDestNd->ChgFmtColl( pCEndNd->GetFmtColl() );
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
else
|
|
|
|
|
{
|
|
|
|
|
pSttNd = rNds.MakeEmptySection( SwNodeIndex( rNds.GetEndOfRedlines() ),
|
|
|
|
|
SwNormalStartNode );
|
|
|
|
|
|
|
|
|
|
if( pCEndNd )
|
|
|
|
|
{
|
|
|
|
|
SwPosition aPos( *pSttNd->EndOfSectionNode() );
|
CWS-TOOLING: integrate CWS odfmetadata3
2009-09-11 Michael Stahl merge DEV300_m58
2009-09-07 Michael Stahl SwFmtFld::Modify(): do nothing on RES_OBJECTDYING
2009-08-27 Michael Stahl #i91565#, #i91566#: TextPortionEnumerationTest.java: add test document
2009-08-27 Michael Stahl #i91565#, #i91566#: add complex test: TextPortionEnumerationTest.java
2009-08-27 Michael Stahl CLiteral::initialize(): zero-length literals probably not an error
2009-08-27 Michael Stahl #i91565#, #i91566#: offapi: new InContentMetadata and MetadataField services
adapt TextPortion for InContentMetadata
2009-08-27 Michael Stahl #i91564#: xmloff: load/store xml:id and RDFa for text:bookmark(-start).
2009-08-27 Michael Stahl #i91564#: sw core: add support for xml:id at bookmarks:
sw::mark::Bookmark: derive from Metadatable.
SwHistoryBookmark, SaveBookmark: store a MetadatableUndo.
ndcopy.cxx: lcl_CopyBookmarks(): copy the xml:id.
SwXBookmark: derive from MetadatableMixin.
2009-08-27 Michael Stahl #i91565#, #i91566#: xmloff: refactor ruby import so nested meta(-field) works:
remove XMLRubyHint_Impl.
XMLImpRubyContext_Impl::~XMLImpRubyContext_Impl(): insert ruby directly.
2009-08-27 Michael Stahl #i91565#, #i91566#: xmloff: fix text:meta(-field) import/export:
new XMLTextParagraphExport::exportTextField() overload for XTextField.
CreateAndInsertMark(): set xml:id after insertion.
fix meta(-field) service names, bugs etc.
2009-08-27 Michael Stahl #i91565#, #i91566#: sw text formatting: paint background of meta(-field) body:
SwFont: add member m_nMetaCount.
txttypes.hxx: add POR_META.
atrstck.cxx: handle RES_TXTATR_META(FIELD).
itrform2.cxx: SwTxtFormatter::WhichTxtPor(): create new class SwMetaPortion.
2009-08-27 Michael Stahl #i91566#: sw text formatting: display meta-field prefix and suffix:
SwAttrIter::GetAttr(): replace with call to GetTxtAttrForCharAt().
SwTxtFormatter::NewExtraPortion(): handle meta-field prefix.
SwTxtFormatter: new member m_nHintEndIndex.
SwTxtFormatter::WhichFirstPortion(): call TryNewNoLengthPortion().
SwTxtFormatter::TryNewNoLengthPortion(): new; handle suffix of meta-field.
SwTxtFormatter::UnderFlow(): UGLY HACK: decrement m_nHintEndIndex.
SwFldPortion: add flag m_bNoLength: portion has zero length (for suffix).
2009-08-27 Michael Stahl #i91565#, #i91566#: extend text:meta(-field) uno wrapper with XText interface:
unoobj.hxx: new CursorType CURSOR_META.
unoobj2.cxx: refactor SwXText implementation to ensure that when the SwXText
belongs to a SwXMeta, content is always inserted inside the meta(-field).
unoobj.cxx: new SwXTextCursor::ForceIntoMeta(): cursor stays in meta(-field).
unometa.hxx: SwXMeta implements XText, forwarding to a member SwXMetaText.
DocInsertStringSplitCR(), SwX*::attachToRange(), SwX*::DeleteAndInsert():
use FORCEHINTEXPAND hack to ensure insert into the meta(-field) at the end.
2009-08-27 Michael Stahl #i91565#, #i91566#: add text:meta(-field) uno wrapper to sw:
fmtmeta.hxx, fmtatr2.cxx: new class sw::MetaField, new sw::MetaFieldManager.
doc.hxx, docnew.cxx: new SwDoc::GetMetaFieldManager().
unocoll.hxx,.cxx: new SW_SERVICE_FIELDTYPE_METAFIELD, SW_SERVICE_TYPE_META.
unomap.hxx,.cxx: new PROPERTY_MAP_METAFIELD.
unoprnms.hxx: new UNO_NAME_META.
unoport.hxx: new PORTION_META; add "InContentMetadata" prop to SwXTextPortion.
new unometa.hxx: new class SwXMeta and SwXMetaField.
unofield.cxx: SwXFieldEnumeration: include meta-fields.
unoportenum.cxx: handle RES_TXTATR_META(FIELD) by using a portion list stack.
unotext.cxx: SwXText::insertTextContent(): handle meta(-field) as attribute.
2009-08-27 Michael Stahl #i91565#, #i91566#: ndhints.cxx: remove sort number from SwTxtAttrNesting
2009-08-27 Michael Stahl #i91565#, #i91566#: add support for hints with end and CH_TXTATR to sw core:
doc.hxx, docedt.cxx: replace SwDoc::Delete(), DeleteAndJoin(), ReplaceRange()
with wrappers that split at left-overlapped end+CH_TXTATR hints.
txatbase.hxx: new member SwTxtAttr::m_bHasDummyChar.
ndtxt.hxx: rename SwTxtNode::GetTxtAttr() to GetTxtAttrForCharAt().
ndtxt.cxx: SwTxtNode::CopyText(): copy end+CH_TXTATR hints iff copy CH_TXTATR.
txtatr2.cxx, thints.cxx: SwTxtMeta gets a CH_TXTATR.
2009-08-27 Michael Stahl #i91565#, #i91566#: add text:meta(-field) to sw core:
txatbase.hxx: new member SwTxtAttr::m_bNesting.
hintids.hxx: new ids RES_TXTATR_META, RES_TXTATR_METAFIELD.
txtatr.hxx: new base class SwTxtAttrNesting.
new hint SwTxtMeta.
SwTxtRuby derives from SwTxtAttrNesting.
txtinet.hxx: SwTxtINetFmt derives from SwTxtAttrNesting.
new header fmtmeta.hxx: new pool item SwFmtMeta. new class sw::Meta.
ndhints.hxx, thints.cxx: new method SwpHints::TryInsertNesting().
thints.cxx: refactoring: BuildPortions() no longer handles Ruby/Hyperlink,
but TryInsertNesting(), which also handles meta(-field).
SwTxtNode::InsertItem(): check if the hint is actually inserted.
ndhints.cxx: sort nesting hints based on sort number.
ndtxt.cxx: lcl_CopyHint(): handle copy of meta/meta-field.
2009-08-27 Michael Stahl enable expanding hints with m_bLockExpandFlag set:
add new InsertFlag: INS_FORCEHINTEXPAND.
add new SetAttrMode: SETATTR_FORCEHINTEXPAND.
rename SwEditShell::Insert() to Insert2() because changed signature fails
to compile when SwWrtShell tries to overwrite these non-virtual members...
SwWrtShell::Insert() sets FOCEHINTEXPAND if range was selected/deleted.
adapt SwUndoInsert to store flags.
2009-08-27 Michael Stahl change formal parameters of item insertion methods to type SetAttrMode
2009-08-27 Michael Stahl fix incorrect resetting of text attributes in SwUndoInsSection, SwUndoInserts
2009-08-27 Michael Stahl clean up SwTxtNode::CutImpl() and lcl_CopyHint()
2009-08-27 Michael Stahl rename SwDoc::Copy() to CopyRange(), and _Copy() to CopyImpl()
2009-08-27 Michael Stahl rename SwNodes::Move() to MoveRange(), and remove unused parameter
2009-08-27 Michael Stahl rename SwDoc::Move() to MoveRange()/MoveNodeRange()
2009-08-27 Michael Stahl rename SwDoc::Insert() to InsertString(), and remove sal_Unicode variant
2009-08-27 Michael Stahl rename SwDoc::Insert() to InsertPoolItem()/InsertItemSet()/InsertSwSection()
2009-08-27 Michael Stahl rename SwDoc::Replace() to ReplaceRange()
2009-08-27 Michael Stahl remove SwDoc::Overwrite() sal_Unicode variant
2009-08-27 Michael Stahl split up SwDoc::DeleteAndJoin(): factor out DeleteAndJoinWithRedline()
2009-08-27 Michael Stahl rename overloaded SwDoc::Delete() to DeleteRange()/DeleteTOXMark()
2009-08-27 Michael Stahl rename SwTxtNode::Copy() to CopyText()
2009-08-27 Michael Stahl rename SwTxtNode::Cut() to CutText(), and _Cut() to CutImpl()
2009-08-27 Michael Stahl rename SwTxtNode::Delete() to DeleteAttribute()/DeleteAttributes()
2009-08-27 Michael Stahl rename SwTxtNode::Replace() to ReplaceText(), and remove the xub_Unicode variant
2009-08-27 Michael Stahl rename SwTxtNode::Erase() to EraseText()
2009-08-27 Michael Stahl rename SwTxtNode::Insert() to InsertText(), and remove the xub_Unicode variant
2009-08-27 Michael Stahl clean up SwTxtNode::Update()
2009-08-27 Michael Stahl remove SwTxtAttr::RemoveFromPool() and make destructor non-public,
to be invoked by new method SwTxtAttr::Destroy()
2009-08-27 Michael Stahl ensure that SwDoc::Insert() for item (set) returns success indicator:
replace SwRegHistory constructor with method InsertItems(), returning bool.
refactor InsAttr() so that it checks if InsertItems() succeeds.
2009-08-27 Michael Stahl move SwXTextPortionEnumeration from unoobj.hxx to unoport.hxx
2009-08-27 Michael Stahl add missing SolarMutex in SwXTextPortion methods
2009-08-27 Michael Stahl SwXTextPortion: new member m_xTextField (so the TextField property need not
be returned indirectly via SwUnoCursorHelper).
factor out function CreateSwXTextField().
2009-08-27 Michael Stahl SwXTextPortion: remove PORTION_CONTROL_CHAR and implementation of XTextField
2009-08-27 Michael Stahl remove obsolete hint SwTxtHardBlank and formats SwFmtHardBlank/SwFmtSoftHyph
2009-08-27 Michael Stahl clean up SwTxtAttr and friends:
remove many accessor methods for obsolete (due to autofmt) char format items.
remove unused flag SwTxtAttr::m_bDontMergeAttr.
MakeRedlineTxtAttr() now dedicated function, no longer calls MakeTxtAttr().
2009-08-27 Michael Stahl remove obsolete attribute SwTxt2Lines
2009-08-27 Michael Stahl SwXTextPortionEnumeration: finish refactoring CreatePortions
change ExportHints so it always returns a text portion for hint w/ CH_TXTATR.
remove special case for handling end of paragraph.
unfortunately had to refactor the fieldmarks export as well (got in the way).
2009-08-27 Michael Stahl SwXTextPortionEnumeration: refactor CreatePortions: frames export
extract function ExportFrames() from CreatePortions().
remove (un)dead code that calls evil MovePara(fnParaCurr, fnParaEnd)
2009-08-27 Michael Stahl clean up SwXParaFrameEnumeration
2009-08-27 Michael Stahl CollectFrameAtNode: replace SwDependArr with STL based FrameDependList_t
2009-08-27 Michael Stahl SwXTextPortionEnumeration: tweak refmark/toxmark export
so ExportHints returns the portion for point marks
2009-08-27 Michael Stahl clean up SwXTextPortionEnumeration:
prefix members, remove casts, replace SvWeirdArray with STL, etc.
make CreatePortions() method a function, and remove lots of members.
extract fieldmarks function from CreatePortions.
2009-08-27 Michael Stahl remove FOREACHUNOPAM_START/END macros
2009-08-27 Michael Stahl clean up SwXTextPortion:
prefix members, remove casts, etc.
remove SwXRubyPortion: replace it with another SwXTextPortion constructor
2009-08-27 Michael Stahl #i102541# SwXReferenceMark::InsertRefMark(): use flag SETATTR_DONTEXPAND
2009-08-27 Michael Stahl rename SwTxtNode::Insert to SwTxtNode::InsertHint, and
fix constness in SwTxtNode::InsertItem
2009-08-27 Michael Stahl turn SwTxtNode::MakeTxtAttr() methods into global functions in ndhints.hxx
2009-08-27 Michael Stahl remove obsolete sw/inc/bookmrk.hxx
2009-08-27 Michael Stahl pam.cxx: fix ComparePosition functions (returned wrong result in one case)
2009-08-27 Michael Stahl #i103613# only import RDF metadata on normal open of a document
2009-09-11 kz CWS-TOOLING: integrate CWS impress176
2009-09-08 20:18:24 +0200 sj r275957 : fixed warning (shadowed variable)
2009-09-08 18:02:05 +0200 cl r275948 : #i104315# added missing tab pages
2009-09-08 17:35:18 +0200 cl r275947 : #i104866# fixed angle import
2009-09-08 17:32:53 +0200 cl r275946 : #i104841# fixed angle import
2009-09-08 17:01:25 +0200 cl r275943 : #i103935# fixed the SID_EVENTCONFIG mess
2009-09-08 14:32:57 +0200 sj r275928 : #i104685# only comments
2009-09-07 12:37:36 +0200 sj r275886 : #i104683# fixed import of bold/italic attributes for normal text shapes
2009-09-04 15:07:46 +0200 sj r275808 : #104689# fixed bullet color problem
2009-09-03 15:25:07 +0200 sj r275753 : #160200# added vertical alignment of table cells
2009-09-11 kz CWS-TOOLING: integrate CWS dv14
2009-09-10 15:16:32 +0200 sg r276035 : #160513# updated wfs scheme to accept ports
2009-09-10 07:41:47 +0200 dv r276019 : #i104942# Better renaming algorithmen
2009-08-31 13:41:11 +0200 dv r275604 : #160505# Setting APP1PRODUCTNAME must not overwrite APP1PRODUCTDEF
2009-09-11 kz CWS-TOOLING: integrate CWS jl131
2009-09-02 16:42:40 +0200 jl r275720 : #i97896#
2009-08-31 13:01:53 +0200 jl r275599 : CWS-TOOLING: rebase CWS jl131 to trunk@275331 (milestone: DEV300:m56)
2009-07-31 14:35:30 +0200 jl r274531 : CWS-TOOLING: rebase CWS jl131 to trunk@274203 (milestone: DEV300:m53)
2009-07-23 14:20:32 +0200 jl r274272 : #i79839# better error text when trying to modify shared layer without having write permission, eg. unopkg add --shared, unopkg remove --shared, unopkg reinstall --shared
2009-07-22 16:38:02 +0200 jl r274252 : #i97896# localize error message for lock file
2009-07-22 16:37:22 +0200 jl r274251 : #i80462# unprecise wording in updatedialog
2009-07-22 16:36:06 +0200 jl r274250 : #i97896# localize error message for lock file
2009-07-22 16:35:20 +0200 jl r274249 : #i97896# localize error message for lock file
2009-07-22 15:07:30 +0200 jl r274242 : #i98873# minimum java version is 1.5 since OOo 3.0
2009-09-11 kz CWS-TOOLING: integrate CWS changehc
2009-08-31 19:38:50 +0200 pl r275633 : remove dbug printf
2009-08-31 17:41:50 +0200 pl r275623 : CWS-TOOLING: rebase CWS changehc to trunk@275331 (milestone: DEV300:m56)
2009-07-15 19:45:46 +0200 pl r274028 : #i35482# use HC flag to decide high contrast mode
2009-07-15 17:40:52 +0200 pl r274020 : #i35482# use HC flag to decide high contrast mode
2009-07-15 17:39:50 +0200 pl r274019 : #i35482# update autohc correctly in MergeSystemSettings
2009-07-15 17:38:57 +0200 pl r274018 : #i35482# update autohc correctly in MergeSystemSettings
2009-09-11 kz CWS-TOOLING: integrate CWS notes10
2009-08-24 07:25:57 +0200 mod r275287 : 2009-07-26 02:38:32 +0200 mod r274343 : #i#i103645#
2009-07-26 02:01:53 +0200 mod r274342 : #i103645#
2009-07-26 01:52:42 +0200 mod r274341 : #i103490#
2009-07-22 08:31:48 +0200 mod r274215 : #i103373#
2009-07-15 00:55:11 +0200 mod r273987 : #i101419#
2009-07-14 07:07:55 +0200 mod r273956 : #i101419#
2009-07-14 07:07:43 +0200 mod r273955 : #i101419#
2009-07-14 07:02:10 +0200 mod r273954 : changes from notes9
2009-07-14 06:14:25 +0200 mod r273953 : #i103476#
2009-09-11 kz CWS-TOOLING: integrate CWS ab70
2009-09-10 15:12:54 +0200 jsk r276034 : #i85434# - mandatory automatic update test
2009-09-10 15:11:06 +0200 jsk r276033 : #i85434# - mandatory automatic update test
2009-09-02 09:49:24 +0200 ab r275698 : #i85434# Dialog Import
2009-09-11 kz CWS-TOOLING: integrate CWS hb32bugs02
2009-09-02 Henning Brinkmann #i102420# revert changes
2009-08-26 Henning Brinkmann merged DEV300_m56
2009-08-19 Henning Brinkmann merged DEV300_m55
2009-08-14 Henning Brinkmann merged changes from wntmsci12
2009-08-12 Henning Brinkmann Implemented NoSpaceEdit constructor and destructor in .cxx to allow compile with debug on wntmsci12.
2009-08-12 Henning Brinkmann Added some SW_DLLPUBLIC to make compilable on wntmsci12.
2009-08-11 Henning Brinkmann #i102420# dbg_out: surround output for SwNodes with <nodes-array>.
2009-08-10 Henning Brinkmann #i102420# rewritten debug output for SwNodes.
2009-08-07 Henning Brinkmann #i102420# debug _MoveNodes: output the destination, too. Break after two iterations.
2009-08-07 Henning Brinkmann #i102420# _MoveNodes: Additionally check if destination index is inside source => false
Check if current range was already handled => loop
Debug output current range
2009-08-06 Henning Brinkmann merged DEV300_m54
2009-08-06 Henning Brinkmann added master fix
2009-08-06 Henning Brinkmann debug output for SwNodeRange
2009-08-04 Henning Brinkmann #i102844# robustness: check for NULL pointer to prevent crash
2009-08-03 Henning Brinkmann #i103475# applied patch and verified
2009-08-03 Henning Brinkmann Removed code preventing build of sw with DEBUG.
2009-09-11 convert-repo update tags
2009-09-10 kz CWS-TOOLING: integrate CWS os2port06dev300
2009-09-05 22:49:00 +0200 ydario r275858 : #i99588# applied os2port06 diff to DEV300 tree.
2009-09-10 kz CWS-TOOLING: integrate CWS mingwport23
2009-08-29 07:07:53 +0200 tono r275555 : i#104522: mingw port graphite
2009-08-29 07:07:26 +0200 tono r275554 : i#104522: mingw port printf format fix
2009-09-10 kz CWS-TOOLING: integrate CWS mh232
2009-08-26 03:52:57 +0200 mh r275385 : #i102182# FreeBSD patch
2009-08-26 03:43:20 +0200 mh r275384 : #i101333# patch for FreeBSD
2009-08-26 03:11:20 +0200 mh r275383 : #i39230
2009-08-26 03:07:51 +0200 mh r275382 : #i39230# more space for initials field
2009-08-26 02:41:19 +0200 mh r275380 : #i39230# use vos::osecurity for reading the user name
2009-08-18 22:06:00 +0200 mh r275130 : #i104243#, line ending problem with newer perl
2009-08-18 21:53:21 +0200 mh r275129 : #i39230# read initials via getpwnam
2009-08-18 21:34:05 +0200 mh r275128 : enable CAIROCANVAS for Linux and Mac, #i88613#
2009-08-17 18:02:59 +0200 mh r275067 : #i95498# make compile with gcc3
2009-09-10 kz CWS-TOOLING: integrate CWS tkr24
2009-09-07 14:31:06 +0200 is r275898 : #160081# adding NO_LICENSE_INTO_COPYRIGHT
2009-09-10 releng #i10000# change KeyMapping to SingletonRef<framework::KeyMapping>
2009-09-11 convert-repo update tags
2009-09-10 kz CWS-TOOLING: integrate CWS os2port06dev300
2009-09-05 22:49:00 +0200 ydario r275858 : #i99588# applied os2port06 diff to DEV300 tree.
2009-09-10 kz CWS-TOOLING: integrate CWS mingwport23
2009-08-29 07:07:53 +0200 tono r275555 : i#104522: mingw port graphite
2009-08-29 07:07:26 +0200 tono r275554 : i#104522: mingw port printf format fix
2009-09-10 kz CWS-TOOLING: integrate CWS mh232
2009-08-26 03:52:57 +0200 mh r275385 : #i102182# FreeBSD patch
2009-08-26 03:43:20 +0200 mh r275384 : #i101333# patch for FreeBSD
2009-08-26 03:11:20 +0200 mh r275383 : #i39230
2009-08-26 03:07:51 +0200 mh r275382 : #i39230# more space for initials field
2009-08-26 02:41:19 +0200 mh r275380 : #i39230# use vos::osecurity for reading the user name
2009-08-18 22:06:00 +0200 mh r275130 : #i104243#, line ending problem with newer perl
2009-08-18 21:53:21 +0200 mh r275129 : #i39230# read initials via getpwnam
2009-08-18 21:34:05 +0200 mh r275128 : enable CAIROCANVAS for Linux and Mac, #i88613#
2009-08-17 18:02:59 +0200 mh r275067 : #i95498# make compile with gcc3
2009-09-10 kz CWS-TOOLING: integrate CWS tkr24
2009-09-07 14:31:06 +0200 is r275898 : #160081# adding NO_LICENSE_INTO_COPYRIGHT
2009-09-10 releng #i10000# change KeyMapping to SingletonRef<framework::KeyMapping>
2009-09-11 14:29:45 +00:00
|
|
|
|
pDoc->CopyRange( *this, aPos, false );
|
2000-09-18 23:08:29 +00:00
|
|
|
|
}
|
|
|
|
|
else
|
|
|
|
|
{
|
|
|
|
|
SwNodeIndex aInsPos( *pSttNd->EndOfSectionNode() );
|
|
|
|
|
SwNodeRange aRg( pStt->nNode, 0, pEnd->nNode, 1 );
|
2009-07-28 13:59:44 +00:00
|
|
|
|
pDoc->CopyWithFlyInFly( aRg, 0, aInsPos );
|
2000-09-18 23:08:29 +00:00
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
pCntntSect = new SwNodeIndex( *pSttNd );
|
|
|
|
|
|
|
|
|
|
pDoc->SetCopyIsMove( bSaveCopyFlag );
|
|
|
|
|
pDoc->SetRedlineMove( bSaveRdlMoveFlg );
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
void SwRedline::DelCopyOfSection()
|
|
|
|
|
{
|
|
|
|
|
if( pCntntSect )
|
|
|
|
|
{
|
|
|
|
|
const SwPosition* pStt = Start(),
|
|
|
|
|
* pEnd = pStt == GetPoint() ? GetMark() : GetPoint();
|
|
|
|
|
|
|
|
|
|
SwDoc* pDoc = GetDoc();
|
|
|
|
|
SwPaM aPam( *pStt, *pEnd );
|
|
|
|
|
SwCntntNode* pCSttNd = pStt->nNode.GetNode().GetCntntNode();
|
|
|
|
|
SwCntntNode* pCEndNd = pEnd->nNode.GetNode().GetCntntNode();
|
|
|
|
|
|
|
|
|
|
if( !pCSttNd )
|
|
|
|
|
{
|
|
|
|
|
// damit die Indizies der anderen Redlines nicht mitverschoben
|
|
|
|
|
// werden, diese aufs Ende setzen (ist exclusive).
|
|
|
|
|
const SwRedlineTbl& rTbl = pDoc->GetRedlineTbl();
|
|
|
|
|
for( USHORT n = 0; n < rTbl.Count(); ++n )
|
|
|
|
|
{
|
|
|
|
|
SwRedline* pRedl = rTbl[ n ];
|
|
|
|
|
if( pRedl->GetBound(TRUE) == *pStt )
|
|
|
|
|
pRedl->GetBound(TRUE) = *pEnd;
|
|
|
|
|
if( pRedl->GetBound(FALSE) == *pStt )
|
|
|
|
|
pRedl->GetBound(FALSE) = *pEnd;
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
if( pCSttNd && pCEndNd )
|
2009-08-27 14:36:29 +00:00
|
|
|
|
{
|
|
|
|
|
// --> OD 2009-08-20 #i100466#
|
|
|
|
|
// force a <join next> on <delete and join> operation
|
|
|
|
|
pDoc->DeleteAndJoin( aPam, true );
|
|
|
|
|
// <--
|
|
|
|
|
}
|
2000-09-18 23:08:29 +00:00
|
|
|
|
else if( pCSttNd || pCEndNd )
|
|
|
|
|
{
|
|
|
|
|
if( pCSttNd && !pCEndNd )
|
|
|
|
|
bDelLastPara = TRUE;
|
CWS-TOOLING: integrate CWS odfmetadata3
2009-09-11 Michael Stahl merge DEV300_m58
2009-09-07 Michael Stahl SwFmtFld::Modify(): do nothing on RES_OBJECTDYING
2009-08-27 Michael Stahl #i91565#, #i91566#: TextPortionEnumerationTest.java: add test document
2009-08-27 Michael Stahl #i91565#, #i91566#: add complex test: TextPortionEnumerationTest.java
2009-08-27 Michael Stahl CLiteral::initialize(): zero-length literals probably not an error
2009-08-27 Michael Stahl #i91565#, #i91566#: offapi: new InContentMetadata and MetadataField services
adapt TextPortion for InContentMetadata
2009-08-27 Michael Stahl #i91564#: xmloff: load/store xml:id and RDFa for text:bookmark(-start).
2009-08-27 Michael Stahl #i91564#: sw core: add support for xml:id at bookmarks:
sw::mark::Bookmark: derive from Metadatable.
SwHistoryBookmark, SaveBookmark: store a MetadatableUndo.
ndcopy.cxx: lcl_CopyBookmarks(): copy the xml:id.
SwXBookmark: derive from MetadatableMixin.
2009-08-27 Michael Stahl #i91565#, #i91566#: xmloff: refactor ruby import so nested meta(-field) works:
remove XMLRubyHint_Impl.
XMLImpRubyContext_Impl::~XMLImpRubyContext_Impl(): insert ruby directly.
2009-08-27 Michael Stahl #i91565#, #i91566#: xmloff: fix text:meta(-field) import/export:
new XMLTextParagraphExport::exportTextField() overload for XTextField.
CreateAndInsertMark(): set xml:id after insertion.
fix meta(-field) service names, bugs etc.
2009-08-27 Michael Stahl #i91565#, #i91566#: sw text formatting: paint background of meta(-field) body:
SwFont: add member m_nMetaCount.
txttypes.hxx: add POR_META.
atrstck.cxx: handle RES_TXTATR_META(FIELD).
itrform2.cxx: SwTxtFormatter::WhichTxtPor(): create new class SwMetaPortion.
2009-08-27 Michael Stahl #i91566#: sw text formatting: display meta-field prefix and suffix:
SwAttrIter::GetAttr(): replace with call to GetTxtAttrForCharAt().
SwTxtFormatter::NewExtraPortion(): handle meta-field prefix.
SwTxtFormatter: new member m_nHintEndIndex.
SwTxtFormatter::WhichFirstPortion(): call TryNewNoLengthPortion().
SwTxtFormatter::TryNewNoLengthPortion(): new; handle suffix of meta-field.
SwTxtFormatter::UnderFlow(): UGLY HACK: decrement m_nHintEndIndex.
SwFldPortion: add flag m_bNoLength: portion has zero length (for suffix).
2009-08-27 Michael Stahl #i91565#, #i91566#: extend text:meta(-field) uno wrapper with XText interface:
unoobj.hxx: new CursorType CURSOR_META.
unoobj2.cxx: refactor SwXText implementation to ensure that when the SwXText
belongs to a SwXMeta, content is always inserted inside the meta(-field).
unoobj.cxx: new SwXTextCursor::ForceIntoMeta(): cursor stays in meta(-field).
unometa.hxx: SwXMeta implements XText, forwarding to a member SwXMetaText.
DocInsertStringSplitCR(), SwX*::attachToRange(), SwX*::DeleteAndInsert():
use FORCEHINTEXPAND hack to ensure insert into the meta(-field) at the end.
2009-08-27 Michael Stahl #i91565#, #i91566#: add text:meta(-field) uno wrapper to sw:
fmtmeta.hxx, fmtatr2.cxx: new class sw::MetaField, new sw::MetaFieldManager.
doc.hxx, docnew.cxx: new SwDoc::GetMetaFieldManager().
unocoll.hxx,.cxx: new SW_SERVICE_FIELDTYPE_METAFIELD, SW_SERVICE_TYPE_META.
unomap.hxx,.cxx: new PROPERTY_MAP_METAFIELD.
unoprnms.hxx: new UNO_NAME_META.
unoport.hxx: new PORTION_META; add "InContentMetadata" prop to SwXTextPortion.
new unometa.hxx: new class SwXMeta and SwXMetaField.
unofield.cxx: SwXFieldEnumeration: include meta-fields.
unoportenum.cxx: handle RES_TXTATR_META(FIELD) by using a portion list stack.
unotext.cxx: SwXText::insertTextContent(): handle meta(-field) as attribute.
2009-08-27 Michael Stahl #i91565#, #i91566#: ndhints.cxx: remove sort number from SwTxtAttrNesting
2009-08-27 Michael Stahl #i91565#, #i91566#: add support for hints with end and CH_TXTATR to sw core:
doc.hxx, docedt.cxx: replace SwDoc::Delete(), DeleteAndJoin(), ReplaceRange()
with wrappers that split at left-overlapped end+CH_TXTATR hints.
txatbase.hxx: new member SwTxtAttr::m_bHasDummyChar.
ndtxt.hxx: rename SwTxtNode::GetTxtAttr() to GetTxtAttrForCharAt().
ndtxt.cxx: SwTxtNode::CopyText(): copy end+CH_TXTATR hints iff copy CH_TXTATR.
txtatr2.cxx, thints.cxx: SwTxtMeta gets a CH_TXTATR.
2009-08-27 Michael Stahl #i91565#, #i91566#: add text:meta(-field) to sw core:
txatbase.hxx: new member SwTxtAttr::m_bNesting.
hintids.hxx: new ids RES_TXTATR_META, RES_TXTATR_METAFIELD.
txtatr.hxx: new base class SwTxtAttrNesting.
new hint SwTxtMeta.
SwTxtRuby derives from SwTxtAttrNesting.
txtinet.hxx: SwTxtINetFmt derives from SwTxtAttrNesting.
new header fmtmeta.hxx: new pool item SwFmtMeta. new class sw::Meta.
ndhints.hxx, thints.cxx: new method SwpHints::TryInsertNesting().
thints.cxx: refactoring: BuildPortions() no longer handles Ruby/Hyperlink,
but TryInsertNesting(), which also handles meta(-field).
SwTxtNode::InsertItem(): check if the hint is actually inserted.
ndhints.cxx: sort nesting hints based on sort number.
ndtxt.cxx: lcl_CopyHint(): handle copy of meta/meta-field.
2009-08-27 Michael Stahl enable expanding hints with m_bLockExpandFlag set:
add new InsertFlag: INS_FORCEHINTEXPAND.
add new SetAttrMode: SETATTR_FORCEHINTEXPAND.
rename SwEditShell::Insert() to Insert2() because changed signature fails
to compile when SwWrtShell tries to overwrite these non-virtual members...
SwWrtShell::Insert() sets FOCEHINTEXPAND if range was selected/deleted.
adapt SwUndoInsert to store flags.
2009-08-27 Michael Stahl change formal parameters of item insertion methods to type SetAttrMode
2009-08-27 Michael Stahl fix incorrect resetting of text attributes in SwUndoInsSection, SwUndoInserts
2009-08-27 Michael Stahl clean up SwTxtNode::CutImpl() and lcl_CopyHint()
2009-08-27 Michael Stahl rename SwDoc::Copy() to CopyRange(), and _Copy() to CopyImpl()
2009-08-27 Michael Stahl rename SwNodes::Move() to MoveRange(), and remove unused parameter
2009-08-27 Michael Stahl rename SwDoc::Move() to MoveRange()/MoveNodeRange()
2009-08-27 Michael Stahl rename SwDoc::Insert() to InsertString(), and remove sal_Unicode variant
2009-08-27 Michael Stahl rename SwDoc::Insert() to InsertPoolItem()/InsertItemSet()/InsertSwSection()
2009-08-27 Michael Stahl rename SwDoc::Replace() to ReplaceRange()
2009-08-27 Michael Stahl remove SwDoc::Overwrite() sal_Unicode variant
2009-08-27 Michael Stahl split up SwDoc::DeleteAndJoin(): factor out DeleteAndJoinWithRedline()
2009-08-27 Michael Stahl rename overloaded SwDoc::Delete() to DeleteRange()/DeleteTOXMark()
2009-08-27 Michael Stahl rename SwTxtNode::Copy() to CopyText()
2009-08-27 Michael Stahl rename SwTxtNode::Cut() to CutText(), and _Cut() to CutImpl()
2009-08-27 Michael Stahl rename SwTxtNode::Delete() to DeleteAttribute()/DeleteAttributes()
2009-08-27 Michael Stahl rename SwTxtNode::Replace() to ReplaceText(), and remove the xub_Unicode variant
2009-08-27 Michael Stahl rename SwTxtNode::Erase() to EraseText()
2009-08-27 Michael Stahl rename SwTxtNode::Insert() to InsertText(), and remove the xub_Unicode variant
2009-08-27 Michael Stahl clean up SwTxtNode::Update()
2009-08-27 Michael Stahl remove SwTxtAttr::RemoveFromPool() and make destructor non-public,
to be invoked by new method SwTxtAttr::Destroy()
2009-08-27 Michael Stahl ensure that SwDoc::Insert() for item (set) returns success indicator:
replace SwRegHistory constructor with method InsertItems(), returning bool.
refactor InsAttr() so that it checks if InsertItems() succeeds.
2009-08-27 Michael Stahl move SwXTextPortionEnumeration from unoobj.hxx to unoport.hxx
2009-08-27 Michael Stahl add missing SolarMutex in SwXTextPortion methods
2009-08-27 Michael Stahl SwXTextPortion: new member m_xTextField (so the TextField property need not
be returned indirectly via SwUnoCursorHelper).
factor out function CreateSwXTextField().
2009-08-27 Michael Stahl SwXTextPortion: remove PORTION_CONTROL_CHAR and implementation of XTextField
2009-08-27 Michael Stahl remove obsolete hint SwTxtHardBlank and formats SwFmtHardBlank/SwFmtSoftHyph
2009-08-27 Michael Stahl clean up SwTxtAttr and friends:
remove many accessor methods for obsolete (due to autofmt) char format items.
remove unused flag SwTxtAttr::m_bDontMergeAttr.
MakeRedlineTxtAttr() now dedicated function, no longer calls MakeTxtAttr().
2009-08-27 Michael Stahl remove obsolete attribute SwTxt2Lines
2009-08-27 Michael Stahl SwXTextPortionEnumeration: finish refactoring CreatePortions
change ExportHints so it always returns a text portion for hint w/ CH_TXTATR.
remove special case for handling end of paragraph.
unfortunately had to refactor the fieldmarks export as well (got in the way).
2009-08-27 Michael Stahl SwXTextPortionEnumeration: refactor CreatePortions: frames export
extract function ExportFrames() from CreatePortions().
remove (un)dead code that calls evil MovePara(fnParaCurr, fnParaEnd)
2009-08-27 Michael Stahl clean up SwXParaFrameEnumeration
2009-08-27 Michael Stahl CollectFrameAtNode: replace SwDependArr with STL based FrameDependList_t
2009-08-27 Michael Stahl SwXTextPortionEnumeration: tweak refmark/toxmark export
so ExportHints returns the portion for point marks
2009-08-27 Michael Stahl clean up SwXTextPortionEnumeration:
prefix members, remove casts, replace SvWeirdArray with STL, etc.
make CreatePortions() method a function, and remove lots of members.
extract fieldmarks function from CreatePortions.
2009-08-27 Michael Stahl remove FOREACHUNOPAM_START/END macros
2009-08-27 Michael Stahl clean up SwXTextPortion:
prefix members, remove casts, etc.
remove SwXRubyPortion: replace it with another SwXTextPortion constructor
2009-08-27 Michael Stahl #i102541# SwXReferenceMark::InsertRefMark(): use flag SETATTR_DONTEXPAND
2009-08-27 Michael Stahl rename SwTxtNode::Insert to SwTxtNode::InsertHint, and
fix constness in SwTxtNode::InsertItem
2009-08-27 Michael Stahl turn SwTxtNode::MakeTxtAttr() methods into global functions in ndhints.hxx
2009-08-27 Michael Stahl remove obsolete sw/inc/bookmrk.hxx
2009-08-27 Michael Stahl pam.cxx: fix ComparePosition functions (returned wrong result in one case)
2009-08-27 Michael Stahl #i103613# only import RDF metadata on normal open of a document
2009-09-11 kz CWS-TOOLING: integrate CWS impress176
2009-09-08 20:18:24 +0200 sj r275957 : fixed warning (shadowed variable)
2009-09-08 18:02:05 +0200 cl r275948 : #i104315# added missing tab pages
2009-09-08 17:35:18 +0200 cl r275947 : #i104866# fixed angle import
2009-09-08 17:32:53 +0200 cl r275946 : #i104841# fixed angle import
2009-09-08 17:01:25 +0200 cl r275943 : #i103935# fixed the SID_EVENTCONFIG mess
2009-09-08 14:32:57 +0200 sj r275928 : #i104685# only comments
2009-09-07 12:37:36 +0200 sj r275886 : #i104683# fixed import of bold/italic attributes for normal text shapes
2009-09-04 15:07:46 +0200 sj r275808 : #104689# fixed bullet color problem
2009-09-03 15:25:07 +0200 sj r275753 : #160200# added vertical alignment of table cells
2009-09-11 kz CWS-TOOLING: integrate CWS dv14
2009-09-10 15:16:32 +0200 sg r276035 : #160513# updated wfs scheme to accept ports
2009-09-10 07:41:47 +0200 dv r276019 : #i104942# Better renaming algorithmen
2009-08-31 13:41:11 +0200 dv r275604 : #160505# Setting APP1PRODUCTNAME must not overwrite APP1PRODUCTDEF
2009-09-11 kz CWS-TOOLING: integrate CWS jl131
2009-09-02 16:42:40 +0200 jl r275720 : #i97896#
2009-08-31 13:01:53 +0200 jl r275599 : CWS-TOOLING: rebase CWS jl131 to trunk@275331 (milestone: DEV300:m56)
2009-07-31 14:35:30 +0200 jl r274531 : CWS-TOOLING: rebase CWS jl131 to trunk@274203 (milestone: DEV300:m53)
2009-07-23 14:20:32 +0200 jl r274272 : #i79839# better error text when trying to modify shared layer without having write permission, eg. unopkg add --shared, unopkg remove --shared, unopkg reinstall --shared
2009-07-22 16:38:02 +0200 jl r274252 : #i97896# localize error message for lock file
2009-07-22 16:37:22 +0200 jl r274251 : #i80462# unprecise wording in updatedialog
2009-07-22 16:36:06 +0200 jl r274250 : #i97896# localize error message for lock file
2009-07-22 16:35:20 +0200 jl r274249 : #i97896# localize error message for lock file
2009-07-22 15:07:30 +0200 jl r274242 : #i98873# minimum java version is 1.5 since OOo 3.0
2009-09-11 kz CWS-TOOLING: integrate CWS changehc
2009-08-31 19:38:50 +0200 pl r275633 : remove dbug printf
2009-08-31 17:41:50 +0200 pl r275623 : CWS-TOOLING: rebase CWS changehc to trunk@275331 (milestone: DEV300:m56)
2009-07-15 19:45:46 +0200 pl r274028 : #i35482# use HC flag to decide high contrast mode
2009-07-15 17:40:52 +0200 pl r274020 : #i35482# use HC flag to decide high contrast mode
2009-07-15 17:39:50 +0200 pl r274019 : #i35482# update autohc correctly in MergeSystemSettings
2009-07-15 17:38:57 +0200 pl r274018 : #i35482# update autohc correctly in MergeSystemSettings
2009-09-11 kz CWS-TOOLING: integrate CWS notes10
2009-08-24 07:25:57 +0200 mod r275287 : 2009-07-26 02:38:32 +0200 mod r274343 : #i#i103645#
2009-07-26 02:01:53 +0200 mod r274342 : #i103645#
2009-07-26 01:52:42 +0200 mod r274341 : #i103490#
2009-07-22 08:31:48 +0200 mod r274215 : #i103373#
2009-07-15 00:55:11 +0200 mod r273987 : #i101419#
2009-07-14 07:07:55 +0200 mod r273956 : #i101419#
2009-07-14 07:07:43 +0200 mod r273955 : #i101419#
2009-07-14 07:02:10 +0200 mod r273954 : changes from notes9
2009-07-14 06:14:25 +0200 mod r273953 : #i103476#
2009-09-11 kz CWS-TOOLING: integrate CWS ab70
2009-09-10 15:12:54 +0200 jsk r276034 : #i85434# - mandatory automatic update test
2009-09-10 15:11:06 +0200 jsk r276033 : #i85434# - mandatory automatic update test
2009-09-02 09:49:24 +0200 ab r275698 : #i85434# Dialog Import
2009-09-11 kz CWS-TOOLING: integrate CWS hb32bugs02
2009-09-02 Henning Brinkmann #i102420# revert changes
2009-08-26 Henning Brinkmann merged DEV300_m56
2009-08-19 Henning Brinkmann merged DEV300_m55
2009-08-14 Henning Brinkmann merged changes from wntmsci12
2009-08-12 Henning Brinkmann Implemented NoSpaceEdit constructor and destructor in .cxx to allow compile with debug on wntmsci12.
2009-08-12 Henning Brinkmann Added some SW_DLLPUBLIC to make compilable on wntmsci12.
2009-08-11 Henning Brinkmann #i102420# dbg_out: surround output for SwNodes with <nodes-array>.
2009-08-10 Henning Brinkmann #i102420# rewritten debug output for SwNodes.
2009-08-07 Henning Brinkmann #i102420# debug _MoveNodes: output the destination, too. Break after two iterations.
2009-08-07 Henning Brinkmann #i102420# _MoveNodes: Additionally check if destination index is inside source => false
Check if current range was already handled => loop
Debug output current range
2009-08-06 Henning Brinkmann merged DEV300_m54
2009-08-06 Henning Brinkmann added master fix
2009-08-06 Henning Brinkmann debug output for SwNodeRange
2009-08-04 Henning Brinkmann #i102844# robustness: check for NULL pointer to prevent crash
2009-08-03 Henning Brinkmann #i103475# applied patch and verified
2009-08-03 Henning Brinkmann Removed code preventing build of sw with DEBUG.
2009-09-11 convert-repo update tags
2009-09-10 kz CWS-TOOLING: integrate CWS os2port06dev300
2009-09-05 22:49:00 +0200 ydario r275858 : #i99588# applied os2port06 diff to DEV300 tree.
2009-09-10 kz CWS-TOOLING: integrate CWS mingwport23
2009-08-29 07:07:53 +0200 tono r275555 : i#104522: mingw port graphite
2009-08-29 07:07:26 +0200 tono r275554 : i#104522: mingw port printf format fix
2009-09-10 kz CWS-TOOLING: integrate CWS mh232
2009-08-26 03:52:57 +0200 mh r275385 : #i102182# FreeBSD patch
2009-08-26 03:43:20 +0200 mh r275384 : #i101333# patch for FreeBSD
2009-08-26 03:11:20 +0200 mh r275383 : #i39230
2009-08-26 03:07:51 +0200 mh r275382 : #i39230# more space for initials field
2009-08-26 02:41:19 +0200 mh r275380 : #i39230# use vos::osecurity for reading the user name
2009-08-18 22:06:00 +0200 mh r275130 : #i104243#, line ending problem with newer perl
2009-08-18 21:53:21 +0200 mh r275129 : #i39230# read initials via getpwnam
2009-08-18 21:34:05 +0200 mh r275128 : enable CAIROCANVAS for Linux and Mac, #i88613#
2009-08-17 18:02:59 +0200 mh r275067 : #i95498# make compile with gcc3
2009-09-10 kz CWS-TOOLING: integrate CWS tkr24
2009-09-07 14:31:06 +0200 is r275898 : #160081# adding NO_LICENSE_INTO_COPYRIGHT
2009-09-10 releng #i10000# change KeyMapping to SingletonRef<framework::KeyMapping>
2009-09-11 convert-repo update tags
2009-09-10 kz CWS-TOOLING: integrate CWS os2port06dev300
2009-09-05 22:49:00 +0200 ydario r275858 : #i99588# applied os2port06 diff to DEV300 tree.
2009-09-10 kz CWS-TOOLING: integrate CWS mingwport23
2009-08-29 07:07:53 +0200 tono r275555 : i#104522: mingw port graphite
2009-08-29 07:07:26 +0200 tono r275554 : i#104522: mingw port printf format fix
2009-09-10 kz CWS-TOOLING: integrate CWS mh232
2009-08-26 03:52:57 +0200 mh r275385 : #i102182# FreeBSD patch
2009-08-26 03:43:20 +0200 mh r275384 : #i101333# patch for FreeBSD
2009-08-26 03:11:20 +0200 mh r275383 : #i39230
2009-08-26 03:07:51 +0200 mh r275382 : #i39230# more space for initials field
2009-08-26 02:41:19 +0200 mh r275380 : #i39230# use vos::osecurity for reading the user name
2009-08-18 22:06:00 +0200 mh r275130 : #i104243#, line ending problem with newer perl
2009-08-18 21:53:21 +0200 mh r275129 : #i39230# read initials via getpwnam
2009-08-18 21:34:05 +0200 mh r275128 : enable CAIROCANVAS for Linux and Mac, #i88613#
2009-08-17 18:02:59 +0200 mh r275067 : #i95498# make compile with gcc3
2009-09-10 kz CWS-TOOLING: integrate CWS tkr24
2009-09-07 14:31:06 +0200 is r275898 : #160081# adding NO_LICENSE_INTO_COPYRIGHT
2009-09-10 releng #i10000# change KeyMapping to SingletonRef<framework::KeyMapping>
2009-09-11 14:29:45 +00:00
|
|
|
|
pDoc->DeleteRange( aPam );
|
2000-09-18 23:08:29 +00:00
|
|
|
|
|
|
|
|
|
if( bDelLastPara )
|
|
|
|
|
{
|
2002-06-27 13:23:50 +00:00
|
|
|
|
// #100611# To prevent dangling references to the paragraph to
|
|
|
|
|
// be deleted, redline that point into this paragraph should be
|
|
|
|
|
// moved to the new end position. Since redlines in the redline
|
|
|
|
|
// table are sorted and the pEnd position is an endnode (see
|
|
|
|
|
// bDelLastPara condition above), only redlines before the
|
|
|
|
|
// current ones can be affected.
|
2000-09-18 23:08:29 +00:00
|
|
|
|
const SwRedlineTbl& rTbl = pDoc->GetRedlineTbl();
|
|
|
|
|
USHORT n = rTbl.GetPos( this );
|
2002-06-27 13:23:50 +00:00
|
|
|
|
ASSERT( n != USHRT_MAX, "How strange. We don't exist!" );
|
|
|
|
|
for( BOOL bBreak = FALSE; !bBreak && n > 0; )
|
2000-09-18 23:08:29 +00:00
|
|
|
|
{
|
2002-06-27 13:23:50 +00:00
|
|
|
|
--n;
|
2000-09-18 23:08:29 +00:00
|
|
|
|
bBreak = TRUE;
|
2002-06-27 13:23:50 +00:00
|
|
|
|
if( rTbl[ n ]->GetBound(TRUE) == *aPam.GetPoint() )
|
2000-09-18 23:08:29 +00:00
|
|
|
|
{
|
2002-06-27 13:23:50 +00:00
|
|
|
|
rTbl[ n ]->GetBound(TRUE) = *pEnd;
|
2000-09-18 23:08:29 +00:00
|
|
|
|
bBreak = FALSE;
|
|
|
|
|
}
|
2002-06-27 13:23:50 +00:00
|
|
|
|
if( rTbl[ n ]->GetBound(FALSE) == *aPam.GetPoint() )
|
2000-09-18 23:08:29 +00:00
|
|
|
|
{
|
2002-06-27 13:23:50 +00:00
|
|
|
|
rTbl[ n ]->GetBound(FALSE) = *pEnd;
|
2000-09-18 23:08:29 +00:00
|
|
|
|
bBreak = FALSE;
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
SwPosition aEnd( *pEnd );
|
2001-09-27 12:42:58 +00:00
|
|
|
|
*GetPoint() = *pEnd;
|
|
|
|
|
*GetMark() = *pEnd;
|
|
|
|
|
DeleteMark();
|
2000-09-18 23:08:29 +00:00
|
|
|
|
|
2001-09-27 12:42:58 +00:00
|
|
|
|
aPam.GetBound( TRUE ).nContent.Assign( 0, 0 );
|
|
|
|
|
aPam.GetBound( FALSE ).nContent.Assign( 0, 0 );
|
2000-09-18 23:08:29 +00:00
|
|
|
|
aPam.DeleteMark();
|
|
|
|
|
pDoc->DelFullPara( aPam );
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
else
|
CWS-TOOLING: integrate CWS odfmetadata3
2009-09-11 Michael Stahl merge DEV300_m58
2009-09-07 Michael Stahl SwFmtFld::Modify(): do nothing on RES_OBJECTDYING
2009-08-27 Michael Stahl #i91565#, #i91566#: TextPortionEnumerationTest.java: add test document
2009-08-27 Michael Stahl #i91565#, #i91566#: add complex test: TextPortionEnumerationTest.java
2009-08-27 Michael Stahl CLiteral::initialize(): zero-length literals probably not an error
2009-08-27 Michael Stahl #i91565#, #i91566#: offapi: new InContentMetadata and MetadataField services
adapt TextPortion for InContentMetadata
2009-08-27 Michael Stahl #i91564#: xmloff: load/store xml:id and RDFa for text:bookmark(-start).
2009-08-27 Michael Stahl #i91564#: sw core: add support for xml:id at bookmarks:
sw::mark::Bookmark: derive from Metadatable.
SwHistoryBookmark, SaveBookmark: store a MetadatableUndo.
ndcopy.cxx: lcl_CopyBookmarks(): copy the xml:id.
SwXBookmark: derive from MetadatableMixin.
2009-08-27 Michael Stahl #i91565#, #i91566#: xmloff: refactor ruby import so nested meta(-field) works:
remove XMLRubyHint_Impl.
XMLImpRubyContext_Impl::~XMLImpRubyContext_Impl(): insert ruby directly.
2009-08-27 Michael Stahl #i91565#, #i91566#: xmloff: fix text:meta(-field) import/export:
new XMLTextParagraphExport::exportTextField() overload for XTextField.
CreateAndInsertMark(): set xml:id after insertion.
fix meta(-field) service names, bugs etc.
2009-08-27 Michael Stahl #i91565#, #i91566#: sw text formatting: paint background of meta(-field) body:
SwFont: add member m_nMetaCount.
txttypes.hxx: add POR_META.
atrstck.cxx: handle RES_TXTATR_META(FIELD).
itrform2.cxx: SwTxtFormatter::WhichTxtPor(): create new class SwMetaPortion.
2009-08-27 Michael Stahl #i91566#: sw text formatting: display meta-field prefix and suffix:
SwAttrIter::GetAttr(): replace with call to GetTxtAttrForCharAt().
SwTxtFormatter::NewExtraPortion(): handle meta-field prefix.
SwTxtFormatter: new member m_nHintEndIndex.
SwTxtFormatter::WhichFirstPortion(): call TryNewNoLengthPortion().
SwTxtFormatter::TryNewNoLengthPortion(): new; handle suffix of meta-field.
SwTxtFormatter::UnderFlow(): UGLY HACK: decrement m_nHintEndIndex.
SwFldPortion: add flag m_bNoLength: portion has zero length (for suffix).
2009-08-27 Michael Stahl #i91565#, #i91566#: extend text:meta(-field) uno wrapper with XText interface:
unoobj.hxx: new CursorType CURSOR_META.
unoobj2.cxx: refactor SwXText implementation to ensure that when the SwXText
belongs to a SwXMeta, content is always inserted inside the meta(-field).
unoobj.cxx: new SwXTextCursor::ForceIntoMeta(): cursor stays in meta(-field).
unometa.hxx: SwXMeta implements XText, forwarding to a member SwXMetaText.
DocInsertStringSplitCR(), SwX*::attachToRange(), SwX*::DeleteAndInsert():
use FORCEHINTEXPAND hack to ensure insert into the meta(-field) at the end.
2009-08-27 Michael Stahl #i91565#, #i91566#: add text:meta(-field) uno wrapper to sw:
fmtmeta.hxx, fmtatr2.cxx: new class sw::MetaField, new sw::MetaFieldManager.
doc.hxx, docnew.cxx: new SwDoc::GetMetaFieldManager().
unocoll.hxx,.cxx: new SW_SERVICE_FIELDTYPE_METAFIELD, SW_SERVICE_TYPE_META.
unomap.hxx,.cxx: new PROPERTY_MAP_METAFIELD.
unoprnms.hxx: new UNO_NAME_META.
unoport.hxx: new PORTION_META; add "InContentMetadata" prop to SwXTextPortion.
new unometa.hxx: new class SwXMeta and SwXMetaField.
unofield.cxx: SwXFieldEnumeration: include meta-fields.
unoportenum.cxx: handle RES_TXTATR_META(FIELD) by using a portion list stack.
unotext.cxx: SwXText::insertTextContent(): handle meta(-field) as attribute.
2009-08-27 Michael Stahl #i91565#, #i91566#: ndhints.cxx: remove sort number from SwTxtAttrNesting
2009-08-27 Michael Stahl #i91565#, #i91566#: add support for hints with end and CH_TXTATR to sw core:
doc.hxx, docedt.cxx: replace SwDoc::Delete(), DeleteAndJoin(), ReplaceRange()
with wrappers that split at left-overlapped end+CH_TXTATR hints.
txatbase.hxx: new member SwTxtAttr::m_bHasDummyChar.
ndtxt.hxx: rename SwTxtNode::GetTxtAttr() to GetTxtAttrForCharAt().
ndtxt.cxx: SwTxtNode::CopyText(): copy end+CH_TXTATR hints iff copy CH_TXTATR.
txtatr2.cxx, thints.cxx: SwTxtMeta gets a CH_TXTATR.
2009-08-27 Michael Stahl #i91565#, #i91566#: add text:meta(-field) to sw core:
txatbase.hxx: new member SwTxtAttr::m_bNesting.
hintids.hxx: new ids RES_TXTATR_META, RES_TXTATR_METAFIELD.
txtatr.hxx: new base class SwTxtAttrNesting.
new hint SwTxtMeta.
SwTxtRuby derives from SwTxtAttrNesting.
txtinet.hxx: SwTxtINetFmt derives from SwTxtAttrNesting.
new header fmtmeta.hxx: new pool item SwFmtMeta. new class sw::Meta.
ndhints.hxx, thints.cxx: new method SwpHints::TryInsertNesting().
thints.cxx: refactoring: BuildPortions() no longer handles Ruby/Hyperlink,
but TryInsertNesting(), which also handles meta(-field).
SwTxtNode::InsertItem(): check if the hint is actually inserted.
ndhints.cxx: sort nesting hints based on sort number.
ndtxt.cxx: lcl_CopyHint(): handle copy of meta/meta-field.
2009-08-27 Michael Stahl enable expanding hints with m_bLockExpandFlag set:
add new InsertFlag: INS_FORCEHINTEXPAND.
add new SetAttrMode: SETATTR_FORCEHINTEXPAND.
rename SwEditShell::Insert() to Insert2() because changed signature fails
to compile when SwWrtShell tries to overwrite these non-virtual members...
SwWrtShell::Insert() sets FOCEHINTEXPAND if range was selected/deleted.
adapt SwUndoInsert to store flags.
2009-08-27 Michael Stahl change formal parameters of item insertion methods to type SetAttrMode
2009-08-27 Michael Stahl fix incorrect resetting of text attributes in SwUndoInsSection, SwUndoInserts
2009-08-27 Michael Stahl clean up SwTxtNode::CutImpl() and lcl_CopyHint()
2009-08-27 Michael Stahl rename SwDoc::Copy() to CopyRange(), and _Copy() to CopyImpl()
2009-08-27 Michael Stahl rename SwNodes::Move() to MoveRange(), and remove unused parameter
2009-08-27 Michael Stahl rename SwDoc::Move() to MoveRange()/MoveNodeRange()
2009-08-27 Michael Stahl rename SwDoc::Insert() to InsertString(), and remove sal_Unicode variant
2009-08-27 Michael Stahl rename SwDoc::Insert() to InsertPoolItem()/InsertItemSet()/InsertSwSection()
2009-08-27 Michael Stahl rename SwDoc::Replace() to ReplaceRange()
2009-08-27 Michael Stahl remove SwDoc::Overwrite() sal_Unicode variant
2009-08-27 Michael Stahl split up SwDoc::DeleteAndJoin(): factor out DeleteAndJoinWithRedline()
2009-08-27 Michael Stahl rename overloaded SwDoc::Delete() to DeleteRange()/DeleteTOXMark()
2009-08-27 Michael Stahl rename SwTxtNode::Copy() to CopyText()
2009-08-27 Michael Stahl rename SwTxtNode::Cut() to CutText(), and _Cut() to CutImpl()
2009-08-27 Michael Stahl rename SwTxtNode::Delete() to DeleteAttribute()/DeleteAttributes()
2009-08-27 Michael Stahl rename SwTxtNode::Replace() to ReplaceText(), and remove the xub_Unicode variant
2009-08-27 Michael Stahl rename SwTxtNode::Erase() to EraseText()
2009-08-27 Michael Stahl rename SwTxtNode::Insert() to InsertText(), and remove the xub_Unicode variant
2009-08-27 Michael Stahl clean up SwTxtNode::Update()
2009-08-27 Michael Stahl remove SwTxtAttr::RemoveFromPool() and make destructor non-public,
to be invoked by new method SwTxtAttr::Destroy()
2009-08-27 Michael Stahl ensure that SwDoc::Insert() for item (set) returns success indicator:
replace SwRegHistory constructor with method InsertItems(), returning bool.
refactor InsAttr() so that it checks if InsertItems() succeeds.
2009-08-27 Michael Stahl move SwXTextPortionEnumeration from unoobj.hxx to unoport.hxx
2009-08-27 Michael Stahl add missing SolarMutex in SwXTextPortion methods
2009-08-27 Michael Stahl SwXTextPortion: new member m_xTextField (so the TextField property need not
be returned indirectly via SwUnoCursorHelper).
factor out function CreateSwXTextField().
2009-08-27 Michael Stahl SwXTextPortion: remove PORTION_CONTROL_CHAR and implementation of XTextField
2009-08-27 Michael Stahl remove obsolete hint SwTxtHardBlank and formats SwFmtHardBlank/SwFmtSoftHyph
2009-08-27 Michael Stahl clean up SwTxtAttr and friends:
remove many accessor methods for obsolete (due to autofmt) char format items.
remove unused flag SwTxtAttr::m_bDontMergeAttr.
MakeRedlineTxtAttr() now dedicated function, no longer calls MakeTxtAttr().
2009-08-27 Michael Stahl remove obsolete attribute SwTxt2Lines
2009-08-27 Michael Stahl SwXTextPortionEnumeration: finish refactoring CreatePortions
change ExportHints so it always returns a text portion for hint w/ CH_TXTATR.
remove special case for handling end of paragraph.
unfortunately had to refactor the fieldmarks export as well (got in the way).
2009-08-27 Michael Stahl SwXTextPortionEnumeration: refactor CreatePortions: frames export
extract function ExportFrames() from CreatePortions().
remove (un)dead code that calls evil MovePara(fnParaCurr, fnParaEnd)
2009-08-27 Michael Stahl clean up SwXParaFrameEnumeration
2009-08-27 Michael Stahl CollectFrameAtNode: replace SwDependArr with STL based FrameDependList_t
2009-08-27 Michael Stahl SwXTextPortionEnumeration: tweak refmark/toxmark export
so ExportHints returns the portion for point marks
2009-08-27 Michael Stahl clean up SwXTextPortionEnumeration:
prefix members, remove casts, replace SvWeirdArray with STL, etc.
make CreatePortions() method a function, and remove lots of members.
extract fieldmarks function from CreatePortions.
2009-08-27 Michael Stahl remove FOREACHUNOPAM_START/END macros
2009-08-27 Michael Stahl clean up SwXTextPortion:
prefix members, remove casts, etc.
remove SwXRubyPortion: replace it with another SwXTextPortion constructor
2009-08-27 Michael Stahl #i102541# SwXReferenceMark::InsertRefMark(): use flag SETATTR_DONTEXPAND
2009-08-27 Michael Stahl rename SwTxtNode::Insert to SwTxtNode::InsertHint, and
fix constness in SwTxtNode::InsertItem
2009-08-27 Michael Stahl turn SwTxtNode::MakeTxtAttr() methods into global functions in ndhints.hxx
2009-08-27 Michael Stahl remove obsolete sw/inc/bookmrk.hxx
2009-08-27 Michael Stahl pam.cxx: fix ComparePosition functions (returned wrong result in one case)
2009-08-27 Michael Stahl #i103613# only import RDF metadata on normal open of a document
2009-09-11 kz CWS-TOOLING: integrate CWS impress176
2009-09-08 20:18:24 +0200 sj r275957 : fixed warning (shadowed variable)
2009-09-08 18:02:05 +0200 cl r275948 : #i104315# added missing tab pages
2009-09-08 17:35:18 +0200 cl r275947 : #i104866# fixed angle import
2009-09-08 17:32:53 +0200 cl r275946 : #i104841# fixed angle import
2009-09-08 17:01:25 +0200 cl r275943 : #i103935# fixed the SID_EVENTCONFIG mess
2009-09-08 14:32:57 +0200 sj r275928 : #i104685# only comments
2009-09-07 12:37:36 +0200 sj r275886 : #i104683# fixed import of bold/italic attributes for normal text shapes
2009-09-04 15:07:46 +0200 sj r275808 : #104689# fixed bullet color problem
2009-09-03 15:25:07 +0200 sj r275753 : #160200# added vertical alignment of table cells
2009-09-11 kz CWS-TOOLING: integrate CWS dv14
2009-09-10 15:16:32 +0200 sg r276035 : #160513# updated wfs scheme to accept ports
2009-09-10 07:41:47 +0200 dv r276019 : #i104942# Better renaming algorithmen
2009-08-31 13:41:11 +0200 dv r275604 : #160505# Setting APP1PRODUCTNAME must not overwrite APP1PRODUCTDEF
2009-09-11 kz CWS-TOOLING: integrate CWS jl131
2009-09-02 16:42:40 +0200 jl r275720 : #i97896#
2009-08-31 13:01:53 +0200 jl r275599 : CWS-TOOLING: rebase CWS jl131 to trunk@275331 (milestone: DEV300:m56)
2009-07-31 14:35:30 +0200 jl r274531 : CWS-TOOLING: rebase CWS jl131 to trunk@274203 (milestone: DEV300:m53)
2009-07-23 14:20:32 +0200 jl r274272 : #i79839# better error text when trying to modify shared layer without having write permission, eg. unopkg add --shared, unopkg remove --shared, unopkg reinstall --shared
2009-07-22 16:38:02 +0200 jl r274252 : #i97896# localize error message for lock file
2009-07-22 16:37:22 +0200 jl r274251 : #i80462# unprecise wording in updatedialog
2009-07-22 16:36:06 +0200 jl r274250 : #i97896# localize error message for lock file
2009-07-22 16:35:20 +0200 jl r274249 : #i97896# localize error message for lock file
2009-07-22 15:07:30 +0200 jl r274242 : #i98873# minimum java version is 1.5 since OOo 3.0
2009-09-11 kz CWS-TOOLING: integrate CWS changehc
2009-08-31 19:38:50 +0200 pl r275633 : remove dbug printf
2009-08-31 17:41:50 +0200 pl r275623 : CWS-TOOLING: rebase CWS changehc to trunk@275331 (milestone: DEV300:m56)
2009-07-15 19:45:46 +0200 pl r274028 : #i35482# use HC flag to decide high contrast mode
2009-07-15 17:40:52 +0200 pl r274020 : #i35482# use HC flag to decide high contrast mode
2009-07-15 17:39:50 +0200 pl r274019 : #i35482# update autohc correctly in MergeSystemSettings
2009-07-15 17:38:57 +0200 pl r274018 : #i35482# update autohc correctly in MergeSystemSettings
2009-09-11 kz CWS-TOOLING: integrate CWS notes10
2009-08-24 07:25:57 +0200 mod r275287 : 2009-07-26 02:38:32 +0200 mod r274343 : #i#i103645#
2009-07-26 02:01:53 +0200 mod r274342 : #i103645#
2009-07-26 01:52:42 +0200 mod r274341 : #i103490#
2009-07-22 08:31:48 +0200 mod r274215 : #i103373#
2009-07-15 00:55:11 +0200 mod r273987 : #i101419#
2009-07-14 07:07:55 +0200 mod r273956 : #i101419#
2009-07-14 07:07:43 +0200 mod r273955 : #i101419#
2009-07-14 07:02:10 +0200 mod r273954 : changes from notes9
2009-07-14 06:14:25 +0200 mod r273953 : #i103476#
2009-09-11 kz CWS-TOOLING: integrate CWS ab70
2009-09-10 15:12:54 +0200 jsk r276034 : #i85434# - mandatory automatic update test
2009-09-10 15:11:06 +0200 jsk r276033 : #i85434# - mandatory automatic update test
2009-09-02 09:49:24 +0200 ab r275698 : #i85434# Dialog Import
2009-09-11 kz CWS-TOOLING: integrate CWS hb32bugs02
2009-09-02 Henning Brinkmann #i102420# revert changes
2009-08-26 Henning Brinkmann merged DEV300_m56
2009-08-19 Henning Brinkmann merged DEV300_m55
2009-08-14 Henning Brinkmann merged changes from wntmsci12
2009-08-12 Henning Brinkmann Implemented NoSpaceEdit constructor and destructor in .cxx to allow compile with debug on wntmsci12.
2009-08-12 Henning Brinkmann Added some SW_DLLPUBLIC to make compilable on wntmsci12.
2009-08-11 Henning Brinkmann #i102420# dbg_out: surround output for SwNodes with <nodes-array>.
2009-08-10 Henning Brinkmann #i102420# rewritten debug output for SwNodes.
2009-08-07 Henning Brinkmann #i102420# debug _MoveNodes: output the destination, too. Break after two iterations.
2009-08-07 Henning Brinkmann #i102420# _MoveNodes: Additionally check if destination index is inside source => false
Check if current range was already handled => loop
Debug output current range
2009-08-06 Henning Brinkmann merged DEV300_m54
2009-08-06 Henning Brinkmann added master fix
2009-08-06 Henning Brinkmann debug output for SwNodeRange
2009-08-04 Henning Brinkmann #i102844# robustness: check for NULL pointer to prevent crash
2009-08-03 Henning Brinkmann #i103475# applied patch and verified
2009-08-03 Henning Brinkmann Removed code preventing build of sw with DEBUG.
2009-09-11 convert-repo update tags
2009-09-10 kz CWS-TOOLING: integrate CWS os2port06dev300
2009-09-05 22:49:00 +0200 ydario r275858 : #i99588# applied os2port06 diff to DEV300 tree.
2009-09-10 kz CWS-TOOLING: integrate CWS mingwport23
2009-08-29 07:07:53 +0200 tono r275555 : i#104522: mingw port graphite
2009-08-29 07:07:26 +0200 tono r275554 : i#104522: mingw port printf format fix
2009-09-10 kz CWS-TOOLING: integrate CWS mh232
2009-08-26 03:52:57 +0200 mh r275385 : #i102182# FreeBSD patch
2009-08-26 03:43:20 +0200 mh r275384 : #i101333# patch for FreeBSD
2009-08-26 03:11:20 +0200 mh r275383 : #i39230
2009-08-26 03:07:51 +0200 mh r275382 : #i39230# more space for initials field
2009-08-26 02:41:19 +0200 mh r275380 : #i39230# use vos::osecurity for reading the user name
2009-08-18 22:06:00 +0200 mh r275130 : #i104243#, line ending problem with newer perl
2009-08-18 21:53:21 +0200 mh r275129 : #i39230# read initials via getpwnam
2009-08-18 21:34:05 +0200 mh r275128 : enable CAIROCANVAS for Linux and Mac, #i88613#
2009-08-17 18:02:59 +0200 mh r275067 : #i95498# make compile with gcc3
2009-09-10 kz CWS-TOOLING: integrate CWS tkr24
2009-09-07 14:31:06 +0200 is r275898 : #160081# adding NO_LICENSE_INTO_COPYRIGHT
2009-09-10 releng #i10000# change KeyMapping to SingletonRef<framework::KeyMapping>
2009-09-11 convert-repo update tags
2009-09-10 kz CWS-TOOLING: integrate CWS os2port06dev300
2009-09-05 22:49:00 +0200 ydario r275858 : #i99588# applied os2port06 diff to DEV300 tree.
2009-09-10 kz CWS-TOOLING: integrate CWS mingwport23
2009-08-29 07:07:53 +0200 tono r275555 : i#104522: mingw port graphite
2009-08-29 07:07:26 +0200 tono r275554 : i#104522: mingw port printf format fix
2009-09-10 kz CWS-TOOLING: integrate CWS mh232
2009-08-26 03:52:57 +0200 mh r275385 : #i102182# FreeBSD patch
2009-08-26 03:43:20 +0200 mh r275384 : #i101333# patch for FreeBSD
2009-08-26 03:11:20 +0200 mh r275383 : #i39230
2009-08-26 03:07:51 +0200 mh r275382 : #i39230# more space for initials field
2009-08-26 02:41:19 +0200 mh r275380 : #i39230# use vos::osecurity for reading the user name
2009-08-18 22:06:00 +0200 mh r275130 : #i104243#, line ending problem with newer perl
2009-08-18 21:53:21 +0200 mh r275129 : #i39230# read initials via getpwnam
2009-08-18 21:34:05 +0200 mh r275128 : enable CAIROCANVAS for Linux and Mac, #i88613#
2009-08-17 18:02:59 +0200 mh r275067 : #i95498# make compile with gcc3
2009-09-10 kz CWS-TOOLING: integrate CWS tkr24
2009-09-07 14:31:06 +0200 is r275898 : #160081# adding NO_LICENSE_INTO_COPYRIGHT
2009-09-10 releng #i10000# change KeyMapping to SingletonRef<framework::KeyMapping>
2009-09-11 14:29:45 +00:00
|
|
|
|
{
|
|
|
|
|
pDoc->DeleteRange( aPam );
|
|
|
|
|
}
|
2000-09-18 23:08:29 +00:00
|
|
|
|
|
|
|
|
|
if( pStt == GetPoint() )
|
|
|
|
|
Exchange();
|
|
|
|
|
|
|
|
|
|
DeleteMark();
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
void SwRedline::MoveFromSection()
|
|
|
|
|
{
|
|
|
|
|
if( pCntntSect )
|
|
|
|
|
{
|
|
|
|
|
SwDoc* pDoc = GetDoc();
|
|
|
|
|
const SwRedlineTbl& rTbl = pDoc->GetRedlineTbl();
|
|
|
|
|
SvPtrarr aBeforeArr( 16, 16 ), aBehindArr( 16, 16 );
|
|
|
|
|
USHORT nMyPos = rTbl.GetPos( this );
|
|
|
|
|
ASSERT( this, "this nicht im Array?" );
|
2007-09-27 07:36:43 +00:00
|
|
|
|
BOOL bBreak = FALSE;
|
2003-12-01 15:35:02 +00:00
|
|
|
|
USHORT n;
|
2000-09-18 23:08:29 +00:00
|
|
|
|
|
2003-12-01 15:35:02 +00:00
|
|
|
|
for( n = nMyPos+1; !bBreak && n < rTbl.Count(); ++n )
|
2000-09-18 23:08:29 +00:00
|
|
|
|
{
|
|
|
|
|
bBreak = TRUE;
|
|
|
|
|
if( rTbl[ n ]->GetBound(TRUE) == *GetPoint() )
|
|
|
|
|
{
|
|
|
|
|
void* pTmp = &rTbl[ n ]->GetBound(TRUE);
|
|
|
|
|
aBehindArr.Insert( pTmp, aBehindArr.Count());
|
|
|
|
|
bBreak = FALSE;
|
|
|
|
|
}
|
|
|
|
|
if( rTbl[ n ]->GetBound(FALSE) == *GetPoint() )
|
|
|
|
|
{
|
|
|
|
|
void* pTmp = &rTbl[ n ]->GetBound(FALSE);
|
|
|
|
|
aBehindArr.Insert( pTmp, aBehindArr.Count() );
|
|
|
|
|
bBreak = FALSE;
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
for( bBreak = FALSE, n = nMyPos; !bBreak && n ; )
|
|
|
|
|
{
|
|
|
|
|
--n;
|
|
|
|
|
bBreak = TRUE;
|
|
|
|
|
if( rTbl[ n ]->GetBound(TRUE) == *GetPoint() )
|
|
|
|
|
{
|
|
|
|
|
void* pTmp = &rTbl[ n ]->GetBound(TRUE);
|
|
|
|
|
aBeforeArr.Insert( pTmp, aBeforeArr.Count() );
|
|
|
|
|
bBreak = FALSE;
|
|
|
|
|
}
|
|
|
|
|
if( rTbl[ n ]->GetBound(FALSE) == *GetPoint() )
|
|
|
|
|
{
|
|
|
|
|
void* pTmp = &rTbl[ n ]->GetBound(FALSE);
|
|
|
|
|
aBeforeArr.Insert( pTmp, aBeforeArr.Count() );
|
|
|
|
|
bBreak = FALSE;
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
2009-04-27 15:45:01 +00:00
|
|
|
|
// --> OD 2009-03-17 #i95711#
|
|
|
|
|
const SwNode* pKeptCntntSectNode( &pCntntSect->GetNode() );
|
|
|
|
|
// <--
|
2000-09-18 23:08:29 +00:00
|
|
|
|
{
|
|
|
|
|
SwPaM aPam( pCntntSect->GetNode(),
|
|
|
|
|
*pCntntSect->GetNode().EndOfSectionNode(), 1,
|
|
|
|
|
( bDelLastPara ? -2 : -1 ) );
|
|
|
|
|
SwCntntNode* pCNd = aPam.GetCntntNode();
|
|
|
|
|
if( pCNd )
|
|
|
|
|
aPam.GetPoint()->nContent.Assign( pCNd, pCNd->Len() );
|
|
|
|
|
else
|
|
|
|
|
aPam.GetPoint()->nNode++;
|
|
|
|
|
|
2008-06-24 09:18:44 +00:00
|
|
|
|
SwFmtColl* pColl = pCNd && pCNd->Len() && aPam.GetPoint()->nNode !=
|
2000-09-18 23:08:29 +00:00
|
|
|
|
aPam.GetMark()->nNode
|
|
|
|
|
? pCNd->GetFmtColl() : 0;
|
|
|
|
|
|
|
|
|
|
SwNodeIndex aNdIdx( GetPoint()->nNode, -1 );
|
|
|
|
|
USHORT nPos = GetPoint()->nContent.GetIndex();
|
|
|
|
|
|
|
|
|
|
SwPosition aPos( *GetPoint() );
|
2001-09-27 12:42:58 +00:00
|
|
|
|
if( bDelLastPara && *aPam.GetPoint() == *aPam.GetMark() )
|
|
|
|
|
{
|
|
|
|
|
aPos.nNode--;
|
2003-04-01 15:00:35 +00:00
|
|
|
|
|
2001-09-27 12:42:58 +00:00
|
|
|
|
pDoc->AppendTxtNode( aPos );
|
|
|
|
|
}
|
|
|
|
|
else
|
CWS-TOOLING: integrate CWS odfmetadata3
2009-09-11 Michael Stahl merge DEV300_m58
2009-09-07 Michael Stahl SwFmtFld::Modify(): do nothing on RES_OBJECTDYING
2009-08-27 Michael Stahl #i91565#, #i91566#: TextPortionEnumerationTest.java: add test document
2009-08-27 Michael Stahl #i91565#, #i91566#: add complex test: TextPortionEnumerationTest.java
2009-08-27 Michael Stahl CLiteral::initialize(): zero-length literals probably not an error
2009-08-27 Michael Stahl #i91565#, #i91566#: offapi: new InContentMetadata and MetadataField services
adapt TextPortion for InContentMetadata
2009-08-27 Michael Stahl #i91564#: xmloff: load/store xml:id and RDFa for text:bookmark(-start).
2009-08-27 Michael Stahl #i91564#: sw core: add support for xml:id at bookmarks:
sw::mark::Bookmark: derive from Metadatable.
SwHistoryBookmark, SaveBookmark: store a MetadatableUndo.
ndcopy.cxx: lcl_CopyBookmarks(): copy the xml:id.
SwXBookmark: derive from MetadatableMixin.
2009-08-27 Michael Stahl #i91565#, #i91566#: xmloff: refactor ruby import so nested meta(-field) works:
remove XMLRubyHint_Impl.
XMLImpRubyContext_Impl::~XMLImpRubyContext_Impl(): insert ruby directly.
2009-08-27 Michael Stahl #i91565#, #i91566#: xmloff: fix text:meta(-field) import/export:
new XMLTextParagraphExport::exportTextField() overload for XTextField.
CreateAndInsertMark(): set xml:id after insertion.
fix meta(-field) service names, bugs etc.
2009-08-27 Michael Stahl #i91565#, #i91566#: sw text formatting: paint background of meta(-field) body:
SwFont: add member m_nMetaCount.
txttypes.hxx: add POR_META.
atrstck.cxx: handle RES_TXTATR_META(FIELD).
itrform2.cxx: SwTxtFormatter::WhichTxtPor(): create new class SwMetaPortion.
2009-08-27 Michael Stahl #i91566#: sw text formatting: display meta-field prefix and suffix:
SwAttrIter::GetAttr(): replace with call to GetTxtAttrForCharAt().
SwTxtFormatter::NewExtraPortion(): handle meta-field prefix.
SwTxtFormatter: new member m_nHintEndIndex.
SwTxtFormatter::WhichFirstPortion(): call TryNewNoLengthPortion().
SwTxtFormatter::TryNewNoLengthPortion(): new; handle suffix of meta-field.
SwTxtFormatter::UnderFlow(): UGLY HACK: decrement m_nHintEndIndex.
SwFldPortion: add flag m_bNoLength: portion has zero length (for suffix).
2009-08-27 Michael Stahl #i91565#, #i91566#: extend text:meta(-field) uno wrapper with XText interface:
unoobj.hxx: new CursorType CURSOR_META.
unoobj2.cxx: refactor SwXText implementation to ensure that when the SwXText
belongs to a SwXMeta, content is always inserted inside the meta(-field).
unoobj.cxx: new SwXTextCursor::ForceIntoMeta(): cursor stays in meta(-field).
unometa.hxx: SwXMeta implements XText, forwarding to a member SwXMetaText.
DocInsertStringSplitCR(), SwX*::attachToRange(), SwX*::DeleteAndInsert():
use FORCEHINTEXPAND hack to ensure insert into the meta(-field) at the end.
2009-08-27 Michael Stahl #i91565#, #i91566#: add text:meta(-field) uno wrapper to sw:
fmtmeta.hxx, fmtatr2.cxx: new class sw::MetaField, new sw::MetaFieldManager.
doc.hxx, docnew.cxx: new SwDoc::GetMetaFieldManager().
unocoll.hxx,.cxx: new SW_SERVICE_FIELDTYPE_METAFIELD, SW_SERVICE_TYPE_META.
unomap.hxx,.cxx: new PROPERTY_MAP_METAFIELD.
unoprnms.hxx: new UNO_NAME_META.
unoport.hxx: new PORTION_META; add "InContentMetadata" prop to SwXTextPortion.
new unometa.hxx: new class SwXMeta and SwXMetaField.
unofield.cxx: SwXFieldEnumeration: include meta-fields.
unoportenum.cxx: handle RES_TXTATR_META(FIELD) by using a portion list stack.
unotext.cxx: SwXText::insertTextContent(): handle meta(-field) as attribute.
2009-08-27 Michael Stahl #i91565#, #i91566#: ndhints.cxx: remove sort number from SwTxtAttrNesting
2009-08-27 Michael Stahl #i91565#, #i91566#: add support for hints with end and CH_TXTATR to sw core:
doc.hxx, docedt.cxx: replace SwDoc::Delete(), DeleteAndJoin(), ReplaceRange()
with wrappers that split at left-overlapped end+CH_TXTATR hints.
txatbase.hxx: new member SwTxtAttr::m_bHasDummyChar.
ndtxt.hxx: rename SwTxtNode::GetTxtAttr() to GetTxtAttrForCharAt().
ndtxt.cxx: SwTxtNode::CopyText(): copy end+CH_TXTATR hints iff copy CH_TXTATR.
txtatr2.cxx, thints.cxx: SwTxtMeta gets a CH_TXTATR.
2009-08-27 Michael Stahl #i91565#, #i91566#: add text:meta(-field) to sw core:
txatbase.hxx: new member SwTxtAttr::m_bNesting.
hintids.hxx: new ids RES_TXTATR_META, RES_TXTATR_METAFIELD.
txtatr.hxx: new base class SwTxtAttrNesting.
new hint SwTxtMeta.
SwTxtRuby derives from SwTxtAttrNesting.
txtinet.hxx: SwTxtINetFmt derives from SwTxtAttrNesting.
new header fmtmeta.hxx: new pool item SwFmtMeta. new class sw::Meta.
ndhints.hxx, thints.cxx: new method SwpHints::TryInsertNesting().
thints.cxx: refactoring: BuildPortions() no longer handles Ruby/Hyperlink,
but TryInsertNesting(), which also handles meta(-field).
SwTxtNode::InsertItem(): check if the hint is actually inserted.
ndhints.cxx: sort nesting hints based on sort number.
ndtxt.cxx: lcl_CopyHint(): handle copy of meta/meta-field.
2009-08-27 Michael Stahl enable expanding hints with m_bLockExpandFlag set:
add new InsertFlag: INS_FORCEHINTEXPAND.
add new SetAttrMode: SETATTR_FORCEHINTEXPAND.
rename SwEditShell::Insert() to Insert2() because changed signature fails
to compile when SwWrtShell tries to overwrite these non-virtual members...
SwWrtShell::Insert() sets FOCEHINTEXPAND if range was selected/deleted.
adapt SwUndoInsert to store flags.
2009-08-27 Michael Stahl change formal parameters of item insertion methods to type SetAttrMode
2009-08-27 Michael Stahl fix incorrect resetting of text attributes in SwUndoInsSection, SwUndoInserts
2009-08-27 Michael Stahl clean up SwTxtNode::CutImpl() and lcl_CopyHint()
2009-08-27 Michael Stahl rename SwDoc::Copy() to CopyRange(), and _Copy() to CopyImpl()
2009-08-27 Michael Stahl rename SwNodes::Move() to MoveRange(), and remove unused parameter
2009-08-27 Michael Stahl rename SwDoc::Move() to MoveRange()/MoveNodeRange()
2009-08-27 Michael Stahl rename SwDoc::Insert() to InsertString(), and remove sal_Unicode variant
2009-08-27 Michael Stahl rename SwDoc::Insert() to InsertPoolItem()/InsertItemSet()/InsertSwSection()
2009-08-27 Michael Stahl rename SwDoc::Replace() to ReplaceRange()
2009-08-27 Michael Stahl remove SwDoc::Overwrite() sal_Unicode variant
2009-08-27 Michael Stahl split up SwDoc::DeleteAndJoin(): factor out DeleteAndJoinWithRedline()
2009-08-27 Michael Stahl rename overloaded SwDoc::Delete() to DeleteRange()/DeleteTOXMark()
2009-08-27 Michael Stahl rename SwTxtNode::Copy() to CopyText()
2009-08-27 Michael Stahl rename SwTxtNode::Cut() to CutText(), and _Cut() to CutImpl()
2009-08-27 Michael Stahl rename SwTxtNode::Delete() to DeleteAttribute()/DeleteAttributes()
2009-08-27 Michael Stahl rename SwTxtNode::Replace() to ReplaceText(), and remove the xub_Unicode variant
2009-08-27 Michael Stahl rename SwTxtNode::Erase() to EraseText()
2009-08-27 Michael Stahl rename SwTxtNode::Insert() to InsertText(), and remove the xub_Unicode variant
2009-08-27 Michael Stahl clean up SwTxtNode::Update()
2009-08-27 Michael Stahl remove SwTxtAttr::RemoveFromPool() and make destructor non-public,
to be invoked by new method SwTxtAttr::Destroy()
2009-08-27 Michael Stahl ensure that SwDoc::Insert() for item (set) returns success indicator:
replace SwRegHistory constructor with method InsertItems(), returning bool.
refactor InsAttr() so that it checks if InsertItems() succeeds.
2009-08-27 Michael Stahl move SwXTextPortionEnumeration from unoobj.hxx to unoport.hxx
2009-08-27 Michael Stahl add missing SolarMutex in SwXTextPortion methods
2009-08-27 Michael Stahl SwXTextPortion: new member m_xTextField (so the TextField property need not
be returned indirectly via SwUnoCursorHelper).
factor out function CreateSwXTextField().
2009-08-27 Michael Stahl SwXTextPortion: remove PORTION_CONTROL_CHAR and implementation of XTextField
2009-08-27 Michael Stahl remove obsolete hint SwTxtHardBlank and formats SwFmtHardBlank/SwFmtSoftHyph
2009-08-27 Michael Stahl clean up SwTxtAttr and friends:
remove many accessor methods for obsolete (due to autofmt) char format items.
remove unused flag SwTxtAttr::m_bDontMergeAttr.
MakeRedlineTxtAttr() now dedicated function, no longer calls MakeTxtAttr().
2009-08-27 Michael Stahl remove obsolete attribute SwTxt2Lines
2009-08-27 Michael Stahl SwXTextPortionEnumeration: finish refactoring CreatePortions
change ExportHints so it always returns a text portion for hint w/ CH_TXTATR.
remove special case for handling end of paragraph.
unfortunately had to refactor the fieldmarks export as well (got in the way).
2009-08-27 Michael Stahl SwXTextPortionEnumeration: refactor CreatePortions: frames export
extract function ExportFrames() from CreatePortions().
remove (un)dead code that calls evil MovePara(fnParaCurr, fnParaEnd)
2009-08-27 Michael Stahl clean up SwXParaFrameEnumeration
2009-08-27 Michael Stahl CollectFrameAtNode: replace SwDependArr with STL based FrameDependList_t
2009-08-27 Michael Stahl SwXTextPortionEnumeration: tweak refmark/toxmark export
so ExportHints returns the portion for point marks
2009-08-27 Michael Stahl clean up SwXTextPortionEnumeration:
prefix members, remove casts, replace SvWeirdArray with STL, etc.
make CreatePortions() method a function, and remove lots of members.
extract fieldmarks function from CreatePortions.
2009-08-27 Michael Stahl remove FOREACHUNOPAM_START/END macros
2009-08-27 Michael Stahl clean up SwXTextPortion:
prefix members, remove casts, etc.
remove SwXRubyPortion: replace it with another SwXTextPortion constructor
2009-08-27 Michael Stahl #i102541# SwXReferenceMark::InsertRefMark(): use flag SETATTR_DONTEXPAND
2009-08-27 Michael Stahl rename SwTxtNode::Insert to SwTxtNode::InsertHint, and
fix constness in SwTxtNode::InsertItem
2009-08-27 Michael Stahl turn SwTxtNode::MakeTxtAttr() methods into global functions in ndhints.hxx
2009-08-27 Michael Stahl remove obsolete sw/inc/bookmrk.hxx
2009-08-27 Michael Stahl pam.cxx: fix ComparePosition functions (returned wrong result in one case)
2009-08-27 Michael Stahl #i103613# only import RDF metadata on normal open of a document
2009-09-11 kz CWS-TOOLING: integrate CWS impress176
2009-09-08 20:18:24 +0200 sj r275957 : fixed warning (shadowed variable)
2009-09-08 18:02:05 +0200 cl r275948 : #i104315# added missing tab pages
2009-09-08 17:35:18 +0200 cl r275947 : #i104866# fixed angle import
2009-09-08 17:32:53 +0200 cl r275946 : #i104841# fixed angle import
2009-09-08 17:01:25 +0200 cl r275943 : #i103935# fixed the SID_EVENTCONFIG mess
2009-09-08 14:32:57 +0200 sj r275928 : #i104685# only comments
2009-09-07 12:37:36 +0200 sj r275886 : #i104683# fixed import of bold/italic attributes for normal text shapes
2009-09-04 15:07:46 +0200 sj r275808 : #104689# fixed bullet color problem
2009-09-03 15:25:07 +0200 sj r275753 : #160200# added vertical alignment of table cells
2009-09-11 kz CWS-TOOLING: integrate CWS dv14
2009-09-10 15:16:32 +0200 sg r276035 : #160513# updated wfs scheme to accept ports
2009-09-10 07:41:47 +0200 dv r276019 : #i104942# Better renaming algorithmen
2009-08-31 13:41:11 +0200 dv r275604 : #160505# Setting APP1PRODUCTNAME must not overwrite APP1PRODUCTDEF
2009-09-11 kz CWS-TOOLING: integrate CWS jl131
2009-09-02 16:42:40 +0200 jl r275720 : #i97896#
2009-08-31 13:01:53 +0200 jl r275599 : CWS-TOOLING: rebase CWS jl131 to trunk@275331 (milestone: DEV300:m56)
2009-07-31 14:35:30 +0200 jl r274531 : CWS-TOOLING: rebase CWS jl131 to trunk@274203 (milestone: DEV300:m53)
2009-07-23 14:20:32 +0200 jl r274272 : #i79839# better error text when trying to modify shared layer without having write permission, eg. unopkg add --shared, unopkg remove --shared, unopkg reinstall --shared
2009-07-22 16:38:02 +0200 jl r274252 : #i97896# localize error message for lock file
2009-07-22 16:37:22 +0200 jl r274251 : #i80462# unprecise wording in updatedialog
2009-07-22 16:36:06 +0200 jl r274250 : #i97896# localize error message for lock file
2009-07-22 16:35:20 +0200 jl r274249 : #i97896# localize error message for lock file
2009-07-22 15:07:30 +0200 jl r274242 : #i98873# minimum java version is 1.5 since OOo 3.0
2009-09-11 kz CWS-TOOLING: integrate CWS changehc
2009-08-31 19:38:50 +0200 pl r275633 : remove dbug printf
2009-08-31 17:41:50 +0200 pl r275623 : CWS-TOOLING: rebase CWS changehc to trunk@275331 (milestone: DEV300:m56)
2009-07-15 19:45:46 +0200 pl r274028 : #i35482# use HC flag to decide high contrast mode
2009-07-15 17:40:52 +0200 pl r274020 : #i35482# use HC flag to decide high contrast mode
2009-07-15 17:39:50 +0200 pl r274019 : #i35482# update autohc correctly in MergeSystemSettings
2009-07-15 17:38:57 +0200 pl r274018 : #i35482# update autohc correctly in MergeSystemSettings
2009-09-11 kz CWS-TOOLING: integrate CWS notes10
2009-08-24 07:25:57 +0200 mod r275287 : 2009-07-26 02:38:32 +0200 mod r274343 : #i#i103645#
2009-07-26 02:01:53 +0200 mod r274342 : #i103645#
2009-07-26 01:52:42 +0200 mod r274341 : #i103490#
2009-07-22 08:31:48 +0200 mod r274215 : #i103373#
2009-07-15 00:55:11 +0200 mod r273987 : #i101419#
2009-07-14 07:07:55 +0200 mod r273956 : #i101419#
2009-07-14 07:07:43 +0200 mod r273955 : #i101419#
2009-07-14 07:02:10 +0200 mod r273954 : changes from notes9
2009-07-14 06:14:25 +0200 mod r273953 : #i103476#
2009-09-11 kz CWS-TOOLING: integrate CWS ab70
2009-09-10 15:12:54 +0200 jsk r276034 : #i85434# - mandatory automatic update test
2009-09-10 15:11:06 +0200 jsk r276033 : #i85434# - mandatory automatic update test
2009-09-02 09:49:24 +0200 ab r275698 : #i85434# Dialog Import
2009-09-11 kz CWS-TOOLING: integrate CWS hb32bugs02
2009-09-02 Henning Brinkmann #i102420# revert changes
2009-08-26 Henning Brinkmann merged DEV300_m56
2009-08-19 Henning Brinkmann merged DEV300_m55
2009-08-14 Henning Brinkmann merged changes from wntmsci12
2009-08-12 Henning Brinkmann Implemented NoSpaceEdit constructor and destructor in .cxx to allow compile with debug on wntmsci12.
2009-08-12 Henning Brinkmann Added some SW_DLLPUBLIC to make compilable on wntmsci12.
2009-08-11 Henning Brinkmann #i102420# dbg_out: surround output for SwNodes with <nodes-array>.
2009-08-10 Henning Brinkmann #i102420# rewritten debug output for SwNodes.
2009-08-07 Henning Brinkmann #i102420# debug _MoveNodes: output the destination, too. Break after two iterations.
2009-08-07 Henning Brinkmann #i102420# _MoveNodes: Additionally check if destination index is inside source => false
Check if current range was already handled => loop
Debug output current range
2009-08-06 Henning Brinkmann merged DEV300_m54
2009-08-06 Henning Brinkmann added master fix
2009-08-06 Henning Brinkmann debug output for SwNodeRange
2009-08-04 Henning Brinkmann #i102844# robustness: check for NULL pointer to prevent crash
2009-08-03 Henning Brinkmann #i103475# applied patch and verified
2009-08-03 Henning Brinkmann Removed code preventing build of sw with DEBUG.
2009-09-11 convert-repo update tags
2009-09-10 kz CWS-TOOLING: integrate CWS os2port06dev300
2009-09-05 22:49:00 +0200 ydario r275858 : #i99588# applied os2port06 diff to DEV300 tree.
2009-09-10 kz CWS-TOOLING: integrate CWS mingwport23
2009-08-29 07:07:53 +0200 tono r275555 : i#104522: mingw port graphite
2009-08-29 07:07:26 +0200 tono r275554 : i#104522: mingw port printf format fix
2009-09-10 kz CWS-TOOLING: integrate CWS mh232
2009-08-26 03:52:57 +0200 mh r275385 : #i102182# FreeBSD patch
2009-08-26 03:43:20 +0200 mh r275384 : #i101333# patch for FreeBSD
2009-08-26 03:11:20 +0200 mh r275383 : #i39230
2009-08-26 03:07:51 +0200 mh r275382 : #i39230# more space for initials field
2009-08-26 02:41:19 +0200 mh r275380 : #i39230# use vos::osecurity for reading the user name
2009-08-18 22:06:00 +0200 mh r275130 : #i104243#, line ending problem with newer perl
2009-08-18 21:53:21 +0200 mh r275129 : #i39230# read initials via getpwnam
2009-08-18 21:34:05 +0200 mh r275128 : enable CAIROCANVAS for Linux and Mac, #i88613#
2009-08-17 18:02:59 +0200 mh r275067 : #i95498# make compile with gcc3
2009-09-10 kz CWS-TOOLING: integrate CWS tkr24
2009-09-07 14:31:06 +0200 is r275898 : #160081# adding NO_LICENSE_INTO_COPYRIGHT
2009-09-10 releng #i10000# change KeyMapping to SingletonRef<framework::KeyMapping>
2009-09-11 convert-repo update tags
2009-09-10 kz CWS-TOOLING: integrate CWS os2port06dev300
2009-09-05 22:49:00 +0200 ydario r275858 : #i99588# applied os2port06 diff to DEV300 tree.
2009-09-10 kz CWS-TOOLING: integrate CWS mingwport23
2009-08-29 07:07:53 +0200 tono r275555 : i#104522: mingw port graphite
2009-08-29 07:07:26 +0200 tono r275554 : i#104522: mingw port printf format fix
2009-09-10 kz CWS-TOOLING: integrate CWS mh232
2009-08-26 03:52:57 +0200 mh r275385 : #i102182# FreeBSD patch
2009-08-26 03:43:20 +0200 mh r275384 : #i101333# patch for FreeBSD
2009-08-26 03:11:20 +0200 mh r275383 : #i39230
2009-08-26 03:07:51 +0200 mh r275382 : #i39230# more space for initials field
2009-08-26 02:41:19 +0200 mh r275380 : #i39230# use vos::osecurity for reading the user name
2009-08-18 22:06:00 +0200 mh r275130 : #i104243#, line ending problem with newer perl
2009-08-18 21:53:21 +0200 mh r275129 : #i39230# read initials via getpwnam
2009-08-18 21:34:05 +0200 mh r275128 : enable CAIROCANVAS for Linux and Mac, #i88613#
2009-08-17 18:02:59 +0200 mh r275067 : #i95498# make compile with gcc3
2009-09-10 kz CWS-TOOLING: integrate CWS tkr24
2009-09-07 14:31:06 +0200 is r275898 : #160081# adding NO_LICENSE_INTO_COPYRIGHT
2009-09-10 releng #i10000# change KeyMapping to SingletonRef<framework::KeyMapping>
2009-09-11 14:29:45 +00:00
|
|
|
|
{
|
|
|
|
|
pDoc->MoveRange( aPam, aPos,
|
|
|
|
|
IDocumentContentOperations::DOC_MOVEALLFLYS );
|
|
|
|
|
}
|
2003-04-01 15:00:35 +00:00
|
|
|
|
|
2000-09-18 23:08:29 +00:00
|
|
|
|
SetMark();
|
|
|
|
|
*GetPoint() = aPos;
|
|
|
|
|
GetMark()->nNode = aNdIdx.GetIndex() + 1;
|
|
|
|
|
pCNd = GetMark()->nNode.GetNode().GetCntntNode();
|
|
|
|
|
GetMark()->nContent.Assign( pCNd, nPos );
|
|
|
|
|
|
|
|
|
|
if( bDelLastPara )
|
|
|
|
|
{
|
|
|
|
|
GetPoint()->nNode++;
|
|
|
|
|
GetPoint()->nContent.Assign( pCNd = GetCntntNode(), 0 );
|
|
|
|
|
bDelLastPara = FALSE;
|
|
|
|
|
}
|
|
|
|
|
else if( pColl )
|
|
|
|
|
pCNd = GetCntntNode();
|
|
|
|
|
|
|
|
|
|
if( pColl && pCNd )
|
|
|
|
|
pCNd->ChgFmtColl( pColl );
|
|
|
|
|
}
|
2009-04-27 15:45:01 +00:00
|
|
|
|
// --> OD 2009-03-17 #i95771#
|
|
|
|
|
// Under certain conditions the previous <SwDoc::Move(..)> has already
|
|
|
|
|
// remove the change tracking section of this <SwRedline> instance from
|
|
|
|
|
// the change tracking nodes area.
|
|
|
|
|
// Thus, check, if <pCntntSect> still points to the change tracking section
|
|
|
|
|
// by comparing it with the "indexed" <SwNode> instance copied before
|
|
|
|
|
// perform the intrinsic move.
|
|
|
|
|
// Note: Such condition is e.g. a "delete" change tracking only containing a table.
|
|
|
|
|
if ( &pCntntSect->GetNode() == pKeptCntntSectNode )
|
|
|
|
|
{
|
|
|
|
|
pDoc->DeleteSection( &pCntntSect->GetNode() );
|
|
|
|
|
}
|
|
|
|
|
// <--
|
2000-09-18 23:08:29 +00:00
|
|
|
|
delete pCntntSect, pCntntSect = 0;
|
|
|
|
|
|
2002-06-27 13:23:50 +00:00
|
|
|
|
// #100611# adjustment of redline table positions must take start and
|
|
|
|
|
// end into account, not point and mark.
|
2000-09-18 23:08:29 +00:00
|
|
|
|
for( n = 0; n < aBeforeArr.Count(); ++n )
|
2002-06-27 13:23:50 +00:00
|
|
|
|
*(SwPosition*)aBeforeArr[ n ] = *Start();
|
2000-09-18 23:08:29 +00:00
|
|
|
|
for( n = 0; n < aBehindArr.Count(); ++n )
|
2002-06-27 13:23:50 +00:00
|
|
|
|
*(SwPosition*)aBehindArr[ n ] = *End();
|
2000-09-18 23:08:29 +00:00
|
|
|
|
}
|
|
|
|
|
else
|
|
|
|
|
InvalidateRange();
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
// fuers Undo
|
|
|
|
|
void SwRedline::SetContentIdx( const SwNodeIndex* pIdx )
|
|
|
|
|
{
|
|
|
|
|
if( pIdx && !pCntntSect )
|
|
|
|
|
{
|
|
|
|
|
pCntntSect = new SwNodeIndex( *pIdx );
|
|
|
|
|
bIsVisible = FALSE;
|
|
|
|
|
}
|
|
|
|
|
else if( !pIdx && pCntntSect )
|
|
|
|
|
{
|
|
|
|
|
delete pCntntSect, pCntntSect = 0;
|
|
|
|
|
bIsVisible = FALSE;
|
|
|
|
|
}
|
2009-07-10 14:03:42 +02:00
|
|
|
|
#ifdef DBG_UTIL
|
2000-09-18 23:08:29 +00:00
|
|
|
|
else
|
|
|
|
|
ASSERT( !this, "das ist keine gueltige Operation" );
|
|
|
|
|
#endif
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
BOOL SwRedline::CanCombine( const SwRedline& rRedl ) const
|
|
|
|
|
{
|
|
|
|
|
return IsVisible() && rRedl.IsVisible() &&
|
|
|
|
|
pRedlineData->CanCombine( *rRedl.pRedlineData );
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
void SwRedline::PushData( const SwRedline& rRedl, BOOL bOwnAsNext )
|
|
|
|
|
{
|
|
|
|
|
// SwRedlineData* pNew = new SwRedlineData( rRedl.GetType(),
|
|
|
|
|
// rRedl.GetAuthor() );
|
|
|
|
|
SwRedlineData* pNew = new SwRedlineData( *rRedl.pRedlineData, FALSE );
|
|
|
|
|
if( bOwnAsNext )
|
|
|
|
|
{
|
|
|
|
|
pNew->pNext = pRedlineData;
|
|
|
|
|
pRedlineData = pNew;
|
|
|
|
|
}
|
|
|
|
|
else
|
|
|
|
|
{
|
|
|
|
|
pNew->pNext = pRedlineData->pNext;
|
|
|
|
|
pRedlineData->pNext = pNew;
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
BOOL SwRedline::PopData()
|
|
|
|
|
{
|
|
|
|
|
if( !pRedlineData->pNext )
|
|
|
|
|
return FALSE;
|
|
|
|
|
SwRedlineData* pCur = pRedlineData;
|
|
|
|
|
pRedlineData = pCur->pNext;
|
|
|
|
|
pCur->pNext = 0;
|
|
|
|
|
delete pCur;
|
|
|
|
|
return TRUE;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
USHORT SwRedline::GetStackCount() const
|
|
|
|
|
{
|
|
|
|
|
USHORT nRet = 1;
|
|
|
|
|
for( SwRedlineData* pCur = pRedlineData; pCur->pNext; ++nRet )
|
|
|
|
|
pCur = pCur->pNext;
|
|
|
|
|
return nRet;
|
|
|
|
|
}
|
|
|
|
|
|
2004-05-18 13:02:15 +00:00
|
|
|
|
// -> #111827#
|
2000-09-18 23:08:29 +00:00
|
|
|
|
USHORT SwRedline::GetAuthor( USHORT nPos ) const
|
|
|
|
|
{
|
2004-05-18 13:02:15 +00:00
|
|
|
|
return GetRedlineData(nPos).nAuthor;
|
2000-09-18 23:08:29 +00:00
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
const String& SwRedline::GetAuthorString( USHORT nPos ) const
|
|
|
|
|
{
|
2004-05-18 13:02:15 +00:00
|
|
|
|
return SW_MOD()->GetRedlineAuthor(GetRedlineData(nPos).nAuthor);
|
2000-09-18 23:08:29 +00:00
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
const DateTime& SwRedline::GetTimeStamp( USHORT nPos ) const
|
|
|
|
|
{
|
2004-05-18 13:02:15 +00:00
|
|
|
|
return GetRedlineData(nPos).aStamp;
|
2000-09-18 23:08:29 +00:00
|
|
|
|
}
|
|
|
|
|
|
2007-09-27 07:36:43 +00:00
|
|
|
|
RedlineType_t SwRedline::GetRealType( USHORT nPos ) const
|
2000-09-18 23:08:29 +00:00
|
|
|
|
{
|
2004-05-18 13:02:15 +00:00
|
|
|
|
return GetRedlineData(nPos).eType;
|
2000-09-18 23:08:29 +00:00
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
const String& SwRedline::GetComment( USHORT nPos ) const
|
|
|
|
|
{
|
2004-05-18 13:02:15 +00:00
|
|
|
|
return GetRedlineData(nPos).sComment;
|
2000-09-18 23:08:29 +00:00
|
|
|
|
}
|
2004-05-18 13:02:15 +00:00
|
|
|
|
// <- #111827#
|
2000-09-18 23:08:29 +00:00
|
|
|
|
|
|
|
|
|
int SwRedline::operator==( const SwRedline& rCmp ) const
|
|
|
|
|
{
|
|
|
|
|
return this == &rCmp;
|
|
|
|
|
}
|
|
|
|
|
|
2002-09-19 14:02:17 +00:00
|
|
|
|
int SwRedline::operator<( const SwRedline& rCmp ) const
|
|
|
|
|
{
|
|
|
|
|
BOOL nResult = FALSE;
|
2000-09-18 23:08:29 +00:00
|
|
|
|
|
2002-09-19 14:02:17 +00:00
|
|
|
|
if (*Start() < *rCmp.Start())
|
|
|
|
|
nResult = TRUE;
|
|
|
|
|
else if (*Start() == *rCmp.Start())
|
|
|
|
|
if (*End() < *rCmp.End())
|
|
|
|
|
nResult = TRUE;
|
2000-09-18 23:08:29 +00:00
|
|
|
|
|
2002-09-19 14:02:17 +00:00
|
|
|
|
return nResult;
|
|
|
|
|
}
|
2004-05-18 13:02:15 +00:00
|
|
|
|
|
|
|
|
|
// -> #111827#
|
|
|
|
|
const SwRedlineData & SwRedline::GetRedlineData(USHORT nPos) const
|
|
|
|
|
{
|
|
|
|
|
SwRedlineData * pCur = pRedlineData;
|
|
|
|
|
|
|
|
|
|
while (nPos > 0 && NULL != pCur->pNext)
|
|
|
|
|
{
|
|
|
|
|
pCur = pCur->pNext;
|
|
|
|
|
|
|
|
|
|
nPos--;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
ASSERT( 0 == nPos, "Pos angabe ist zu gross" );
|
|
|
|
|
|
|
|
|
|
return *pCur;
|
|
|
|
|
}
|
|
|
|
|
|
2004-05-25 15:22:43 +00:00
|
|
|
|
String SwRedline::GetDescr(USHORT nPos)
|
2004-05-18 13:02:15 +00:00
|
|
|
|
{
|
|
|
|
|
String aResult;
|
|
|
|
|
|
|
|
|
|
// get description of redline data (e.g.: "insert $1")
|
|
|
|
|
aResult = GetRedlineData(nPos).GetDescr();
|
|
|
|
|
|
|
|
|
|
SwPaM * pPaM = NULL;
|
|
|
|
|
bool bDeletePaM = false;
|
|
|
|
|
|
|
|
|
|
// if this redline is visible the content is in this PaM
|
|
|
|
|
if (NULL == pCntntSect)
|
|
|
|
|
{
|
|
|
|
|
pPaM = this;
|
|
|
|
|
}
|
|
|
|
|
else // otherwise it is saved in pCntntSect
|
|
|
|
|
{
|
2007-09-27 07:36:43 +00:00
|
|
|
|
SwNodeIndex aTmpIdx( *pCntntSect->GetNode().EndOfSectionNode() );
|
|
|
|
|
pPaM = new SwPaM(*pCntntSect, aTmpIdx );
|
2004-05-18 13:02:15 +00:00
|
|
|
|
bDeletePaM = true;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
// replace $1 in description by description of the redlines text
|
|
|
|
|
String aTmpStr;
|
|
|
|
|
aTmpStr += String(SW_RES(STR_START_QUOTE));
|
|
|
|
|
aTmpStr += ShortenString(pPaM->GetTxt(), nUndoStringLength,
|
|
|
|
|
String(SW_RES(STR_LDOTS)));
|
|
|
|
|
aTmpStr += String(SW_RES(STR_END_QUOTE));
|
|
|
|
|
|
|
|
|
|
SwRewriter aRewriter;
|
|
|
|
|
aRewriter.AddRule(UNDO_ARG1, aTmpStr);
|
|
|
|
|
|
|
|
|
|
aResult = aRewriter.Apply(aResult);
|
|
|
|
|
|
|
|
|
|
if (bDeletePaM)
|
|
|
|
|
delete pPaM;
|
|
|
|
|
|
|
|
|
|
return aResult;
|
|
|
|
|
}
|
|
|
|
|
// <- #111827#
|
2005-11-08 16:16:45 +00:00
|
|
|
|
|
|
|
|
|
|
2006-08-14 14:59:18 +00:00
|
|
|
|
bool SwDoc::IsInRedlines(const SwNode & rNode) const
|
2005-11-08 16:16:45 +00:00
|
|
|
|
{
|
|
|
|
|
SwPosition aPos(rNode);
|
|
|
|
|
SwNode & rEndOfRedlines = aNodes.GetEndOfRedlines();
|
|
|
|
|
SwPaM aPam(SwPosition(*rEndOfRedlines.StartOfSectionNode()),
|
|
|
|
|
SwPosition(rEndOfRedlines));
|
|
|
|
|
|
|
|
|
|
return aPam.ContainsPosition(aPos) ? sal_True : sal_False;
|
|
|
|
|
}
|