2010-10-14 08:30:41 +02:00
|
|
|
/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
|
2000-09-18 23:08:29 +00:00
|
|
|
/*************************************************************************
|
|
|
|
*
|
2008-04-10 12:23:40 +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:23:40 +00:00
|
|
|
* OpenOffice.org - a multi-platform office productivity suite
|
2000-09-18 23:08:29 +00:00
|
|
|
*
|
2008-04-10 12:23:40 +00:00
|
|
|
* This file is part of OpenOffice.org.
|
2000-09-18 23:08:29 +00:00
|
|
|
*
|
2008-04-10 12:23:40 +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:23:40 +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:23:40 +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:55:12 +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 <limits.h>
|
|
|
|
#include <hintids.hxx>
|
|
|
|
|
|
|
|
#define _SVSTDARR_STRINGSSORT
|
2009-10-16 00:05:16 +02:00
|
|
|
#include <svl/svstdarr.hxx>
|
2010-01-08 18:32:51 +01:00
|
|
|
#include <editeng/langitem.hxx>
|
|
|
|
#include <editeng/brkitem.hxx>
|
|
|
|
#include <editeng/tstpitem.hxx>
|
|
|
|
#include <editeng/lrspitem.hxx>
|
2001-11-02 11:33:43 +00:00
|
|
|
#include <sot/clsids.hxx>
|
2000-09-18 23:08:29 +00:00
|
|
|
#include <docsh.hxx>
|
|
|
|
#include <ndole.hxx>
|
|
|
|
#include <txttxmrk.hxx>
|
|
|
|
#include <fmtinfmt.hxx>
|
|
|
|
#include <fmtpdsc.hxx>
|
|
|
|
#include <frmfmt.hxx>
|
|
|
|
#include <fmtfsize.hxx>
|
|
|
|
#include <frmatr.hxx>
|
|
|
|
#include <pagedesc.hxx>
|
|
|
|
#include <doc.hxx>
|
|
|
|
#include <pagefrm.hxx>
|
|
|
|
#include <ndtxt.hxx>
|
|
|
|
#include <swtable.hxx>
|
|
|
|
#include <doctxm.hxx>
|
|
|
|
#include <txmsrt.hxx>
|
|
|
|
#include <rolbck.hxx>
|
|
|
|
#include <poolfmt.hxx>
|
|
|
|
#include <txtfrm.hxx>
|
|
|
|
#include <rootfrm.hxx>
|
|
|
|
#include <undobj.hxx>
|
|
|
|
#include <swundo.hxx>
|
|
|
|
#include <mdiexp.hxx>
|
|
|
|
#include <docary.hxx>
|
|
|
|
#include <charfmt.hxx>
|
|
|
|
#include <fchrfmt.hxx>
|
|
|
|
#include <fldbas.hxx>
|
|
|
|
#include <fmtfld.hxx>
|
|
|
|
#include <txtfld.hxx>
|
|
|
|
#include <expfld.hxx>
|
|
|
|
#include <chpfld.hxx>
|
|
|
|
#include <mvsave.hxx>
|
|
|
|
#include <node2lay.hxx>
|
2001-07-19 15:32:24 +00:00
|
|
|
#include <SwStyleNameMapper.hxx>
|
2002-06-26 08:32:38 +00:00
|
|
|
#include <breakit.hxx>
|
2002-10-29 13:37:26 +00:00
|
|
|
#include <editsh.hxx>
|
2004-02-26 14:26:49 +00:00
|
|
|
#include <scriptinfo.hxx>
|
2000-09-18 23:08:29 +00:00
|
|
|
|
2007-09-27 07:37:21 +00:00
|
|
|
using namespace ::com::sun::star;
|
|
|
|
|
2000-09-18 23:08:29 +00:00
|
|
|
const sal_Unicode cNumRepl = '@';
|
|
|
|
const sal_Unicode cEndPageNum = '~';
|
|
|
|
const sal_Char __FAR_DATA sPageDeli[] = ", ";
|
|
|
|
|
|
|
|
SV_IMPL_PTRARR(SwTOXSortTabBases, SwTOXSortTabBasePtr)
|
|
|
|
|
|
|
|
TYPEINIT2( SwTOXBaseSection, SwTOXBase, SwSection ); // fuers RTTI
|
|
|
|
|
|
|
|
struct LinkStruct
|
|
|
|
{
|
|
|
|
SwFmtINetFmt aINetFmt;
|
|
|
|
xub_StrLen nStartTextPos, nEndTextPos;
|
|
|
|
|
|
|
|
LinkStruct( const String& rURL, xub_StrLen nStart, xub_StrLen nEnd )
|
|
|
|
: aINetFmt( rURL, aEmptyStr),
|
|
|
|
nStartTextPos( nStart),
|
|
|
|
nEndTextPos(nEnd) {}
|
|
|
|
};
|
|
|
|
|
|
|
|
typedef LinkStruct* LinkStructPtr;
|
2007-09-27 07:37:21 +00:00
|
|
|
SV_DECL_PTRARR(LinkStructArr, LinkStructPtr, 0, 5 )
|
2000-09-18 23:08:29 +00:00
|
|
|
SV_IMPL_PTRARR(LinkStructArr, LinkStructPtr)
|
|
|
|
|
|
|
|
USHORT SwDoc::GetTOIKeys( SwTOIKeyType eTyp, SvStringsSort& rArr ) const
|
|
|
|
{
|
|
|
|
if( rArr.Count() )
|
|
|
|
rArr.Remove( USHORT(0), rArr.Count() );
|
|
|
|
|
|
|
|
// dann mal ueber den Pool und alle Primary oder Secondary heraussuchen
|
|
|
|
const SwTxtTOXMark* pMark;
|
|
|
|
const SfxPoolItem* pItem;
|
2006-01-05 13:50:01 +00:00
|
|
|
const SwTOXType* pTOXType;
|
2000-09-18 23:08:29 +00:00
|
|
|
USHORT i, nMaxItems = GetAttrPool().GetItemCount( RES_TXTATR_TOXMARK );
|
|
|
|
for( i = 0; i < nMaxItems; ++i )
|
|
|
|
if( 0 != (pItem = GetAttrPool().GetItem( RES_TXTATR_TOXMARK, i ) ) &&
|
2006-01-05 13:50:01 +00:00
|
|
|
0!= ( pTOXType = ((SwTOXMark*)pItem)->GetTOXType()) &&
|
|
|
|
TOX_INDEX == pTOXType->GetType() &&
|
2000-09-18 23:08:29 +00:00
|
|
|
0 != ( pMark = ((SwTOXMark*)pItem)->GetTxtTOXMark() ) &&
|
|
|
|
pMark->GetpTxtNd() &&
|
|
|
|
pMark->GetpTxtNd()->GetNodes().IsDocNodes() )
|
|
|
|
{
|
|
|
|
const String* pStr;
|
|
|
|
if( TOI_PRIMARY == eTyp )
|
|
|
|
pStr = &((SwTOXMark*)pItem)->GetPrimaryKey();
|
|
|
|
else
|
|
|
|
pStr = &((SwTOXMark*)pItem)->GetSecondaryKey();
|
|
|
|
|
|
|
|
if( pStr->Len() )
|
|
|
|
rArr.Insert( (StringPtr)pStr );
|
|
|
|
}
|
|
|
|
|
|
|
|
return rArr.Count();
|
|
|
|
}
|
|
|
|
|
|
|
|
/*--------------------------------------------------------------------
|
|
|
|
Beschreibung: aktuelle Verzeichnismarkierungen ermitteln
|
|
|
|
--------------------------------------------------------------------*/
|
|
|
|
USHORT SwDoc::GetCurTOXMark( const SwPosition& rPos,
|
|
|
|
SwTOXMarks& rArr ) const
|
|
|
|
{
|
|
|
|
// suche an der Position rPos nach allen SwTOXMark's
|
|
|
|
SwTxtNode* pTxtNd = GetNodes()[ rPos.nNode ]->GetTxtNode();
|
|
|
|
// kein TextNode oder kein HintsArray vorhanden ??
|
|
|
|
if( !pTxtNd || !pTxtNd->GetpSwpHints() )
|
|
|
|
return 0;
|
|
|
|
|
|
|
|
const SwpHints & rHts = *pTxtNd->GetpSwpHints();
|
|
|
|
const SwTxtAttr* pHt;
|
|
|
|
xub_StrLen nSttIdx;
|
|
|
|
const xub_StrLen *pEndIdx;
|
|
|
|
|
|
|
|
xub_StrLen nAktPos = rPos.nContent.GetIndex();
|
|
|
|
|
|
|
|
for( USHORT n = 0; n < rHts.Count(); ++n )
|
|
|
|
{
|
|
|
|
if( RES_TXTATR_TOXMARK != (pHt = rHts[n])->Which() )
|
|
|
|
continue;
|
|
|
|
if( ( nSttIdx = *pHt->GetStart() ) < nAktPos )
|
|
|
|
{
|
|
|
|
// pruefe Ende mit ab
|
|
|
|
if( 0 == ( pEndIdx = pHt->GetEnd() ) ||
|
|
|
|
*pEndIdx <= nAktPos )
|
|
|
|
continue; // weiter suchen
|
|
|
|
}
|
|
|
|
else if( nSttIdx > nAktPos )
|
|
|
|
// ist Start vom Hint groesser als rPos, dann abbrechen. Denn
|
|
|
|
// die Attribute sind nach Start sortiert !
|
|
|
|
break;
|
|
|
|
|
|
|
|
const SwTOXMark* pTMark = &pHt->GetTOXMark();
|
|
|
|
rArr.Insert( pTMark, rArr.Count() );
|
|
|
|
}
|
|
|
|
return rArr.Count();
|
|
|
|
}
|
|
|
|
|
|
|
|
/*--------------------------------------------------------------------
|
|
|
|
Beschreibung: Marke loeschen
|
|
|
|
--------------------------------------------------------------------*/
|
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
|
|
|
void SwDoc::DeleteTOXMark( const SwTOXMark* pTOXMark )
|
2000-09-18 23:08:29 +00:00
|
|
|
{
|
|
|
|
// hole den TextNode und
|
2009-06-03 11:26:39 +00:00
|
|
|
const SwTxtTOXMark* pTxtTOXMark = pTOXMark->GetTxtTOXMark();
|
2010-11-25 17:08:45 +01:00
|
|
|
OSL_ENSURE( pTxtTOXMark, "Kein TxtTOXMark, kann nicht geloescht werden" );
|
2000-09-18 23:08:29 +00:00
|
|
|
|
2009-06-03 11:26:39 +00:00
|
|
|
SwTxtNode& rTxtNd = const_cast<SwTxtNode&>(pTxtTOXMark->GetTxtNode());
|
2010-11-25 17:08:45 +01:00
|
|
|
OSL_ENSURE( rTxtNd.GetpSwpHints(), "kann nicht geloescht werden" );
|
2000-09-18 23:08:29 +00:00
|
|
|
|
|
|
|
if( DoesUndo() )
|
|
|
|
{
|
|
|
|
// fuers Undo die Attribute sichern
|
|
|
|
ClearRedo();
|
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
|
|
|
SwUndoResetAttr* pUndo = new SwUndoResetAttr(
|
|
|
|
SwPosition( rTxtNd, SwIndex( &rTxtNd, *pTxtTOXMark->GetStart() ) ),
|
|
|
|
RES_TXTATR_TOXMARK );
|
2000-09-18 23:08:29 +00:00
|
|
|
AppendUndo( pUndo );
|
|
|
|
|
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
|
|
|
SwRegHistory aRHst( rTxtNd, &pUndo->GetHistory() );
|
2000-09-18 23:08:29 +00:00
|
|
|
rTxtNd.GetpSwpHints()->Register( &aRHst );
|
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
|
|
|
}
|
|
|
|
|
|
|
|
rTxtNd.DeleteAttribute( const_cast<SwTxtTOXMark*>(pTxtTOXMark) );
|
|
|
|
|
|
|
|
if ( DoesUndo() )
|
|
|
|
{
|
2000-09-18 23:08:29 +00:00
|
|
|
if( rTxtNd.GetpSwpHints() )
|
|
|
|
rTxtNd.GetpSwpHints()->DeRegister();
|
|
|
|
}
|
|
|
|
SetModified();
|
|
|
|
}
|
|
|
|
|
|
|
|
/*--------------------------------------------------------------------
|
|
|
|
Beschreibung: Traveln zwischen TOXMarks
|
|
|
|
--------------------------------------------------------------------*/
|
|
|
|
class CompareNodeCntnt
|
|
|
|
{
|
|
|
|
ULONG nNode;
|
|
|
|
xub_StrLen nCntnt;
|
|
|
|
public:
|
|
|
|
CompareNodeCntnt( ULONG nNd, xub_StrLen nCnt )
|
|
|
|
: nNode( nNd ), nCntnt( nCnt ) {}
|
|
|
|
|
2010-11-26 21:24:39 +00:00
|
|
|
int operator==( const CompareNodeCntnt& rCmp ) const
|
2000-09-18 23:08:29 +00:00
|
|
|
{ return nNode == rCmp.nNode && nCntnt == rCmp.nCntnt; }
|
2010-11-26 21:24:39 +00:00
|
|
|
int operator!=( const CompareNodeCntnt& rCmp ) const
|
2000-09-18 23:08:29 +00:00
|
|
|
{ return nNode != rCmp.nNode || nCntnt != rCmp.nCntnt; }
|
2010-11-26 21:24:39 +00:00
|
|
|
int operator< ( const CompareNodeCntnt& rCmp ) const
|
2000-09-18 23:08:29 +00:00
|
|
|
{ return nNode < rCmp.nNode ||
|
|
|
|
( nNode == rCmp.nNode && nCntnt < rCmp.nCntnt); }
|
2010-11-26 21:24:39 +00:00
|
|
|
int operator<=( const CompareNodeCntnt& rCmp ) const
|
2000-09-18 23:08:29 +00:00
|
|
|
{ return nNode < rCmp.nNode ||
|
|
|
|
( nNode == rCmp.nNode && nCntnt <= rCmp.nCntnt); }
|
2010-11-26 21:24:39 +00:00
|
|
|
int operator> ( const CompareNodeCntnt& rCmp ) const
|
2000-09-18 23:08:29 +00:00
|
|
|
{ return nNode > rCmp.nNode ||
|
|
|
|
( nNode == rCmp.nNode && nCntnt > rCmp.nCntnt); }
|
2010-11-26 21:24:39 +00:00
|
|
|
int operator>=( const CompareNodeCntnt& rCmp ) const
|
2000-09-18 23:08:29 +00:00
|
|
|
{ return nNode > rCmp.nNode ||
|
|
|
|
( nNode == rCmp.nNode && nCntnt >= rCmp.nCntnt); }
|
|
|
|
};
|
|
|
|
|
|
|
|
const SwTOXMark& SwDoc::GotoTOXMark( const SwTOXMark& rCurTOXMark,
|
|
|
|
SwTOXSearch eDir, BOOL bInReadOnly )
|
|
|
|
{
|
|
|
|
const SwTxtTOXMark* pMark = rCurTOXMark.GetTxtTOXMark();
|
2010-11-25 17:08:45 +01:00
|
|
|
OSL_ENSURE(pMark, "pMark==0 Ungueltige TxtTOXMark");
|
2000-09-18 23:08:29 +00:00
|
|
|
|
|
|
|
const SwTxtNode *pTOXSrc = pMark->GetpTxtNd();
|
|
|
|
|
|
|
|
CompareNodeCntnt aAbsIdx( pTOXSrc->GetIndex(), *pMark->GetStart() );
|
|
|
|
CompareNodeCntnt aPrevPos( 0, 0 );
|
|
|
|
CompareNodeCntnt aNextPos( ULONG_MAX, STRING_NOTFOUND );
|
|
|
|
CompareNodeCntnt aMax( 0, 0 );
|
|
|
|
CompareNodeCntnt aMin( ULONG_MAX, STRING_NOTFOUND );
|
|
|
|
|
|
|
|
const SwTOXMark* pNew = 0;
|
|
|
|
const SwTOXMark* pMax = &rCurTOXMark;
|
|
|
|
const SwTOXMark* pMin = &rCurTOXMark;
|
|
|
|
|
|
|
|
const SwModify* pType = rCurTOXMark.GetRegisteredIn();
|
|
|
|
SwClientIter aIter( *(SwModify*)pType );
|
|
|
|
|
|
|
|
const SwTOXMark* pTOXMark;
|
|
|
|
const SwCntntFrm* pCFrm;
|
|
|
|
Point aPt;
|
|
|
|
for( pTOXMark = (SwTOXMark*)aIter.First( TYPE( SwTOXMark )); pTOXMark;
|
|
|
|
pTOXMark = (SwTOXMark*)aIter.Next() )
|
|
|
|
{
|
|
|
|
if( pTOXMark != &rCurTOXMark &&
|
|
|
|
0 != ( pMark = pTOXMark->GetTxtTOXMark()) &&
|
|
|
|
0 != ( pTOXSrc = pMark->GetpTxtNd() ) &&
|
|
|
|
0 != ( pCFrm = pTOXSrc->GetFrm( &aPt, 0, FALSE )) &&
|
|
|
|
( bInReadOnly || !pCFrm->IsProtected() ))
|
|
|
|
{
|
|
|
|
CompareNodeCntnt aAbsNew( pTOXSrc->GetIndex(), *pMark->GetStart() );
|
|
|
|
switch( eDir )
|
|
|
|
{
|
|
|
|
//Die untenstehenden etwas komplizierter ausgefallen Ausdruecke
|
|
|
|
//dienen dazu auch ueber Eintraege auf der selben (!) Position
|
|
|
|
//traveln zu koennen. Wenn einer Zeit hat mag er sie mal
|
|
|
|
//optimieren.
|
|
|
|
|
|
|
|
case TOX_SAME_PRV:
|
|
|
|
if( pTOXMark->GetText() != rCurTOXMark.GetText() )
|
|
|
|
break;
|
|
|
|
/* no break here */
|
|
|
|
case TOX_PRV:
|
|
|
|
if ( (aAbsNew < aAbsIdx && aAbsNew > aPrevPos &&
|
|
|
|
aPrevPos != aAbsIdx && aAbsNew != aAbsIdx ) ||
|
|
|
|
(aAbsIdx == aAbsNew &&
|
|
|
|
(ULONG(&rCurTOXMark) > ULONG(pTOXMark) &&
|
|
|
|
(!pNew ||
|
|
|
|
(pNew && (aPrevPos < aAbsIdx ||
|
|
|
|
ULONG(pNew) < ULONG(pTOXMark)))))) ||
|
|
|
|
(aPrevPos == aAbsNew && aAbsIdx != aAbsNew &&
|
|
|
|
ULONG(pTOXMark) > ULONG(pNew)) )
|
|
|
|
{
|
|
|
|
pNew = pTOXMark;
|
|
|
|
aPrevPos = aAbsNew;
|
|
|
|
if ( aAbsNew >= aMax )
|
|
|
|
{
|
|
|
|
aMax = aAbsNew;
|
|
|
|
pMax = pTOXMark;
|
|
|
|
}
|
|
|
|
}
|
|
|
|
break;
|
|
|
|
|
|
|
|
case TOX_SAME_NXT:
|
|
|
|
if( pTOXMark->GetText() != rCurTOXMark.GetText() )
|
|
|
|
break;
|
|
|
|
/* no break here */
|
|
|
|
case TOX_NXT:
|
|
|
|
if ( (aAbsNew > aAbsIdx && aAbsNew < aNextPos &&
|
|
|
|
aNextPos != aAbsIdx && aAbsNew != aAbsIdx ) ||
|
|
|
|
(aAbsIdx == aAbsNew &&
|
|
|
|
(ULONG(&rCurTOXMark) < ULONG(pTOXMark) &&
|
|
|
|
(!pNew ||
|
|
|
|
(pNew && (aNextPos > aAbsIdx ||
|
|
|
|
ULONG(pNew) > ULONG(pTOXMark)))))) ||
|
|
|
|
(aNextPos == aAbsNew && aAbsIdx != aAbsNew &&
|
|
|
|
ULONG(pTOXMark) < ULONG(pNew)) )
|
|
|
|
{
|
|
|
|
pNew = pTOXMark;
|
|
|
|
aNextPos = aAbsNew;
|
|
|
|
if ( aAbsNew <= aMin )
|
|
|
|
{
|
|
|
|
aMin = aAbsNew;
|
|
|
|
pMin = pTOXMark;
|
|
|
|
}
|
|
|
|
}
|
|
|
|
break;
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
// kein Nachfolger wurde gefunden
|
|
|
|
// Min oder Max benutzen
|
|
|
|
if(!pNew)
|
|
|
|
{
|
|
|
|
switch(eDir)
|
|
|
|
{
|
|
|
|
case TOX_PRV:
|
|
|
|
case TOX_SAME_PRV:
|
|
|
|
pNew = pMax;
|
|
|
|
break;
|
|
|
|
case TOX_NXT:
|
|
|
|
case TOX_SAME_NXT:
|
|
|
|
pNew = pMin;
|
|
|
|
break;
|
|
|
|
default:
|
|
|
|
pNew = &rCurTOXMark;
|
|
|
|
}
|
|
|
|
}
|
|
|
|
return *pNew;
|
|
|
|
}
|
|
|
|
|
|
|
|
const SwTOXBaseSection* SwDoc::InsertTableOf( const SwPosition& rPos,
|
|
|
|
const SwTOXBase& rTOX,
|
|
|
|
const SfxItemSet* pSet,
|
|
|
|
BOOL bExpand )
|
|
|
|
{
|
2006-08-14 15:00:00 +00:00
|
|
|
StartUndo( UNDO_INSTOX, NULL );
|
2000-09-18 23:08:29 +00:00
|
|
|
|
|
|
|
String sSectNm( rTOX.GetTOXName() );
|
|
|
|
sSectNm = GetUniqueTOXBaseName( *rTOX.GetTOXType(), &sSectNm );
|
|
|
|
SwPaM aPam( rPos );
|
2010-03-16 11:28:30 +01:00
|
|
|
SwSectionData aSectionData( TOX_CONTENT_SECTION, sSectNm );
|
2010-03-16 11:28:29 +01:00
|
|
|
SwTOXBaseSection *const pNewSection = dynamic_cast<SwTOXBaseSection *>(
|
2010-03-16 11:28:30 +01:00
|
|
|
InsertSwSection( aPam, aSectionData, & rTOX, pSet, false ));
|
2010-03-16 11:28:29 +01:00
|
|
|
if (pNewSection)
|
2000-09-18 23:08:29 +00:00
|
|
|
{
|
2010-03-16 11:28:29 +01:00
|
|
|
SwSectionNode *const pSectNd = pNewSection->GetFmt()->GetSectionNode();
|
|
|
|
pNewSection->SetTOXName(sSectNm); // rTOX may have had no name...
|
2000-09-18 23:08:29 +00:00
|
|
|
|
|
|
|
if( bExpand )
|
2003-04-17 09:09:53 +00:00
|
|
|
{
|
|
|
|
// OD 19.03.2003 #106329# - add value for 2nd parameter = true to
|
|
|
|
// indicate, that a creation of a new table of content has to be performed.
|
|
|
|
// Value of 1st parameter = default value.
|
2010-03-16 11:28:29 +01:00
|
|
|
pNewSection->Update( 0, true );
|
2003-04-17 09:09:53 +00:00
|
|
|
}
|
2000-11-28 19:45:17 +00:00
|
|
|
else if( 1 == rTOX.GetTitle().Len() && IsInReading() )
|
|
|
|
// insert title of TOX
|
|
|
|
{
|
|
|
|
// then insert the headline section
|
|
|
|
SwNodeIndex aIdx( *pSectNd, +1 );
|
|
|
|
|
|
|
|
SwTxtNode* pHeadNd = GetNodes().MakeTxtNode( aIdx,
|
|
|
|
GetTxtCollFromPool( RES_POOLCOLL_STANDARD ) );
|
|
|
|
|
2010-03-16 11:28:29 +01:00
|
|
|
String sNm( pNewSection->GetTOXName() );
|
2000-11-28 19:45:17 +00:00
|
|
|
// ??Resource
|
|
|
|
sNm.AppendAscii( RTL_CONSTASCII_STRINGPARAM( "_Head" ));
|
|
|
|
|
2010-03-16 11:28:30 +01:00
|
|
|
SwSectionData headerData( TOX_HEADER_SECTION, sNm );
|
2000-11-28 19:45:17 +00:00
|
|
|
|
|
|
|
SwNodeIndex aStt( *pHeadNd ); aIdx--;
|
|
|
|
SwSectionFmt* pSectFmt = MakeSectionFmt( 0 );
|
2010-03-16 11:28:29 +01:00
|
|
|
GetNodes().InsertTextSection(
|
2010-03-16 11:28:30 +01:00
|
|
|
aStt, *pSectFmt, headerData, 0, &aIdx, true, false);
|
2000-11-28 19:45:17 +00:00
|
|
|
}
|
2000-09-18 23:08:29 +00:00
|
|
|
}
|
|
|
|
|
2006-08-14 15:00:00 +00:00
|
|
|
EndUndo( UNDO_INSTOX, NULL );
|
2000-09-18 23:08:29 +00:00
|
|
|
|
2010-03-16 11:28:29 +01:00
|
|
|
return pNewSection;
|
2000-09-18 23:08:29 +00:00
|
|
|
}
|
|
|
|
|
|
|
|
const SwTOXBaseSection* SwDoc::InsertTableOf( ULONG nSttNd, ULONG nEndNd,
|
|
|
|
const SwTOXBase& rTOX,
|
|
|
|
const SfxItemSet* pSet )
|
|
|
|
{
|
|
|
|
// check for recursiv TOX
|
|
|
|
SwNode* pNd = GetNodes()[ nSttNd ];
|
|
|
|
SwSectionNode* pSectNd = pNd->FindSectionNode();
|
|
|
|
while( pSectNd )
|
|
|
|
{
|
|
|
|
SectionType eT = pSectNd->GetSection().GetType();
|
|
|
|
if( TOX_HEADER_SECTION == eT || TOX_CONTENT_SECTION == eT )
|
|
|
|
return 0;
|
2006-08-14 15:00:00 +00:00
|
|
|
pSectNd = pSectNd->StartOfSectionNode()->FindSectionNode();
|
2000-09-18 23:08:29 +00:00
|
|
|
}
|
|
|
|
|
|
|
|
String sSectNm( rTOX.GetTOXName() );
|
|
|
|
sSectNm = GetUniqueTOXBaseName(*rTOX.GetTOXType(), &sSectNm);
|
2010-03-16 11:28:29 +01:00
|
|
|
|
2010-03-16 11:28:30 +01:00
|
|
|
SwSectionData aSectionData( TOX_CONTENT_SECTION, sSectNm );
|
2000-09-18 23:08:29 +00:00
|
|
|
|
|
|
|
SwNodeIndex aStt( GetNodes(), nSttNd ), aEnd( GetNodes(), nEndNd );
|
|
|
|
SwSectionFmt* pFmt = MakeSectionFmt( 0 );
|
|
|
|
if(pSet)
|
2008-06-13 08:36:06 +00:00
|
|
|
pFmt->SetFmtAttr(*pSet);
|
2000-09-18 23:08:29 +00:00
|
|
|
|
|
|
|
// --aEnd; // im InsertSection ist Ende inclusive
|
|
|
|
|
2010-03-16 11:28:29 +01:00
|
|
|
SwSectionNode *const pNewSectionNode =
|
2010-03-16 11:28:30 +01:00
|
|
|
GetNodes().InsertTextSection(aStt, *pFmt, aSectionData, &rTOX, &aEnd);
|
2010-03-16 11:28:29 +01:00
|
|
|
if (!pNewSectionNode)
|
2000-09-18 23:08:29 +00:00
|
|
|
{
|
|
|
|
DelSectionFmt( pFmt );
|
2010-03-16 11:28:29 +01:00
|
|
|
return 0;
|
2000-09-18 23:08:29 +00:00
|
|
|
}
|
|
|
|
|
2010-03-16 11:28:29 +01:00
|
|
|
SwTOXBaseSection *const pNewSection(
|
|
|
|
dynamic_cast<SwTOXBaseSection*>(& pNewSectionNode->GetSection()));
|
|
|
|
pNewSection->SetTOXName(sSectNm); // rTOX may have had no name...
|
|
|
|
return pNewSection;
|
2000-09-18 23:08:29 +00:00
|
|
|
}
|
|
|
|
|
|
|
|
/*--------------------------------------------------------------------
|
|
|
|
Beschreibung: Aktuelles Verzeichnis ermitteln
|
|
|
|
--------------------------------------------------------------------*/
|
|
|
|
const SwTOXBase* SwDoc::GetCurTOX( const SwPosition& rPos ) const
|
|
|
|
{
|
|
|
|
const SwNode& rNd = rPos.nNode.GetNode();
|
|
|
|
const SwSectionNode* pSectNd = rNd.FindSectionNode();
|
|
|
|
while( pSectNd )
|
|
|
|
{
|
|
|
|
SectionType eT = pSectNd->GetSection().GetType();
|
|
|
|
if( TOX_CONTENT_SECTION == eT )
|
|
|
|
{
|
2010-11-25 17:08:45 +01:00
|
|
|
OSL_ENSURE( pSectNd->GetSection().ISA( SwTOXBaseSection ),
|
2000-09-18 23:08:29 +00:00
|
|
|
"keine TOXBaseSection!" );
|
|
|
|
SwTOXBaseSection& rTOXSect = (SwTOXBaseSection&)
|
|
|
|
pSectNd->GetSection();
|
|
|
|
return &rTOXSect;
|
|
|
|
}
|
2006-08-14 15:00:00 +00:00
|
|
|
pSectNd = pSectNd->StartOfSectionNode()->FindSectionNode();
|
2000-09-18 23:08:29 +00:00
|
|
|
}
|
|
|
|
return 0;
|
|
|
|
}
|
|
|
|
|
|
|
|
const SwAttrSet& SwDoc::GetTOXBaseAttrSet(const SwTOXBase& rTOXBase) const
|
|
|
|
{
|
2010-11-25 17:08:45 +01:00
|
|
|
OSL_ENSURE( rTOXBase.ISA( SwTOXBaseSection ), "no TOXBaseSection!" );
|
2000-09-18 23:08:29 +00:00
|
|
|
const SwTOXBaseSection& rTOXSect = (const SwTOXBaseSection&)rTOXBase;
|
|
|
|
SwSectionFmt* pFmt = rTOXSect.GetFmt();
|
2010-11-25 17:08:45 +01:00
|
|
|
OSL_ENSURE( pFmt, "invalid TOXBaseSection!" );
|
2000-09-18 23:08:29 +00:00
|
|
|
return pFmt->GetAttrSet();
|
|
|
|
}
|
|
|
|
|
|
|
|
const SwTOXBase* SwDoc::GetDefaultTOXBase( TOXTypes eTyp, BOOL bCreate )
|
|
|
|
{
|
2007-09-27 07:37:21 +00:00
|
|
|
SwTOXBase** prBase = 0;
|
2000-09-18 23:08:29 +00:00
|
|
|
switch(eTyp)
|
|
|
|
{
|
|
|
|
case TOX_CONTENT: prBase = &pDefTOXBases->pContBase; break;
|
|
|
|
case TOX_INDEX: prBase = &pDefTOXBases->pIdxBase; break;
|
|
|
|
case TOX_USER: prBase = &pDefTOXBases->pUserBase; break;
|
|
|
|
case TOX_TABLES: prBase = &pDefTOXBases->pTblBase; break;
|
|
|
|
case TOX_OBJECTS: prBase = &pDefTOXBases->pObjBase; break;
|
|
|
|
case TOX_ILLUSTRATIONS: prBase = &pDefTOXBases->pIllBase; break;
|
|
|
|
case TOX_AUTHORITIES: prBase = &pDefTOXBases->pAuthBase; break;
|
|
|
|
}
|
|
|
|
if(!(*prBase) && bCreate)
|
|
|
|
{
|
|
|
|
SwForm aForm(eTyp);
|
|
|
|
const SwTOXType* pType = GetTOXType(eTyp, 0);
|
|
|
|
(*prBase) = new SwTOXBase(pType, aForm, 0, pType->GetTypeName());
|
|
|
|
}
|
|
|
|
return (*prBase);
|
|
|
|
}
|
|
|
|
|
|
|
|
void SwDoc::SetDefaultTOXBase(const SwTOXBase& rBase)
|
|
|
|
{
|
2007-09-27 07:37:21 +00:00
|
|
|
SwTOXBase** prBase = 0;
|
2000-09-18 23:08:29 +00:00
|
|
|
switch(rBase.GetType())
|
|
|
|
{
|
|
|
|
case TOX_CONTENT: prBase = &pDefTOXBases->pContBase; break;
|
|
|
|
case TOX_INDEX: prBase = &pDefTOXBases->pIdxBase; break;
|
|
|
|
case TOX_USER: prBase = &pDefTOXBases->pUserBase; break;
|
|
|
|
case TOX_TABLES: prBase = &pDefTOXBases->pTblBase; break;
|
|
|
|
case TOX_OBJECTS: prBase = &pDefTOXBases->pObjBase; break;
|
|
|
|
case TOX_ILLUSTRATIONS: prBase = &pDefTOXBases->pIllBase; break;
|
|
|
|
case TOX_AUTHORITIES: prBase = &pDefTOXBases->pAuthBase; break;
|
|
|
|
}
|
|
|
|
if(*prBase)
|
|
|
|
delete (*prBase);
|
|
|
|
(*prBase) = new SwTOXBase(rBase);
|
|
|
|
}
|
|
|
|
|
|
|
|
/*--------------------------------------------------------------------
|
|
|
|
Beschreibung: Verzeichnis loeschen
|
|
|
|
--------------------------------------------------------------------*/
|
|
|
|
BOOL SwDoc::DeleteTOX( const SwTOXBase& rTOXBase, BOOL bDelNodes )
|
|
|
|
{
|
|
|
|
// its only delete the TOX, not the nodes
|
|
|
|
BOOL bRet = FALSE;
|
2010-11-25 17:08:45 +01:00
|
|
|
OSL_ENSURE( rTOXBase.ISA( SwTOXBaseSection ), "keine TOXBaseSection!" );
|
2000-09-18 23:08:29 +00:00
|
|
|
|
|
|
|
const SwTOXBaseSection& rTOXSect = (const SwTOXBaseSection&)rTOXBase;
|
|
|
|
SwSectionFmt* pFmt = rTOXSect.GetFmt();
|
|
|
|
if( pFmt )
|
|
|
|
{
|
2006-08-14 15:00:00 +00:00
|
|
|
StartUndo( UNDO_CLEARTOXRANGE, NULL );
|
2000-09-18 23:08:29 +00:00
|
|
|
|
2002-10-29 13:37:26 +00:00
|
|
|
/* Save the start node of the TOX' section. */
|
|
|
|
SwSectionNode * pMyNode = pFmt->GetSectionNode();
|
|
|
|
/* Save start node of section's surrounding. */
|
2006-08-14 15:00:00 +00:00
|
|
|
SwNode * pStartNd = pMyNode->StartOfSectionNode();
|
2002-10-29 13:37:26 +00:00
|
|
|
|
|
|
|
/* Look for point where to move the cursors in the area to
|
|
|
|
delete to. This is done by first searching forward from the
|
|
|
|
end of the TOX' section. If no content node is found behind
|
|
|
|
the TOX one is searched before it. If this is not
|
|
|
|
successfull, too, insert new text node behind the end of
|
|
|
|
the TOX' section. The cursors from the TOX' section will be
|
|
|
|
moved to the content node found or the new text node. */
|
|
|
|
|
|
|
|
/* Set PaM to end of TOX' section and search following content node.
|
|
|
|
|
|
|
|
aSearchPam will contain the point where to move the cursors
|
|
|
|
to. */
|
|
|
|
SwPaM aSearchPam(*pMyNode->EndOfSectionNode());
|
2010-03-09 13:27:17 +01:00
|
|
|
SwPosition aEndPos(*pStartNd->EndOfSectionNode());
|
2002-10-29 13:37:26 +00:00
|
|
|
if (! aSearchPam.Move() /* no content node found */
|
|
|
|
|| *aSearchPam.GetPoint() >= aEndPos /* content node found
|
|
|
|
outside surrounding */
|
|
|
|
)
|
|
|
|
{
|
|
|
|
/* Set PaM to beginning of TOX' section and search previous
|
|
|
|
content node */
|
|
|
|
SwPaM aTmpPam(*pMyNode);
|
|
|
|
aSearchPam = aTmpPam;
|
2010-03-09 13:27:17 +01:00
|
|
|
SwPosition aStartPos(*pStartNd);
|
2002-10-29 13:37:26 +00:00
|
|
|
|
|
|
|
if ( ! aSearchPam.Move(fnMoveBackward) /* no content node found */
|
|
|
|
|| *aSearchPam.GetPoint() <= aStartPos /* content node
|
|
|
|
found outside
|
|
|
|
surrounding */
|
|
|
|
)
|
|
|
|
{
|
|
|
|
/* There is no content node in the surrounding of
|
|
|
|
TOX'. Append text node behind TOX' section. */
|
|
|
|
|
2010-03-09 13:27:17 +01:00
|
|
|
SwPosition aInsPos(*pMyNode->EndOfSectionNode());
|
2002-10-29 13:37:26 +00:00
|
|
|
AppendTxtNode(aInsPos);
|
|
|
|
|
|
|
|
SwPaM aTmpPam1(aInsPos);
|
|
|
|
aSearchPam = aTmpPam1;
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
/* PaM containing the TOX. */
|
|
|
|
SwPaM aPam(*pMyNode->EndOfSectionNode(), *pMyNode);
|
|
|
|
|
|
|
|
/* Move cursors contained in TOX to point determined above. */
|
|
|
|
PaMCorrAbs(aPam, *aSearchPam.GetPoint());
|
|
|
|
|
2000-09-18 23:08:29 +00:00
|
|
|
if( !bDelNodes )
|
|
|
|
{
|
|
|
|
SwSections aArr( 0, 4 );
|
|
|
|
USHORT nCnt = pFmt->GetChildSections( aArr, SORTSECT_NOT, FALSE );
|
|
|
|
for( USHORT n = 0; n < nCnt; ++n )
|
|
|
|
{
|
|
|
|
SwSection* pSect = aArr[ n ];
|
|
|
|
if( TOX_HEADER_SECTION == pSect->GetType() )
|
|
|
|
{
|
|
|
|
DelSectionFmt( pSect->GetFmt(), bDelNodes );
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
2002-10-29 13:37:26 +00:00
|
|
|
|
2000-09-18 23:08:29 +00:00
|
|
|
DelSectionFmt( pFmt, bDelNodes );
|
|
|
|
|
2006-08-14 15:00:00 +00:00
|
|
|
EndUndo( UNDO_CLEARTOXRANGE, NULL );
|
2000-09-18 23:08:29 +00:00
|
|
|
bRet = TRUE;
|
|
|
|
}
|
2002-10-29 13:37:26 +00:00
|
|
|
|
2000-09-18 23:08:29 +00:00
|
|
|
return bRet;
|
|
|
|
}
|
|
|
|
|
|
|
|
/*--------------------------------------------------------------------
|
|
|
|
Beschreibung: Verzeichnistypen verwalten
|
|
|
|
--------------------------------------------------------------------*/
|
|
|
|
USHORT SwDoc::GetTOXTypeCount(TOXTypes eTyp) const
|
|
|
|
{
|
|
|
|
const SwTOXTypePtr * ppTTypes = pTOXTypes->GetData();
|
|
|
|
USHORT nCnt = 0;
|
|
|
|
for( USHORT n = 0; n < pTOXTypes->Count(); ++n, ++ppTTypes )
|
|
|
|
if( eTyp == (*ppTTypes)->GetType() )
|
|
|
|
++nCnt;
|
|
|
|
return nCnt;
|
|
|
|
}
|
|
|
|
|
|
|
|
const SwTOXType* SwDoc::GetTOXType( TOXTypes eTyp, USHORT nId ) const
|
|
|
|
{
|
|
|
|
const SwTOXTypePtr * ppTTypes = pTOXTypes->GetData();
|
|
|
|
USHORT nCnt = 0;
|
|
|
|
for( USHORT n = 0; n < pTOXTypes->Count(); ++n, ++ppTTypes )
|
|
|
|
if( eTyp == (*ppTTypes)->GetType() && nCnt++ == nId )
|
|
|
|
return (*ppTTypes);
|
|
|
|
return 0;
|
|
|
|
}
|
|
|
|
|
|
|
|
const SwTOXType* SwDoc::InsertTOXType( const SwTOXType& rTyp )
|
|
|
|
{
|
|
|
|
SwTOXType * pNew = new SwTOXType( rTyp );
|
|
|
|
pTOXTypes->Insert( pNew, pTOXTypes->Count() );
|
|
|
|
return pNew;
|
|
|
|
}
|
|
|
|
|
|
|
|
String SwDoc::GetUniqueTOXBaseName( const SwTOXType& rType,
|
|
|
|
const String* pChkStr ) const
|
|
|
|
{
|
2003-12-01 15:35:27 +00:00
|
|
|
USHORT n;
|
|
|
|
const SwSectionNode* pSectNd;
|
|
|
|
const SwSection* pSect;
|
|
|
|
|
2000-09-18 23:08:29 +00:00
|
|
|
if(pChkStr && !pChkStr->Len())
|
|
|
|
pChkStr = 0;
|
|
|
|
String aName( rType.GetTypeName() );
|
|
|
|
xub_StrLen nNmLen = aName.Len();
|
|
|
|
|
2007-09-27 07:37:21 +00:00
|
|
|
USHORT nNum = 0;
|
|
|
|
USHORT nTmp = 0;
|
|
|
|
USHORT nFlagSize = ( pSectionFmtTbl->Count() / 8 ) +2;
|
2000-09-18 23:08:29 +00:00
|
|
|
BYTE* pSetFlags = new BYTE[ nFlagSize ];
|
|
|
|
memset( pSetFlags, 0, nFlagSize );
|
|
|
|
|
2003-12-01 15:35:27 +00:00
|
|
|
for( n = 0; n < pSectionFmtTbl->Count(); ++n )
|
2000-09-18 23:08:29 +00:00
|
|
|
if( 0 != ( pSectNd = (*pSectionFmtTbl)[ n ]->GetSectionNode( FALSE ) )&&
|
|
|
|
TOX_CONTENT_SECTION == (pSect = &pSectNd->GetSection())->GetType())
|
|
|
|
{
|
2010-03-16 11:28:31 +01:00
|
|
|
const String& rNm = pSect->GetSectionName();
|
2000-09-18 23:08:29 +00:00
|
|
|
if( rNm.Match( aName ) == nNmLen )
|
|
|
|
{
|
|
|
|
// Nummer bestimmen und das Flag setzen
|
2001-11-02 11:33:43 +00:00
|
|
|
nNum = (USHORT)rNm.Copy( nNmLen ).ToInt32();
|
2000-09-18 23:08:29 +00:00
|
|
|
if( nNum-- && nNum < pSectionFmtTbl->Count() )
|
|
|
|
pSetFlags[ nNum / 8 ] |= (0x01 << ( nNum & 0x07 ));
|
|
|
|
}
|
|
|
|
if( pChkStr && pChkStr->Equals( rNm ) )
|
|
|
|
pChkStr = 0;
|
|
|
|
}
|
|
|
|
|
|
|
|
if( !pChkStr )
|
|
|
|
{
|
|
|
|
// alle Nummern entsprechend geflag, also bestimme die richtige Nummer
|
|
|
|
nNum = pSectionFmtTbl->Count();
|
|
|
|
for( n = 0; n < nFlagSize; ++n )
|
|
|
|
if( 0xff != ( nTmp = pSetFlags[ n ] ))
|
|
|
|
{
|
|
|
|
// also die Nummer bestimmen
|
|
|
|
nNum = n * 8;
|
|
|
|
while( nTmp & 1 )
|
|
|
|
++nNum, nTmp >>= 1;
|
|
|
|
break;
|
|
|
|
}
|
|
|
|
}
|
2004-02-04 13:07:31 +00:00
|
|
|
delete [] pSetFlags;
|
2000-09-18 23:08:29 +00:00
|
|
|
if( pChkStr )
|
|
|
|
return *pChkStr;
|
|
|
|
return aName += String::CreateFromInt32( ++nNum );
|
|
|
|
}
|
|
|
|
|
|
|
|
BOOL SwDoc::SetTOXBaseName(const SwTOXBase& rTOXBase, const String& rName)
|
|
|
|
{
|
2010-11-25 17:08:45 +01:00
|
|
|
OSL_ENSURE( rTOXBase.ISA( SwTOXBaseSection ),
|
2000-09-18 23:08:29 +00:00
|
|
|
"keine TOXBaseSection!" );
|
|
|
|
SwTOXBaseSection* pTOX = (SwTOXBaseSection*)&rTOXBase;
|
|
|
|
|
|
|
|
String sTmp = GetUniqueTOXBaseName(*rTOXBase.GetTOXType(), &rName);
|
|
|
|
BOOL bRet = sTmp == rName;
|
|
|
|
if(bRet)
|
|
|
|
{
|
|
|
|
pTOX->SetTOXName(rName);
|
2010-03-16 11:28:31 +01:00
|
|
|
pTOX->SetSectionName(rName);
|
2000-09-18 23:08:29 +00:00
|
|
|
SetModified();
|
|
|
|
}
|
|
|
|
return bRet;
|
|
|
|
}
|
|
|
|
|
|
|
|
const SwTxtNode* lcl_FindChapterNode( const SwNode& rNd, BYTE nLvl = 0 )
|
|
|
|
{
|
|
|
|
const SwNode* pNd = &rNd;
|
|
|
|
if( pNd->GetNodes().GetEndOfExtras().GetIndex() > pNd->GetIndex() )
|
|
|
|
{
|
|
|
|
// then find the "Anchor" (Body) position
|
|
|
|
Point aPt;
|
|
|
|
SwNode2Layout aNode2Layout( *pNd, pNd->GetIndex() );
|
|
|
|
const SwFrm* pFrm = aNode2Layout.GetFrm( &aPt, 0, FALSE );
|
|
|
|
|
|
|
|
if( pFrm )
|
|
|
|
{
|
|
|
|
SwPosition aPos( *pNd );
|
|
|
|
pNd = GetBodyTxtNode( *pNd->GetDoc(), aPos, *pFrm );
|
2010-11-25 17:08:45 +01:00
|
|
|
OSL_ENSURE( pNd, "wo steht der Absatz" );
|
2000-09-18 23:08:29 +00:00
|
|
|
}
|
|
|
|
}
|
|
|
|
return pNd ? pNd->FindOutlineNodeOfLevel( nLvl ) : 0;
|
|
|
|
}
|
|
|
|
|
|
|
|
/*--------------------------------------------------------------------
|
|
|
|
Beschreibung: Verzeichnis-Klasse
|
|
|
|
--------------------------------------------------------------------*/
|
2010-03-16 11:28:29 +01:00
|
|
|
SwTOXBaseSection::SwTOXBaseSection(SwTOXBase const& rBase, SwSectionFmt & rFmt)
|
|
|
|
: SwTOXBase( rBase )
|
2010-03-16 11:28:30 +01:00
|
|
|
, SwSection( TOX_CONTENT_SECTION, aEmptyStr, rFmt )
|
2000-09-18 23:08:29 +00:00
|
|
|
{
|
|
|
|
SetProtect( rBase.IsProtected() );
|
2010-03-16 11:28:31 +01:00
|
|
|
SetSectionName( GetTOXName() );
|
2000-09-18 23:08:29 +00:00
|
|
|
}
|
|
|
|
|
|
|
|
SwTOXBaseSection::~SwTOXBaseSection()
|
|
|
|
{
|
|
|
|
}
|
|
|
|
|
|
|
|
BOOL SwTOXBaseSection::SetPosAtStartEnd( SwPosition& rPos, BOOL bAtStart ) const
|
|
|
|
{
|
|
|
|
BOOL bRet = FALSE;
|
|
|
|
const SwSectionNode* pSectNd = GetFmt()->GetSectionNode();
|
|
|
|
if( pSectNd )
|
|
|
|
{
|
|
|
|
SwCntntNode* pCNd;
|
|
|
|
xub_StrLen nC = 0;
|
|
|
|
if( bAtStart )
|
|
|
|
{
|
|
|
|
rPos.nNode = *pSectNd;
|
|
|
|
pCNd = pSectNd->GetDoc()->GetNodes().GoNext( &rPos.nNode );
|
|
|
|
}
|
|
|
|
else
|
|
|
|
{
|
|
|
|
rPos.nNode = *pSectNd->EndOfSectionNode();
|
|
|
|
pCNd = pSectNd->GetDoc()->GetNodes().GoPrevious( &rPos.nNode );
|
|
|
|
if( pCNd ) nC = pCNd->Len();
|
|
|
|
}
|
|
|
|
rPos.nContent.Assign( pCNd, nC );
|
|
|
|
bRet = TRUE;
|
|
|
|
}
|
|
|
|
return bRet;
|
|
|
|
}
|
|
|
|
|
|
|
|
/*--------------------------------------------------------------------
|
|
|
|
Beschreibung: Verzeichnisinhalt zusammensammeln
|
|
|
|
--------------------------------------------------------------------*/
|
2003-04-17 09:09:53 +00:00
|
|
|
void SwTOXBaseSection::Update(const SfxItemSet* pAttr,
|
|
|
|
const bool _bNewTOX )
|
2000-09-18 23:08:29 +00:00
|
|
|
{
|
|
|
|
const SwSectionNode* pSectNd;
|
|
|
|
if( !SwTOXBase::GetRegisteredIn()->GetDepends() ||
|
|
|
|
!GetFmt() || 0 == (pSectNd = GetFmt()->GetSectionNode() ) ||
|
|
|
|
!pSectNd->GetNodes().IsDocNodes() ||
|
|
|
|
IsHiddenFlag() )
|
|
|
|
return;
|
|
|
|
|
|
|
|
SwDoc* pDoc = (SwDoc*)pSectNd->GetDoc();
|
2004-05-18 13:02:31 +00:00
|
|
|
|
|
|
|
DBG_ASSERT(pDoc != NULL, "Where is the document?");
|
|
|
|
|
|
|
|
if(pAttr && pDoc && GetFmt())
|
|
|
|
pDoc->ChgFmt(*GetFmt(), *pAttr);
|
|
|
|
|
2003-04-17 09:09:53 +00:00
|
|
|
// OD 18.03.2003 #106329# - determine default page description, which
|
|
|
|
// will be used by the content nodes, if no approriate one is found.
|
|
|
|
const SwPageDesc* pDefaultPageDesc;
|
|
|
|
{
|
|
|
|
pDefaultPageDesc =
|
|
|
|
pSectNd->GetSection().GetFmt()->GetPageDesc().GetPageDesc();
|
|
|
|
if ( !_bNewTOX && !pDefaultPageDesc )
|
|
|
|
{
|
|
|
|
// determine page description of table-of-content
|
|
|
|
sal_uInt32 nPgDescNdIdx = pSectNd->GetIndex() + 1;
|
|
|
|
sal_uInt32* pPgDescNdIdx = &nPgDescNdIdx;
|
|
|
|
pDefaultPageDesc = pSectNd->FindPageDesc( FALSE, pPgDescNdIdx );
|
|
|
|
if ( nPgDescNdIdx < pSectNd->GetIndex() )
|
|
|
|
{
|
|
|
|
pDefaultPageDesc = 0;
|
|
|
|
}
|
|
|
|
}
|
2003-04-30 07:20:42 +00:00
|
|
|
// OD 28.04.2003 #109166# - consider end node of content section in the
|
|
|
|
// node array.
|
2003-04-17 09:09:53 +00:00
|
|
|
if ( !pDefaultPageDesc &&
|
|
|
|
( pSectNd->EndOfSectionNode()->GetIndex() <
|
2003-04-30 07:20:42 +00:00
|
|
|
(pSectNd->GetNodes().GetEndOfContent().GetIndex() - 1) )
|
2003-04-17 09:09:53 +00:00
|
|
|
)
|
|
|
|
{
|
|
|
|
// determine page description of content after table-of-content
|
|
|
|
SwNodeIndex aIdx( *(pSectNd->EndOfSectionNode()) );
|
|
|
|
const SwCntntNode* pNdAfterTOX = pSectNd->GetNodes().GoNext( &aIdx );
|
|
|
|
const SwAttrSet& aNdAttrSet = pNdAfterTOX->GetSwAttrSet();
|
|
|
|
const SvxBreak eBreak = aNdAttrSet.GetBreak().GetBreak();
|
|
|
|
if ( !( eBreak == SVX_BREAK_PAGE_BEFORE ||
|
|
|
|
eBreak == SVX_BREAK_PAGE_BOTH )
|
|
|
|
)
|
|
|
|
{
|
|
|
|
pDefaultPageDesc = pNdAfterTOX->FindPageDesc( FALSE );
|
|
|
|
}
|
|
|
|
}
|
2003-04-30 07:20:42 +00:00
|
|
|
// OD 28.04.2003 #109166# - consider start node of content section in
|
|
|
|
// the node array.
|
2003-04-17 09:09:53 +00:00
|
|
|
if ( !pDefaultPageDesc &&
|
|
|
|
( pSectNd->GetIndex() >
|
2003-04-30 07:20:42 +00:00
|
|
|
(pSectNd->GetNodes().GetEndOfContent().StartOfSectionIndex() + 1) )
|
2003-04-17 09:09:53 +00:00
|
|
|
)
|
|
|
|
{
|
|
|
|
// determine page description of content before table-of-content
|
|
|
|
SwNodeIndex aIdx( *pSectNd );
|
|
|
|
pDefaultPageDesc =
|
|
|
|
pSectNd->GetNodes().GoPrevious( &aIdx )->FindPageDesc( FALSE );
|
|
|
|
|
|
|
|
}
|
|
|
|
if ( !pDefaultPageDesc )
|
|
|
|
{
|
|
|
|
// determine default page description
|
2004-05-25 13:59:29 +00:00
|
|
|
pDefaultPageDesc =
|
|
|
|
&const_cast<const SwDoc *>(pDoc)->GetPageDesc( 0 );
|
2003-04-17 09:09:53 +00:00
|
|
|
}
|
|
|
|
}
|
|
|
|
|
2000-09-18 23:08:29 +00:00
|
|
|
pDoc->SetModified();
|
|
|
|
|
|
|
|
// get current Language
|
2002-06-26 08:32:38 +00:00
|
|
|
SwTOXInternational aIntl( GetLanguage(),
|
|
|
|
TOX_INDEX == GetTOXType()->GetType() ?
|
|
|
|
GetOptions() : 0,
|
|
|
|
GetSortAlgorithm() );
|
2000-09-18 23:08:29 +00:00
|
|
|
|
|
|
|
aSortArr.DeleteAndDestroy( 0, aSortArr.Count() );
|
|
|
|
|
|
|
|
// find the first layout node for this TOX, if it only find the content
|
|
|
|
// in his own chapter
|
|
|
|
const SwTxtNode* pOwnChapterNode = IsFromChapter()
|
|
|
|
? ::lcl_FindChapterNode( *pSectNd, 0 )
|
|
|
|
: 0;
|
|
|
|
|
|
|
|
SwNode2Layout aN2L( *pSectNd );
|
|
|
|
((SwSectionNode*)pSectNd)->DelFrms();
|
|
|
|
|
|
|
|
// remove old content an insert one empty textnode (to hold the layout!)
|
|
|
|
SwTxtNode* pFirstEmptyNd;
|
|
|
|
{
|
2006-08-14 15:00:00 +00:00
|
|
|
pDoc->DeleteRedline( *pSectNd, true, USHRT_MAX );
|
2000-09-18 23:08:29 +00:00
|
|
|
|
|
|
|
SwNodeIndex aSttIdx( *pSectNd, +1 );
|
|
|
|
SwNodeIndex aEndIdx( *pSectNd->EndOfSectionNode() );
|
|
|
|
pFirstEmptyNd = pDoc->GetNodes().MakeTxtNode( aEndIdx,
|
|
|
|
pDoc->GetTxtCollFromPool( RES_POOLCOLL_TEXT ) );
|
|
|
|
|
|
|
|
{
|
|
|
|
// Task 70995 - save and restore PageDesc and Break Attributes
|
|
|
|
SwNodeIndex aNxtIdx( aSttIdx );
|
|
|
|
const SwCntntNode* pCNd = aNxtIdx.GetNode().GetCntntNode();
|
|
|
|
if( !pCNd )
|
|
|
|
pCNd = pDoc->GetNodes().GoNext( &aNxtIdx );
|
2006-12-01 14:40:02 +00:00
|
|
|
if( pCNd->HasSwAttrSet() )
|
2000-09-18 23:08:29 +00:00
|
|
|
{
|
|
|
|
SfxItemSet aBrkSet( pDoc->GetAttrPool(), aBreakSetRange );
|
|
|
|
aBrkSet.Put( *pCNd->GetpSwAttrSet() );
|
|
|
|
if( aBrkSet.Count() )
|
2008-06-13 08:36:06 +00:00
|
|
|
pFirstEmptyNd->SetAttr( aBrkSet );
|
2000-09-18 23:08:29 +00:00
|
|
|
}
|
|
|
|
}
|
|
|
|
aEndIdx--;
|
|
|
|
SwPosition aPos( aEndIdx, SwIndex( pFirstEmptyNd, 0 ));
|
|
|
|
pDoc->CorrAbs( aSttIdx, aEndIdx, aPos, TRUE );
|
|
|
|
|
|
|
|
// delete all before
|
|
|
|
DelFlyInRange( aSttIdx, aEndIdx );
|
|
|
|
_DelBookmarks( aSttIdx, aEndIdx );
|
|
|
|
|
|
|
|
pDoc->GetNodes().Delete( aSttIdx, aEndIdx.GetIndex() - aSttIdx.GetIndex() );
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
//
|
|
|
|
// insert title of TOX
|
|
|
|
if( GetTitle().Len() )
|
|
|
|
{
|
|
|
|
// then insert the headline section
|
|
|
|
SwNodeIndex aIdx( *pSectNd, +1 );
|
|
|
|
|
|
|
|
SwTxtNode* pHeadNd = pDoc->GetNodes().MakeTxtNode( aIdx,
|
|
|
|
GetTxtFmtColl( FORM_TITLE ) );
|
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
|
|
|
pHeadNd->InsertText( GetTitle(), SwIndex( pHeadNd ) );
|
2000-09-18 23:08:29 +00:00
|
|
|
|
|
|
|
String sNm( GetTOXName() );
|
|
|
|
// ??Resource
|
|
|
|
sNm.AppendAscii( RTL_CONSTASCII_STRINGPARAM( "_Head" ));
|
|
|
|
|
2010-03-16 11:28:30 +01:00
|
|
|
SwSectionData headerData( TOX_HEADER_SECTION, sNm );
|
2000-09-18 23:08:29 +00:00
|
|
|
|
|
|
|
SwNodeIndex aStt( *pHeadNd ); aIdx--;
|
|
|
|
SwSectionFmt* pSectFmt = pDoc->MakeSectionFmt( 0 );
|
2010-03-16 11:28:29 +01:00
|
|
|
pDoc->GetNodes().InsertTextSection(
|
2010-03-16 11:28:30 +01:00
|
|
|
aStt, *pSectFmt, headerData, 0, &aIdx, true, false);
|
2000-09-18 23:08:29 +00:00
|
|
|
}
|
|
|
|
|
|
|
|
// jetzt waere ein prima Zeitpunkt, um die Numerierung zu updaten
|
|
|
|
pDoc->UpdateNumRule();
|
|
|
|
|
2007-09-27 07:37:21 +00:00
|
|
|
if( GetCreateType() & nsSwTOXElement::TOX_MARK )
|
2000-10-20 09:56:11 +00:00
|
|
|
UpdateMarks( aIntl, pOwnChapterNode );
|
2000-09-18 23:08:29 +00:00
|
|
|
|
2007-09-27 07:37:21 +00:00
|
|
|
if( GetCreateType() & nsSwTOXElement::TOX_OUTLINELEVEL )
|
2000-09-18 23:08:29 +00:00
|
|
|
UpdateOutline( pOwnChapterNode );
|
|
|
|
|
2007-09-27 07:37:21 +00:00
|
|
|
if( GetCreateType() & nsSwTOXElement::TOX_TEMPLATE )
|
2000-09-18 23:08:29 +00:00
|
|
|
UpdateTemplate( pOwnChapterNode );
|
|
|
|
|
2007-09-27 07:37:21 +00:00
|
|
|
if( GetCreateType() & nsSwTOXElement::TOX_OLE ||
|
2000-09-18 23:08:29 +00:00
|
|
|
TOX_OBJECTS == SwTOXBase::GetType())
|
2007-09-27 07:37:21 +00:00
|
|
|
UpdateCntnt( nsSwTOXElement::TOX_OLE, pOwnChapterNode );
|
2000-09-18 23:08:29 +00:00
|
|
|
|
2007-09-27 07:37:21 +00:00
|
|
|
if( GetCreateType() & nsSwTOXElement::TOX_TABLE ||
|
2000-09-18 23:08:29 +00:00
|
|
|
(TOX_TABLES == SwTOXBase::GetType() && IsFromObjectNames()) )
|
|
|
|
UpdateTable( pOwnChapterNode );
|
|
|
|
|
2007-09-27 07:37:21 +00:00
|
|
|
if( GetCreateType() & nsSwTOXElement::TOX_GRAPHIC ||
|
2000-09-18 23:08:29 +00:00
|
|
|
(TOX_ILLUSTRATIONS == SwTOXBase::GetType() && IsFromObjectNames()))
|
2007-09-27 07:37:21 +00:00
|
|
|
UpdateCntnt( nsSwTOXElement::TOX_GRAPHIC, pOwnChapterNode );
|
2000-09-18 23:08:29 +00:00
|
|
|
|
|
|
|
if( GetSequenceName().Len() && !IsFromObjectNames() &&
|
|
|
|
(TOX_TABLES == SwTOXBase::GetType() ||
|
|
|
|
TOX_ILLUSTRATIONS == SwTOXBase::GetType() ) )
|
|
|
|
UpdateSequence( pOwnChapterNode );
|
|
|
|
|
2007-09-27 07:37:21 +00:00
|
|
|
if( GetCreateType() & nsSwTOXElement::TOX_FRAME )
|
|
|
|
UpdateCntnt( nsSwTOXElement::TOX_FRAME, pOwnChapterNode );
|
2000-09-18 23:08:29 +00:00
|
|
|
|
|
|
|
if(TOX_AUTHORITIES == SwTOXBase::GetType())
|
2007-09-27 07:37:21 +00:00
|
|
|
UpdateAuthorities( aIntl );
|
2000-09-18 23:08:29 +00:00
|
|
|
|
|
|
|
// Bei Bedarf Alphadelimitter einfuegen (nur bei Stichwoertern)
|
|
|
|
//
|
|
|
|
if( TOX_INDEX == SwTOXBase::GetType() &&
|
2007-09-27 07:37:21 +00:00
|
|
|
( GetOptions() & nsSwTOIOptions::TOI_ALPHA_DELIMITTER ) )
|
2000-10-20 09:56:11 +00:00
|
|
|
InsertAlphaDelimitter( aIntl );
|
2000-09-18 23:08:29 +00:00
|
|
|
|
|
|
|
// sortierte Liste aller Verzeichnismarken und Verzeichnisbereiche
|
|
|
|
void* p = 0;
|
|
|
|
String* pStr = 0;
|
|
|
|
USHORT nCnt = 0, nFormMax = GetTOXForm().GetFormMax();
|
|
|
|
SvStringsDtor aStrArr( (BYTE)nFormMax );
|
|
|
|
SvPtrarr aCollArr( (BYTE)nFormMax );
|
|
|
|
for( ; nCnt < nFormMax; ++nCnt )
|
|
|
|
{
|
|
|
|
aCollArr.Insert( p, nCnt );
|
|
|
|
aStrArr.Insert( pStr, nCnt );
|
|
|
|
}
|
|
|
|
|
|
|
|
SwNodeIndex aInsPos( *pFirstEmptyNd, 1 );
|
|
|
|
for( nCnt = 0; nCnt < aSortArr.Count(); ++nCnt )
|
|
|
|
{
|
|
|
|
::SetProgressState( 0, pDoc->GetDocShell() );
|
|
|
|
|
|
|
|
// setze den Text in das Verzeichniss
|
|
|
|
USHORT nLvl = aSortArr[ nCnt ]->GetLevel();
|
|
|
|
SwTxtFmtColl* pColl = (SwTxtFmtColl*)aCollArr[ nLvl ];
|
|
|
|
if( !pColl )
|
|
|
|
{
|
|
|
|
pColl = GetTxtFmtColl( nLvl );
|
|
|
|
aCollArr.Remove( nLvl );
|
|
|
|
p = pColl;
|
|
|
|
aCollArr.Insert( p , nLvl );
|
|
|
|
}
|
|
|
|
|
|
|
|
// Generierung: dynamische TabStops setzen
|
|
|
|
SwTxtNode* pTOXNd = pDoc->GetNodes().MakeTxtNode( aInsPos , pColl );
|
|
|
|
aSortArr[ nCnt ]->pTOXNd = pTOXNd;
|
|
|
|
|
|
|
|
// Generierung: Form auswerten und Platzhalter
|
|
|
|
// fuer die Seitennummer eintragen
|
|
|
|
//if it is a TOX_INDEX and the SwForm IsCommaSeparated()
|
|
|
|
// then a range of entries must be generated into one paragraph
|
|
|
|
USHORT nRange = 1;
|
|
|
|
if(TOX_INDEX == SwTOXBase::GetType() &&
|
|
|
|
GetTOXForm().IsCommaSeparated() &&
|
|
|
|
aSortArr[nCnt]->GetType() == TOX_SORT_INDEX)
|
|
|
|
{
|
|
|
|
const SwTOXMark& rMark = aSortArr[nCnt]->pTxtMark->GetTOXMark();
|
|
|
|
const String sPrimKey = rMark.GetPrimaryKey();
|
|
|
|
const String sSecKey = rMark.GetSecondaryKey();
|
|
|
|
const SwTOXMark* pNextMark = 0;
|
|
|
|
while(aSortArr.Count() > (nCnt + nRange)&&
|
|
|
|
aSortArr[nCnt + nRange]->GetType() == TOX_SORT_INDEX &&
|
|
|
|
0 != (pNextMark = &(aSortArr[nCnt + nRange]->pTxtMark->GetTOXMark())) &&
|
|
|
|
pNextMark->GetPrimaryKey() == sPrimKey &&
|
|
|
|
pNextMark->GetSecondaryKey() == sSecKey)
|
|
|
|
nRange++;
|
|
|
|
}
|
2003-04-17 09:09:53 +00:00
|
|
|
// OD 18.03.2003 #106329# - pass node index of table-of-content section
|
|
|
|
// and default page description to method <GenerateText(..)>.
|
|
|
|
GenerateText( nCnt, nRange, aStrArr, pSectNd->GetIndex(), pDefaultPageDesc );
|
2000-09-18 23:08:29 +00:00
|
|
|
nCnt += nRange - 1;
|
|
|
|
}
|
|
|
|
|
|
|
|
// delete the first dummy node and remove all Cursor into the prev node
|
|
|
|
aInsPos = *pFirstEmptyNd;
|
|
|
|
{
|
|
|
|
SwPaM aCorPam( *pFirstEmptyNd );
|
|
|
|
aCorPam.GetPoint()->nContent.Assign( pFirstEmptyNd, 0 );
|
|
|
|
if( !aCorPam.Move( fnMoveForward ) )
|
|
|
|
aCorPam.Move( fnMoveBackward );
|
|
|
|
SwNodeIndex aEndIdx( aInsPos, 1 );
|
|
|
|
pDoc->CorrAbs( aInsPos, aEndIdx, *aCorPam.GetPoint(), TRUE );
|
|
|
|
|
|
|
|
// Task 70995 - save and restore PageDesc and Break Attributes
|
2006-12-01 14:40:02 +00:00
|
|
|
if( pFirstEmptyNd->HasSwAttrSet() )
|
2000-09-18 23:08:29 +00:00
|
|
|
{
|
|
|
|
if( GetTitle().Len() )
|
|
|
|
aEndIdx = *pSectNd;
|
|
|
|
else
|
|
|
|
aEndIdx = *pFirstEmptyNd;
|
|
|
|
SwCntntNode* pCNd = pDoc->GetNodes().GoNext( &aEndIdx );
|
2008-01-29 07:37:38 +00:00
|
|
|
if( pCNd ) // Robust against defect documents, e.g. i60336
|
|
|
|
pCNd->SetAttr( *pFirstEmptyNd->GetpSwAttrSet() );
|
2000-09-18 23:08:29 +00:00
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
// now create the new Frames
|
|
|
|
ULONG nIdx = pSectNd->GetIndex();
|
|
|
|
// don't delete if index is empty
|
|
|
|
if(nIdx + 2 < pSectNd->EndOfSectionIndex())
|
|
|
|
pDoc->GetNodes().Delete( aInsPos, 1 );
|
|
|
|
|
|
|
|
aN2L.RestoreUpperFrms( pDoc->GetNodes(), nIdx, nIdx + 1 );
|
2000-10-31 10:07:39 +00:00
|
|
|
if(pDoc->GetRootFrm())
|
|
|
|
SwFrm::CheckPageDescs( (SwPageFrm*)pDoc->GetRootFrm()->Lower() );
|
2000-09-18 23:08:29 +00:00
|
|
|
|
|
|
|
SetProtect( SwTOXBase::IsProtected() );
|
|
|
|
}
|
|
|
|
|
|
|
|
/*--------------------------------------------------------------------
|
|
|
|
Beschreibung: AlphaDelimitter einfuegen
|
|
|
|
--------------------------------------------------------------------*/
|
2000-10-20 09:56:11 +00:00
|
|
|
void SwTOXBaseSection::InsertAlphaDelimitter( const SwTOXInternational& rIntl )
|
2000-09-18 23:08:29 +00:00
|
|
|
{
|
|
|
|
SwDoc* pDoc = (SwDoc*)GetFmt()->GetDoc();
|
2001-05-14 12:36:37 +00:00
|
|
|
String sDeli, sLastDeli;
|
2000-09-18 23:08:29 +00:00
|
|
|
USHORT i = 0;
|
|
|
|
while( i < aSortArr.Count() )
|
|
|
|
{
|
|
|
|
::SetProgressState( 0, pDoc->GetDocShell() );
|
|
|
|
|
|
|
|
USHORT nLevel = aSortArr[i]->GetLevel();
|
|
|
|
|
|
|
|
// Alpha-Delimitter ueberlesen
|
|
|
|
if( nLevel == FORM_ALPHA_DELIMITTER )
|
|
|
|
continue;
|
|
|
|
|
2002-06-26 08:32:38 +00:00
|
|
|
String sMyString, sMyStringReading;
|
|
|
|
aSortArr[i]->GetTxt( sMyString, sMyStringReading );
|
|
|
|
|
|
|
|
sDeli = rIntl.GetIndexKey( sMyString, sMyStringReading,
|
|
|
|
aSortArr[i]->GetLocale() );
|
2000-09-18 23:08:29 +00:00
|
|
|
|
|
|
|
// Delimitter schon vorhanden ??
|
2001-05-14 12:36:37 +00:00
|
|
|
if( sDeli.Len() && sLastDeli != sDeli )
|
2000-09-18 23:08:29 +00:00
|
|
|
{
|
|
|
|
// alle kleiner Blank wollen wir nicht haben -> sind Sonderzeichen
|
2001-05-14 12:36:37 +00:00
|
|
|
if( ' ' <= sDeli.GetChar( 0 ) )
|
2000-09-18 23:08:29 +00:00
|
|
|
{
|
2003-09-11 08:39:48 +00:00
|
|
|
SwTOXCustom* pCst = new SwTOXCustom( sDeli, aEmptyStr, FORM_ALPHA_DELIMITTER,
|
2002-06-26 08:32:38 +00:00
|
|
|
rIntl, aSortArr[i]->GetLocale() );
|
2001-05-14 12:36:37 +00:00
|
|
|
aSortArr.Insert( pCst, i++ );
|
2000-09-18 23:08:29 +00:00
|
|
|
}
|
2001-05-14 12:36:37 +00:00
|
|
|
sLastDeli = sDeli;
|
2000-09-18 23:08:29 +00:00
|
|
|
}
|
|
|
|
|
|
|
|
// Skippen bis gleibhes oder kleineres Level erreicht ist
|
|
|
|
do {
|
|
|
|
i++;
|
|
|
|
} while (i < aSortArr.Count() && aSortArr[i]->GetLevel() > nLevel);
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
/*--------------------------------------------------------------------
|
|
|
|
Beschreibung: Template auswerten
|
|
|
|
--------------------------------------------------------------------*/
|
|
|
|
SwTxtFmtColl* SwTOXBaseSection::GetTxtFmtColl( USHORT nLevel )
|
|
|
|
{
|
|
|
|
SwDoc* pDoc = (SwDoc*)GetFmt()->GetDoc();
|
|
|
|
const String& rName = GetTOXForm().GetTemplate( nLevel );
|
|
|
|
SwTxtFmtColl* pColl = rName.Len() ? pDoc->FindTxtFmtCollByName(rName) :0;
|
|
|
|
if( !pColl )
|
|
|
|
{
|
2007-09-27 07:37:21 +00:00
|
|
|
USHORT nPoolFmt = 0;
|
|
|
|
const TOXTypes eMyType = SwTOXBase::GetType();
|
|
|
|
switch( eMyType )
|
2000-09-18 23:08:29 +00:00
|
|
|
{
|
|
|
|
case TOX_INDEX: nPoolFmt = RES_POOLCOLL_TOX_IDXH; break;
|
|
|
|
case TOX_USER:
|
|
|
|
if( nLevel < 6 )
|
|
|
|
nPoolFmt = RES_POOLCOLL_TOX_USERH;
|
|
|
|
else
|
|
|
|
nPoolFmt = RES_POOLCOLL_TOX_USER6 - 6;
|
|
|
|
break;
|
|
|
|
case TOX_ILLUSTRATIONS: nPoolFmt = RES_POOLCOLL_TOX_ILLUSH; break;
|
|
|
|
case TOX_OBJECTS: nPoolFmt = RES_POOLCOLL_TOX_OBJECTH; break;
|
|
|
|
case TOX_TABLES: nPoolFmt = RES_POOLCOLL_TOX_TABLESH; break;
|
|
|
|
case TOX_AUTHORITIES: nPoolFmt = RES_POOLCOLL_TOX_AUTHORITIESH; break;
|
|
|
|
|
|
|
|
case TOX_CONTENT:
|
|
|
|
// im Content Bereich gibt es einen Sprung!
|
|
|
|
if( nLevel < 6 )
|
|
|
|
nPoolFmt = RES_POOLCOLL_TOX_CNTNTH;
|
|
|
|
else
|
|
|
|
nPoolFmt = RES_POOLCOLL_TOX_CNTNT6 - 6;
|
|
|
|
break;
|
|
|
|
}
|
|
|
|
|
2007-09-27 07:37:21 +00:00
|
|
|
if(eMyType == TOX_AUTHORITIES && nLevel)
|
2000-09-18 23:08:29 +00:00
|
|
|
nPoolFmt = nPoolFmt + 1;
|
2007-09-27 07:37:21 +00:00
|
|
|
else if(eMyType == TOX_INDEX && nLevel)
|
2000-09-18 23:08:29 +00:00
|
|
|
{
|
|
|
|
//pool: Level 1,2,3, Delimiter
|
|
|
|
//SwForm: Delimiter, Level 1,2,3
|
|
|
|
nPoolFmt += 1 == nLevel ? nLevel + 3 : nLevel - 1;
|
|
|
|
}
|
|
|
|
else
|
2007-09-27 07:37:21 +00:00
|
|
|
nPoolFmt = nPoolFmt + nLevel;
|
2000-09-18 23:08:29 +00:00
|
|
|
pColl = pDoc->GetTxtCollFromPool( nPoolFmt );
|
|
|
|
}
|
|
|
|
return pColl;
|
|
|
|
}
|
|
|
|
|
|
|
|
/*--------------------------------------------------------------------
|
|
|
|
Beschreibung: Aus Markierungen erzeugen
|
|
|
|
--------------------------------------------------------------------*/
|
2000-10-20 09:56:11 +00:00
|
|
|
void SwTOXBaseSection::UpdateMarks( const SwTOXInternational& rIntl,
|
2000-09-18 23:08:29 +00:00
|
|
|
const SwTxtNode* pOwnChapterNode )
|
|
|
|
{
|
|
|
|
const SwModify* pType = SwTOXBase::GetRegisteredIn();
|
|
|
|
if( !pType->GetDepends() )
|
|
|
|
return;
|
|
|
|
|
|
|
|
SwDoc* pDoc = (SwDoc*)GetFmt()->GetDoc();
|
|
|
|
TOXTypes eTOXTyp = GetTOXType()->GetType();
|
|
|
|
SwClientIter aIter( *(SwModify*)pType );
|
|
|
|
|
|
|
|
SwTxtTOXMark* pTxtMark;
|
|
|
|
SwTOXMark* pMark;
|
|
|
|
for( pMark = (SwTOXMark*)aIter.First( TYPE( SwTOXMark )); pMark;
|
|
|
|
pMark = (SwTOXMark*)aIter.Next() )
|
|
|
|
{
|
|
|
|
::SetProgressState( 0, pDoc->GetDocShell() );
|
|
|
|
|
|
|
|
if( pMark->GetTOXType()->GetType() == eTOXTyp &&
|
|
|
|
0 != ( pTxtMark = pMark->GetTxtTOXMark() ) )
|
|
|
|
{
|
|
|
|
const SwTxtNode* pTOXSrc = pTxtMark->GetpTxtNd();
|
|
|
|
// nur TOXMarks einfuegen die im Doc stehen
|
|
|
|
// nicht die, die im UNDO stehen
|
|
|
|
//
|
|
|
|
// if selected use marks from the same chapter only
|
|
|
|
if( pTOXSrc->GetNodes().IsDocNodes() &&
|
|
|
|
pTOXSrc->GetTxt().Len() && pTOXSrc->GetDepends() &&
|
|
|
|
pTOXSrc->GetFrm() &&
|
2004-02-26 14:26:49 +00:00
|
|
|
(!IsFromChapter() || ::lcl_FindChapterNode( *pTOXSrc, 0 ) == pOwnChapterNode ) &&
|
|
|
|
!pTOXSrc->HasHiddenParaField() &&
|
|
|
|
!SwScriptInfo::IsInHiddenRange( *pTOXSrc, *pTxtMark->GetStart() ) )
|
2000-09-18 23:08:29 +00:00
|
|
|
{
|
|
|
|
SwTOXSortTabBase* pBase = 0;
|
|
|
|
if(TOX_INDEX == eTOXTyp)
|
|
|
|
{
|
|
|
|
// Stichwortverzeichnismarkierung
|
2007-09-27 07:37:21 +00:00
|
|
|
lang::Locale aLocale;
|
2009-09-08 04:57:32 +00:00
|
|
|
if ( pBreakIt->GetBreakIter().is() )
|
2002-06-26 08:32:38 +00:00
|
|
|
{
|
|
|
|
aLocale = pBreakIt->GetLocale(
|
|
|
|
pTOXSrc->GetLang( *pTxtMark->GetStart() ) );
|
|
|
|
}
|
|
|
|
|
2000-09-18 23:08:29 +00:00
|
|
|
pBase = new SwTOXIndex( *pTOXSrc, pTxtMark,
|
2002-06-26 08:32:38 +00:00
|
|
|
GetOptions(), FORM_ENTRY, rIntl, aLocale );
|
2000-09-18 23:08:29 +00:00
|
|
|
InsertSorted(pBase);
|
2007-09-27 07:37:21 +00:00
|
|
|
if(GetOptions() & nsSwTOIOptions::TOI_KEY_AS_ENTRY &&
|
2000-09-18 23:08:29 +00:00
|
|
|
pTxtMark->GetTOXMark().GetPrimaryKey().Len())
|
|
|
|
{
|
|
|
|
pBase = new SwTOXIndex( *pTOXSrc, pTxtMark,
|
2002-06-26 08:32:38 +00:00
|
|
|
GetOptions(), FORM_PRIMARY_KEY, rIntl, aLocale );
|
2000-09-18 23:08:29 +00:00
|
|
|
InsertSorted(pBase);
|
|
|
|
if(pTxtMark->GetTOXMark().GetSecondaryKey().Len())
|
|
|
|
{
|
|
|
|
pBase = new SwTOXIndex( *pTOXSrc, pTxtMark,
|
2002-06-26 08:32:38 +00:00
|
|
|
GetOptions(), FORM_SECONDARY_KEY, rIntl, aLocale );
|
2000-09-18 23:08:29 +00:00
|
|
|
InsertSorted(pBase);
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
else if( TOX_USER == eTOXTyp ||
|
|
|
|
pMark->GetLevel() <= GetLevel())
|
|
|
|
{ // Inhaltsberzeichnismarkierung
|
|
|
|
// also used for user marks
|
|
|
|
pBase = new SwTOXContent( *pTOXSrc, pTxtMark, rIntl );
|
|
|
|
InsertSorted(pBase);
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
/*--------------------------------------------------------------------
|
|
|
|
Beschreibung: Verzeichnisinhalt aus Gliederungsebene generieren
|
|
|
|
--------------------------------------------------------------------*/
|
|
|
|
void SwTOXBaseSection::UpdateOutline( const SwTxtNode* pOwnChapterNode )
|
|
|
|
{
|
|
|
|
SwDoc* pDoc = (SwDoc*)GetFmt()->GetDoc();
|
|
|
|
SwNodes& rNds = pDoc->GetNodes();
|
|
|
|
|
|
|
|
const SwOutlineNodes& rOutlNds = rNds.GetOutLineNds();
|
|
|
|
for( USHORT n = 0; n < rOutlNds.Count(); ++n )
|
|
|
|
{
|
|
|
|
::SetProgressState( 0, pDoc->GetDocShell() );
|
|
|
|
SwTxtNode* pTxtNd = rOutlNds[ n ]->GetTxtNode();
|
|
|
|
if( pTxtNd && pTxtNd->Len() && pTxtNd->GetDepends() &&
|
2009-01-07 11:57:24 +00:00
|
|
|
//USHORT(pTxtNd->GetTxtColl()->GetOutlineLevel()+1) <= GetLevel() && //#outline level,zhaojianwei
|
|
|
|
USHORT( pTxtNd->GetAttrOutlineLevel()) <= GetLevel() && //<-end,zhaojianwei
|
2000-09-18 23:08:29 +00:00
|
|
|
pTxtNd->GetFrm() &&
|
2004-02-26 14:26:49 +00:00
|
|
|
!pTxtNd->HasHiddenParaField() &&
|
|
|
|
!pTxtNd->HasHiddenCharAttribute( true ) &&
|
2000-09-18 23:08:29 +00:00
|
|
|
( !IsFromChapter() ||
|
|
|
|
::lcl_FindChapterNode( *pTxtNd, 0 ) == pOwnChapterNode ))
|
|
|
|
{
|
2007-09-27 07:37:21 +00:00
|
|
|
SwTOXPara * pNew = new SwTOXPara( *pTxtNd, nsSwTOXElement::TOX_OUTLINELEVEL );
|
2000-09-18 23:08:29 +00:00
|
|
|
InsertSorted( pNew );
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
/*--------------------------------------------------------------------
|
|
|
|
Beschreibung: Verzeichnisinhalt aus Vorlagenbereichen generieren
|
|
|
|
--------------------------------------------------------------------*/
|
|
|
|
void SwTOXBaseSection::UpdateTemplate( const SwTxtNode* pOwnChapterNode )
|
|
|
|
{
|
|
|
|
SwDoc* pDoc = (SwDoc*)GetFmt()->GetDoc();
|
|
|
|
for(USHORT i = 0; i < MAXLEVEL; i++)
|
|
|
|
{
|
|
|
|
String sTmpStyleNames = GetStyleNames(i);
|
|
|
|
USHORT nTokenCount = sTmpStyleNames.GetTokenCount(TOX_STYLE_DELIMITER);
|
|
|
|
for( USHORT nStyle = 0; nStyle < nTokenCount; ++nStyle )
|
|
|
|
{
|
|
|
|
SwTxtFmtColl* pColl = pDoc->FindTxtFmtCollByName(
|
|
|
|
sTmpStyleNames.GetToken( nStyle,
|
|
|
|
TOX_STYLE_DELIMITER ));
|
|
|
|
//TODO: no outline Collections in content indexes if OutlineLevels are already included
|
|
|
|
if( !pColl ||
|
|
|
|
( TOX_CONTENT == SwTOXBase::GetType() &&
|
2007-09-27 07:37:21 +00:00
|
|
|
GetCreateType() & nsSwTOXElement::TOX_OUTLINELEVEL &&
|
2009-01-07 11:57:24 +00:00
|
|
|
//NO_NUMBERING != pColl->GetOutlineLevel() ) )//#outline level,zhaojianwei
|
|
|
|
pColl->IsAssignedToListLevelOfOutlineStyle()) )//<-end,zhaojianwei
|
|
|
|
continue;
|
2000-09-18 23:08:29 +00:00
|
|
|
|
|
|
|
SwClientIter aIter( *pColl );
|
|
|
|
SwTxtNode* pTxtNd = (SwTxtNode*)aIter.First( TYPE( SwTxtNode ));
|
|
|
|
for( ; pTxtNd; pTxtNd = (SwTxtNode*)aIter.Next() )
|
|
|
|
{
|
|
|
|
::SetProgressState( 0, pDoc->GetDocShell() );
|
|
|
|
|
|
|
|
if( pTxtNd->GetTxt().Len() && pTxtNd->GetFrm() &&
|
|
|
|
pTxtNd->GetNodes().IsDocNodes() &&
|
|
|
|
( !IsFromChapter() || pOwnChapterNode ==
|
|
|
|
::lcl_FindChapterNode( *pTxtNd, 0 ) ) )
|
|
|
|
{
|
2007-09-27 07:37:21 +00:00
|
|
|
SwTOXPara * pNew = new SwTOXPara( *pTxtNd, nsSwTOXElement::TOX_TEMPLATE, i + 1 );
|
2000-09-18 23:08:29 +00:00
|
|
|
InsertSorted(pNew);
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
/* -----------------14.07.99 09:59-------------------
|
|
|
|
Description: generate content from sequence fields
|
|
|
|
--------------------------------------------------*/
|
|
|
|
void SwTOXBaseSection::UpdateSequence( const SwTxtNode* pOwnChapterNode )
|
|
|
|
{
|
|
|
|
SwDoc* pDoc = (SwDoc*)GetFmt()->GetDoc();
|
2006-08-14 15:00:00 +00:00
|
|
|
SwFieldType* pSeqFld = pDoc->GetFldType(RES_SETEXPFLD, GetSequenceName(), false);
|
2000-09-18 23:08:29 +00:00
|
|
|
if(!pSeqFld)
|
|
|
|
return;
|
|
|
|
|
|
|
|
SwClientIter aIter( *pSeqFld );
|
|
|
|
SwFmtFld* pFmtFld = (SwFmtFld*)aIter.First( TYPE( SwFmtFld ));
|
|
|
|
for( ; pFmtFld; pFmtFld = (SwFmtFld*)aIter.Next() )
|
|
|
|
{
|
|
|
|
const SwTxtFld* pTxtFld = pFmtFld->GetTxtFld();
|
2000-11-06 06:25:56 +00:00
|
|
|
if(!pTxtFld)
|
|
|
|
continue;
|
2000-09-18 23:08:29 +00:00
|
|
|
const SwTxtNode& rTxtNode = pTxtFld->GetTxtNode();
|
|
|
|
::SetProgressState( 0, pDoc->GetDocShell() );
|
|
|
|
|
|
|
|
if( rTxtNode.GetTxt().Len() && rTxtNode.GetFrm() &&
|
|
|
|
rTxtNode.GetNodes().IsDocNodes() &&
|
|
|
|
( !IsFromChapter() ||
|
|
|
|
::lcl_FindChapterNode( rTxtNode, 0 ) == pOwnChapterNode ) )
|
|
|
|
{
|
2007-09-27 07:37:21 +00:00
|
|
|
SwTOXPara * pNew = new SwTOXPara( rTxtNode, nsSwTOXElement::TOX_SEQUENCE, 1 );
|
2000-09-18 23:08:29 +00:00
|
|
|
//set indexes if the number or the reference text are to be displayed
|
|
|
|
if( GetCaptionDisplay() == CAPTION_TEXT )
|
|
|
|
{
|
|
|
|
pNew->SetStartIndex(
|
|
|
|
SwGetExpField::GetReferenceTextPos( *pFmtFld, *pDoc ));
|
|
|
|
}
|
|
|
|
else if(GetCaptionDisplay() == CAPTION_NUMBER)
|
|
|
|
{
|
|
|
|
pNew->SetEndIndex(*pTxtFld->GetStart() + 1);
|
|
|
|
}
|
|
|
|
InsertSorted(pNew);
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
2007-09-27 07:37:21 +00:00
|
|
|
void SwTOXBaseSection::UpdateAuthorities( const SwTOXInternational& rIntl )
|
2000-09-18 23:08:29 +00:00
|
|
|
{
|
|
|
|
SwDoc* pDoc = (SwDoc*)GetFmt()->GetDoc();
|
2006-08-14 15:00:00 +00:00
|
|
|
SwFieldType* pAuthFld = pDoc->GetFldType(RES_AUTHORITY, aEmptyStr, false);
|
2000-09-18 23:08:29 +00:00
|
|
|
if(!pAuthFld)
|
|
|
|
return;
|
|
|
|
|
|
|
|
SwClientIter aIter( *pAuthFld );
|
|
|
|
SwFmtFld* pFmtFld = (SwFmtFld*)aIter.First( TYPE( SwFmtFld ));
|
|
|
|
for( ; pFmtFld; pFmtFld = (SwFmtFld*)aIter.Next() )
|
|
|
|
{
|
|
|
|
const SwTxtFld* pTxtFld = pFmtFld->GetTxtFld();
|
|
|
|
//undo
|
|
|
|
if(!pTxtFld)
|
|
|
|
continue;
|
|
|
|
const SwTxtNode& rTxtNode = pTxtFld->GetTxtNode();
|
|
|
|
::SetProgressState( 0, pDoc->GetDocShell() );
|
|
|
|
|
|
|
|
if( rTxtNode.GetTxt().Len() && rTxtNode.GetFrm() &&
|
2010-11-18 08:25:05 +01:00
|
|
|
rTxtNode.GetNodes().IsDocNodes() )
|
2000-09-18 23:08:29 +00:00
|
|
|
{
|
2003-03-27 14:45:43 +00:00
|
|
|
//#106485# the body node has to be used!
|
|
|
|
SwCntntFrm *pFrm = rTxtNode.GetFrm();
|
|
|
|
SwPosition aFldPos(rTxtNode);
|
|
|
|
const SwTxtNode* pTxtNode = 0;
|
|
|
|
if(pFrm && !pFrm->IsInDocBody())
|
|
|
|
pTxtNode = GetBodyTxtNode( *pDoc, aFldPos, *pFrm );
|
|
|
|
if(!pTxtNode)
|
|
|
|
pTxtNode = &rTxtNode;
|
|
|
|
SwTOXAuthority* pNew = new SwTOXAuthority( *pTxtNode, *pFmtFld, rIntl );
|
2000-09-18 23:08:29 +00:00
|
|
|
|
|
|
|
InsertSorted(pNew);
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
2001-11-02 11:33:43 +00:00
|
|
|
long lcl_IsSOObject( const SvGlobalName& rFactoryNm )
|
|
|
|
{
|
|
|
|
static struct _SoObjType {
|
|
|
|
long nFlag;
|
|
|
|
// GlobalNameId
|
|
|
|
struct _GlobalNameIds {
|
|
|
|
UINT32 n1;
|
|
|
|
USHORT n2, n3;
|
|
|
|
BYTE b8, b9, b10, b11, b12, b13, b14, b15;
|
|
|
|
} aGlNmIds[4];
|
|
|
|
} aArr[] = {
|
2007-09-27 07:37:21 +00:00
|
|
|
{ nsSwTOOElements::TOO_MATH,
|
|
|
|
{ {SO3_SM_CLASSID_60},{SO3_SM_CLASSID_50},
|
|
|
|
{SO3_SM_CLASSID_40},{SO3_SM_CLASSID_30} } },
|
|
|
|
{ nsSwTOOElements::TOO_CHART,
|
|
|
|
{ {SO3_SCH_CLASSID_60},{SO3_SCH_CLASSID_50},
|
|
|
|
{SO3_SCH_CLASSID_40},{SO3_SCH_CLASSID_30} } },
|
|
|
|
{ nsSwTOOElements::TOO_CALC,
|
|
|
|
{ {SO3_SC_CLASSID_60},{SO3_SC_CLASSID_50},
|
|
|
|
{SO3_SC_CLASSID_40},{SO3_SC_CLASSID_30} } },
|
|
|
|
{ nsSwTOOElements::TOO_DRAW_IMPRESS,
|
|
|
|
{ {SO3_SIMPRESS_CLASSID_60},{SO3_SIMPRESS_CLASSID_50},
|
|
|
|
{SO3_SIMPRESS_CLASSID_40},{SO3_SIMPRESS_CLASSID_30} } },
|
|
|
|
{ nsSwTOOElements::TOO_DRAW_IMPRESS,
|
|
|
|
{ {SO3_SDRAW_CLASSID_60},{SO3_SDRAW_CLASSID_50}}},
|
|
|
|
{ 0,{{0,0,0,0,0,0,0,0,0,0,0},{0,0,0,0,0,0,0,0,0,0,0},
|
|
|
|
{0,0,0,0,0,0,0,0,0,0,0},{0,0,0,0,0,0,0,0,0,0,0} } }
|
2001-11-02 11:33:43 +00:00
|
|
|
};
|
|
|
|
|
|
|
|
long nRet = 0;
|
|
|
|
for( const _SoObjType* pArr = aArr; !nRet && pArr->nFlag; ++pArr )
|
|
|
|
for ( int n = 0; n < 4; ++n )
|
|
|
|
{
|
|
|
|
const _SoObjType::_GlobalNameIds& rId = pArr->aGlNmIds[ n ];
|
|
|
|
if( !rId.n1 )
|
|
|
|
break;
|
|
|
|
SvGlobalName aGlbNm( rId.n1, rId.n2, rId.n3,
|
|
|
|
rId.b8, rId.b9, rId.b10, rId.b11,
|
|
|
|
rId.b12, rId.b13, rId.b14, rId.b15 );
|
|
|
|
if( rFactoryNm == aGlbNm )
|
|
|
|
{
|
|
|
|
nRet = pArr->nFlag;
|
|
|
|
break;
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
return nRet;
|
|
|
|
}
|
|
|
|
|
2007-09-27 07:37:21 +00:00
|
|
|
void SwTOXBaseSection::UpdateCntnt( SwTOXElement eMyType,
|
2000-09-18 23:08:29 +00:00
|
|
|
const SwTxtNode* pOwnChapterNode )
|
|
|
|
{
|
|
|
|
SwDoc* pDoc = (SwDoc*)GetFmt()->GetDoc();
|
|
|
|
SwNodes& rNds = pDoc->GetNodes();
|
|
|
|
// auf den 1. Node der 1. Section
|
|
|
|
ULONG nIdx = rNds.GetEndOfAutotext().StartOfSectionIndex() + 2,
|
|
|
|
nEndIdx = rNds.GetEndOfAutotext().GetIndex();
|
|
|
|
|
|
|
|
while( nIdx < nEndIdx )
|
|
|
|
{
|
|
|
|
::SetProgressState( 0, pDoc->GetDocShell() );
|
|
|
|
|
|
|
|
SwNode* pNd = rNds[ nIdx ];
|
|
|
|
SwCntntNode* pCNd = 0;
|
2007-09-27 07:37:21 +00:00
|
|
|
switch( eMyType )
|
2000-09-18 23:08:29 +00:00
|
|
|
{
|
2007-09-27 07:37:21 +00:00
|
|
|
case nsSwTOXElement::TOX_FRAME:
|
2000-09-18 23:08:29 +00:00
|
|
|
if( !pNd->IsNoTxtNode() )
|
|
|
|
{
|
|
|
|
pCNd = pNd->GetCntntNode();
|
|
|
|
if( !pCNd )
|
|
|
|
{
|
|
|
|
SwNodeIndex aTmp( *pNd );
|
|
|
|
pCNd = rNds.GoNext( &aTmp );
|
|
|
|
}
|
|
|
|
}
|
|
|
|
break;
|
2007-09-27 07:37:21 +00:00
|
|
|
case nsSwTOXElement::TOX_GRAPHIC:
|
2000-09-18 23:08:29 +00:00
|
|
|
if( pNd->IsGrfNode() )
|
|
|
|
pCNd = (SwCntntNode*)pNd;
|
|
|
|
break;
|
2007-09-27 07:37:21 +00:00
|
|
|
case nsSwTOXElement::TOX_OLE:
|
2000-09-18 23:08:29 +00:00
|
|
|
if( pNd->IsOLENode() )
|
|
|
|
{
|
2001-11-02 11:33:43 +00:00
|
|
|
BOOL bInclude = TRUE;
|
2000-09-18 23:08:29 +00:00
|
|
|
if(TOX_OBJECTS == SwTOXBase::GetType())
|
|
|
|
{
|
|
|
|
SwOLENode* pOLENode = pNd->GetOLENode();
|
2007-09-27 07:37:21 +00:00
|
|
|
long nMyOLEOptions = GetOLEOptions();
|
2001-11-02 17:43:34 +00:00
|
|
|
SwOLEObj& rOLEObj = pOLENode->GetOLEObj();
|
2000-09-18 23:08:29 +00:00
|
|
|
|
2001-11-02 11:33:43 +00:00
|
|
|
if( rOLEObj.IsOleRef() ) //Noch nicht geladen
|
2000-09-18 23:08:29 +00:00
|
|
|
{
|
2007-09-27 07:37:21 +00:00
|
|
|
SvGlobalName aTmpName = SvGlobalName( rOLEObj.GetOleRef()->getClassID() );
|
|
|
|
long nObj = ::lcl_IsSOObject( aTmpName );
|
|
|
|
bInclude = ( (nMyOLEOptions & nsSwTOOElements::TOO_OTHER) && 0 == nObj)
|
|
|
|
|| (0 != (nMyOLEOptions & nObj));
|
2000-09-18 23:08:29 +00:00
|
|
|
}
|
|
|
|
else
|
|
|
|
{
|
2001-11-02 11:33:43 +00:00
|
|
|
DBG_ERROR("OLE-object nicht geladen?");
|
|
|
|
bInclude = FALSE;
|
2000-09-18 23:08:29 +00:00
|
|
|
}
|
|
|
|
}
|
2001-11-02 11:33:43 +00:00
|
|
|
|
2000-09-18 23:08:29 +00:00
|
|
|
if(bInclude)
|
|
|
|
pCNd = (SwCntntNode*)pNd;
|
|
|
|
}
|
|
|
|
break;
|
2007-09-27 07:37:21 +00:00
|
|
|
default: break;
|
2000-09-18 23:08:29 +00:00
|
|
|
}
|
|
|
|
|
|
|
|
if( pCNd )
|
|
|
|
{
|
|
|
|
//find node in body text
|
2009-01-07 11:57:24 +00:00
|
|
|
int nSetLevel = USHRT_MAX;
|
2000-09-18 23:08:29 +00:00
|
|
|
|
2003-09-04 10:46:14 +00:00
|
|
|
//#111105# tables of tables|illustrations|objects don't support hierarchies
|
|
|
|
if( IsLevelFromChapter() &&
|
|
|
|
TOX_TABLES != SwTOXBase::GetType() &&
|
|
|
|
TOX_ILLUSTRATIONS != SwTOXBase::GetType() &&
|
|
|
|
TOX_OBJECTS != SwTOXBase::GetType() )
|
2000-09-18 23:08:29 +00:00
|
|
|
{
|
|
|
|
const SwTxtNode* pOutlNd = ::lcl_FindChapterNode( *pCNd,
|
|
|
|
MAXLEVEL - 1 );
|
|
|
|
if( pOutlNd )
|
|
|
|
{
|
2009-01-07 11:57:24 +00:00
|
|
|
if( pOutlNd->GetTxtColl()->IsAssignedToListLevelOfOutlineStyle())
|
|
|
|
nSetLevel = pOutlNd->GetTxtColl()->GetAttrOutlineLevel() ;//<-end,zhaojianwei
|
2000-09-18 23:08:29 +00:00
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
if( pCNd->GetFrm() && ( !IsFromChapter() ||
|
|
|
|
::lcl_FindChapterNode( *pCNd, 0 ) == pOwnChapterNode ))
|
|
|
|
{
|
2007-09-27 07:37:21 +00:00
|
|
|
SwTOXPara * pNew = new SwTOXPara( *pCNd, eMyType,
|
2009-01-07 11:57:24 +00:00
|
|
|
( USHRT_MAX != nSetLevel )
|
|
|
|
? static_cast<USHORT>(nSetLevel)
|
|
|
|
: FORM_ALPHA_DELIMITTER );
|
2000-09-18 23:08:29 +00:00
|
|
|
InsertSorted( pNew );
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
2006-08-14 15:00:00 +00:00
|
|
|
nIdx = pNd->StartOfSectionNode()->EndOfSectionIndex() + 2; // 2 == End-/StartNode
|
2000-09-18 23:08:29 +00:00
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
/*--------------------------------------------------------------------
|
|
|
|
Beschreibung: Tabelleneintraege zusammensuchen
|
|
|
|
--------------------------------------------------------------------*/
|
|
|
|
void SwTOXBaseSection::UpdateTable( const SwTxtNode* pOwnChapterNode )
|
|
|
|
{
|
|
|
|
SwDoc* pDoc = (SwDoc*)GetFmt()->GetDoc();
|
|
|
|
SwNodes& rNds = pDoc->GetNodes();
|
|
|
|
const SwFrmFmts& rArr = *pDoc->GetTblFrmFmts();
|
|
|
|
|
|
|
|
for( USHORT n = 0; n < rArr.Count(); ++n )
|
|
|
|
{
|
|
|
|
::SetProgressState( 0, pDoc->GetDocShell() );
|
|
|
|
|
|
|
|
SwTable* pTmpTbl = SwTable::FindTable( rArr[ n ] );
|
|
|
|
SwTableBox* pFBox;
|
|
|
|
if( pTmpTbl && 0 != (pFBox = pTmpTbl->GetTabSortBoxes()[0] ) &&
|
|
|
|
pFBox->GetSttNd() && pFBox->GetSttNd()->GetNodes().IsDocNodes() )
|
|
|
|
{
|
|
|
|
const SwTableNode* pTblNd = pFBox->GetSttNd()->FindTableNode();
|
|
|
|
SwNodeIndex aCntntIdx( *pTblNd, 1 );
|
|
|
|
|
|
|
|
SwCntntNode* pCNd;
|
|
|
|
while( 0 != ( pCNd = rNds.GoNext( &aCntntIdx ) ) &&
|
|
|
|
aCntntIdx.GetIndex() < pTblNd->EndOfSectionIndex() )
|
|
|
|
{
|
|
|
|
if( pCNd->GetFrm() && (!IsFromChapter() ||
|
|
|
|
::lcl_FindChapterNode( *pCNd, 0 ) == pOwnChapterNode ))
|
|
|
|
{
|
|
|
|
SwTOXTable * pNew = new SwTOXTable( *pCNd );
|
2003-09-04 10:46:14 +00:00
|
|
|
if( IsLevelFromChapter() && TOX_TABLES != SwTOXBase::GetType())
|
2000-09-18 23:08:29 +00:00
|
|
|
{
|
|
|
|
const SwTxtNode* pOutlNd =
|
|
|
|
::lcl_FindChapterNode( *pCNd, MAXLEVEL - 1 );
|
|
|
|
if( pOutlNd )
|
|
|
|
{
|
2009-01-07 11:57:24 +00:00
|
|
|
if( pOutlNd->GetTxtColl()->IsAssignedToListLevelOfOutlineStyle())
|
|
|
|
{
|
|
|
|
const int nTmp = pOutlNd->GetTxtColl()->GetAttrOutlineLevel();
|
|
|
|
pNew->SetLevel( static_cast<USHORT>(nTmp) );//<-end ,zhaojianwei
|
|
|
|
}
|
2000-09-18 23:08:29 +00:00
|
|
|
}
|
|
|
|
}
|
|
|
|
InsertSorted(pNew);
|
|
|
|
break;
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
/*--------------------------------------------------------------------
|
|
|
|
Beschreibung: String generieren anhand der Form
|
|
|
|
SonderZeichen 0-31 und 255 entfernen
|
|
|
|
--------------------------------------------------------------------*/
|
2008-03-07 10:59:26 +00:00
|
|
|
String lcl_GetNumString( const SwTOXSortTabBase& rBase, sal_Bool bUsePrefix, BYTE nLevel )
|
2000-09-18 23:08:29 +00:00
|
|
|
{
|
|
|
|
String sRet;
|
|
|
|
|
|
|
|
if( !rBase.pTxtMark && rBase.aTOXSources.Count() > 0 )
|
|
|
|
{ // nur wenn es keine Marke ist
|
|
|
|
const SwTxtNode* pNd = rBase.aTOXSources[0].pNd->GetTxtNode();
|
|
|
|
if( pNd )
|
|
|
|
{
|
2005-11-08 16:17:00 +00:00
|
|
|
const SwNumRule* pRule = pNd->GetNumRule();
|
|
|
|
|
2008-06-13 08:36:06 +00:00
|
|
|
if( pRule && pNd->GetActualListLevel() < MAXLEVEL )
|
2008-03-07 10:59:26 +00:00
|
|
|
sRet = pNd->GetNumString(bUsePrefix, nLevel);
|
2000-09-18 23:08:29 +00:00
|
|
|
}
|
|
|
|
}
|
|
|
|
return sRet;
|
|
|
|
}
|
|
|
|
|
2003-04-17 09:09:53 +00:00
|
|
|
// OD 18.03.2003 #106329# - add parameter <_TOXSectNdIdx> and <_pDefaultPageDesc>
|
|
|
|
// in order to control, which page description is used, no appropriate one is found.
|
|
|
|
void SwTOXBaseSection::GenerateText( USHORT nArrayIdx,
|
|
|
|
USHORT nCount,
|
2007-09-27 07:37:21 +00:00
|
|
|
SvStringsDtor& ,
|
2003-04-17 09:09:53 +00:00
|
|
|
const sal_uInt32 _nTOXSectNdIdx,
|
|
|
|
const SwPageDesc* _pDefaultPageDesc )
|
2000-09-18 23:08:29 +00:00
|
|
|
{
|
|
|
|
LinkStructArr aLinkArr;
|
|
|
|
SwDoc* pDoc = (SwDoc*)GetFmt()->GetDoc();
|
|
|
|
::SetProgressState( 0, pDoc->GetDocShell() );
|
|
|
|
|
|
|
|
//pTOXNd is only set at the first mark
|
|
|
|
SwTxtNode* pTOXNd = (SwTxtNode*)aSortArr[nArrayIdx]->pTOXNd;
|
|
|
|
String& rTxt = (String&)pTOXNd->GetTxt();
|
|
|
|
rTxt.Erase();
|
|
|
|
for(USHORT nIndex = nArrayIdx; nIndex < nArrayIdx + nCount; nIndex++)
|
|
|
|
{
|
|
|
|
if(nIndex > nArrayIdx)
|
|
|
|
rTxt.AppendAscii( RTL_CONSTASCII_STRINGPARAM( ", " )); // comma separation
|
|
|
|
// String mit dem Pattern aus der Form initialisieren
|
|
|
|
const SwTOXSortTabBase& rBase = *aSortArr[nIndex];
|
|
|
|
USHORT nLvl = rBase.GetLevel();
|
2010-11-25 17:08:45 +01:00
|
|
|
OSL_ENSURE( nLvl < GetTOXForm().GetFormMax(), "ungueltiges FORM_LEVEL");
|
2000-09-18 23:08:29 +00:00
|
|
|
|
2007-05-10 14:56:15 +00:00
|
|
|
SvxTabStopItem aTStops( 0, 0, SVX_TAB_ADJUST_DEFAULT, RES_PARATR_TABSTOP );
|
2000-09-18 23:08:29 +00:00
|
|
|
xub_StrLen nLinkStartPosition = STRING_NOTFOUND;
|
2002-09-09 08:04:03 +00:00
|
|
|
String sLinkCharacterStyle; //default to "Default" character style - which is none
|
2000-09-18 23:08:29 +00:00
|
|
|
String sURL;
|
|
|
|
// create an enumerator
|
2004-05-17 15:13:32 +00:00
|
|
|
// #i21237#
|
|
|
|
SwFormTokens aPattern = GetTOXForm().GetPattern(nLvl);
|
|
|
|
SwFormTokens::iterator aIt = aPattern.begin();
|
2000-09-18 23:08:29 +00:00
|
|
|
// remove text from node
|
2004-05-17 15:13:32 +00:00
|
|
|
while(aIt != aPattern.end()) // #i21237#
|
2000-09-18 23:08:29 +00:00
|
|
|
{
|
2004-05-17 15:13:32 +00:00
|
|
|
SwFormToken aToken = *aIt; // #i21237#
|
2000-09-18 23:08:29 +00:00
|
|
|
xub_StrLen nStartCharStyle = rTxt.Len();
|
|
|
|
switch( aToken.eTokenType )
|
|
|
|
{
|
|
|
|
case TOKEN_ENTRY_NO:
|
|
|
|
// fuer Inhaltsverzeichnis Numerierung
|
2008-03-07 10:59:26 +00:00
|
|
|
rTxt.Insert( lcl_GetNumString( rBase, aToken.nChapterFormat == CF_NUMBER, static_cast<BYTE>(aToken.nOutlineLevel - 1)) );
|
2000-09-18 23:08:29 +00:00
|
|
|
break;
|
|
|
|
|
|
|
|
case TOKEN_ENTRY_TEXT:
|
|
|
|
{
|
|
|
|
SwIndex aIdx( pTOXNd, rTxt.Len() );
|
|
|
|
rBase.FillText( *pTOXNd, aIdx );
|
|
|
|
}
|
|
|
|
break;
|
|
|
|
|
|
|
|
case TOKEN_ENTRY:
|
|
|
|
{
|
|
|
|
// fuer Inhaltsverzeichnis Numerierung
|
2008-03-07 10:59:26 +00:00
|
|
|
rTxt.Insert( lcl_GetNumString( rBase, sal_True, MAXLEVEL ));
|
2000-09-18 23:08:29 +00:00
|
|
|
|
|
|
|
SwIndex aIdx( pTOXNd, rTxt.Len() );
|
|
|
|
rBase.FillText( *pTOXNd, aIdx );
|
|
|
|
}
|
|
|
|
break;
|
|
|
|
|
|
|
|
case TOKEN_TAB_STOP:
|
2004-05-17 15:13:32 +00:00
|
|
|
if (aToken.bWithTab) // #i21237#
|
|
|
|
rTxt.Append('\t');
|
2000-09-18 23:08:29 +00:00
|
|
|
//
|
2004-05-17 15:13:32 +00:00
|
|
|
|
2000-09-18 23:08:29 +00:00
|
|
|
if(SVX_TAB_ADJUST_END > aToken.eTabAlign)
|
|
|
|
{
|
2004-11-27 10:41:08 +00:00
|
|
|
const SvxLRSpaceItem& rLR =
|
|
|
|
(SvxLRSpaceItem&)pTOXNd->
|
|
|
|
SwCntntNode::GetAttr( RES_LR_SPACE, TRUE );
|
2000-09-18 23:08:29 +00:00
|
|
|
|
|
|
|
long nTabPosition = aToken.nTabStopPosition;
|
|
|
|
if( !GetTOXForm().IsRelTabPos() && rLR.GetTxtLeft() )
|
|
|
|
nTabPosition -= rLR.GetTxtLeft();
|
|
|
|
aTStops.Insert( SvxTabStop( nTabPosition,
|
2007-09-27 07:37:21 +00:00
|
|
|
aToken.eTabAlign,
|
2000-09-18 23:08:29 +00:00
|
|
|
cDfltDecimalChar,
|
|
|
|
aToken.cTabFillChar ));
|
|
|
|
}
|
|
|
|
else
|
|
|
|
{
|
|
|
|
const SwPageDesc* pPageDesc = ((SwFmtPageDesc&)pTOXNd->
|
|
|
|
SwCntntNode::GetAttr( RES_PAGEDESC )).GetPageDesc();
|
|
|
|
|
|
|
|
BOOL bCallFindRect = TRUE;
|
|
|
|
long nRightMargin;
|
|
|
|
if( pPageDesc )
|
|
|
|
{
|
|
|
|
const SwFrm* pFrm = pTOXNd->GetFrm( 0, 0, TRUE );
|
|
|
|
if( !pFrm || 0 == ( pFrm = pFrm->FindPageFrm() ) ||
|
|
|
|
pPageDesc != ((SwPageFrm*)pFrm)->GetPageDesc() )
|
|
|
|
// dann muss man ueber den PageDesc gehen
|
|
|
|
bCallFindRect = FALSE;
|
|
|
|
}
|
|
|
|
|
|
|
|
SwRect aNdRect;
|
|
|
|
if( bCallFindRect )
|
|
|
|
aNdRect = pTOXNd->FindLayoutRect( TRUE );
|
|
|
|
|
|
|
|
if( aNdRect.IsEmpty() )
|
|
|
|
{
|
|
|
|
// dann hilft alles nichts, wir muessen ueber die Seiten-
|
|
|
|
// vorlage gehen.
|
2003-04-17 09:09:53 +00:00
|
|
|
// OD 18.03.2003 #106329# - call
|
|
|
|
sal_uInt32 nPgDescNdIdx = pTOXNd->GetIndex() + 1;
|
|
|
|
sal_uInt32* pPgDescNdIdx = &nPgDescNdIdx;
|
|
|
|
pPageDesc = pTOXNd->FindPageDesc( FALSE, pPgDescNdIdx );
|
|
|
|
if ( !pPageDesc ||
|
|
|
|
*pPgDescNdIdx < _nTOXSectNdIdx )
|
|
|
|
{
|
|
|
|
// use default page description, if none is found
|
|
|
|
// or the found one is given by a node before the
|
|
|
|
// table-of-content section.
|
|
|
|
pPageDesc = _pDefaultPageDesc;
|
|
|
|
}
|
2000-09-18 23:08:29 +00:00
|
|
|
|
|
|
|
const SwFrmFmt& rPgDscFmt = pPageDesc->GetMaster();
|
|
|
|
nRightMargin = rPgDscFmt.GetFrmSize().GetWidth() -
|
|
|
|
rPgDscFmt.GetLRSpace().GetLeft() -
|
|
|
|
rPgDscFmt.GetLRSpace().GetRight();
|
|
|
|
}
|
|
|
|
else
|
|
|
|
nRightMargin = aNdRect.Width();
|
2008-03-05 16:30:39 +00:00
|
|
|
//#i24363# tab stops relative to indent
|
|
|
|
if( pDoc->get(IDocumentSettingAccess::TABS_RELATIVE_TO_INDENT) )
|
|
|
|
{
|
|
|
|
//left margin of paragraph style
|
|
|
|
const SvxLRSpaceItem& rLRSpace = pTOXNd->GetTxtColl()->GetLRSpace();
|
|
|
|
nRightMargin -= rLRSpace.GetLeft();
|
|
|
|
nRightMargin -= rLRSpace.GetTxtFirstLineOfst();
|
|
|
|
}
|
2004-11-27 10:41:08 +00:00
|
|
|
|
2004-01-05 14:36:17 +00:00
|
|
|
aTStops.Insert( SvxTabStop( nRightMargin, SVX_TAB_ADJUST_RIGHT,
|
2000-09-18 23:08:29 +00:00
|
|
|
cDfltDecimalChar,
|
|
|
|
aToken.cTabFillChar ));
|
|
|
|
}
|
|
|
|
break;
|
|
|
|
|
|
|
|
case TOKEN_TEXT:
|
|
|
|
rTxt.Append( aToken.sText );
|
|
|
|
break;
|
|
|
|
|
|
|
|
case TOKEN_PAGE_NUMS:
|
|
|
|
// Platzhalter fuer Seitennummer(n) es wird nur der erste beachtet
|
|
|
|
//
|
|
|
|
{
|
|
|
|
// Die Anzahl der gleichen Eintrage bestimmt die Seitennummern-Pattern
|
|
|
|
//
|
|
|
|
USHORT nSize = rBase.aTOXSources.Count();
|
|
|
|
if( nSize > 0 )
|
|
|
|
{
|
|
|
|
String aInsStr( cNumRepl );
|
|
|
|
for(USHORT i=1; i < nSize; ++i)
|
|
|
|
{
|
|
|
|
aInsStr.AppendAscii( sPageDeli );
|
|
|
|
aInsStr += cNumRepl;
|
|
|
|
}
|
|
|
|
aInsStr += cEndPageNum;
|
|
|
|
rTxt.Append( aInsStr );
|
|
|
|
}
|
|
|
|
}
|
|
|
|
break;
|
|
|
|
|
|
|
|
case TOKEN_CHAPTER_INFO:
|
|
|
|
{
|
|
|
|
// ein bischen trickreich: suche irgend einen Frame
|
|
|
|
const SwTOXSource* pTOXSource = 0;
|
|
|
|
if(rBase.aTOXSources.Count())
|
|
|
|
pTOXSource = &rBase.aTOXSources[0];
|
2008-03-07 10:59:26 +00:00
|
|
|
|
|
|
|
// --> OD 2008-02-14 #i53420#
|
|
|
|
if ( pTOXSource && pTOXSource->pNd &&
|
|
|
|
pTOXSource->pNd->IsCntntNode() )
|
|
|
|
// <--
|
2000-09-18 23:08:29 +00:00
|
|
|
{
|
|
|
|
const SwCntntFrm* pFrm = pTOXSource->pNd->GetFrm();
|
|
|
|
if( pFrm )
|
|
|
|
{
|
|
|
|
SwChapterFieldType aFldTyp;
|
|
|
|
SwChapterField aFld( &aFldTyp, aToken.nChapterFormat );
|
2008-03-07 10:59:26 +00:00
|
|
|
aFld.SetLevel( static_cast<BYTE>(aToken.nOutlineLevel - 1) );
|
|
|
|
// --> OD 2008-02-14 #i53420#
|
|
|
|
aFld.ChangeExpansion( pFrm,
|
|
|
|
dynamic_cast<const SwCntntNode*>(pTOXSource->pNd),
|
|
|
|
TRUE );
|
|
|
|
// <--
|
2008-07-02 09:33:42 +00:00
|
|
|
//---> i89791
|
|
|
|
// OD 2008-06-26 - continue to support CF_NUMBER
|
|
|
|
// and CF_NUM_TITLE in order to handle ODF 1.0/1.1
|
|
|
|
// written by OOo 3.x in the same way as OOo 2.x
|
|
|
|
// would handle them.
|
|
|
|
if ( CF_NUM_NOPREPST_TITLE == aToken.nChapterFormat ||
|
|
|
|
CF_NUMBER == aToken.nChapterFormat )
|
2008-03-07 10:59:26 +00:00
|
|
|
rTxt.Insert(aFld.GetNumber()); //get the string number without pre/postfix
|
2008-07-02 09:33:42 +00:00
|
|
|
else if ( CF_NUMBER_NOPREPST == aToken.nChapterFormat ||
|
|
|
|
CF_NUM_TITLE == aToken.nChapterFormat )
|
|
|
|
//<---
|
2000-09-18 23:08:29 +00:00
|
|
|
{
|
|
|
|
rTxt += aFld.GetNumber();
|
|
|
|
rTxt += ' ';
|
|
|
|
rTxt += aFld.GetTitle();
|
|
|
|
}
|
|
|
|
else if(CF_TITLE == aToken.nChapterFormat)
|
|
|
|
rTxt += aFld.GetTitle();
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
break;
|
|
|
|
|
|
|
|
case TOKEN_LINK_START:
|
|
|
|
nLinkStartPosition = rTxt.Len();
|
2002-09-09 08:04:03 +00:00
|
|
|
sLinkCharacterStyle = aToken.sCharStyleName;
|
|
|
|
break;
|
2000-09-18 23:08:29 +00:00
|
|
|
|
|
|
|
case TOKEN_LINK_END:
|
|
|
|
//TODO: only paired start/end tokens are valid
|
|
|
|
if( STRING_NOTFOUND != nLinkStartPosition)
|
|
|
|
{
|
|
|
|
SwIndex aIdx( pTOXNd, nLinkStartPosition );
|
|
|
|
//pTOXNd->Erase( aIdx, SwForm::nFormLinkSttLen );
|
|
|
|
xub_StrLen nEnd = rTxt.Len();
|
|
|
|
|
|
|
|
if( !sURL.Len() )
|
|
|
|
{
|
|
|
|
sURL = rBase.GetURL();
|
|
|
|
if( !sURL.Len() )
|
|
|
|
break;
|
|
|
|
}
|
2002-09-09 08:04:03 +00:00
|
|
|
LinkStruct* pNewLink = new LinkStruct(sURL, nLinkStartPosition,
|
|
|
|
nEnd);
|
|
|
|
pNewLink->aINetFmt.SetVisitedFmt(sLinkCharacterStyle);
|
|
|
|
pNewLink->aINetFmt.SetINetFmt(sLinkCharacterStyle);
|
|
|
|
if(sLinkCharacterStyle.Len())
|
|
|
|
{
|
|
|
|
USHORT nPoolId =
|
2007-09-27 07:37:21 +00:00
|
|
|
SwStyleNameMapper::GetPoolIdFromUIName( sLinkCharacterStyle, nsSwGetPoolIdFromName::GET_POOLID_CHRFMT );
|
2002-09-09 08:04:03 +00:00
|
|
|
pNewLink->aINetFmt.SetVisitedFmtId(nPoolId);
|
|
|
|
pNewLink->aINetFmt.SetINetFmtId(nPoolId);
|
|
|
|
}
|
|
|
|
else
|
|
|
|
{
|
|
|
|
pNewLink->aINetFmt.SetVisitedFmtId(USHRT_MAX);
|
|
|
|
pNewLink->aINetFmt.SetINetFmtId(USHRT_MAX);
|
|
|
|
}
|
|
|
|
aLinkArr.Insert( pNewLink, aLinkArr.Count() );
|
2000-09-18 23:08:29 +00:00
|
|
|
nLinkStartPosition = STRING_NOTFOUND;
|
2002-09-09 08:04:03 +00:00
|
|
|
sLinkCharacterStyle.Erase();
|
2000-09-18 23:08:29 +00:00
|
|
|
}
|
|
|
|
break;
|
|
|
|
|
|
|
|
case TOKEN_AUTHORITY:
|
|
|
|
{
|
|
|
|
ToxAuthorityField eField = (ToxAuthorityField)aToken.nAuthorityField;
|
|
|
|
SwIndex aIdx( pTOXNd, rTxt.Len() );
|
2007-09-27 07:37:21 +00:00
|
|
|
rBase.FillText( *pTOXNd, aIdx, static_cast<USHORT>(eField) );
|
2000-09-18 23:08:29 +00:00
|
|
|
}
|
|
|
|
break;
|
2007-09-27 07:37:21 +00:00
|
|
|
case TOKEN_END: break;
|
2000-09-18 23:08:29 +00:00
|
|
|
}
|
|
|
|
|
|
|
|
if( aToken.sCharStyleName.Len() )
|
|
|
|
{
|
|
|
|
SwCharFmt* pCharFmt;
|
|
|
|
if( USHRT_MAX != aToken.nPoolId )
|
|
|
|
pCharFmt = pDoc->GetCharFmtFromPool( aToken.nPoolId );
|
|
|
|
else
|
|
|
|
pCharFmt = pDoc->FindCharFmtByName( aToken.sCharStyleName);
|
|
|
|
|
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
|
|
|
if (pCharFmt)
|
|
|
|
{
|
|
|
|
SwFmtCharFmt aFmt( pCharFmt );
|
|
|
|
pTOXNd->InsertItem( aFmt, nStartCharStyle,
|
|
|
|
rTxt.Len(), nsSetAttrMode::SETATTR_DONTEXPAND );
|
|
|
|
}
|
2000-09-18 23:08:29 +00:00
|
|
|
}
|
2004-05-17 15:13:32 +00:00
|
|
|
|
|
|
|
aIt++; // #i21237#
|
2000-09-18 23:08:29 +00:00
|
|
|
}
|
2004-05-17 15:13:32 +00:00
|
|
|
|
2008-06-13 08:36:06 +00:00
|
|
|
pTOXNd->SetAttr( aTStops );
|
2000-09-18 23:08:29 +00:00
|
|
|
}
|
|
|
|
|
|
|
|
if(aLinkArr.Count())
|
|
|
|
for(USHORT i = 0; i < aLinkArr.Count(); ++i )
|
|
|
|
{
|
|
|
|
LinkStruct* pTmp = aLinkArr.GetObject(i);
|
2006-12-01 14:40:02 +00:00
|
|
|
pTOXNd->InsertItem( pTmp->aINetFmt, pTmp->nStartTextPos,
|
2000-09-18 23:08:29 +00:00
|
|
|
pTmp->nEndTextPos);
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
/*--------------------------------------------------------------------
|
|
|
|
Beschreibung: Seitennummer errechnen und nach dem Formatieren
|
|
|
|
eintragen
|
|
|
|
--------------------------------------------------------------------*/
|
|
|
|
void SwTOXBaseSection::UpdatePageNum()
|
|
|
|
{
|
2000-10-20 09:56:11 +00:00
|
|
|
if( !aSortArr.Count() )
|
|
|
|
return ;
|
|
|
|
|
2000-09-18 23:08:29 +00:00
|
|
|
// die aktuellen Seitennummern ins Verzeichnis eintragen
|
|
|
|
SwPageFrm* pAktPage = 0;
|
|
|
|
USHORT nPage = 0;
|
|
|
|
SwDoc* pDoc = (SwDoc*)GetFmt()->GetDoc();
|
2000-10-20 09:56:11 +00:00
|
|
|
|
2002-06-26 08:32:38 +00:00
|
|
|
SwTOXInternational aIntl( GetLanguage(),
|
|
|
|
TOX_INDEX == GetTOXType()->GetType() ?
|
|
|
|
GetOptions() : 0,
|
|
|
|
GetSortAlgorithm() );
|
2000-10-20 09:56:11 +00:00
|
|
|
|
2000-09-18 23:08:29 +00:00
|
|
|
for( USHORT nCnt = 0; nCnt < aSortArr.Count(); ++nCnt )
|
|
|
|
{
|
|
|
|
// Schleife ueber alle SourceNodes
|
|
|
|
SvUShorts aNums; //Die Seitennummern
|
|
|
|
SvPtrarr aDescs; //Die PageDescriptoren passend zu den Seitennummern.
|
|
|
|
SvUShorts* pMainNums = 0; // contains page numbers of main entries
|
|
|
|
|
|
|
|
// process run in lines
|
|
|
|
USHORT nRange = 0;
|
|
|
|
if(GetTOXForm().IsCommaSeparated() &&
|
|
|
|
aSortArr[nCnt]->GetType() == TOX_SORT_INDEX)
|
|
|
|
{
|
|
|
|
const SwTOXMark& rMark = aSortArr[nCnt]->pTxtMark->GetTOXMark();
|
|
|
|
const String sPrimKey = rMark.GetPrimaryKey();
|
|
|
|
const String sSecKey = rMark.GetSecondaryKey();
|
|
|
|
const SwTOXMark* pNextMark = 0;
|
|
|
|
while(aSortArr.Count() > (nCnt + nRange)&&
|
|
|
|
aSortArr[nCnt + nRange]->GetType() == TOX_SORT_INDEX &&
|
|
|
|
0 != (pNextMark = &(aSortArr[nCnt + nRange]->pTxtMark->GetTOXMark())) &&
|
|
|
|
pNextMark->GetPrimaryKey() == sPrimKey &&
|
|
|
|
pNextMark->GetSecondaryKey() == sSecKey)
|
|
|
|
nRange++;
|
|
|
|
}
|
|
|
|
else
|
|
|
|
nRange = 1;
|
|
|
|
|
|
|
|
for(USHORT nRunInEntry = nCnt; nRunInEntry < nCnt + nRange; nRunInEntry++)
|
|
|
|
{
|
|
|
|
SwTOXSortTabBase* pSortBase = aSortArr[nRunInEntry];
|
|
|
|
USHORT nSize = pSortBase->aTOXSources.Count();
|
2003-12-01 15:35:27 +00:00
|
|
|
USHORT i;
|
2000-09-18 23:08:29 +00:00
|
|
|
for( USHORT j = 0; j < nSize; ++j )
|
|
|
|
{
|
|
|
|
::SetProgressState( 0, pDoc->GetDocShell() );
|
|
|
|
|
|
|
|
SwTOXSource& rTOXSource = pSortBase->aTOXSources[j];
|
|
|
|
if( rTOXSource.pNd )
|
|
|
|
{
|
|
|
|
SwCntntFrm* pFrm = rTOXSource.pNd->GetFrm();
|
2010-11-25 17:08:45 +01:00
|
|
|
OSL_ENSURE( pFrm || pDoc->IsUpdateTOX(), "TOX, no Frame found");
|
2002-06-06 15:39:22 +00:00
|
|
|
if( !pFrm )
|
|
|
|
continue;
|
2000-09-18 23:08:29 +00:00
|
|
|
if( pFrm->IsTxtFrm() && ((SwTxtFrm*)pFrm)->HasFollow() )
|
|
|
|
{
|
|
|
|
// dann suche den richtigen heraus
|
|
|
|
SwTxtFrm* pNext = (SwTxtFrm*)pFrm;
|
|
|
|
while( 0 != ( pNext = (SwTxtFrm*)pFrm->GetFollow() )
|
|
|
|
&& rTOXSource.nPos >= pNext->GetOfst() )
|
|
|
|
pFrm = pNext;
|
|
|
|
}
|
|
|
|
|
|
|
|
SwPageFrm* pTmpPage = pFrm->FindPageFrm();
|
|
|
|
if( pTmpPage != pAktPage )
|
|
|
|
{
|
|
|
|
nPage = pTmpPage->GetVirtPageNum();
|
|
|
|
pAktPage = pTmpPage;
|
|
|
|
}
|
|
|
|
|
|
|
|
// sortiert einfuegen
|
2003-12-01 15:35:27 +00:00
|
|
|
for( i = 0; i < aNums.Count() && aNums[i] < nPage; ++i )
|
2000-09-18 23:08:29 +00:00
|
|
|
;
|
|
|
|
|
|
|
|
if( i >= aNums.Count() || aNums[ i ] != nPage )
|
|
|
|
{
|
|
|
|
aNums.Insert( nPage, i );
|
|
|
|
aDescs.Insert( (void*)pAktPage->GetPageDesc(), i );
|
|
|
|
}
|
|
|
|
// is it a main entry?
|
|
|
|
if(TOX_SORT_INDEX == pSortBase->GetType() &&
|
|
|
|
rTOXSource.bMainEntry)
|
|
|
|
{
|
|
|
|
if(!pMainNums)
|
|
|
|
pMainNums = new SvUShorts;
|
|
|
|
pMainNums->Insert(nPage, pMainNums->Count());
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
// einfuegen der Seitennummer in den Verzeichnis-Text-Node
|
|
|
|
const SwTOXSortTabBase* pBase = aSortArr[ nCnt ];
|
|
|
|
if(pBase->pTOXNd)
|
|
|
|
{
|
|
|
|
const SwTxtNode* pTxtNd = pBase->pTOXNd->GetTxtNode();
|
2010-11-25 17:08:45 +01:00
|
|
|
OSL_ENSURE( pTxtNd, "kein TextNode, falsches Verzeichnis" );
|
2000-09-18 23:08:29 +00:00
|
|
|
|
2000-10-20 09:56:11 +00:00
|
|
|
_UpdatePageNum( (SwTxtNode*)pTxtNd, aNums, aDescs, pMainNums,
|
|
|
|
aIntl );
|
2000-09-18 23:08:29 +00:00
|
|
|
}
|
|
|
|
DELETEZ(pMainNums);
|
|
|
|
aNums.Remove(0, aNums.Count());
|
|
|
|
}
|
|
|
|
}
|
|
|
|
// nach dem Setzen der richtigen Seitennummer, das Mapping-Array
|
|
|
|
// wieder loeschen !!
|
|
|
|
aSortArr.DeleteAndDestroy( 0, aSortArr.Count() );
|
|
|
|
}
|
|
|
|
|
|
|
|
/*--------------------------------------------------------------------
|
|
|
|
Beschreibung: Austausch der Seitennummer-Platzhalter
|
|
|
|
--------------------------------------------------------------------*/
|
|
|
|
// search for the page no in the array of main entry page numbers
|
|
|
|
BOOL lcl_HasMainEntry( const SvUShorts* pMainEntryNums, USHORT nToFind )
|
|
|
|
{
|
|
|
|
for(USHORT i = 0; pMainEntryNums && i < pMainEntryNums->Count(); ++i)
|
|
|
|
if(nToFind == (*pMainEntryNums)[i])
|
|
|
|
return TRUE;
|
|
|
|
return FALSE;
|
|
|
|
}
|
|
|
|
|
|
|
|
void SwTOXBaseSection::_UpdatePageNum( SwTxtNode* pNd,
|
|
|
|
const SvUShorts& rNums,
|
|
|
|
const SvPtrarr & rDescs,
|
2000-10-20 09:56:11 +00:00
|
|
|
const SvUShorts* pMainEntryNums,
|
|
|
|
const SwTOXInternational& rIntl )
|
2000-09-18 23:08:29 +00:00
|
|
|
{
|
|
|
|
//collect starts end ends of main entry character style
|
|
|
|
SvUShorts* pCharStyleIdx = pMainEntryNums ? new SvUShorts : 0;
|
|
|
|
|
2003-12-01 15:35:27 +00:00
|
|
|
String sSrchStr( cNumRepl );
|
|
|
|
sSrchStr.AppendAscii( sPageDeli ) += cNumRepl;
|
2000-09-18 23:08:29 +00:00
|
|
|
xub_StrLen nStartPos = pNd->GetTxt().Search( sSrchStr );
|
|
|
|
( sSrchStr = cNumRepl ) += cEndPageNum;
|
|
|
|
xub_StrLen nEndPos = pNd->GetTxt().Search( sSrchStr );
|
2003-12-01 15:35:27 +00:00
|
|
|
USHORT i;
|
2000-09-18 23:08:29 +00:00
|
|
|
|
|
|
|
if( STRING_NOTFOUND == nEndPos || !rNums.Count() )
|
|
|
|
return;
|
|
|
|
|
|
|
|
if( STRING_NOTFOUND == nStartPos || nStartPos > nEndPos)
|
|
|
|
nStartPos = nEndPos;
|
|
|
|
|
|
|
|
USHORT nOld = rNums[0],
|
|
|
|
nBeg = nOld,
|
|
|
|
nCount = 0;
|
2001-02-23 11:45:30 +00:00
|
|
|
String aNumStr( SvxNumberType( ((SwPageDesc*)rDescs[0])->GetNumType() ).
|
2000-09-18 23:08:29 +00:00
|
|
|
GetNumStr( nBeg ) );
|
|
|
|
if( pCharStyleIdx && lcl_HasMainEntry( pMainEntryNums, nBeg ))
|
|
|
|
{
|
|
|
|
USHORT nTemp = 0;
|
|
|
|
pCharStyleIdx->Insert( nTemp, pCharStyleIdx->Count());
|
|
|
|
}
|
|
|
|
|
|
|
|
// Platzhalter loeschen
|
|
|
|
SwIndex aPos(pNd, nStartPos);
|
2009-02-13 11:19:56 +00:00
|
|
|
SwCharFmt* pPageNoCharFmt = 0;
|
2000-09-18 23:08:29 +00:00
|
|
|
SwpHints* pHints = pNd->GetpSwpHints();
|
|
|
|
if(pHints)
|
|
|
|
for(USHORT nHintIdx = 0; nHintIdx < pHints->GetStartCount(); nHintIdx++)
|
|
|
|
{
|
|
|
|
SwTxtAttr* pAttr = pHints->GetStart(nHintIdx);
|
|
|
|
xub_StrLen nTmpEnd = pAttr->GetEnd() ? *pAttr->GetEnd() : 0;
|
|
|
|
if( nStartPos >= *pAttr->GetStart() &&
|
|
|
|
(nStartPos + 2) <= nTmpEnd &&
|
|
|
|
pAttr->Which() == RES_TXTATR_CHARFMT)
|
|
|
|
{
|
2009-02-13 11:19:56 +00:00
|
|
|
pPageNoCharFmt = pAttr->GetCharFmt().GetCharFmt();
|
2000-09-18 23:08:29 +00:00
|
|
|
break;
|
|
|
|
}
|
|
|
|
}
|
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
|
|
|
pNd->EraseText(aPos, nEndPos - nStartPos + 2);
|
2000-09-18 23:08:29 +00:00
|
|
|
|
2003-12-01 15:35:27 +00:00
|
|
|
for( i = 1; i < rNums.Count(); ++i)
|
2000-09-18 23:08:29 +00:00
|
|
|
{
|
2001-02-23 11:45:30 +00:00
|
|
|
SvxNumberType aType( ((SwPageDesc*)rDescs[i])->GetNumType() );
|
2000-09-18 23:08:29 +00:00
|
|
|
if( TOX_INDEX == SwTOXBase::GetType() )
|
|
|
|
{ // Zusammenfassen f. ff.
|
|
|
|
// Alle folgenden aufaddieren
|
|
|
|
// break up if main entry starts or ends and
|
|
|
|
// insert a char style index
|
|
|
|
BOOL bMainEntryChanges = lcl_HasMainEntry(pMainEntryNums, nOld)
|
|
|
|
!= lcl_HasMainEntry(pMainEntryNums, rNums[i]);
|
|
|
|
|
|
|
|
if(nOld == rNums[i]-1 && !bMainEntryChanges &&
|
2007-09-27 07:37:21 +00:00
|
|
|
0 != (GetOptions() & (nsSwTOIOptions::TOI_FF|nsSwTOIOptions::TOI_DASH)))
|
2000-09-18 23:08:29 +00:00
|
|
|
nCount++;
|
|
|
|
else
|
|
|
|
{
|
|
|
|
// ff. f. alten Wert flushen
|
2007-09-27 07:37:21 +00:00
|
|
|
if(GetOptions() & nsSwTOIOptions::TOI_FF)
|
2000-09-18 23:08:29 +00:00
|
|
|
{
|
|
|
|
if ( nCount >= 1 )
|
2001-05-14 12:36:37 +00:00
|
|
|
aNumStr += rIntl.GetFollowingText( nCount > 1 );
|
2000-09-18 23:08:29 +00:00
|
|
|
}
|
|
|
|
else
|
|
|
|
{
|
|
|
|
if(nCount >= 2 )
|
|
|
|
aNumStr += '-';
|
|
|
|
else if(nCount == 1 )
|
|
|
|
aNumStr.AppendAscii( sPageDeli );
|
|
|
|
//#58127# Wenn nCount == 0, dann steht die einzige Seitenzahl schon im aNumStr!
|
|
|
|
if(nCount)
|
|
|
|
aNumStr += aType.GetNumStr( nBeg + nCount );
|
|
|
|
}
|
|
|
|
|
|
|
|
// neuen String anlegen
|
|
|
|
nBeg = rNums[i];
|
|
|
|
aNumStr.AppendAscii( sPageDeli );
|
|
|
|
//the change of the character style must apply after sPageDeli is appended
|
|
|
|
if(pCharStyleIdx && bMainEntryChanges)
|
|
|
|
pCharStyleIdx->Insert(aNumStr.Len(),
|
|
|
|
pCharStyleIdx->Count());
|
|
|
|
aNumStr += aType.GetNumStr( nBeg );
|
|
|
|
nCount = 0;
|
|
|
|
}
|
|
|
|
nOld = rNums[i];
|
|
|
|
}
|
|
|
|
else
|
|
|
|
{ // Alle Nummern eintragen
|
|
|
|
aNumStr += aType.GetNumStr( USHORT(rNums[i]) );
|
|
|
|
if(i != (rNums.Count()-1))
|
|
|
|
aNumStr.AppendAscii( sPageDeli );
|
|
|
|
}
|
|
|
|
}
|
|
|
|
// Bei Ende und ff. alten Wert flushen
|
|
|
|
if( TOX_INDEX == SwTOXBase::GetType() )
|
|
|
|
{
|
2007-09-27 07:37:21 +00:00
|
|
|
if(GetOptions() & nsSwTOIOptions::TOI_FF)
|
2000-09-18 23:08:29 +00:00
|
|
|
{
|
|
|
|
if( nCount >= 1 )
|
2001-05-14 12:36:37 +00:00
|
|
|
aNumStr += rIntl.GetFollowingText( nCount > 1 );
|
2000-09-18 23:08:29 +00:00
|
|
|
}
|
|
|
|
else
|
|
|
|
{
|
|
|
|
if(nCount >= 2)
|
|
|
|
aNumStr +='-';
|
|
|
|
else if(nCount == 1)
|
|
|
|
aNumStr.AppendAscii( sPageDeli );
|
|
|
|
//#58127# Wenn nCount == 0, dann steht die einzige Seitenzahl schon im aNumStr!
|
|
|
|
if(nCount)
|
2001-02-23 11:45:30 +00:00
|
|
|
aNumStr += SvxNumberType( ((SwPageDesc*)rDescs[i-1])->
|
2000-09-18 23:08:29 +00:00
|
|
|
GetNumType() ).GetNumStr( nBeg+nCount );
|
|
|
|
}
|
|
|
|
}
|
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
|
|
|
pNd->InsertText( aNumStr, aPos,
|
2009-10-20 14:10:25 +00:00
|
|
|
static_cast<IDocumentContentOperations::InsertFlags>(
|
|
|
|
IDocumentContentOperations::INS_EMPTYEXPAND |
|
|
|
|
IDocumentContentOperations::INS_FORCEHINTEXPAND) );
|
2000-09-18 23:08:29 +00:00
|
|
|
if(pPageNoCharFmt)
|
|
|
|
{
|
2009-02-13 11:19:56 +00:00
|
|
|
SwFmtCharFmt aCharFmt( pPageNoCharFmt );
|
2007-09-27 07:37:21 +00:00
|
|
|
pNd->InsertItem(aCharFmt, nStartPos, nStartPos + aNumStr.Len(), nsSetAttrMode::SETATTR_DONTEXPAND);
|
2000-09-18 23:08:29 +00:00
|
|
|
}
|
|
|
|
|
|
|
|
//now the main entries should get there character style
|
|
|
|
if(pCharStyleIdx && pCharStyleIdx->Count() && GetMainEntryCharStyle().Len())
|
|
|
|
{
|
|
|
|
// eventually the last index must me appended
|
|
|
|
if(pCharStyleIdx->Count()&0x01)
|
|
|
|
pCharStyleIdx->Insert(aNumStr.Len(), pCharStyleIdx->Count());
|
|
|
|
|
|
|
|
//search by name
|
|
|
|
SwDoc* pDoc = pNd->GetDoc();
|
2007-09-27 07:37:21 +00:00
|
|
|
USHORT nPoolId = SwStyleNameMapper::GetPoolIdFromUIName( GetMainEntryCharStyle(), nsSwGetPoolIdFromName::GET_POOLID_CHRFMT );
|
2000-09-18 23:08:29 +00:00
|
|
|
SwCharFmt* pCharFmt = 0;
|
|
|
|
if(USHRT_MAX != nPoolId)
|
|
|
|
pCharFmt = pDoc->GetCharFmtFromPool(nPoolId);
|
|
|
|
else
|
|
|
|
pCharFmt = pDoc->FindCharFmtByName( GetMainEntryCharStyle() );
|
|
|
|
if(!pCharFmt)
|
|
|
|
pCharFmt = pDoc->MakeCharFmt(GetMainEntryCharStyle(), 0);
|
|
|
|
|
|
|
|
//find the page numbers in aNumStr and set the character style
|
|
|
|
xub_StrLen nOffset = pNd->GetTxt().Len() - aNumStr.Len();
|
|
|
|
SwFmtCharFmt aCharFmt(pCharFmt);
|
2007-09-27 07:37:21 +00:00
|
|
|
for(USHORT j = 0; j < pCharStyleIdx->Count(); j += 2)
|
2000-09-18 23:08:29 +00:00
|
|
|
{
|
2007-09-27 07:37:21 +00:00
|
|
|
xub_StrLen nStartIdx = (*pCharStyleIdx)[j] + nOffset;
|
|
|
|
xub_StrLen nEndIdx = (*pCharStyleIdx)[j + 1] + nOffset;
|
|
|
|
pNd->InsertItem(aCharFmt, nStartIdx, nEndIdx, nsSetAttrMode::SETATTR_DONTEXPAND);
|
2000-09-18 23:08:29 +00:00
|
|
|
}
|
|
|
|
|
|
|
|
}
|
|
|
|
delete pCharStyleIdx;
|
|
|
|
}
|
|
|
|
|
|
|
|
/*--------------------------------------------------------------------
|
|
|
|
Beschreibung: Sortiert einfuegen in das SortArr
|
|
|
|
--------------------------------------------------------------------*/
|
|
|
|
void SwTOXBaseSection::InsertSorted(SwTOXSortTabBase* pNew)
|
|
|
|
{
|
|
|
|
Range aRange(0, aSortArr.Count());
|
|
|
|
if( TOX_INDEX == SwTOXBase::GetType() && pNew->pTxtMark )
|
|
|
|
{
|
|
|
|
const SwTOXMark& rMark = pNew->pTxtMark->GetTOXMark();
|
|
|
|
// Schluessel auswerten
|
|
|
|
// Den Bereich ermitteln, in dem einzufuegen ist
|
2007-09-27 07:37:21 +00:00
|
|
|
if( 0 == (GetOptions() & nsSwTOIOptions::TOI_KEY_AS_ENTRY) &&
|
2000-09-18 23:08:29 +00:00
|
|
|
rMark.GetPrimaryKey().Len() )
|
|
|
|
{
|
2002-06-26 08:32:38 +00:00
|
|
|
aRange = GetKeyRange( rMark.GetPrimaryKey(),
|
|
|
|
rMark.GetPrimaryKeyReading(),
|
|
|
|
*pNew, FORM_PRIMARY_KEY, aRange );
|
|
|
|
|
2000-09-18 23:08:29 +00:00
|
|
|
if( rMark.GetSecondaryKey().Len() )
|
2002-06-26 08:32:38 +00:00
|
|
|
aRange = GetKeyRange( rMark.GetSecondaryKey(),
|
|
|
|
rMark.GetSecondaryKeyReading(),
|
|
|
|
*pNew, FORM_SECONDARY_KEY, aRange );
|
2000-09-18 23:08:29 +00:00
|
|
|
}
|
|
|
|
}
|
2001-02-14 09:43:38 +00:00
|
|
|
//search for identical entries and remove the trailing one
|
|
|
|
if(TOX_AUTHORITIES == SwTOXBase::GetType())
|
|
|
|
{
|
|
|
|
for(short i = (short)aRange.Min(); i < (short)aRange.Max(); ++i)
|
2000-09-18 23:08:29 +00:00
|
|
|
{
|
2001-02-14 09:43:38 +00:00
|
|
|
SwTOXSortTabBase* pOld = aSortArr[i];
|
|
|
|
if(*pOld == *pNew)
|
2000-09-18 23:08:29 +00:00
|
|
|
{
|
|
|
|
if(*pOld < *pNew)
|
|
|
|
{
|
|
|
|
delete pNew;
|
2001-02-14 09:43:38 +00:00
|
|
|
return;
|
2000-09-18 23:08:29 +00:00
|
|
|
}
|
|
|
|
else
|
|
|
|
{
|
|
|
|
// remove the old content
|
|
|
|
aSortArr.DeleteAndDestroy( i, 1 );
|
2001-02-14 09:43:38 +00:00
|
|
|
aRange.Max()--;
|
|
|
|
break;
|
2000-09-18 23:08:29 +00:00
|
|
|
}
|
|
|
|
}
|
2001-02-14 09:43:38 +00:00
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
// find position and insert
|
|
|
|
//
|
2003-12-01 15:35:27 +00:00
|
|
|
short i;
|
|
|
|
|
|
|
|
for( i = (short)aRange.Min(); i < (short)aRange.Max(); ++i)
|
2001-02-14 09:43:38 +00:00
|
|
|
{ // nur auf gleicher Ebene pruefen
|
|
|
|
//
|
|
|
|
SwTOXSortTabBase* pOld = aSortArr[i];
|
|
|
|
if(*pOld == *pNew)
|
|
|
|
{
|
|
|
|
if(TOX_AUTHORITIES != SwTOXBase::GetType())
|
2000-09-18 23:08:29 +00:00
|
|
|
{
|
|
|
|
// Eigener Eintrag fuer Doppelte oder Keywords
|
|
|
|
//
|
|
|
|
if( pOld->GetType() == TOX_SORT_CUSTOM &&
|
2007-09-27 07:37:21 +00:00
|
|
|
pNew->GetOptions() & nsSwTOIOptions::TOI_KEY_AS_ENTRY)
|
2000-09-18 23:08:29 +00:00
|
|
|
continue;
|
|
|
|
|
2007-09-27 07:37:21 +00:00
|
|
|
if(!(pNew->GetOptions() & nsSwTOIOptions::TOI_SAME_ENTRY))
|
2000-09-18 23:08:29 +00:00
|
|
|
{ // Eigener Eintrag
|
|
|
|
aSortArr.Insert(pNew, i );
|
|
|
|
return;
|
|
|
|
}
|
|
|
|
// Eintrag schon vorhanden in Referenzliste aufnehmen
|
|
|
|
pOld->aTOXSources.Insert( pNew->aTOXSources[0],
|
|
|
|
pOld->aTOXSources.Count() );
|
|
|
|
|
|
|
|
delete pNew;
|
|
|
|
return;
|
|
|
|
}
|
2010-11-25 17:08:45 +01:00
|
|
|
#if OSL_DEBUG_LEVEL > 1
|
2001-02-14 09:43:38 +00:00
|
|
|
else
|
2008-11-10 15:06:12 +00:00
|
|
|
DBG_ERROR("Bibliography entries cannot be found here");
|
2001-02-14 09:43:38 +00:00
|
|
|
#endif
|
2000-09-18 23:08:29 +00:00
|
|
|
}
|
|
|
|
if(*pNew < *pOld)
|
|
|
|
break;
|
|
|
|
}
|
|
|
|
// SubLevel Skippen
|
|
|
|
while( TOX_INDEX == SwTOXBase::GetType() && i < aRange.Max() &&
|
|
|
|
aSortArr[i]->GetLevel() > pNew->GetLevel() )
|
|
|
|
i++;
|
|
|
|
|
|
|
|
// An Position i wird eingefuegt
|
|
|
|
aSortArr.Insert(pNew, i );
|
|
|
|
}
|
|
|
|
|
|
|
|
/*--------------------------------------------------------------------
|
|
|
|
Beschreibung: Schluessel-Bereich suchen und evtl einfuegen
|
|
|
|
--------------------------------------------------------------------*/
|
2002-06-26 08:32:38 +00:00
|
|
|
Range SwTOXBaseSection::GetKeyRange(const String& rStr, const String& rStrReading,
|
|
|
|
const SwTOXSortTabBase& rNew,
|
|
|
|
USHORT nLevel, const Range& rRange )
|
2000-09-18 23:08:29 +00:00
|
|
|
{
|
2002-06-26 08:32:38 +00:00
|
|
|
const SwTOXInternational& rIntl = *rNew.pTOXIntl;
|
2000-09-18 23:08:29 +00:00
|
|
|
String sToCompare(rStr);
|
2002-06-26 08:32:38 +00:00
|
|
|
String sToCompareReading(rStrReading);
|
|
|
|
|
2007-09-27 07:37:21 +00:00
|
|
|
if( 0 != (nsSwTOIOptions::TOI_INITIAL_CAPS & GetOptions()) )
|
2000-10-20 09:56:11 +00:00
|
|
|
{
|
|
|
|
String sUpper( rIntl.ToUpper( sToCompare, 0 ));
|
|
|
|
sToCompare.Erase( 0, 1 ).Insert( sUpper, 0 );
|
|
|
|
}
|
2000-09-18 23:08:29 +00:00
|
|
|
|
2010-11-25 17:08:45 +01:00
|
|
|
OSL_ENSURE(rRange.Min() >= 0 && rRange.Max() >= 0, "Min Max < 0");
|
2000-09-18 23:08:29 +00:00
|
|
|
|
|
|
|
const USHORT nMin = (USHORT)rRange.Min();
|
|
|
|
const USHORT nMax = (USHORT)rRange.Max();
|
|
|
|
|
2003-12-01 15:35:27 +00:00
|
|
|
USHORT i;
|
2002-06-26 08:32:38 +00:00
|
|
|
|
2003-12-01 15:35:27 +00:00
|
|
|
for( i = nMin; i < nMax; ++i)
|
2000-09-18 23:08:29 +00:00
|
|
|
{
|
|
|
|
SwTOXSortTabBase* pBase = aSortArr[i];
|
2002-06-26 08:32:38 +00:00
|
|
|
|
|
|
|
String sMyString, sMyStringReading;
|
|
|
|
pBase->GetTxt( sMyString, sMyStringReading );
|
|
|
|
|
|
|
|
if( rIntl.IsEqual( sMyString, sMyStringReading, pBase->GetLocale(),
|
|
|
|
sToCompare, sToCompareReading, rNew.GetLocale() ) &&
|
|
|
|
pBase->GetLevel() == nLevel &&
|
|
|
|
pBase->GetType() == TOX_SORT_CUSTOM )
|
2000-09-18 23:08:29 +00:00
|
|
|
break;
|
|
|
|
}
|
|
|
|
if(i == nMax)
|
|
|
|
{ // Falls nicht vorhanden erzeugen und einfuegen
|
|
|
|
//
|
2003-09-11 08:39:48 +00:00
|
|
|
SwTOXCustom* pKey = new SwTOXCustom( sToCompare, sToCompareReading, nLevel, rIntl,
|
2002-06-26 08:32:38 +00:00
|
|
|
rNew.GetLocale() );
|
2000-09-18 23:08:29 +00:00
|
|
|
for(i = nMin; i < nMax; ++i)
|
|
|
|
{
|
|
|
|
if(nLevel == aSortArr[i]->GetLevel() && *pKey < *(aSortArr[i]))
|
|
|
|
break;
|
|
|
|
}
|
|
|
|
aSortArr.Insert(pKey, i );
|
|
|
|
}
|
|
|
|
USHORT nStart = i+1;
|
|
|
|
USHORT nEnd = aSortArr.Count();
|
|
|
|
|
|
|
|
// Ende des Bereiches suchen
|
|
|
|
for(i = nStart; i < aSortArr.Count(); ++i)
|
|
|
|
{
|
|
|
|
if(aSortArr[i]->GetLevel() <= nLevel)
|
|
|
|
{ nEnd = i;
|
|
|
|
break;
|
|
|
|
}
|
|
|
|
}
|
|
|
|
return Range(nStart, nEnd);
|
|
|
|
}
|
|
|
|
|
|
|
|
BOOL SwTOXBase::IsTOXBaseInReadonly() const
|
|
|
|
{
|
|
|
|
const SwTOXBaseSection *pSect = PTR_CAST(SwTOXBaseSection, this);
|
|
|
|
BOOL bRet = FALSE;
|
|
|
|
const SwSectionNode* pSectNode;
|
|
|
|
if(pSect && pSect->GetFmt() &&
|
|
|
|
0 != (pSectNode = pSect->GetFmt()->GetSectionNode()))
|
|
|
|
{
|
|
|
|
const SwDocShell* pDocSh;
|
|
|
|
bRet = (0 != (pDocSh = pSectNode->GetDoc()->GetDocShell()) &&
|
|
|
|
pDocSh->IsReadOnly()) ||
|
2006-08-14 15:00:00 +00:00
|
|
|
(0 != (pSectNode = pSectNode->StartOfSectionNode()->FindSectionNode())&&
|
2000-09-18 23:08:29 +00:00
|
|
|
pSectNode->GetSection().IsProtectFlag());
|
|
|
|
|
|
|
|
}
|
|
|
|
return bRet;
|
|
|
|
}
|
|
|
|
|
|
|
|
const SfxItemSet* SwTOXBase::GetAttrSet() const
|
|
|
|
{
|
|
|
|
const SwTOXBaseSection *pSect = PTR_CAST(SwTOXBaseSection, this);
|
|
|
|
if(pSect && pSect->GetFmt())
|
|
|
|
return &pSect->GetFmt()->GetAttrSet();
|
|
|
|
return 0;
|
|
|
|
}
|
|
|
|
|
|
|
|
void SwTOXBase::SetAttrSet( const SfxItemSet& rSet )
|
|
|
|
{
|
|
|
|
SwTOXBaseSection *pSect = PTR_CAST(SwTOXBaseSection, this);
|
|
|
|
if( pSect && pSect->GetFmt() )
|
2008-06-13 08:36:06 +00:00
|
|
|
pSect->GetFmt()->SetFmtAttr( rSet );
|
2000-09-18 23:08:29 +00:00
|
|
|
}
|
|
|
|
|
|
|
|
BOOL SwTOXBase::GetInfo( SfxPoolItem& rInfo ) const
|
|
|
|
{
|
|
|
|
switch( rInfo.Which() )
|
|
|
|
{
|
|
|
|
case RES_CONTENT_VISIBLE:
|
|
|
|
{
|
|
|
|
SwTOXBaseSection *pSect = PTR_CAST(SwTOXBaseSection, this);
|
|
|
|
if( pSect && pSect->GetFmt() )
|
|
|
|
pSect->GetFmt()->GetInfo( rInfo );
|
|
|
|
}
|
|
|
|
return FALSE;
|
|
|
|
}
|
|
|
|
return TRUE;
|
|
|
|
}
|
2010-10-14 08:30:41 +02:00
|
|
|
|
|
|
|
/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
|