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 11:57:52 +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 11:57:52 +00:00
|
|
|
* OpenOffice.org - a multi-platform office productivity suite
|
2000-09-18 23:08:29 +00:00
|
|
|
*
|
2008-04-10 11:57:52 +00:00
|
|
|
* This file is part of OpenOffice.org.
|
2000-09-18 23:08:29 +00:00
|
|
|
*
|
2008-04-10 11:57:52 +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 11:57:52 +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 11:57:52 +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:45:21 +00:00
|
|
|
// MARKER(update_precomp.py): autogen include statement, do not remove
|
|
|
|
#include "precompiled_sw.hxx"
|
|
|
|
|
2000-09-18 23:08:29 +00:00
|
|
|
|
|
|
|
#include <hintids.hxx>
|
2011-11-18 21:03:31 +00:00
|
|
|
#include <comphelper/string.hxx>
|
2009-10-16 00:05:16 +02:00
|
|
|
#include <svl/itemiter.hxx>
|
2010-01-08 18:32:51 +01:00
|
|
|
#include <editeng/lrspitem.hxx>
|
|
|
|
#include <editeng/adjitem.hxx>
|
|
|
|
#include <editeng/brkitem.hxx>
|
2002-02-08 14:06:36 +00:00
|
|
|
#include <svx/svdobj.hxx>
|
2000-09-18 23:08:29 +00:00
|
|
|
#include <crsrsh.hxx>
|
|
|
|
#include <doc.hxx>
|
2010-11-25 14:31:08 +01:00
|
|
|
#include <IDocumentUndoRedo.hxx>
|
2000-09-18 23:08:29 +00:00
|
|
|
#include <pagefrm.hxx>
|
|
|
|
#include <cntfrm.hxx>
|
|
|
|
#include <rootfrm.hxx>
|
|
|
|
#include <pam.hxx>
|
|
|
|
#include <ndtxt.hxx>
|
|
|
|
#include <fldbas.hxx>
|
|
|
|
#include <swtable.hxx> // SwTxtFld
|
|
|
|
#include <docary.hxx>
|
|
|
|
#include <txtfld.hxx>
|
|
|
|
#include <fmtfld.hxx>
|
|
|
|
#include <txtftn.hxx>
|
|
|
|
#include <txtinet.hxx>
|
|
|
|
#include <fmtinfmt.hxx>
|
|
|
|
#include <txttxmrk.hxx>
|
|
|
|
#include <frmfmt.hxx>
|
2002-02-08 14:06:36 +00:00
|
|
|
#include <flyfrm.hxx>
|
2000-09-18 23:08:29 +00:00
|
|
|
#include <viscrs.hxx>
|
|
|
|
#include <callnk.hxx>
|
|
|
|
#include <doctxm.hxx>
|
|
|
|
#include <docfld.hxx>
|
|
|
|
#include <expfld.hxx>
|
|
|
|
#include <reffld.hxx>
|
|
|
|
#include <flddat.hxx> // SwTxtFld
|
|
|
|
#include <cellatr.hxx>
|
|
|
|
#include <swundo.hxx>
|
|
|
|
#include <redline.hxx>
|
|
|
|
#include <fmtcntnt.hxx>
|
|
|
|
#include <fmthdft.hxx>
|
|
|
|
#include <pagedesc.hxx>
|
2002-02-08 14:06:36 +00:00
|
|
|
#include <fesh.hxx>
|
|
|
|
#include <charfmt.hxx>
|
|
|
|
#include <fmturl.hxx>
|
2003-12-01 08:37:46 +00:00
|
|
|
#include "txtfrm.hxx"
|
2007-06-27 12:17:44 +00:00
|
|
|
#include <wrong.hxx>
|
2010-12-17 09:02:23 +01:00
|
|
|
#include <switerator.hxx>
|
2004-04-07 11:43:03 +00:00
|
|
|
#include <vcl/window.hxx>
|
2011-01-28 11:31:24 +00:00
|
|
|
#include <docufld.hxx>
|
2004-04-07 11:43:03 +00:00
|
|
|
|
2007-09-27 07:28:58 +00:00
|
|
|
using namespace ::com::sun::star;
|
|
|
|
|
|
|
|
|
2000-09-18 23:08:29 +00:00
|
|
|
// zum naechsten/vorhergehenden Punkt auf gleicher Ebene
|
2011-01-17 15:06:54 +01:00
|
|
|
sal_Bool SwCrsrShell::GotoNextNum()
|
2000-09-18 23:08:29 +00:00
|
|
|
{
|
2011-01-17 15:06:54 +01:00
|
|
|
sal_Bool bRet = GetDoc()->GotoNextNum( *pCurCrsr->GetPoint() );
|
2000-09-18 23:08:29 +00:00
|
|
|
if( bRet )
|
|
|
|
{
|
|
|
|
SwCallLink aLk( *this ); // Crsr-Moves ueberwachen,
|
|
|
|
SwCrsrSaveState aSaveState( *pCurCrsr );
|
|
|
|
if( !ActionPend() )
|
|
|
|
{
|
|
|
|
SET_CURR_SHELL( this );
|
|
|
|
// dann versuche den Cursor auf die Position zu setzen,
|
|
|
|
// auf halber Heohe vom Char-SRectangle
|
|
|
|
Point aPt( pCurCrsr->GetPtPos() );
|
2010-06-13 15:22:56 +02:00
|
|
|
SwCntntFrm * pFrm = pCurCrsr->GetCntntNode()->getLayoutFrm( GetLayout(), &aPt,
|
2000-09-18 23:08:29 +00:00
|
|
|
pCurCrsr->GetPoint() );
|
|
|
|
pFrm->GetCharRect( aCharRect, *pCurCrsr->GetPoint() );
|
|
|
|
pFrm->Calc();
|
2007-11-22 14:30:34 +00:00
|
|
|
if( pFrm->IsVertical() )
|
|
|
|
{
|
|
|
|
aPt.X() = aCharRect.Center().X();
|
|
|
|
aPt.Y() = pFrm->Frm().Top() + nUpDownX;
|
|
|
|
}
|
|
|
|
else
|
|
|
|
{
|
|
|
|
aPt.Y() = aCharRect.Center().Y();
|
|
|
|
aPt.X() = pFrm->Frm().Left() + nUpDownX;
|
|
|
|
}
|
2000-09-18 23:08:29 +00:00
|
|
|
pFrm->GetCrsrOfst( pCurCrsr->GetPoint(), aPt );
|
2007-09-27 07:28:58 +00:00
|
|
|
bRet = !pCurCrsr->IsSelOvr( nsSwCursorSelOverFlags::SELOVER_TOGGLE |
|
|
|
|
nsSwCursorSelOverFlags::SELOVER_CHANGEPOS );
|
2000-09-18 23:08:29 +00:00
|
|
|
if( bRet )
|
|
|
|
UpdateCrsr(SwCrsrShell::UPDOWN |
|
|
|
|
SwCrsrShell::SCROLLWIN | SwCrsrShell::CHKRANGE |
|
|
|
|
SwCrsrShell::READONLY );
|
|
|
|
}
|
|
|
|
}
|
|
|
|
return bRet;
|
|
|
|
}
|
|
|
|
|
|
|
|
|
2011-01-17 15:06:54 +01:00
|
|
|
sal_Bool SwCrsrShell::GotoPrevNum()
|
2000-09-18 23:08:29 +00:00
|
|
|
{
|
2011-01-17 15:06:54 +01:00
|
|
|
sal_Bool bRet = GetDoc()->GotoPrevNum( *pCurCrsr->GetPoint() );
|
2000-09-18 23:08:29 +00:00
|
|
|
if( bRet )
|
|
|
|
{
|
|
|
|
SwCallLink aLk( *this ); // Crsr-Moves ueberwachen,
|
|
|
|
SwCrsrSaveState aSaveState( *pCurCrsr );
|
|
|
|
if( !ActionPend() )
|
|
|
|
{
|
|
|
|
SET_CURR_SHELL( this );
|
|
|
|
// dann versuche den Cursor auf die Position zu setzen,
|
|
|
|
// auf halber Heohe vom Char-SRectangle
|
|
|
|
Point aPt( pCurCrsr->GetPtPos() );
|
2010-06-13 15:22:56 +02:00
|
|
|
SwCntntFrm * pFrm = pCurCrsr->GetCntntNode()->getLayoutFrm( GetLayout(), &aPt,
|
2000-09-18 23:08:29 +00:00
|
|
|
pCurCrsr->GetPoint() );
|
|
|
|
pFrm->GetCharRect( aCharRect, *pCurCrsr->GetPoint() );
|
|
|
|
pFrm->Calc();
|
2007-11-22 14:30:34 +00:00
|
|
|
if( pFrm->IsVertical() )
|
|
|
|
{
|
|
|
|
aPt.X() = aCharRect.Center().X();
|
|
|
|
aPt.Y() = pFrm->Frm().Top() + nUpDownX;
|
|
|
|
}
|
|
|
|
else
|
|
|
|
{
|
|
|
|
aPt.Y() = aCharRect.Center().Y();
|
|
|
|
aPt.X() = pFrm->Frm().Left() + nUpDownX;
|
|
|
|
}
|
2000-09-18 23:08:29 +00:00
|
|
|
pFrm->GetCrsrOfst( pCurCrsr->GetPoint(), aPt );
|
2007-09-27 07:28:58 +00:00
|
|
|
bRet = !pCurCrsr->IsSelOvr( nsSwCursorSelOverFlags::SELOVER_TOGGLE |
|
|
|
|
nsSwCursorSelOverFlags::SELOVER_CHANGEPOS );
|
2000-09-18 23:08:29 +00:00
|
|
|
if( bRet )
|
|
|
|
UpdateCrsr(SwCrsrShell::UPDOWN |
|
|
|
|
SwCrsrShell::SCROLLWIN | SwCrsrShell::CHKRANGE |
|
|
|
|
SwCrsrShell::READONLY );
|
|
|
|
}
|
|
|
|
}
|
|
|
|
return bRet;
|
|
|
|
}
|
|
|
|
|
|
|
|
// springe aus dem Content zum Header
|
|
|
|
|
2011-01-17 15:06:54 +01:00
|
|
|
sal_Bool SwCrsrShell::GotoHeaderTxt()
|
2000-09-18 23:08:29 +00:00
|
|
|
{
|
|
|
|
const SwFrm* pFrm = GetCurrFrm()->FindPageFrm();
|
|
|
|
while( pFrm && !pFrm->IsHeaderFrm() )
|
|
|
|
pFrm = pFrm->GetLower();
|
|
|
|
// Header gefunden, dann suche den 1.Cntnt-Frame
|
|
|
|
while( pFrm && !pFrm->IsCntntFrm() )
|
|
|
|
pFrm = pFrm->GetLower();
|
|
|
|
if( pFrm )
|
|
|
|
{
|
|
|
|
SET_CURR_SHELL( this );
|
|
|
|
// hole den Header-Frame
|
|
|
|
SwCallLink aLk( *this ); // Crsr-Moves ueberwachen,
|
2007-11-22 14:30:34 +00:00
|
|
|
SwCursor *pTmpCrsr = getShellCrsr( true );
|
|
|
|
SwCrsrSaveState aSaveState( *pTmpCrsr );
|
2000-09-18 23:08:29 +00:00
|
|
|
pFrm->Calc();
|
|
|
|
Point aPt( pFrm->Frm().Pos() + pFrm->Prt().Pos() );
|
2007-11-22 14:30:34 +00:00
|
|
|
pFrm->GetCrsrOfst( pTmpCrsr->GetPoint(), aPt );
|
|
|
|
if( !pTmpCrsr->IsSelOvr() )
|
2000-09-18 23:08:29 +00:00
|
|
|
UpdateCrsr();
|
|
|
|
else
|
|
|
|
pFrm = 0;
|
|
|
|
}
|
|
|
|
return 0 != pFrm;
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
// springe aus dem Content zum Footer
|
|
|
|
|
2011-01-17 15:06:54 +01:00
|
|
|
sal_Bool SwCrsrShell::GotoFooterTxt()
|
2000-09-18 23:08:29 +00:00
|
|
|
{
|
|
|
|
const SwPageFrm* pFrm = GetCurrFrm()->FindPageFrm();
|
|
|
|
if( pFrm )
|
|
|
|
{
|
2006-03-09 13:04:18 +00:00
|
|
|
const SwFrm* pLower = pFrm->GetLastLower();
|
2000-09-18 23:08:29 +00:00
|
|
|
|
|
|
|
while( pLower && !pLower->IsFooterFrm() )
|
|
|
|
pLower = pLower->GetLower();
|
|
|
|
// Header gefunden, dann suche den 1.Cntnt-Frame
|
|
|
|
while( pLower && !pLower->IsCntntFrm() )
|
|
|
|
pLower = pLower->GetLower();
|
|
|
|
|
|
|
|
if( pLower )
|
|
|
|
{
|
2007-11-22 14:30:34 +00:00
|
|
|
SwCursor *pTmpCrsr = getShellCrsr( true );
|
2000-09-18 23:08:29 +00:00
|
|
|
SET_CURR_SHELL( this );
|
|
|
|
// hole eine Position im Footer
|
|
|
|
SwCallLink aLk( *this ); // Crsr-Moves ueberwachen,
|
2007-11-22 14:30:34 +00:00
|
|
|
SwCrsrSaveState aSaveState( *pTmpCrsr );
|
2000-09-18 23:08:29 +00:00
|
|
|
pLower->Calc();
|
|
|
|
Point aPt( pLower->Frm().Pos() + pLower->Prt().Pos() );
|
2007-11-22 14:30:34 +00:00
|
|
|
pLower->GetCrsrOfst( pTmpCrsr->GetPoint(), aPt );
|
|
|
|
if( !pTmpCrsr->IsSelOvr() )
|
2000-09-18 23:08:29 +00:00
|
|
|
UpdateCrsr();
|
|
|
|
else
|
|
|
|
pFrm = 0;
|
|
|
|
}
|
|
|
|
else
|
|
|
|
pFrm = 0;
|
|
|
|
}
|
|
|
|
else
|
|
|
|
pFrm = 0;
|
|
|
|
return 0 != pFrm;
|
|
|
|
}
|
|
|
|
|
2011-01-17 15:06:54 +01:00
|
|
|
sal_Bool SwCrsrShell::SetCrsrInHdFt( sal_uInt16 nDescNo, sal_Bool bInHeader )
|
2000-09-18 23:08:29 +00:00
|
|
|
{
|
2011-01-17 15:06:54 +01:00
|
|
|
sal_Bool bRet = sal_False;
|
2007-09-27 07:28:58 +00:00
|
|
|
SwDoc *pMyDoc = GetDoc();
|
2000-09-18 23:08:29 +00:00
|
|
|
|
|
|
|
SET_CURR_SHELL( this );
|
|
|
|
|
|
|
|
if( USHRT_MAX == nDescNo )
|
|
|
|
{
|
|
|
|
// dann den akt. nehmen
|
|
|
|
const SwPageFrm* pPage = GetCurrFrm()->FindPageFrm();
|
|
|
|
if( pPage )
|
2011-01-17 15:06:54 +01:00
|
|
|
for( sal_uInt16 i = 0; i < pMyDoc->GetPageDescCnt(); ++i )
|
2004-05-25 13:58:25 +00:00
|
|
|
if( pPage->GetPageDesc() ==
|
2007-09-27 07:28:58 +00:00
|
|
|
&const_cast<const SwDoc *>(pMyDoc)->GetPageDesc( i ) )
|
2000-09-18 23:08:29 +00:00
|
|
|
{
|
|
|
|
nDescNo = i;
|
|
|
|
break;
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
2007-09-27 07:28:58 +00:00
|
|
|
if( USHRT_MAX != nDescNo && nDescNo < pMyDoc->GetPageDescCnt() )
|
2000-09-18 23:08:29 +00:00
|
|
|
{
|
|
|
|
//dann teste mal, ob ueberhaupt das Attribut vorhanden ist.
|
2007-09-27 07:28:58 +00:00
|
|
|
const SwPageDesc& rDesc = const_cast<const SwDoc *>(pMyDoc)
|
2004-05-25 13:58:25 +00:00
|
|
|
->GetPageDesc( nDescNo );
|
2000-09-18 23:08:29 +00:00
|
|
|
const SwFmtCntnt* pCnt = 0;
|
|
|
|
if( bInHeader )
|
|
|
|
{
|
|
|
|
// gespiegelte Seiten??? erstmal nicht beachten
|
|
|
|
const SwFmtHeader& rHd = rDesc.GetMaster().GetHeader();
|
|
|
|
if( rHd.GetHeaderFmt() )
|
|
|
|
pCnt = &rHd.GetHeaderFmt()->GetCntnt();
|
|
|
|
}
|
|
|
|
else
|
|
|
|
{
|
|
|
|
const SwFmtFooter& rFt = rDesc.GetMaster().GetFooter();
|
|
|
|
if( rFt.GetFooterFmt() )
|
|
|
|
pCnt = &rFt.GetFooterFmt()->GetCntnt();
|
|
|
|
}
|
|
|
|
|
|
|
|
if( pCnt && pCnt->GetCntntIdx() )
|
|
|
|
{
|
|
|
|
SwNodeIndex aIdx( *pCnt->GetCntntIdx(), 1 );
|
|
|
|
SwCntntNode* pCNd = aIdx.GetNode().GetCntntNode();
|
|
|
|
if( !pCNd )
|
2007-09-27 07:28:58 +00:00
|
|
|
pCNd = pMyDoc->GetNodes().GoNext( &aIdx );
|
2000-09-18 23:08:29 +00:00
|
|
|
|
|
|
|
const SwFrm* pFrm;
|
|
|
|
Point aPt( pCurCrsr->GetPtPos() );
|
|
|
|
|
2011-02-09 15:55:27 +01:00
|
|
|
if( pCNd && 0 != ( pFrm = pCNd->getLayoutFrm( GetLayout(), &aPt, 0, sal_False ) ))
|
2000-09-18 23:08:29 +00:00
|
|
|
{
|
|
|
|
// dann kann der Cursor ja auch hinein gesetzt werden
|
|
|
|
SwCallLink aLk( *this ); // Crsr-Moves ueberwachen, evt. Link callen
|
|
|
|
SwCrsrSaveState aSaveState( *pCurCrsr );
|
|
|
|
|
|
|
|
ClearMark();
|
|
|
|
|
|
|
|
SwPosition& rPos = *pCurCrsr->GetPoint();
|
|
|
|
rPos.nNode = *pCNd;
|
|
|
|
rPos.nContent.Assign( pCNd, 0 );
|
|
|
|
|
|
|
|
bRet = !pCurCrsr->IsSelOvr();
|
|
|
|
if( bRet )
|
|
|
|
UpdateCrsr( SwCrsrShell::SCROLLWIN | SwCrsrShell::CHKRANGE |
|
|
|
|
SwCrsrShell::READONLY );
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
return bRet;
|
|
|
|
}
|
|
|
|
|
|
|
|
// springe zum naechsten Verzeichnis
|
|
|
|
|
2011-01-17 15:06:54 +01:00
|
|
|
sal_Bool SwCrsrShell::GotoNextTOXBase( const String* pName )
|
2000-09-18 23:08:29 +00:00
|
|
|
{
|
2011-01-17 15:06:54 +01:00
|
|
|
sal_Bool bRet = sal_False;
|
2000-09-18 23:08:29 +00:00
|
|
|
|
|
|
|
const SwSectionFmts& rFmts = GetDoc()->GetSections();
|
|
|
|
SwCntntNode* pFnd = 0;
|
2011-01-17 15:06:54 +01:00
|
|
|
for( sal_uInt16 n = rFmts.Count(); n; )
|
2000-09-18 23:08:29 +00:00
|
|
|
{
|
|
|
|
const SwSection* pSect = rFmts[ --n ]->GetSection();
|
|
|
|
const SwSectionNode* pSectNd;
|
|
|
|
if( TOX_CONTENT_SECTION == pSect->GetType() &&
|
|
|
|
0 != ( pSectNd = pSect->GetFmt()->GetSectionNode() ) &&
|
|
|
|
pCurCrsr->GetPoint()->nNode < pSectNd->GetIndex() &&
|
|
|
|
( !pFnd || pFnd->GetIndex() > pSectNd->GetIndex() ) &&
|
|
|
|
( !pName || *pName == ((SwTOXBaseSection*)pSect)->GetTOXName() )
|
|
|
|
)
|
|
|
|
{
|
|
|
|
SwNodeIndex aIdx( *pSectNd, 1 );
|
|
|
|
SwCntntNode* pCNd = aIdx.GetNode().GetCntntNode();
|
|
|
|
if( !pCNd )
|
|
|
|
pCNd = GetDoc()->GetNodes().GoNext( &aIdx );
|
|
|
|
const SwCntntFrm* pCFrm;
|
|
|
|
if( pCNd &&
|
|
|
|
pCNd->EndOfSectionIndex() <= pSectNd->EndOfSectionIndex() &&
|
2010-06-13 15:22:56 +02:00
|
|
|
0 != ( pCFrm = pCNd->getLayoutFrm( GetLayout() ) ) &&
|
2000-09-18 23:08:29 +00:00
|
|
|
( IsReadOnlyAvailable() || !pCFrm->IsProtected() ))
|
|
|
|
{
|
|
|
|
pFnd = pCNd;
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
if( pFnd )
|
|
|
|
{
|
|
|
|
SwCallLink aLk( *this ); // Crsr-Moves ueberwachen,
|
|
|
|
SwCrsrSaveState aSaveState( *pCurCrsr );
|
|
|
|
pCurCrsr->GetPoint()->nNode = *pFnd;
|
|
|
|
pCurCrsr->GetPoint()->nContent.Assign( pFnd, 0 );
|
|
|
|
bRet = !pCurCrsr->IsSelOvr();
|
|
|
|
if( bRet )
|
|
|
|
UpdateCrsr(SwCrsrShell::SCROLLWIN|SwCrsrShell::CHKRANGE|SwCrsrShell::READONLY);
|
|
|
|
}
|
|
|
|
return bRet;
|
|
|
|
}
|
|
|
|
|
|
|
|
// springe zum vorherigen Verzeichnis
|
|
|
|
|
|
|
|
|
2011-01-17 15:06:54 +01:00
|
|
|
sal_Bool SwCrsrShell::GotoPrevTOXBase( const String* pName )
|
2000-09-18 23:08:29 +00:00
|
|
|
{
|
2011-01-17 15:06:54 +01:00
|
|
|
sal_Bool bRet = sal_False;
|
2000-09-18 23:08:29 +00:00
|
|
|
|
|
|
|
const SwSectionFmts& rFmts = GetDoc()->GetSections();
|
|
|
|
SwCntntNode* pFnd = 0;
|
2011-01-17 15:06:54 +01:00
|
|
|
for( sal_uInt16 n = rFmts.Count(); n; )
|
2000-09-18 23:08:29 +00:00
|
|
|
{
|
|
|
|
const SwSection* pSect = rFmts[ --n ]->GetSection();
|
|
|
|
const SwSectionNode* pSectNd;
|
|
|
|
if( TOX_CONTENT_SECTION == pSect->GetType() &&
|
|
|
|
0 != ( pSectNd = pSect->GetFmt()->GetSectionNode() ) &&
|
|
|
|
pCurCrsr->GetPoint()->nNode > pSectNd->EndOfSectionIndex() &&
|
|
|
|
( !pFnd || pFnd->GetIndex() < pSectNd->GetIndex() ) &&
|
|
|
|
( !pName || *pName == ((SwTOXBaseSection*)pSect)->GetTOXName() )
|
|
|
|
)
|
|
|
|
{
|
|
|
|
SwNodeIndex aIdx( *pSectNd, 1 );
|
|
|
|
SwCntntNode* pCNd = aIdx.GetNode().GetCntntNode();
|
|
|
|
if( !pCNd )
|
|
|
|
pCNd = GetDoc()->GetNodes().GoNext( &aIdx );
|
|
|
|
const SwCntntFrm* pCFrm;
|
|
|
|
if( pCNd &&
|
|
|
|
pCNd->EndOfSectionIndex() <= pSectNd->EndOfSectionIndex() &&
|
2010-06-13 15:22:56 +02:00
|
|
|
0 != ( pCFrm = pCNd->getLayoutFrm( GetLayout() ) ) &&
|
2000-09-18 23:08:29 +00:00
|
|
|
( IsReadOnlyAvailable() || !pCFrm->IsProtected() ))
|
|
|
|
{
|
|
|
|
pFnd = pCNd;
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
if( pFnd )
|
|
|
|
{
|
|
|
|
SwCallLink aLk( *this ); // Crsr-Moves ueberwachen,
|
|
|
|
SwCrsrSaveState aSaveState( *pCurCrsr );
|
|
|
|
pCurCrsr->GetPoint()->nNode = *pFnd;
|
|
|
|
pCurCrsr->GetPoint()->nContent.Assign( pFnd, 0 );
|
|
|
|
bRet = !pCurCrsr->IsSelOvr();
|
|
|
|
if( bRet )
|
|
|
|
UpdateCrsr(SwCrsrShell::SCROLLWIN|SwCrsrShell::CHKRANGE|SwCrsrShell::READONLY);
|
|
|
|
}
|
|
|
|
return bRet;
|
|
|
|
}
|
|
|
|
|
|
|
|
// springe zum Verzeichnis vom TOXMark
|
|
|
|
|
2011-01-17 15:06:54 +01:00
|
|
|
sal_Bool SwCrsrShell::GotoTOXMarkBase()
|
2000-09-18 23:08:29 +00:00
|
|
|
{
|
2011-01-17 15:06:54 +01:00
|
|
|
sal_Bool bRet = sal_False;
|
2000-09-18 23:08:29 +00:00
|
|
|
|
|
|
|
SwTOXMarks aMarks;
|
2011-01-17 15:06:54 +01:00
|
|
|
sal_uInt16 nCnt = GetDoc()->GetCurTOXMark( *pCurCrsr->GetPoint(), aMarks );
|
2000-09-18 23:08:29 +00:00
|
|
|
if( nCnt )
|
|
|
|
{
|
|
|
|
// dann nehme den 1. und hole den Verzeichnis-Typ.
|
|
|
|
// Suche in seiner Abhaengigkeitsliste nach dem eigentlichem
|
|
|
|
// Verzeichnis
|
2010-12-17 09:02:23 +01:00
|
|
|
const SwTOXType* pType = aMarks[0]->GetTOXType();
|
|
|
|
SwIterator<SwTOXBase,SwTOXType> aIter( *pType );
|
2000-09-18 23:08:29 +00:00
|
|
|
const SwSectionNode* pSectNd;
|
|
|
|
const SwSectionFmt* pSectFmt;
|
|
|
|
|
2010-12-17 09:02:23 +01:00
|
|
|
for( SwTOXBase* pTOX = aIter.First(); pTOX; pTOX = aIter.Next() )
|
|
|
|
{
|
2000-09-18 23:08:29 +00:00
|
|
|
if( pTOX->ISA( SwTOXBaseSection ) &&
|
|
|
|
0 != ( pSectFmt = ((SwTOXBaseSection*)pTOX)->GetFmt() ) &&
|
|
|
|
0 != ( pSectNd = pSectFmt->GetSectionNode() ))
|
|
|
|
{
|
|
|
|
SwNodeIndex aIdx( *pSectNd, 1 );
|
|
|
|
SwCntntNode* pCNd = aIdx.GetNode().GetCntntNode();
|
|
|
|
if( !pCNd )
|
|
|
|
pCNd = GetDoc()->GetNodes().GoNext( &aIdx );
|
|
|
|
const SwCntntFrm* pCFrm;
|
|
|
|
if( pCNd &&
|
|
|
|
pCNd->EndOfSectionIndex() < pSectNd->EndOfSectionIndex() &&
|
2010-06-13 15:22:56 +02:00
|
|
|
0 != ( pCFrm = pCNd->getLayoutFrm( GetLayout() ) ) &&
|
2000-09-18 23:08:29 +00:00
|
|
|
( IsReadOnlyAvailable() || !pCFrm->IsProtected() ))
|
|
|
|
{
|
|
|
|
SwCallLink aLk( *this ); // Crsr-Moves ueberwachen,
|
|
|
|
SwCrsrSaveState aSaveState( *pCurCrsr );
|
|
|
|
pCurCrsr->GetPoint()->nNode = *pCNd;
|
|
|
|
pCurCrsr->GetPoint()->nContent.Assign( pCNd, 0 );
|
|
|
|
bRet = !pCurCrsr->IsInProtectTable() &&
|
|
|
|
!pCurCrsr->IsSelOvr();
|
|
|
|
if( bRet )
|
|
|
|
UpdateCrsr(SwCrsrShell::SCROLLWIN|SwCrsrShell::CHKRANGE|SwCrsrShell::READONLY);
|
|
|
|
break;
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
2010-12-17 09:02:23 +01:00
|
|
|
}
|
2000-09-18 23:08:29 +00:00
|
|
|
return bRet;
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
// springe zur naechsten (vorherigen) Tabellenformel
|
|
|
|
// optional auch nur zu kaputten Formeln springen
|
2011-01-17 15:06:54 +01:00
|
|
|
sal_Bool SwCrsrShell::GotoNxtPrvTblFormula( sal_Bool bNext, sal_Bool bOnlyErrors )
|
2000-09-18 23:08:29 +00:00
|
|
|
{
|
|
|
|
if( IsTableMode() )
|
2011-01-17 15:06:54 +01:00
|
|
|
return sal_False;
|
2000-09-18 23:08:29 +00:00
|
|
|
|
2011-01-17 15:06:54 +01:00
|
|
|
sal_Bool bFnd = sal_False;
|
2000-09-18 23:08:29 +00:00
|
|
|
SwPosition& rPos = *pCurCrsr->GetPoint();
|
|
|
|
|
|
|
|
Point aPt;
|
|
|
|
SwPosition aFndPos( GetDoc()->GetNodes().GetEndOfContent() );
|
|
|
|
if( !bNext )
|
|
|
|
aFndPos.nNode = 0;
|
|
|
|
_SetGetExpFld aFndGEF( aFndPos ), aCurGEF( rPos );
|
|
|
|
|
|
|
|
{
|
|
|
|
const SwNode* pSttNd = rPos.nNode.GetNode().FindTableBoxStartNode();
|
|
|
|
if( pSttNd )
|
|
|
|
{
|
|
|
|
const SwTableBox* pTBox = pSttNd->FindTableNode()->GetTable().
|
|
|
|
GetTblBox( pSttNd->GetIndex() );
|
|
|
|
if( pTBox )
|
|
|
|
aCurGEF = _SetGetExpFld( *pTBox );
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
if( rPos.nNode < GetDoc()->GetNodes().GetEndOfExtras() )
|
|
|
|
// auch beim Einsammeln wird nur der erste Frame benutzt!
|
2010-06-13 15:22:56 +02:00
|
|
|
aCurGEF.SetBodyPos( *rPos.nNode.GetNode().GetCntntNode()->getLayoutFrm( GetLayout(),
|
2011-01-17 15:06:54 +01:00
|
|
|
&aPt, &rPos, sal_False ) );
|
2000-09-18 23:08:29 +00:00
|
|
|
{
|
|
|
|
const SfxPoolItem* pItem;
|
|
|
|
const SwTableBox* pTBox;
|
2010-10-18 22:00:21 +02:00
|
|
|
sal_uInt32 n, nMaxItems = GetDoc()->GetAttrPool().GetItemCount2( RES_BOXATR_FORMULA );
|
2000-09-18 23:08:29 +00:00
|
|
|
|
|
|
|
for( n = 0; n < nMaxItems; ++n )
|
2010-10-18 22:00:21 +02:00
|
|
|
if( 0 != (pItem = GetDoc()->GetAttrPool().GetItem2(
|
2000-09-18 23:08:29 +00:00
|
|
|
RES_BOXATR_FORMULA, n ) ) &&
|
|
|
|
0 != (pTBox = ((SwTblBoxFormula*)pItem)->GetTableBox() ) &&
|
|
|
|
pTBox->GetSttNd() &&
|
|
|
|
pTBox->GetSttNd()->GetNodes().IsDocNodes() &&
|
|
|
|
( !bOnlyErrors ||
|
|
|
|
!((SwTblBoxFormula*)pItem)->HasValidBoxes() ) )
|
|
|
|
{
|
|
|
|
const SwCntntFrm* pCFrm;
|
|
|
|
SwNodeIndex aIdx( *pTBox->GetSttNd() );
|
|
|
|
const SwCntntNode* pCNd = GetDoc()->GetNodes().GoNext( &aIdx );
|
2011-02-09 15:55:27 +01:00
|
|
|
if( pCNd && 0 != ( pCFrm = pCNd->getLayoutFrm( GetLayout(), &aPt, 0, sal_False ) ) &&
|
2000-09-18 23:08:29 +00:00
|
|
|
(IsReadOnlyAvailable() || !pCFrm->IsProtected() ))
|
|
|
|
{
|
|
|
|
_SetGetExpFld aCmp( *pTBox );
|
|
|
|
aCmp.SetBodyPos( *pCFrm );
|
|
|
|
|
|
|
|
if( bNext ? ( aCurGEF < aCmp && aCmp < aFndGEF )
|
|
|
|
: ( aCmp < aCurGEF && aFndGEF < aCmp ))
|
|
|
|
{
|
|
|
|
aFndGEF = aCmp;
|
2011-01-17 15:06:54 +01:00
|
|
|
bFnd = sal_True;
|
2000-09-18 23:08:29 +00:00
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
if( bFnd )
|
|
|
|
{
|
|
|
|
SET_CURR_SHELL( this );
|
|
|
|
SwCallLink aLk( *this ); // Crsr-Moves ueberwachen, evt. Link callen
|
|
|
|
SwCrsrSaveState aSaveState( *pCurCrsr );
|
|
|
|
|
|
|
|
aFndGEF.GetPosOfContent( rPos );
|
|
|
|
pCurCrsr->DeleteMark();
|
|
|
|
|
|
|
|
bFnd = !pCurCrsr->IsSelOvr();
|
|
|
|
if( bFnd )
|
|
|
|
UpdateCrsr( SwCrsrShell::SCROLLWIN | SwCrsrShell::CHKRANGE |
|
|
|
|
SwCrsrShell::READONLY );
|
|
|
|
}
|
|
|
|
return bFnd;
|
|
|
|
}
|
|
|
|
|
|
|
|
// springe zum naechsten (vorherigen) Verzeichniseintrag
|
2011-01-17 15:06:54 +01:00
|
|
|
sal_Bool SwCrsrShell::GotoNxtPrvTOXMark( sal_Bool bNext )
|
2000-09-18 23:08:29 +00:00
|
|
|
{
|
|
|
|
if( IsTableMode() )
|
2011-01-17 15:06:54 +01:00
|
|
|
return sal_False;
|
2000-09-18 23:08:29 +00:00
|
|
|
|
2011-01-17 15:06:54 +01:00
|
|
|
sal_Bool bFnd = sal_False;
|
2000-09-18 23:08:29 +00:00
|
|
|
SwPosition& rPos = *pCurCrsr->GetPoint();
|
|
|
|
|
|
|
|
Point aPt;
|
|
|
|
SwPosition aFndPos( GetDoc()->GetNodes().GetEndOfContent() );
|
|
|
|
if( !bNext )
|
|
|
|
aFndPos.nNode = 0;
|
|
|
|
_SetGetExpFld aFndGEF( aFndPos ), aCurGEF( rPos );
|
|
|
|
|
|
|
|
if( rPos.nNode.GetIndex() < GetDoc()->GetNodes().GetEndOfExtras().GetIndex() )
|
|
|
|
// auch beim Einsammeln wird nur der erste Frame benutzt!
|
|
|
|
aCurGEF.SetBodyPos( *rPos.nNode.GetNode().
|
2011-02-09 15:55:27 +01:00
|
|
|
GetCntntNode()->getLayoutFrm( GetLayout(), &aPt, &rPos, sal_False ) );
|
2000-09-18 23:08:29 +00:00
|
|
|
{
|
|
|
|
const SfxPoolItem* pItem;
|
|
|
|
const SwCntntFrm* pCFrm;
|
|
|
|
const SwTxtNode* pTxtNd;
|
|
|
|
const SwTxtTOXMark* pTxtTOX;
|
2010-10-18 22:00:21 +02:00
|
|
|
sal_uInt32 n, nMaxItems = GetDoc()->GetAttrPool().GetItemCount2( RES_TXTATR_TOXMARK );
|
2000-09-18 23:08:29 +00:00
|
|
|
|
|
|
|
for( n = 0; n < nMaxItems; ++n )
|
2010-10-18 22:00:21 +02:00
|
|
|
if( 0 != (pItem = GetDoc()->GetAttrPool().GetItem2(
|
2000-09-18 23:08:29 +00:00
|
|
|
RES_TXTATR_TOXMARK, n ) ) &&
|
|
|
|
0 != (pTxtTOX = ((SwTOXMark*)pItem)->GetTxtTOXMark() ) &&
|
|
|
|
( pTxtNd = &pTxtTOX->GetTxtNode())->GetNodes().IsDocNodes() &&
|
2011-02-09 15:55:27 +01:00
|
|
|
0 != ( pCFrm = pTxtNd->getLayoutFrm( GetLayout(), &aPt, 0, sal_False )) &&
|
2000-09-18 23:08:29 +00:00
|
|
|
( IsReadOnlyAvailable() || !pCFrm->IsProtected() ))
|
|
|
|
{
|
|
|
|
SwNodeIndex aNdIndex( *pTxtNd ); // UNIX benoetigt dieses Obj.
|
|
|
|
_SetGetExpFld aCmp( aNdIndex, *pTxtTOX, 0 );
|
|
|
|
aCmp.SetBodyPos( *pCFrm );
|
|
|
|
|
|
|
|
if( bNext ? ( aCurGEF < aCmp && aCmp < aFndGEF )
|
|
|
|
: ( aCmp < aCurGEF && aFndGEF < aCmp ))
|
|
|
|
{
|
|
|
|
aFndGEF = aCmp;
|
2011-01-17 15:06:54 +01:00
|
|
|
bFnd = sal_True;
|
2000-09-18 23:08:29 +00:00
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
if( bFnd )
|
|
|
|
{
|
|
|
|
SET_CURR_SHELL( this );
|
|
|
|
SwCallLink aLk( *this ); // Crsr-Moves ueberwachen, evt. Link callen
|
|
|
|
SwCrsrSaveState aSaveState( *pCurCrsr );
|
|
|
|
|
|
|
|
aFndGEF.GetPosOfContent( rPos );
|
|
|
|
|
|
|
|
bFnd = !pCurCrsr->IsSelOvr();
|
|
|
|
if( bFnd )
|
|
|
|
UpdateCrsr( SwCrsrShell::SCROLLWIN | SwCrsrShell::CHKRANGE |
|
|
|
|
SwCrsrShell::READONLY );
|
|
|
|
}
|
|
|
|
return bFnd;
|
|
|
|
}
|
|
|
|
|
|
|
|
/*--------------------------------------------------------------------
|
|
|
|
Beschreibung: Traveling zwischen Markierungen
|
|
|
|
--------------------------------------------------------------------*/
|
|
|
|
|
|
|
|
const SwTOXMark& SwCrsrShell::GotoTOXMark( const SwTOXMark& rStart,
|
|
|
|
SwTOXSearch eDir )
|
|
|
|
{
|
|
|
|
SET_CURR_SHELL( this );
|
|
|
|
SwCallLink aLk( *this ); // Crsr-Moves ueberwachen, evt. Link callen
|
|
|
|
SwCrsrSaveState aSaveState( *pCurCrsr );
|
|
|
|
|
|
|
|
const SwTOXMark& rNewMark = GetDoc()->GotoTOXMark( rStart, eDir,
|
|
|
|
IsReadOnlyAvailable() );
|
|
|
|
// Position setzen
|
|
|
|
SwPosition& rPos = *GetCrsr()->GetPoint();
|
|
|
|
rPos.nNode = rNewMark.GetTxtTOXMark()->GetTxtNode();
|
|
|
|
rPos.nContent.Assign( rPos.nNode.GetNode().GetCntntNode(),
|
|
|
|
*rNewMark.GetTxtTOXMark()->GetStart() );
|
|
|
|
|
|
|
|
if( !pCurCrsr->IsSelOvr() )
|
|
|
|
UpdateCrsr( SwCrsrShell::SCROLLWIN | SwCrsrShell::CHKRANGE |
|
|
|
|
SwCrsrShell::READONLY );
|
|
|
|
|
|
|
|
return rNewMark;
|
|
|
|
}
|
|
|
|
|
|
|
|
// springe zum naechsten / vorherigen FeldTypen
|
|
|
|
|
|
|
|
void lcl_MakeFldLst( _SetGetExpFlds& rLst, const SwFieldType& rFldType,
|
2011-01-17 15:06:54 +01:00
|
|
|
sal_uInt16 nSubType, sal_Bool bInReadOnly,
|
|
|
|
sal_Bool bChkInpFlag = sal_False )
|
2000-09-18 23:08:29 +00:00
|
|
|
{
|
|
|
|
// es muss immer der 1. Frame gesucht werden
|
|
|
|
Point aPt;
|
|
|
|
SwTxtFld* pTxtFld;
|
2010-12-17 09:02:23 +01:00
|
|
|
SwIterator<SwFmtFld,SwFieldType> aIter(rFldType);
|
2011-02-09 15:55:27 +01:00
|
|
|
bool bSubType = nSubType != USHRT_MAX;
|
2010-12-17 09:02:23 +01:00
|
|
|
for( SwFmtFld* pFmtFld = aIter.First(); pFmtFld; pFmtFld = aIter.Next() )
|
|
|
|
if( 0 != ( pTxtFld = pFmtFld->GetTxtFld() ) &&
|
2000-09-18 23:08:29 +00:00
|
|
|
( !bChkInpFlag || ((SwSetExpField*)pTxtFld->GetFld().GetFld())
|
|
|
|
->GetInputFlag() ) &&
|
2010-12-17 09:02:23 +01:00
|
|
|
(!bSubType || (pFmtFld->GetFld()->GetSubType()
|
2000-09-18 23:08:29 +00:00
|
|
|
& 0xff ) == nSubType ))
|
|
|
|
{
|
|
|
|
SwCntntFrm* pCFrm;
|
|
|
|
const SwTxtNode& rTxtNode = pTxtFld->GetTxtNode();
|
2011-02-09 15:55:27 +01:00
|
|
|
if( 0 != ( pCFrm = rTxtNode.getLayoutFrm( rTxtNode.GetDoc()->GetCurrentLayout(), &aPt, 0, sal_False )) &&
|
2000-09-18 23:08:29 +00:00
|
|
|
( bInReadOnly || !pCFrm->IsProtected() ))
|
|
|
|
{
|
|
|
|
_SetGetExpFld* pNew = new _SetGetExpFld(
|
|
|
|
SwNodeIndex( rTxtNode ), pTxtFld );
|
|
|
|
pNew->SetBodyPos( *pCFrm );
|
|
|
|
rLst.Insert( pNew );
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
|
2011-01-17 15:06:54 +01:00
|
|
|
sal_Bool SwCrsrShell::MoveFldType( const SwFieldType* pFldType, sal_Bool bNext,
|
|
|
|
sal_uInt16 nSubType, sal_uInt16 nResType )
|
2000-09-18 23:08:29 +00:00
|
|
|
{
|
|
|
|
// sortierte Liste aller Felder
|
|
|
|
_SetGetExpFlds aSrtLst( 64 );
|
|
|
|
|
|
|
|
if (pFldType)
|
|
|
|
{
|
|
|
|
if( RES_INPUTFLD != pFldType->Which() && !pFldType->GetDepends() )
|
2011-01-17 15:06:54 +01:00
|
|
|
return sal_False;
|
2000-09-18 23:08:29 +00:00
|
|
|
|
|
|
|
// Modify-Object gefunden, trage alle Felder ins Array ein
|
|
|
|
::lcl_MakeFldLst( aSrtLst, *pFldType, nSubType, IsReadOnlyAvailable() );
|
|
|
|
|
|
|
|
if( RES_INPUTFLD == pFldType->Which() )
|
|
|
|
{
|
|
|
|
// es gibt noch versteckte InputFelder in den SetExp. Feldern
|
|
|
|
const SwFldTypes& rFldTypes = *pDoc->GetFldTypes();
|
2011-01-17 15:06:54 +01:00
|
|
|
const sal_uInt16 nSize = rFldTypes.Count();
|
2000-09-18 23:08:29 +00:00
|
|
|
|
|
|
|
// Alle Typen abklappern
|
2011-01-17 15:06:54 +01:00
|
|
|
for( sal_uInt16 i=0; i < nSize; ++i )
|
2000-09-18 23:08:29 +00:00
|
|
|
if( RES_SETEXPFLD == ( pFldType = rFldTypes[ i ] )->Which() )
|
|
|
|
::lcl_MakeFldLst( aSrtLst, *pFldType, nSubType,
|
2011-01-17 15:06:54 +01:00
|
|
|
IsReadOnlyAvailable(), sal_True );
|
2000-09-18 23:08:29 +00:00
|
|
|
}
|
|
|
|
}
|
|
|
|
else
|
|
|
|
{
|
|
|
|
const SwFldTypes& rFldTypes = *pDoc->GetFldTypes();
|
2011-01-17 15:06:54 +01:00
|
|
|
const sal_uInt16 nSize = rFldTypes.Count();
|
2000-09-18 23:08:29 +00:00
|
|
|
|
|
|
|
// Alle Typen abklappern
|
2011-01-17 15:06:54 +01:00
|
|
|
for( sal_uInt16 i=0; i < nSize; ++i )
|
2000-09-18 23:08:29 +00:00
|
|
|
if( nResType == ( pFldType = rFldTypes[ i ] )->Which() )
|
|
|
|
::lcl_MakeFldLst( aSrtLst, *pFldType, nSubType,
|
|
|
|
IsReadOnlyAvailable() );
|
|
|
|
}
|
|
|
|
|
|
|
|
// keine Felder gefunden?
|
|
|
|
if( !aSrtLst.Count() )
|
2011-01-17 15:06:54 +01:00
|
|
|
return sal_False;
|
2000-09-18 23:08:29 +00:00
|
|
|
|
2011-01-17 15:06:54 +01:00
|
|
|
sal_uInt16 nPos;
|
2007-11-22 14:30:34 +00:00
|
|
|
SwCursor* pCrsr = getShellCrsr( true );
|
2000-09-18 23:08:29 +00:00
|
|
|
{
|
|
|
|
// JP 19.08.98: es muss immer ueber das Feld gesucht werden, damit
|
|
|
|
// auch immer das richtige gefunden wird, wenn welche in
|
|
|
|
// Rahmen stehen, die in einem Absatz verankert sind,
|
|
|
|
// in dem ein Feld steht - siehe auch Bug 55247
|
|
|
|
const SwPosition& rPos = *pCrsr->GetPoint();
|
|
|
|
|
|
|
|
SwTxtNode* pTNd = rPos.nNode.GetNode().GetTxtNode();
|
2010-11-25 17:08:45 +01:00
|
|
|
OSL_ENSURE( pTNd, "Wo ist mein CntntNode?" );
|
2000-09-18 23:08:29 +00:00
|
|
|
|
2010-03-09 13:27:18 +01:00
|
|
|
SwTxtFld * pTxtFld = static_cast<SwTxtFld *>(
|
|
|
|
pTNd->GetTxtAttrForCharAt(rPos.nContent.GetIndex(),
|
|
|
|
RES_TXTATR_FIELD));
|
2011-01-17 15:06:54 +01:00
|
|
|
sal_Bool bDelFld = 0 == pTxtFld;
|
2000-09-18 23:08:29 +00:00
|
|
|
if( bDelFld )
|
|
|
|
{
|
|
|
|
SwFmtFld* pFmtFld = new SwFmtFld( SwDateTimeField(
|
|
|
|
(SwDateTimeFieldType*)pDoc->GetSysFldType( RES_DATETIMEFLD ) ) );
|
|
|
|
|
2010-10-22 17:53:18 +02:00
|
|
|
pTxtFld = new SwTxtFld( *pFmtFld, rPos.nContent.GetIndex() );
|
2000-09-18 23:08:29 +00:00
|
|
|
pTxtFld->ChgTxtNode( pTNd );
|
|
|
|
}
|
|
|
|
|
|
|
|
_SetGetExpFld aSrch( rPos.nNode, pTxtFld, &rPos.nContent );
|
|
|
|
if( rPos.nNode.GetIndex() < pDoc->GetNodes().GetEndOfExtras().GetIndex() )
|
|
|
|
{
|
|
|
|
// auch beim Einsammeln wird nur der erste Frame benutzt!
|
|
|
|
Point aPt;
|
2011-02-09 15:55:27 +01:00
|
|
|
aSrch.SetBodyPos( *pTNd->getLayoutFrm( GetLayout(), &aPt, &rPos, sal_False ) );
|
2000-09-18 23:08:29 +00:00
|
|
|
}
|
|
|
|
|
2011-01-17 15:06:54 +01:00
|
|
|
sal_Bool bFound = aSrtLst.Seek_Entry( &aSrch, &nPos );
|
2000-09-18 23:08:29 +00:00
|
|
|
if( bDelFld )
|
|
|
|
{
|
|
|
|
delete (SwFmtFld*)&pTxtFld->GetAttr();
|
|
|
|
delete pTxtFld;
|
|
|
|
}
|
|
|
|
|
|
|
|
if( bFound ) // stehe auf einem ?
|
|
|
|
{
|
|
|
|
if( bNext )
|
|
|
|
{
|
|
|
|
if( ++nPos >= aSrtLst.Count() )
|
2011-01-17 15:06:54 +01:00
|
|
|
return sal_False; // schon am Ende
|
2000-09-18 23:08:29 +00:00
|
|
|
}
|
|
|
|
else if( !nPos-- )
|
2011-01-17 15:06:54 +01:00
|
|
|
return sal_False; // weiter nach vorne geht nicht
|
2000-09-18 23:08:29 +00:00
|
|
|
}
|
|
|
|
else if( bNext ? nPos >= aSrtLst.Count() : !nPos--)
|
2011-01-17 15:06:54 +01:00
|
|
|
return sal_False;
|
2000-09-18 23:08:29 +00:00
|
|
|
}
|
|
|
|
const _SetGetExpFld& rFnd = **( aSrtLst.GetData() + nPos );
|
|
|
|
|
|
|
|
|
|
|
|
SET_CURR_SHELL( this );
|
|
|
|
SwCallLink aLk( *this ); // Crsr-Moves ueberwachen, evt. Link callen
|
|
|
|
SwCrsrSaveState aSaveState( *pCrsr );
|
|
|
|
|
2002-02-14 11:48:13 +00:00
|
|
|
rFnd.GetPosOfContent( *pCrsr->GetPoint() );
|
2011-01-17 15:06:54 +01:00
|
|
|
sal_Bool bRet = !pCurCrsr->IsSelOvr( nsSwCursorSelOverFlags::SELOVER_CHECKNODESSECTION |
|
2007-09-27 07:28:58 +00:00
|
|
|
nsSwCursorSelOverFlags::SELOVER_TOGGLE );
|
2000-09-18 23:08:29 +00:00
|
|
|
if( bRet )
|
|
|
|
UpdateCrsr(SwCrsrShell::SCROLLWIN|SwCrsrShell::CHKRANGE|SwCrsrShell::READONLY);
|
|
|
|
return bRet;
|
|
|
|
}
|
|
|
|
|
|
|
|
|
2011-01-17 15:06:54 +01:00
|
|
|
sal_Bool SwCrsrShell::GotoFld( const SwFmtFld& rFld )
|
2000-09-18 23:08:29 +00:00
|
|
|
{
|
2011-01-17 15:06:54 +01:00
|
|
|
sal_Bool bRet = sal_False;
|
2000-09-18 23:08:29 +00:00
|
|
|
if( rFld.GetTxtFld() )
|
|
|
|
{
|
|
|
|
SET_CURR_SHELL( this );
|
|
|
|
SwCallLink aLk( *this ); // Crsr-Moves ueberwachen, evt. Link callen
|
|
|
|
|
2007-11-22 14:30:34 +00:00
|
|
|
SwCursor* pCrsr = getShellCrsr( true );
|
2000-09-18 23:08:29 +00:00
|
|
|
SwCrsrSaveState aSaveState( *pCrsr );
|
|
|
|
|
|
|
|
SwTxtNode* pTNd = (SwTxtNode*)rFld.GetTxtFld()->GetpTxtNode();
|
|
|
|
pCrsr->GetPoint()->nNode = *pTNd;
|
|
|
|
pCrsr->GetPoint()->nContent.Assign( pTNd, *rFld.GetTxtFld()->GetStart() );
|
|
|
|
|
|
|
|
bRet = !pCrsr->IsSelOvr();
|
|
|
|
if( bRet )
|
|
|
|
UpdateCrsr(SwCrsrShell::SCROLLWIN|SwCrsrShell::CHKRANGE|SwCrsrShell::READONLY);
|
|
|
|
}
|
|
|
|
return bRet;
|
|
|
|
}
|
|
|
|
|
|
|
|
|
2011-01-17 15:06:54 +01:00
|
|
|
void SwCrsrShell::GotoOutline( sal_uInt16 nIdx )
|
2000-09-18 23:08:29 +00:00
|
|
|
{
|
2007-11-22 14:30:34 +00:00
|
|
|
SwCursor* pCrsr = getShellCrsr( true );
|
2000-09-18 23:08:29 +00:00
|
|
|
|
|
|
|
SET_CURR_SHELL( this );
|
|
|
|
SwCallLink aLk( *this ); // Crsr-Moves ueberwachen, evt. Link callen
|
|
|
|
SwCrsrSaveState aSaveState( *pCrsr );
|
|
|
|
|
|
|
|
const SwNodes& rNds = GetDoc()->GetNodes();
|
|
|
|
SwTxtNode* pTxtNd = (SwTxtNode*)rNds.GetOutLineNds()[ nIdx ]->GetTxtNode();
|
|
|
|
pCrsr->GetPoint()->nNode = *pTxtNd;
|
|
|
|
pCrsr->GetPoint()->nContent.Assign( pTxtNd, 0 );
|
|
|
|
|
|
|
|
if( !pCrsr->IsSelOvr() )
|
|
|
|
UpdateCrsr(SwCrsrShell::SCROLLWIN|SwCrsrShell::CHKRANGE|SwCrsrShell::READONLY);
|
|
|
|
}
|
|
|
|
|
|
|
|
|
2011-01-17 15:06:54 +01:00
|
|
|
sal_Bool SwCrsrShell::GotoOutline( const String& rName )
|
2000-09-18 23:08:29 +00:00
|
|
|
{
|
2007-11-22 14:30:34 +00:00
|
|
|
SwCursor* pCrsr = getShellCrsr( true );
|
2000-09-18 23:08:29 +00:00
|
|
|
|
|
|
|
SET_CURR_SHELL( this );
|
|
|
|
SwCallLink aLk( *this ); // Crsr-Moves ueberwachen, evt. Link callen
|
|
|
|
SwCrsrSaveState aSaveState( *pCrsr );
|
|
|
|
|
2011-01-17 15:06:54 +01:00
|
|
|
sal_Bool bRet = sal_False;
|
2000-09-18 23:08:29 +00:00
|
|
|
if( pDoc->GotoOutline( *pCrsr->GetPoint(), rName ) && !pCrsr->IsSelOvr() )
|
|
|
|
{
|
|
|
|
UpdateCrsr(SwCrsrShell::SCROLLWIN|SwCrsrShell::CHKRANGE|SwCrsrShell::READONLY);
|
2011-01-17 15:06:54 +01:00
|
|
|
bRet = sal_True;
|
2000-09-18 23:08:29 +00:00
|
|
|
}
|
|
|
|
return bRet;
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
2011-01-17 15:06:54 +01:00
|
|
|
sal_Bool SwCrsrShell::GotoNextOutline() // naechster Node mit Outline-Num.
|
2000-09-18 23:08:29 +00:00
|
|
|
{
|
2007-11-22 14:30:34 +00:00
|
|
|
SwCursor* pCrsr = getShellCrsr( true );
|
2000-09-18 23:08:29 +00:00
|
|
|
const SwNodes& rNds = GetDoc()->GetNodes();
|
|
|
|
|
|
|
|
SwNode* pNd = pCrsr->GetNode();
|
2011-01-17 15:06:54 +01:00
|
|
|
sal_uInt16 nPos;
|
2000-09-18 23:08:29 +00:00
|
|
|
if( rNds.GetOutLineNds().Seek_Entry( pNd, &nPos ))
|
|
|
|
++nPos;
|
|
|
|
|
|
|
|
if( nPos == rNds.GetOutLineNds().Count() )
|
2011-01-17 15:06:54 +01:00
|
|
|
return sal_False;
|
2000-09-18 23:08:29 +00:00
|
|
|
|
|
|
|
pNd = rNds.GetOutLineNds()[ nPos ];
|
|
|
|
|
|
|
|
SET_CURR_SHELL( this );
|
|
|
|
SwCallLink aLk( *this ); // Crsr-Moves ueberwachen, evt. Link callen
|
|
|
|
SwCrsrSaveState aSaveState( *pCrsr );
|
|
|
|
pCrsr->GetPoint()->nNode = *pNd;
|
|
|
|
pCrsr->GetPoint()->nContent.Assign( (SwTxtNode*)pNd, 0 );
|
|
|
|
|
2011-01-17 15:06:54 +01:00
|
|
|
sal_Bool bRet = !pCrsr->IsSelOvr();
|
2000-09-18 23:08:29 +00:00
|
|
|
if( bRet )
|
|
|
|
UpdateCrsr(SwCrsrShell::SCROLLWIN|SwCrsrShell::CHKRANGE|SwCrsrShell::READONLY);
|
|
|
|
return bRet;
|
|
|
|
}
|
|
|
|
|
|
|
|
|
2011-01-17 15:06:54 +01:00
|
|
|
sal_Bool SwCrsrShell::GotoPrevOutline() // vorheriger Node mit Outline-Num.
|
2000-09-18 23:08:29 +00:00
|
|
|
{
|
2007-11-22 14:30:34 +00:00
|
|
|
SwCursor* pCrsr = getShellCrsr( true );
|
2000-09-18 23:08:29 +00:00
|
|
|
const SwNodes& rNds = GetDoc()->GetNodes();
|
|
|
|
|
|
|
|
SwNode* pNd = pCrsr->GetNode();
|
2011-01-17 15:06:54 +01:00
|
|
|
sal_uInt16 nPos;
|
2000-09-18 23:08:29 +00:00
|
|
|
rNds.GetOutLineNds().Seek_Entry( pNd, &nPos );
|
|
|
|
|
2011-01-17 15:06:54 +01:00
|
|
|
sal_Bool bRet = sal_False;
|
2000-09-18 23:08:29 +00:00
|
|
|
if( nPos )
|
|
|
|
{
|
|
|
|
--nPos; // davor
|
|
|
|
|
|
|
|
pNd = rNds.GetOutLineNds()[ nPos ];
|
|
|
|
if( pNd->GetIndex() > pCrsr->GetPoint()->nNode.GetIndex() )
|
2011-01-17 15:06:54 +01:00
|
|
|
return sal_False;
|
2000-09-18 23:08:29 +00:00
|
|
|
|
|
|
|
SET_CURR_SHELL( this );
|
|
|
|
SwCallLink aLk( *this ); // Crsr-Moves ueberwachen, evt. Link callen
|
|
|
|
SwCrsrSaveState aSaveState( *pCrsr );
|
|
|
|
pCrsr->GetPoint()->nNode = *pNd;
|
|
|
|
pCrsr->GetPoint()->nContent.Assign( (SwTxtNode*)pNd, 0 );
|
|
|
|
|
|
|
|
bRet = !pCrsr->IsSelOvr();
|
|
|
|
if( bRet )
|
|
|
|
UpdateCrsr(SwCrsrShell::SCROLLWIN|SwCrsrShell::CHKRANGE|SwCrsrShell::READONLY);
|
|
|
|
}
|
|
|
|
return bRet;
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
// suche die "Outline-Position" vom vorherigen Outline-Node mit dem
|
|
|
|
// Level.
|
2011-01-17 15:06:54 +01:00
|
|
|
sal_uInt16 SwCrsrShell::GetOutlinePos( sal_uInt8 nLevel )
|
2000-09-18 23:08:29 +00:00
|
|
|
{
|
2007-11-22 14:30:34 +00:00
|
|
|
SwPaM* pCrsr = getShellCrsr( true );
|
2000-09-18 23:08:29 +00:00
|
|
|
const SwNodes& rNds = GetDoc()->GetNodes();
|
|
|
|
|
|
|
|
SwNode* pNd = pCrsr->GetNode();
|
2011-01-17 15:06:54 +01:00
|
|
|
sal_uInt16 nPos;
|
2000-09-18 23:08:29 +00:00
|
|
|
if( rNds.GetOutLineNds().Seek_Entry( pNd, &nPos ))
|
|
|
|
nPos++; // steht auf der Position, fuers while zum Naechsten
|
|
|
|
|
|
|
|
while( nPos-- ) // immer den davor testen !
|
|
|
|
{
|
|
|
|
pNd = rNds.GetOutLineNds()[ nPos ];
|
2009-01-07 11:57:24 +00:00
|
|
|
|
|
|
|
if( ((SwTxtNode*)pNd)->GetAttrOutlineLevel()-1 <= nLevel )//<-end,zhaojianwei
|
2000-09-18 23:08:29 +00:00
|
|
|
return nPos;
|
2009-01-07 11:57:24 +00:00
|
|
|
|
2000-09-18 23:08:29 +00:00
|
|
|
}
|
|
|
|
return USHRT_MAX; // davor keiner mehr also Ende
|
|
|
|
}
|
|
|
|
|
|
|
|
|
2011-01-17 15:06:54 +01:00
|
|
|
sal_Bool SwCrsrShell::MakeOutlineSel( sal_uInt16 nSttPos, sal_uInt16 nEndPos,
|
|
|
|
sal_Bool bWithChilds )
|
2000-09-18 23:08:29 +00:00
|
|
|
{
|
|
|
|
const SwNodes& rNds = GetDoc()->GetNodes();
|
|
|
|
const SwOutlineNodes& rOutlNds = rNds.GetOutLineNds();
|
|
|
|
if( !rOutlNds.Count() ) // wie jetzt ???
|
2011-01-17 15:06:54 +01:00
|
|
|
return sal_False;
|
2000-09-18 23:08:29 +00:00
|
|
|
|
|
|
|
SET_CURR_SHELL( this );
|
|
|
|
SwCallLink aLk( *this ); // Crsr-Moves ueberwachen, evt. Link callen
|
|
|
|
|
|
|
|
if( nSttPos > nEndPos ) // sollte jemand das vertauscht haben?
|
|
|
|
{
|
2010-11-25 17:08:45 +01:00
|
|
|
OSL_ENSURE( !this, "Start- > Ende-Position im Array" );
|
2011-01-17 15:06:54 +01:00
|
|
|
sal_uInt16 nTmp = nSttPos;
|
2000-09-18 23:08:29 +00:00
|
|
|
nSttPos = nEndPos;
|
|
|
|
nEndPos = nTmp;
|
|
|
|
}
|
|
|
|
|
|
|
|
SwNode* pSttNd = rOutlNds[ nSttPos ];
|
|
|
|
SwNode* pEndNd = rOutlNds[ nEndPos ];
|
|
|
|
|
|
|
|
if( bWithChilds )
|
|
|
|
{
|
2009-01-07 11:57:24 +00:00
|
|
|
const int nLevel = pEndNd->GetTxtNode()->GetAttrOutlineLevel()-1;//<-end.zhaojianwei
|
2000-09-18 23:08:29 +00:00
|
|
|
for( ++nEndPos; nEndPos < rOutlNds.Count(); ++nEndPos )
|
|
|
|
{
|
|
|
|
pEndNd = rOutlNds[ nEndPos ];
|
2009-01-07 11:57:24 +00:00
|
|
|
const int nNxtLevel = pEndNd->GetTxtNode()->GetAttrOutlineLevel()-1;//<-end,zhaojianwei
|
2000-09-18 23:08:29 +00:00
|
|
|
if( nNxtLevel <= nLevel )
|
|
|
|
break; // EndPos steht jetzt auf dem naechsten
|
|
|
|
}
|
|
|
|
}
|
|
|
|
// ohne Childs, dann aber zumindest auf den naechsten
|
|
|
|
else if( ++nEndPos < rOutlNds.Count() )
|
|
|
|
pEndNd = rOutlNds[ nEndPos ];
|
|
|
|
|
|
|
|
if( nEndPos == rOutlNds.Count() ) // kein Ende gefunden
|
|
|
|
pEndNd = &rNds.GetEndOfContent();
|
|
|
|
|
|
|
|
KillPams();
|
|
|
|
|
|
|
|
SwCrsrSaveState aSaveState( *pCurCrsr );
|
|
|
|
|
|
|
|
// Jetzt das Ende ans Ende vom voherigen ContentNode setzen
|
|
|
|
pCurCrsr->GetPoint()->nNode = *pSttNd;
|
|
|
|
pCurCrsr->GetPoint()->nContent.Assign( pSttNd->GetCntntNode(), 0 );
|
|
|
|
pCurCrsr->SetMark();
|
|
|
|
pCurCrsr->GetPoint()->nNode = *pEndNd;
|
|
|
|
pCurCrsr->Move( fnMoveBackward, fnGoNode ); // ans Ende vom Vorgaenger
|
|
|
|
|
|
|
|
// und schon ist alles selektiert
|
2011-01-17 15:06:54 +01:00
|
|
|
sal_Bool bRet = !pCurCrsr->IsSelOvr();
|
2000-09-18 23:08:29 +00:00
|
|
|
if( bRet )
|
|
|
|
UpdateCrsr(SwCrsrShell::SCROLLWIN|SwCrsrShell::CHKRANGE|SwCrsrShell::READONLY);
|
|
|
|
return bRet;
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
// springe zu dieser Refmark
|
2011-01-17 15:06:54 +01:00
|
|
|
sal_Bool SwCrsrShell::GotoRefMark( const String& rRefMark, sal_uInt16 nSubType,
|
|
|
|
sal_uInt16 nSeqNo )
|
2000-09-18 23:08:29 +00:00
|
|
|
{
|
|
|
|
SET_CURR_SHELL( this );
|
|
|
|
SwCallLink aLk( *this ); // Crsr-Moves ueberwachen, evt. Link callen
|
|
|
|
SwCrsrSaveState aSaveState( *pCurCrsr );
|
|
|
|
|
2011-01-17 15:06:54 +01:00
|
|
|
sal_uInt16 nPos;
|
2000-09-18 23:08:29 +00:00
|
|
|
SwTxtNode* pTxtNd = SwGetRefFieldType::FindAnchor( GetDoc(), rRefMark,
|
|
|
|
nSubType, nSeqNo, &nPos );
|
2002-02-14 16:20:09 +00:00
|
|
|
if( pTxtNd && pTxtNd->GetNodes().IsDocNodes() )
|
2000-09-18 23:08:29 +00:00
|
|
|
{
|
|
|
|
pCurCrsr->GetPoint()->nNode = *pTxtNd;
|
|
|
|
pCurCrsr->GetPoint()->nContent.Assign( pTxtNd, nPos );
|
|
|
|
|
|
|
|
if( !pCurCrsr->IsSelOvr() )
|
|
|
|
{
|
|
|
|
UpdateCrsr(SwCrsrShell::SCROLLWIN|SwCrsrShell::CHKRANGE|SwCrsrShell::READONLY);
|
2011-01-17 15:06:54 +01:00
|
|
|
return sal_True;
|
2000-09-18 23:08:29 +00:00
|
|
|
}
|
|
|
|
}
|
2011-01-17 15:06:54 +01:00
|
|
|
return sal_False;
|
2000-09-18 23:08:29 +00:00
|
|
|
}
|
|
|
|
|
2011-01-17 15:06:54 +01:00
|
|
|
sal_Bool SwCrsrShell::IsPageAtPos( const Point &rPt ) const
|
2002-05-06 09:05:11 +00:00
|
|
|
{
|
|
|
|
if( GetLayout() )
|
2004-09-08 15:09:05 +00:00
|
|
|
return 0 != GetLayout()->GetPageAtPos( rPt );
|
2011-01-17 15:06:54 +01:00
|
|
|
return sal_False;
|
2002-05-06 09:05:11 +00:00
|
|
|
}
|
2000-09-18 23:08:29 +00:00
|
|
|
|
2011-01-17 15:06:54 +01:00
|
|
|
sal_Bool SwCrsrShell::GetContentAtPos( const Point& rPt,
|
2009-12-30 15:07:06 +01:00
|
|
|
SwContentAtPos& rCntntAtPos,
|
2011-01-17 15:06:54 +01:00
|
|
|
sal_Bool bSetCrsr,
|
2009-12-30 15:07:06 +01:00
|
|
|
SwRect* pFldRect )
|
2000-09-18 23:08:29 +00:00
|
|
|
{
|
|
|
|
SET_CURR_SHELL( this );
|
2011-01-17 15:06:54 +01:00
|
|
|
sal_Bool bRet = sal_False;
|
2000-09-18 23:08:29 +00:00
|
|
|
|
|
|
|
if( !IsTableMode() )
|
|
|
|
{
|
|
|
|
Point aPt( rPt );
|
|
|
|
SwPosition aPos( *pCurCrsr->GetPoint() );
|
|
|
|
|
|
|
|
SwTxtNode* pTxtNd;
|
2004-06-16 08:33:43 +00:00
|
|
|
SwCntntFrm *pFrm(0);
|
2000-09-18 23:08:29 +00:00
|
|
|
SwTxtAttr* pTxtAttr;
|
|
|
|
SwCrsrMoveState aTmpState;
|
2011-01-17 15:06:54 +01:00
|
|
|
aTmpState.bFieldInfo = sal_True;
|
2005-10-18 12:47:55 +00:00
|
|
|
aTmpState.bExactOnly = !( SwContentAtPos::SW_OUTLINE & rCntntAtPos.eCntntAtPos );
|
2011-01-17 15:06:54 +01:00
|
|
|
aTmpState.bCntntCheck = (SwContentAtPos::SW_CONTENT_CHECK & rCntntAtPos.eCntntAtPos) ? sal_True : sal_False;
|
2000-09-18 23:08:29 +00:00
|
|
|
aTmpState.bSetInReadOnly = IsReadOnlyAvailable();
|
|
|
|
|
2007-06-27 12:17:44 +00:00
|
|
|
SwSpecialPos aSpecialPos;
|
|
|
|
aTmpState.pSpecialPos = ( SwContentAtPos::SW_SMARTTAG & rCntntAtPos.eCntntAtPos ) ?
|
|
|
|
&aSpecialPos : 0;
|
|
|
|
|
2011-01-17 15:06:54 +01:00
|
|
|
const sal_Bool bCrsrFoundExact = GetLayout()->GetCrsrOfst( &aPos, aPt, &aTmpState );
|
2000-09-18 23:08:29 +00:00
|
|
|
pTxtNd = aPos.nNode.GetNode().GetTxtNode();
|
|
|
|
|
|
|
|
const SwNodes& rNds = GetDoc()->GetNodes();
|
|
|
|
if( pTxtNd && SwContentAtPos::SW_OUTLINE & rCntntAtPos.eCntntAtPos
|
|
|
|
&& rNds.GetOutLineNds().Count() )
|
|
|
|
{
|
|
|
|
const SwTxtNode* pONd = pTxtNd->FindOutlineNodeOfLevel( MAXLEVEL-1);
|
|
|
|
if( pONd )
|
|
|
|
{
|
|
|
|
rCntntAtPos.eCntntAtPos = SwContentAtPos::SW_OUTLINE;
|
2008-02-26 09:34:31 +00:00
|
|
|
rCntntAtPos.sStr = pONd->GetExpandTxt( 0, STRING_LEN, true );
|
2011-01-17 15:06:54 +01:00
|
|
|
bRet = sal_True;
|
2000-09-18 23:08:29 +00:00
|
|
|
}
|
|
|
|
}
|
2011-04-16 22:42:13 -03:00
|
|
|
// #i43742# New function
|
2005-10-18 12:47:55 +00:00
|
|
|
else if ( SwContentAtPos::SW_CONTENT_CHECK & rCntntAtPos.eCntntAtPos &&
|
|
|
|
bCrsrFoundExact )
|
|
|
|
{
|
2011-01-17 15:06:54 +01:00
|
|
|
bRet = sal_True;
|
2005-10-18 12:47:55 +00:00
|
|
|
}
|
2004-04-07 11:43:03 +00:00
|
|
|
// #i23726#
|
|
|
|
else if( pTxtNd &&
|
|
|
|
SwContentAtPos::SW_NUMLABEL & rCntntAtPos.eCntntAtPos)
|
|
|
|
{
|
|
|
|
bRet = aTmpState.bInNumPortion;
|
|
|
|
rCntntAtPos.aFnd.pNode = pTxtNd;
|
|
|
|
|
|
|
|
Size aSizeLogic(aTmpState.nInNumPostionOffset, 0);
|
|
|
|
Size aSizePixel = GetWin()->LogicToPixel(aSizeLogic);
|
|
|
|
rCntntAtPos.nDist = aSizePixel.Width();
|
|
|
|
}
|
2000-09-18 23:08:29 +00:00
|
|
|
else if( bCrsrFoundExact && pTxtNd )
|
|
|
|
{
|
|
|
|
if( !aTmpState.bPosCorr )
|
|
|
|
{
|
2007-06-27 12:17:44 +00:00
|
|
|
if( !bRet && SwContentAtPos::SW_SMARTTAG & rCntntAtPos.eCntntAtPos
|
|
|
|
&& !aTmpState.bFtnNoInfo )
|
|
|
|
{
|
|
|
|
const SwWrongList* pSmartTagList = pTxtNd->GetSmartTags();
|
|
|
|
xub_StrLen nCurrent = aPos.nContent.GetIndex();
|
|
|
|
xub_StrLen nBegin = nCurrent;
|
|
|
|
xub_StrLen nLen = 1;
|
|
|
|
|
|
|
|
if ( pSmartTagList && pSmartTagList->InWrongWord( nCurrent, nLen ) && !pTxtNd->IsSymbol(nBegin) )
|
|
|
|
{
|
2011-01-17 15:06:54 +01:00
|
|
|
const sal_uInt16 nIndex = pSmartTagList->GetWrongPos( nBegin );
|
2007-06-27 12:17:44 +00:00
|
|
|
const SwWrongList* pSubList = pSmartTagList->SubList( nIndex );
|
|
|
|
if ( pSubList )
|
|
|
|
{
|
|
|
|
nCurrent = aTmpState.pSpecialPos->nCharOfst;
|
|
|
|
|
|
|
|
if ( pSubList->InWrongWord( nCurrent, nLen ) )
|
2011-01-17 15:06:54 +01:00
|
|
|
bRet = sal_True;
|
2007-06-27 12:17:44 +00:00
|
|
|
}
|
|
|
|
else
|
2011-01-17 15:06:54 +01:00
|
|
|
bRet = sal_True;
|
2007-06-27 12:17:44 +00:00
|
|
|
|
|
|
|
if( bRet && bSetCrsr )
|
|
|
|
{
|
|
|
|
SwCrsrSaveState aSaveState( *pCurCrsr );
|
|
|
|
SwCallLink aLk( *this ); // Crsr-Moves ueberwachen, evt. Link callen
|
|
|
|
pCurCrsr->DeleteMark();
|
|
|
|
*pCurCrsr->GetPoint() = aPos;
|
2007-09-27 07:28:58 +00:00
|
|
|
if( pCurCrsr->IsSelOvr( nsSwCursorSelOverFlags::SELOVER_CHECKNODESSECTION |
|
|
|
|
nsSwCursorSelOverFlags::SELOVER_TOGGLE) )
|
2011-01-17 15:06:54 +01:00
|
|
|
bRet = sal_False;
|
2007-06-27 12:17:44 +00:00
|
|
|
else
|
|
|
|
UpdateCrsr();
|
|
|
|
}
|
|
|
|
if( bRet )
|
|
|
|
{
|
|
|
|
rCntntAtPos.eCntntAtPos = SwContentAtPos::SW_SMARTTAG;
|
|
|
|
|
2010-06-13 15:22:56 +02:00
|
|
|
if( pFldRect && 0 != ( pFrm = pTxtNd->getLayoutFrm( GetLayout(), &aPt ) ) )
|
2007-06-27 12:17:44 +00:00
|
|
|
pFrm->GetCharRect( *pFldRect, aPos, &aTmpState );
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
if( !bRet && ( SwContentAtPos::SW_FIELD | SwContentAtPos::SW_CLICKFIELD )
|
2000-09-18 23:08:29 +00:00
|
|
|
& rCntntAtPos.eCntntAtPos && !aTmpState.bFtnNoInfo )
|
|
|
|
{
|
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
|
|
|
pTxtAttr = pTxtNd->GetTxtAttrForCharAt(
|
|
|
|
aPos.nContent.GetIndex(), RES_TXTATR_FIELD );
|
2000-09-18 23:08:29 +00:00
|
|
|
const SwField* pFld = pTxtAttr
|
|
|
|
? pTxtAttr->GetFld().GetFld()
|
|
|
|
: 0;
|
|
|
|
if( SwContentAtPos::SW_CLICKFIELD & rCntntAtPos.eCntntAtPos &&
|
|
|
|
pFld && !pFld->HasClickHdl() )
|
|
|
|
pFld = 0;
|
|
|
|
|
|
|
|
if( pFld )
|
|
|
|
{
|
2010-06-13 15:22:56 +02:00
|
|
|
if( pFldRect && 0 != ( pFrm = pTxtNd->getLayoutFrm( GetLayout(), &aPt ) ) )
|
2000-09-18 23:08:29 +00:00
|
|
|
pFrm->GetCharRect( *pFldRect, aPos, &aTmpState );
|
|
|
|
|
|
|
|
if( bSetCrsr )
|
|
|
|
{
|
|
|
|
SwCallLink aLk( *this ); // Crsr-Moves ueberwachen, evt. Link callen
|
|
|
|
SwCrsrSaveState aSaveState( *pCurCrsr );
|
|
|
|
pCurCrsr->DeleteMark();
|
|
|
|
*pCurCrsr->GetPoint() = aPos;
|
|
|
|
if( pCurCrsr->IsSelOvr() )
|
|
|
|
{
|
|
|
|
// Click-Felder in geschuetzten Bereichen zulassen
|
|
|
|
// Nur Platzhalter geht nicht!
|
|
|
|
if( SwContentAtPos::SW_FIELD & rCntntAtPos.eCntntAtPos
|
|
|
|
|| RES_JUMPEDITFLD == pFld->Which() )
|
|
|
|
pFld = 0;
|
|
|
|
}
|
|
|
|
else
|
|
|
|
UpdateCrsr();
|
|
|
|
}
|
|
|
|
else if( RES_TABLEFLD == pFld->Which() &&
|
|
|
|
((SwTblField*)pFld)->IsIntrnlName() )
|
|
|
|
{
|
|
|
|
// erzeuge aus der internen (fuer CORE)
|
|
|
|
// die externe (fuer UI) Formel
|
|
|
|
const SwTableNode* pTblNd = pTxtNd->FindTableNode();
|
|
|
|
if( pTblNd ) // steht in einer Tabelle
|
|
|
|
((SwTblField*)pFld)->PtrToBoxNm( &pTblNd->GetTable() );
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
if( pFld )
|
|
|
|
{
|
|
|
|
rCntntAtPos.aFnd.pFld = pFld;
|
|
|
|
rCntntAtPos.pFndTxtAttr = pTxtAttr;
|
|
|
|
rCntntAtPos.eCntntAtPos = SwContentAtPos::SW_FIELD;
|
2011-01-17 15:06:54 +01:00
|
|
|
bRet = sal_True;
|
2000-09-18 23:08:29 +00:00
|
|
|
}
|
|
|
|
}
|
|
|
|
|
2009-11-17 12:33:55 +01:00
|
|
|
if( !bRet && SwContentAtPos::SW_FORMCTRL & rCntntAtPos.eCntntAtPos )
|
|
|
|
{
|
|
|
|
IDocumentMarkAccess* pMarksAccess = GetDoc()->getIDocumentMarkAccess( );
|
|
|
|
sw::mark::IFieldmark* pFldBookmark = pMarksAccess->getFieldmarkFor( aPos );
|
|
|
|
if( bCrsrFoundExact && pTxtNd && pFldBookmark) {
|
|
|
|
rCntntAtPos.eCntntAtPos = SwContentAtPos::SW_FORMCTRL;
|
|
|
|
rCntntAtPos.aFnd.pFldmark = pFldBookmark;
|
2011-01-17 15:06:54 +01:00
|
|
|
bRet=sal_True;
|
2009-11-17 12:33:55 +01:00
|
|
|
}
|
|
|
|
}
|
|
|
|
|
2000-09-18 23:08:29 +00:00
|
|
|
if( !bRet && SwContentAtPos::SW_FTN & rCntntAtPos.eCntntAtPos )
|
|
|
|
{
|
|
|
|
if( aTmpState.bFtnNoInfo )
|
|
|
|
{
|
|
|
|
// stehe ueber dem Zeichen der Fussnote (??)
|
2011-01-17 15:06:54 +01:00
|
|
|
bRet = sal_True;
|
2000-09-18 23:08:29 +00:00
|
|
|
if( bSetCrsr )
|
|
|
|
{
|
|
|
|
*pCurCrsr->GetPoint() = aPos;
|
|
|
|
if( !GotoFtnAnchor() )
|
2011-01-17 15:06:54 +01:00
|
|
|
bRet = sal_False;
|
2000-09-18 23:08:29 +00:00
|
|
|
}
|
|
|
|
if( bRet )
|
|
|
|
rCntntAtPos.eCntntAtPos = SwContentAtPos::SW_FTN;
|
|
|
|
}
|
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
|
|
|
else if ( 0 != ( pTxtAttr = pTxtNd->GetTxtAttrForCharAt(
|
2000-09-18 23:08:29 +00:00
|
|
|
aPos.nContent.GetIndex(), RES_TXTATR_FTN )) )
|
|
|
|
{
|
2011-01-17 15:06:54 +01:00
|
|
|
bRet = sal_True;
|
2000-09-18 23:08:29 +00:00
|
|
|
if( bSetCrsr )
|
|
|
|
{
|
|
|
|
SwCallLink aLk( *this ); // Crsr-Moves ueberwachen,
|
|
|
|
SwCrsrSaveState aSaveState( *pCurCrsr );
|
|
|
|
pCurCrsr->GetPoint()->nNode = *((SwTxtFtn*)pTxtAttr)->GetStartNode();
|
|
|
|
SwCntntNode* pCNd = GetDoc()->GetNodes().GoNextSection(
|
|
|
|
&pCurCrsr->GetPoint()->nNode,
|
2011-01-17 15:06:54 +01:00
|
|
|
sal_True, !IsReadOnlyAvailable() );
|
2000-09-18 23:08:29 +00:00
|
|
|
|
|
|
|
if( pCNd )
|
|
|
|
{
|
|
|
|
pCurCrsr->GetPoint()->nContent.Assign( pCNd, 0 );
|
2007-09-27 07:28:58 +00:00
|
|
|
if( pCurCrsr->IsSelOvr( nsSwCursorSelOverFlags::SELOVER_CHECKNODESSECTION |
|
|
|
|
nsSwCursorSelOverFlags::SELOVER_TOGGLE ))
|
2011-01-17 15:06:54 +01:00
|
|
|
bRet = sal_False;
|
2000-09-18 23:08:29 +00:00
|
|
|
else
|
|
|
|
UpdateCrsr();
|
|
|
|
}
|
|
|
|
else
|
2011-01-17 15:06:54 +01:00
|
|
|
bRet = sal_False;
|
2000-09-18 23:08:29 +00:00
|
|
|
}
|
|
|
|
|
|
|
|
if( bRet )
|
|
|
|
{
|
|
|
|
rCntntAtPos.eCntntAtPos = SwContentAtPos::SW_FTN;
|
|
|
|
rCntntAtPos.pFndTxtAttr = pTxtAttr;
|
|
|
|
rCntntAtPos.aFnd.pAttr = &pTxtAttr->GetAttr();
|
|
|
|
|
2010-06-13 15:22:56 +02:00
|
|
|
if( pFldRect && 0 != ( pFrm = pTxtNd->getLayoutFrm( GetLayout(), &aPt ) ) )
|
2000-09-18 23:08:29 +00:00
|
|
|
pFrm->GetCharRect( *pFldRect, aPos, &aTmpState );
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
if( !bRet && ( SwContentAtPos::SW_TOXMARK |
|
|
|
|
SwContentAtPos::SW_REFMARK ) &
|
|
|
|
rCntntAtPos.eCntntAtPos && !aTmpState.bFtnNoInfo )
|
|
|
|
{
|
|
|
|
pTxtAttr = 0;
|
|
|
|
if( SwContentAtPos::SW_TOXMARK & rCntntAtPos.eCntntAtPos )
|
2010-03-09 13:27:18 +01:00
|
|
|
{
|
|
|
|
::std::vector<SwTxtAttr *> const marks(
|
|
|
|
pTxtNd->GetTxtAttrsAt(
|
|
|
|
aPos.nContent.GetIndex(), RES_TXTATR_TOXMARK));
|
|
|
|
if (marks.size())
|
|
|
|
{ // hmm... can only return 1 here
|
|
|
|
pTxtAttr = *marks.begin();
|
|
|
|
}
|
|
|
|
}
|
2000-09-18 23:08:29 +00:00
|
|
|
|
|
|
|
if( !pTxtAttr &&
|
|
|
|
SwContentAtPos::SW_REFMARK & rCntntAtPos.eCntntAtPos )
|
2010-03-09 13:27:18 +01:00
|
|
|
{
|
|
|
|
::std::vector<SwTxtAttr *> const marks(
|
|
|
|
pTxtNd->GetTxtAttrsAt(
|
|
|
|
aPos.nContent.GetIndex(), RES_TXTATR_REFMARK));
|
|
|
|
if (marks.size())
|
|
|
|
{ // hmm... can only return 1 here
|
|
|
|
pTxtAttr = *marks.begin();
|
|
|
|
}
|
|
|
|
}
|
2000-09-18 23:08:29 +00:00
|
|
|
|
|
|
|
if( pTxtAttr )
|
|
|
|
{
|
2011-01-17 15:06:54 +01:00
|
|
|
bRet = sal_True;
|
2000-09-18 23:08:29 +00:00
|
|
|
if( bSetCrsr )
|
|
|
|
{
|
|
|
|
SwCallLink aLk( *this ); // Crsr-Moves ueberwachen,
|
|
|
|
SwCrsrSaveState aSaveState( *pCurCrsr );
|
|
|
|
pCurCrsr->DeleteMark();
|
|
|
|
*pCurCrsr->GetPoint() = aPos;
|
2007-09-27 07:28:58 +00:00
|
|
|
if( pCurCrsr->IsSelOvr( nsSwCursorSelOverFlags::SELOVER_CHECKNODESSECTION |
|
|
|
|
nsSwCursorSelOverFlags::SELOVER_TOGGLE ) )
|
2011-01-17 15:06:54 +01:00
|
|
|
bRet = sal_False;
|
2000-09-18 23:08:29 +00:00
|
|
|
else
|
|
|
|
UpdateCrsr();
|
|
|
|
}
|
|
|
|
|
|
|
|
if( bRet )
|
|
|
|
{
|
|
|
|
const xub_StrLen* pEnd = pTxtAttr->GetEnd();
|
|
|
|
if( pEnd )
|
|
|
|
rCntntAtPos.sStr = pTxtNd->GetExpandTxt(
|
|
|
|
*pTxtAttr->GetStart(),
|
2008-02-26 09:34:31 +00:00
|
|
|
*pEnd - *pTxtAttr->GetStart() );
|
2000-09-18 23:08:29 +00:00
|
|
|
else if( RES_TXTATR_TOXMARK == pTxtAttr->Which())
|
|
|
|
rCntntAtPos.sStr = pTxtAttr->GetTOXMark().
|
|
|
|
GetAlternativeText();
|
|
|
|
|
|
|
|
rCntntAtPos.eCntntAtPos =
|
|
|
|
RES_TXTATR_TOXMARK == pTxtAttr->Which()
|
|
|
|
? SwContentAtPos::SW_TOXMARK
|
|
|
|
: SwContentAtPos::SW_REFMARK;
|
|
|
|
rCntntAtPos.pFndTxtAttr = pTxtAttr;
|
|
|
|
rCntntAtPos.aFnd.pAttr = &pTxtAttr->GetAttr();
|
|
|
|
|
2010-06-13 15:22:56 +02:00
|
|
|
if( pFldRect && 0 != ( pFrm = pTxtNd->getLayoutFrm( GetLayout(), &aPt ) ) )
|
2000-09-18 23:08:29 +00:00
|
|
|
pFrm->GetCharRect( *pFldRect, aPos, &aTmpState );
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
if( !bRet && SwContentAtPos::SW_INETATTR & rCntntAtPos.eCntntAtPos
|
|
|
|
&& !aTmpState.bFtnNoInfo )
|
|
|
|
{
|
2010-03-09 13:27:18 +01:00
|
|
|
pTxtAttr = pTxtNd->GetTxtAttrAt(
|
|
|
|
aPos.nContent.GetIndex(), RES_TXTATR_INETFMT);
|
2000-09-18 23:08:29 +00:00
|
|
|
// nur INetAttrs mit URLs "erkennen"
|
|
|
|
if( pTxtAttr && pTxtAttr->GetINetFmt().GetValue().Len() )
|
|
|
|
{
|
2011-01-17 15:06:54 +01:00
|
|
|
bRet = sal_True;
|
2000-09-18 23:08:29 +00:00
|
|
|
if( bSetCrsr )
|
|
|
|
{
|
|
|
|
SwCrsrSaveState aSaveState( *pCurCrsr );
|
|
|
|
SwCallLink aLk( *this ); // Crsr-Moves ueberwachen, evt. Link callen
|
|
|
|
pCurCrsr->DeleteMark();
|
|
|
|
*pCurCrsr->GetPoint() = aPos;
|
2007-09-27 07:28:58 +00:00
|
|
|
if( pCurCrsr->IsSelOvr( nsSwCursorSelOverFlags::SELOVER_CHECKNODESSECTION |
|
|
|
|
nsSwCursorSelOverFlags::SELOVER_TOGGLE) )
|
2011-01-17 15:06:54 +01:00
|
|
|
bRet = sal_False;
|
2000-09-18 23:08:29 +00:00
|
|
|
else
|
|
|
|
UpdateCrsr();
|
|
|
|
}
|
|
|
|
if( bRet )
|
|
|
|
{
|
|
|
|
rCntntAtPos.sStr = pTxtNd->GetExpandTxt(
|
|
|
|
*pTxtAttr->GetStart(),
|
2008-02-26 09:34:31 +00:00
|
|
|
*pTxtAttr->GetEnd() - *pTxtAttr->GetStart() );
|
2000-09-18 23:08:29 +00:00
|
|
|
|
|
|
|
rCntntAtPos.aFnd.pAttr = &pTxtAttr->GetAttr();
|
|
|
|
rCntntAtPos.eCntntAtPos = SwContentAtPos::SW_INETATTR;
|
|
|
|
rCntntAtPos.pFndTxtAttr = pTxtAttr;
|
|
|
|
|
2010-06-13 15:22:56 +02:00
|
|
|
if( pFldRect && 0 != ( pFrm = pTxtNd->getLayoutFrm( GetLayout(), &aPt ) ) )
|
2000-09-18 23:08:29 +00:00
|
|
|
pFrm->GetCharRect( *pFldRect, aPos, &aTmpState );
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
if( !bRet && SwContentAtPos::SW_REDLINE & rCntntAtPos.eCntntAtPos )
|
|
|
|
{
|
2006-08-14 14:51:31 +00:00
|
|
|
const SwRedline* pRedl = GetDoc()->GetRedline(aPos, NULL);
|
2000-09-18 23:08:29 +00:00
|
|
|
if( pRedl )
|
|
|
|
{
|
|
|
|
rCntntAtPos.aFnd.pRedl = pRedl;
|
|
|
|
rCntntAtPos.eCntntAtPos = SwContentAtPos::SW_REDLINE;
|
|
|
|
rCntntAtPos.pFndTxtAttr = 0;
|
2011-01-17 15:06:54 +01:00
|
|
|
bRet = sal_True;
|
2000-09-18 23:08:29 +00:00
|
|
|
|
2010-06-13 15:22:56 +02:00
|
|
|
if( pFldRect && 0 != ( pFrm = pTxtNd->getLayoutFrm( GetLayout(), &aPt ) ) )
|
2000-09-18 23:08:29 +00:00
|
|
|
pFrm->GetCharRect( *pFldRect, aPos, &aTmpState );
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
if( !bRet && (
|
|
|
|
SwContentAtPos::SW_TABLEBOXFML & rCntntAtPos.eCntntAtPos
|
2010-11-18 10:21:30 +01:00
|
|
|
#if OSL_DEBUG_LEVEL > 1
|
2000-09-18 23:08:29 +00:00
|
|
|
|| SwContentAtPos::SW_TABLEBOXVALUE & rCntntAtPos.eCntntAtPos
|
|
|
|
#endif
|
|
|
|
))
|
|
|
|
{
|
|
|
|
const SwTableNode* pTblNd;
|
|
|
|
const SwTableBox* pBox;
|
|
|
|
const SwStartNode* pSttNd = pTxtNd->FindTableBoxStartNode();
|
|
|
|
const SfxPoolItem* pItem;
|
|
|
|
if( pSttNd && 0 != ( pTblNd = pTxtNd->FindTableNode()) &&
|
|
|
|
0 != ( pBox = pTblNd->GetTable().GetTblBox(
|
|
|
|
pSttNd->GetIndex() )) &&
|
2010-11-25 17:08:45 +01:00
|
|
|
#if OSL_DEBUG_LEVEL > 1
|
2000-09-18 23:08:29 +00:00
|
|
|
( SFX_ITEM_SET == pBox->GetFrmFmt()->GetItemState(
|
2011-01-17 15:06:54 +01:00
|
|
|
RES_BOXATR_FORMULA, sal_False, &pItem ) ||
|
2000-09-18 23:08:29 +00:00
|
|
|
SFX_ITEM_SET == pBox->GetFrmFmt()->GetItemState(
|
2011-01-17 15:06:54 +01:00
|
|
|
RES_BOXATR_VALUE, sal_False, &pItem ))
|
2000-09-18 23:08:29 +00:00
|
|
|
#else
|
|
|
|
SFX_ITEM_SET == pBox->GetFrmFmt()->GetItemState(
|
2011-01-17 15:06:54 +01:00
|
|
|
RES_BOXATR_FORMULA, sal_False, &pItem )
|
2000-09-18 23:08:29 +00:00
|
|
|
#endif
|
|
|
|
)
|
|
|
|
{
|
2010-06-13 15:22:56 +02:00
|
|
|
SwFrm* pF = pTxtNd->getLayoutFrm( GetLayout(), &aPt );
|
2000-09-18 23:08:29 +00:00
|
|
|
if( pF )
|
|
|
|
{
|
|
|
|
// dann aber den CellFrame
|
|
|
|
pFrm = (SwCntntFrm*)pF;
|
|
|
|
while( pF && !pF->IsCellFrm() )
|
|
|
|
pF = pF->GetUpper();
|
|
|
|
}
|
|
|
|
|
|
|
|
// es wurde ein
|
|
|
|
if( aTmpState.bPosCorr )
|
|
|
|
{
|
|
|
|
if( pF && !pF->Frm().IsInside( aPt ))
|
|
|
|
pF = 0;
|
|
|
|
}
|
|
|
|
else if( !pF )
|
|
|
|
pF = pFrm;
|
|
|
|
|
|
|
|
if( pF ) // nur dann ist es gueltig!!
|
|
|
|
{
|
|
|
|
// erzeuge aus der internen (fuer CORE)
|
|
|
|
// die externe (fuer UI) Formel
|
|
|
|
rCntntAtPos.eCntntAtPos = SwContentAtPos::SW_TABLEBOXFML;
|
2010-11-18 10:21:30 +01:00
|
|
|
#if OSL_DEBUG_LEVEL > 1
|
2000-09-18 23:08:29 +00:00
|
|
|
if( RES_BOXATR_VALUE == pItem->Which() )
|
|
|
|
rCntntAtPos.eCntntAtPos = SwContentAtPos::SW_TABLEBOXVALUE;
|
|
|
|
else
|
|
|
|
#endif
|
|
|
|
((SwTblBoxFormula*)pItem)->PtrToBoxNm( &pTblNd->GetTable() );
|
|
|
|
|
2011-01-17 15:06:54 +01:00
|
|
|
bRet = sal_True;
|
2000-09-18 23:08:29 +00:00
|
|
|
if( bSetCrsr )
|
|
|
|
{
|
|
|
|
SwCallLink aLk( *this ); // Crsr-Moves ueberwachen,
|
|
|
|
SwCrsrSaveState aSaveState( *pCurCrsr );
|
|
|
|
*pCurCrsr->GetPoint() = aPos;
|
2007-09-27 07:28:58 +00:00
|
|
|
if( pCurCrsr->IsSelOvr( nsSwCursorSelOverFlags::SELOVER_CHECKNODESSECTION |
|
|
|
|
nsSwCursorSelOverFlags::SELOVER_TOGGLE) )
|
2011-01-17 15:06:54 +01:00
|
|
|
bRet = sal_False;
|
2000-09-18 23:08:29 +00:00
|
|
|
else
|
|
|
|
UpdateCrsr();
|
|
|
|
}
|
|
|
|
|
|
|
|
if( bRet )
|
|
|
|
{
|
|
|
|
if( pFldRect )
|
|
|
|
{
|
|
|
|
*pFldRect = pF->Prt();
|
|
|
|
*pFldRect += pF->Frm().Pos();
|
|
|
|
}
|
|
|
|
rCntntAtPos.pFndTxtAttr = 0;
|
|
|
|
rCntntAtPos.aFnd.pAttr = pItem;
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
2010-11-18 10:21:30 +01:00
|
|
|
#if OSL_DEBUG_LEVEL > 1
|
2000-09-18 23:08:29 +00:00
|
|
|
if( !bRet && SwContentAtPos::SW_CURR_ATTRS & rCntntAtPos.eCntntAtPos )
|
|
|
|
{
|
|
|
|
xub_StrLen n = aPos.nContent.GetIndex();
|
|
|
|
SfxItemSet aSet( GetDoc()->GetAttrPool(), POOLATTR_BEGIN,
|
|
|
|
POOLATTR_END - 1 );
|
|
|
|
if( pTxtNd->GetpSwpHints() )
|
|
|
|
{
|
2011-01-17 15:06:54 +01:00
|
|
|
for( sal_uInt16 i = 0; i < pTxtNd->GetSwpHints().Count(); ++i )
|
2000-09-18 23:08:29 +00:00
|
|
|
{
|
|
|
|
const SwTxtAttr* pHt = pTxtNd->GetSwpHints()[i];
|
|
|
|
xub_StrLen nAttrStart = *pHt->GetStart();
|
|
|
|
if( nAttrStart > n ) // ueber den Bereich hinaus
|
|
|
|
break;
|
|
|
|
|
|
|
|
if( 0 != pHt->GetEnd() && (
|
|
|
|
( nAttrStart < n &&
|
|
|
|
( pHt->DontExpand() ? n < *pHt->GetEnd()
|
|
|
|
: n <= *pHt->GetEnd() )) ||
|
|
|
|
( n == nAttrStart &&
|
|
|
|
( nAttrStart == *pHt->GetEnd() || !n ))) )
|
|
|
|
{
|
|
|
|
aSet.Put( pHt->GetAttr() );
|
|
|
|
}
|
|
|
|
}
|
2006-12-01 14:37:04 +00:00
|
|
|
if( pTxtNd->HasSwAttrSet() &&
|
|
|
|
pTxtNd->GetpSwAttrSet()->Count() )
|
2000-09-18 23:08:29 +00:00
|
|
|
{
|
|
|
|
SfxItemSet aFmtSet( pTxtNd->GetSwAttrSet() );
|
|
|
|
// aus dem Format-Set alle entfernen, die im TextSet auch gesetzt sind
|
|
|
|
aFmtSet.Differentiate( aSet );
|
|
|
|
// jetzt alle zusammen "mergen"
|
|
|
|
aSet.Put( aFmtSet );
|
|
|
|
}
|
|
|
|
}
|
|
|
|
else
|
|
|
|
pTxtNd->SwCntntNode::GetAttr( aSet );
|
|
|
|
|
|
|
|
rCntntAtPos.sStr.AssignAscii(
|
|
|
|
RTL_CONSTASCII_STRINGPARAM( "Pos: (" ));
|
|
|
|
rCntntAtPos.sStr += String::CreateFromInt32( aPos.nNode.GetIndex());
|
|
|
|
rCntntAtPos.sStr += ':';
|
|
|
|
rCntntAtPos.sStr += String::CreateFromInt32( aPos.nContent.GetIndex());
|
|
|
|
rCntntAtPos.sStr += ')';
|
|
|
|
rCntntAtPos.sStr.AppendAscii(
|
|
|
|
RTL_CONSTASCII_STRINGPARAM( "\nAbs.Vorl.: " ));
|
|
|
|
rCntntAtPos.sStr += pTxtNd->GetFmtColl()->GetName();
|
|
|
|
if( pTxtNd->GetCondFmtColl() )
|
|
|
|
rCntntAtPos.sStr.AppendAscii(
|
|
|
|
RTL_CONSTASCII_STRINGPARAM( "\nBed.Vorl.: " ))
|
|
|
|
+= pTxtNd->GetCondFmtColl()->GetName();
|
|
|
|
|
|
|
|
if( aSet.Count() )
|
|
|
|
{
|
|
|
|
String sAttrs;
|
|
|
|
SfxItemIter aIter( aSet );
|
|
|
|
const SfxPoolItem* pItem = aIter.FirstItem();
|
2011-01-17 15:06:54 +01:00
|
|
|
while( sal_True )
|
2000-09-18 23:08:29 +00:00
|
|
|
{
|
|
|
|
if( !IsInvalidItem( pItem ))
|
|
|
|
{
|
|
|
|
String aStr;
|
|
|
|
GetDoc()->GetAttrPool().GetPresentation( *pItem,
|
|
|
|
SFX_ITEM_PRESENTATION_COMPLETE,
|
|
|
|
SFX_MAPUNIT_CM, aStr );
|
|
|
|
if( sAttrs.Len() )
|
|
|
|
sAttrs.AppendAscii(
|
|
|
|
RTL_CONSTASCII_STRINGPARAM( ", " ));
|
|
|
|
sAttrs += aStr;
|
|
|
|
}
|
|
|
|
if( aIter.IsAtEnd() )
|
|
|
|
break;
|
|
|
|
pItem = aIter.NextItem();
|
|
|
|
}
|
|
|
|
if( sAttrs.Len() )
|
|
|
|
{
|
|
|
|
if( rCntntAtPos.sStr.Len() )
|
|
|
|
rCntntAtPos.sStr += '\n';
|
|
|
|
rCntntAtPos.sStr.AppendAscii(
|
|
|
|
RTL_CONSTASCII_STRINGPARAM( "Attr: " ) )
|
|
|
|
+= sAttrs;
|
|
|
|
}
|
|
|
|
}
|
2011-01-17 15:06:54 +01:00
|
|
|
bRet = sal_True;
|
2000-09-18 23:08:29 +00:00
|
|
|
rCntntAtPos.eCntntAtPos = SwContentAtPos::SW_CURR_ATTRS;
|
|
|
|
}
|
|
|
|
#endif
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
if( !bRet )
|
|
|
|
{
|
|
|
|
rCntntAtPos.eCntntAtPos = SwContentAtPos::SW_NOTHING;
|
|
|
|
rCntntAtPos.aFnd.pFld = 0;
|
|
|
|
}
|
|
|
|
return bRet;
|
|
|
|
}
|
|
|
|
|
2011-01-28 11:31:24 +00:00
|
|
|
// #i90516#
|
2008-07-08 07:19:50 +00:00
|
|
|
const SwPostItField* SwCrsrShell::GetPostItFieldAtCursor() const
|
|
|
|
{
|
|
|
|
const SwPostItField* pPostItFld = 0;
|
|
|
|
|
|
|
|
if ( !IsTableMode() )
|
|
|
|
{
|
|
|
|
const SwPosition* pCursorPos = _GetCrsr()->GetPoint();
|
|
|
|
const SwTxtNode* pTxtNd = pCursorPos->nNode.GetNode().GetTxtNode();
|
|
|
|
if ( pTxtNd )
|
|
|
|
{
|
CWS-TOOLING: integrate CWS odfmetadata3
2009-09-11 Michael Stahl merge DEV300_m58
2009-09-07 Michael Stahl SwFmtFld::Modify(): do nothing on RES_OBJECTDYING
2009-08-27 Michael Stahl #i91565#, #i91566#: TextPortionEnumerationTest.java: add test document
2009-08-27 Michael Stahl #i91565#, #i91566#: add complex test: TextPortionEnumerationTest.java
2009-08-27 Michael Stahl CLiteral::initialize(): zero-length literals probably not an error
2009-08-27 Michael Stahl #i91565#, #i91566#: offapi: new InContentMetadata and MetadataField services
adapt TextPortion for InContentMetadata
2009-08-27 Michael Stahl #i91564#: xmloff: load/store xml:id and RDFa for text:bookmark(-start).
2009-08-27 Michael Stahl #i91564#: sw core: add support for xml:id at bookmarks:
sw::mark::Bookmark: derive from Metadatable.
SwHistoryBookmark, SaveBookmark: store a MetadatableUndo.
ndcopy.cxx: lcl_CopyBookmarks(): copy the xml:id.
SwXBookmark: derive from MetadatableMixin.
2009-08-27 Michael Stahl #i91565#, #i91566#: xmloff: refactor ruby import so nested meta(-field) works:
remove XMLRubyHint_Impl.
XMLImpRubyContext_Impl::~XMLImpRubyContext_Impl(): insert ruby directly.
2009-08-27 Michael Stahl #i91565#, #i91566#: xmloff: fix text:meta(-field) import/export:
new XMLTextParagraphExport::exportTextField() overload for XTextField.
CreateAndInsertMark(): set xml:id after insertion.
fix meta(-field) service names, bugs etc.
2009-08-27 Michael Stahl #i91565#, #i91566#: sw text formatting: paint background of meta(-field) body:
SwFont: add member m_nMetaCount.
txttypes.hxx: add POR_META.
atrstck.cxx: handle RES_TXTATR_META(FIELD).
itrform2.cxx: SwTxtFormatter::WhichTxtPor(): create new class SwMetaPortion.
2009-08-27 Michael Stahl #i91566#: sw text formatting: display meta-field prefix and suffix:
SwAttrIter::GetAttr(): replace with call to GetTxtAttrForCharAt().
SwTxtFormatter::NewExtraPortion(): handle meta-field prefix.
SwTxtFormatter: new member m_nHintEndIndex.
SwTxtFormatter::WhichFirstPortion(): call TryNewNoLengthPortion().
SwTxtFormatter::TryNewNoLengthPortion(): new; handle suffix of meta-field.
SwTxtFormatter::UnderFlow(): UGLY HACK: decrement m_nHintEndIndex.
SwFldPortion: add flag m_bNoLength: portion has zero length (for suffix).
2009-08-27 Michael Stahl #i91565#, #i91566#: extend text:meta(-field) uno wrapper with XText interface:
unoobj.hxx: new CursorType CURSOR_META.
unoobj2.cxx: refactor SwXText implementation to ensure that when the SwXText
belongs to a SwXMeta, content is always inserted inside the meta(-field).
unoobj.cxx: new SwXTextCursor::ForceIntoMeta(): cursor stays in meta(-field).
unometa.hxx: SwXMeta implements XText, forwarding to a member SwXMetaText.
DocInsertStringSplitCR(), SwX*::attachToRange(), SwX*::DeleteAndInsert():
use FORCEHINTEXPAND hack to ensure insert into the meta(-field) at the end.
2009-08-27 Michael Stahl #i91565#, #i91566#: add text:meta(-field) uno wrapper to sw:
fmtmeta.hxx, fmtatr2.cxx: new class sw::MetaField, new sw::MetaFieldManager.
doc.hxx, docnew.cxx: new SwDoc::GetMetaFieldManager().
unocoll.hxx,.cxx: new SW_SERVICE_FIELDTYPE_METAFIELD, SW_SERVICE_TYPE_META.
unomap.hxx,.cxx: new PROPERTY_MAP_METAFIELD.
unoprnms.hxx: new UNO_NAME_META.
unoport.hxx: new PORTION_META; add "InContentMetadata" prop to SwXTextPortion.
new unometa.hxx: new class SwXMeta and SwXMetaField.
unofield.cxx: SwXFieldEnumeration: include meta-fields.
unoportenum.cxx: handle RES_TXTATR_META(FIELD) by using a portion list stack.
unotext.cxx: SwXText::insertTextContent(): handle meta(-field) as attribute.
2009-08-27 Michael Stahl #i91565#, #i91566#: ndhints.cxx: remove sort number from SwTxtAttrNesting
2009-08-27 Michael Stahl #i91565#, #i91566#: add support for hints with end and CH_TXTATR to sw core:
doc.hxx, docedt.cxx: replace SwDoc::Delete(), DeleteAndJoin(), ReplaceRange()
with wrappers that split at left-overlapped end+CH_TXTATR hints.
txatbase.hxx: new member SwTxtAttr::m_bHasDummyChar.
ndtxt.hxx: rename SwTxtNode::GetTxtAttr() to GetTxtAttrForCharAt().
ndtxt.cxx: SwTxtNode::CopyText(): copy end+CH_TXTATR hints iff copy CH_TXTATR.
txtatr2.cxx, thints.cxx: SwTxtMeta gets a CH_TXTATR.
2009-08-27 Michael Stahl #i91565#, #i91566#: add text:meta(-field) to sw core:
txatbase.hxx: new member SwTxtAttr::m_bNesting.
hintids.hxx: new ids RES_TXTATR_META, RES_TXTATR_METAFIELD.
txtatr.hxx: new base class SwTxtAttrNesting.
new hint SwTxtMeta.
SwTxtRuby derives from SwTxtAttrNesting.
txtinet.hxx: SwTxtINetFmt derives from SwTxtAttrNesting.
new header fmtmeta.hxx: new pool item SwFmtMeta. new class sw::Meta.
ndhints.hxx, thints.cxx: new method SwpHints::TryInsertNesting().
thints.cxx: refactoring: BuildPortions() no longer handles Ruby/Hyperlink,
but TryInsertNesting(), which also handles meta(-field).
SwTxtNode::InsertItem(): check if the hint is actually inserted.
ndhints.cxx: sort nesting hints based on sort number.
ndtxt.cxx: lcl_CopyHint(): handle copy of meta/meta-field.
2009-08-27 Michael Stahl enable expanding hints with m_bLockExpandFlag set:
add new InsertFlag: INS_FORCEHINTEXPAND.
add new SetAttrMode: SETATTR_FORCEHINTEXPAND.
rename SwEditShell::Insert() to Insert2() because changed signature fails
to compile when SwWrtShell tries to overwrite these non-virtual members...
SwWrtShell::Insert() sets FOCEHINTEXPAND if range was selected/deleted.
adapt SwUndoInsert to store flags.
2009-08-27 Michael Stahl change formal parameters of item insertion methods to type SetAttrMode
2009-08-27 Michael Stahl fix incorrect resetting of text attributes in SwUndoInsSection, SwUndoInserts
2009-08-27 Michael Stahl clean up SwTxtNode::CutImpl() and lcl_CopyHint()
2009-08-27 Michael Stahl rename SwDoc::Copy() to CopyRange(), and _Copy() to CopyImpl()
2009-08-27 Michael Stahl rename SwNodes::Move() to MoveRange(), and remove unused parameter
2009-08-27 Michael Stahl rename SwDoc::Move() to MoveRange()/MoveNodeRange()
2009-08-27 Michael Stahl rename SwDoc::Insert() to InsertString(), and remove sal_Unicode variant
2009-08-27 Michael Stahl rename SwDoc::Insert() to InsertPoolItem()/InsertItemSet()/InsertSwSection()
2009-08-27 Michael Stahl rename SwDoc::Replace() to ReplaceRange()
2009-08-27 Michael Stahl remove SwDoc::Overwrite() sal_Unicode variant
2009-08-27 Michael Stahl split up SwDoc::DeleteAndJoin(): factor out DeleteAndJoinWithRedline()
2009-08-27 Michael Stahl rename overloaded SwDoc::Delete() to DeleteRange()/DeleteTOXMark()
2009-08-27 Michael Stahl rename SwTxtNode::Copy() to CopyText()
2009-08-27 Michael Stahl rename SwTxtNode::Cut() to CutText(), and _Cut() to CutImpl()
2009-08-27 Michael Stahl rename SwTxtNode::Delete() to DeleteAttribute()/DeleteAttributes()
2009-08-27 Michael Stahl rename SwTxtNode::Replace() to ReplaceText(), and remove the xub_Unicode variant
2009-08-27 Michael Stahl rename SwTxtNode::Erase() to EraseText()
2009-08-27 Michael Stahl rename SwTxtNode::Insert() to InsertText(), and remove the xub_Unicode variant
2009-08-27 Michael Stahl clean up SwTxtNode::Update()
2009-08-27 Michael Stahl remove SwTxtAttr::RemoveFromPool() and make destructor non-public,
to be invoked by new method SwTxtAttr::Destroy()
2009-08-27 Michael Stahl ensure that SwDoc::Insert() for item (set) returns success indicator:
replace SwRegHistory constructor with method InsertItems(), returning bool.
refactor InsAttr() so that it checks if InsertItems() succeeds.
2009-08-27 Michael Stahl move SwXTextPortionEnumeration from unoobj.hxx to unoport.hxx
2009-08-27 Michael Stahl add missing SolarMutex in SwXTextPortion methods
2009-08-27 Michael Stahl SwXTextPortion: new member m_xTextField (so the TextField property need not
be returned indirectly via SwUnoCursorHelper).
factor out function CreateSwXTextField().
2009-08-27 Michael Stahl SwXTextPortion: remove PORTION_CONTROL_CHAR and implementation of XTextField
2009-08-27 Michael Stahl remove obsolete hint SwTxtHardBlank and formats SwFmtHardBlank/SwFmtSoftHyph
2009-08-27 Michael Stahl clean up SwTxtAttr and friends:
remove many accessor methods for obsolete (due to autofmt) char format items.
remove unused flag SwTxtAttr::m_bDontMergeAttr.
MakeRedlineTxtAttr() now dedicated function, no longer calls MakeTxtAttr().
2009-08-27 Michael Stahl remove obsolete attribute SwTxt2Lines
2009-08-27 Michael Stahl SwXTextPortionEnumeration: finish refactoring CreatePortions
change ExportHints so it always returns a text portion for hint w/ CH_TXTATR.
remove special case for handling end of paragraph.
unfortunately had to refactor the fieldmarks export as well (got in the way).
2009-08-27 Michael Stahl SwXTextPortionEnumeration: refactor CreatePortions: frames export
extract function ExportFrames() from CreatePortions().
remove (un)dead code that calls evil MovePara(fnParaCurr, fnParaEnd)
2009-08-27 Michael Stahl clean up SwXParaFrameEnumeration
2009-08-27 Michael Stahl CollectFrameAtNode: replace SwDependArr with STL based FrameDependList_t
2009-08-27 Michael Stahl SwXTextPortionEnumeration: tweak refmark/toxmark export
so ExportHints returns the portion for point marks
2009-08-27 Michael Stahl clean up SwXTextPortionEnumeration:
prefix members, remove casts, replace SvWeirdArray with STL, etc.
make CreatePortions() method a function, and remove lots of members.
extract fieldmarks function from CreatePortions.
2009-08-27 Michael Stahl remove FOREACHUNOPAM_START/END macros
2009-08-27 Michael Stahl clean up SwXTextPortion:
prefix members, remove casts, etc.
remove SwXRubyPortion: replace it with another SwXTextPortion constructor
2009-08-27 Michael Stahl #i102541# SwXReferenceMark::InsertRefMark(): use flag SETATTR_DONTEXPAND
2009-08-27 Michael Stahl rename SwTxtNode::Insert to SwTxtNode::InsertHint, and
fix constness in SwTxtNode::InsertItem
2009-08-27 Michael Stahl turn SwTxtNode::MakeTxtAttr() methods into global functions in ndhints.hxx
2009-08-27 Michael Stahl remove obsolete sw/inc/bookmrk.hxx
2009-08-27 Michael Stahl pam.cxx: fix ComparePosition functions (returned wrong result in one case)
2009-08-27 Michael Stahl #i103613# only import RDF metadata on normal open of a document
2009-09-11 kz CWS-TOOLING: integrate CWS impress176
2009-09-08 20:18:24 +0200 sj r275957 : fixed warning (shadowed variable)
2009-09-08 18:02:05 +0200 cl r275948 : #i104315# added missing tab pages
2009-09-08 17:35:18 +0200 cl r275947 : #i104866# fixed angle import
2009-09-08 17:32:53 +0200 cl r275946 : #i104841# fixed angle import
2009-09-08 17:01:25 +0200 cl r275943 : #i103935# fixed the SID_EVENTCONFIG mess
2009-09-08 14:32:57 +0200 sj r275928 : #i104685# only comments
2009-09-07 12:37:36 +0200 sj r275886 : #i104683# fixed import of bold/italic attributes for normal text shapes
2009-09-04 15:07:46 +0200 sj r275808 : #104689# fixed bullet color problem
2009-09-03 15:25:07 +0200 sj r275753 : #160200# added vertical alignment of table cells
2009-09-11 kz CWS-TOOLING: integrate CWS dv14
2009-09-10 15:16:32 +0200 sg r276035 : #160513# updated wfs scheme to accept ports
2009-09-10 07:41:47 +0200 dv r276019 : #i104942# Better renaming algorithmen
2009-08-31 13:41:11 +0200 dv r275604 : #160505# Setting APP1PRODUCTNAME must not overwrite APP1PRODUCTDEF
2009-09-11 kz CWS-TOOLING: integrate CWS jl131
2009-09-02 16:42:40 +0200 jl r275720 : #i97896#
2009-08-31 13:01:53 +0200 jl r275599 : CWS-TOOLING: rebase CWS jl131 to trunk@275331 (milestone: DEV300:m56)
2009-07-31 14:35:30 +0200 jl r274531 : CWS-TOOLING: rebase CWS jl131 to trunk@274203 (milestone: DEV300:m53)
2009-07-23 14:20:32 +0200 jl r274272 : #i79839# better error text when trying to modify shared layer without having write permission, eg. unopkg add --shared, unopkg remove --shared, unopkg reinstall --shared
2009-07-22 16:38:02 +0200 jl r274252 : #i97896# localize error message for lock file
2009-07-22 16:37:22 +0200 jl r274251 : #i80462# unprecise wording in updatedialog
2009-07-22 16:36:06 +0200 jl r274250 : #i97896# localize error message for lock file
2009-07-22 16:35:20 +0200 jl r274249 : #i97896# localize error message for lock file
2009-07-22 15:07:30 +0200 jl r274242 : #i98873# minimum java version is 1.5 since OOo 3.0
2009-09-11 kz CWS-TOOLING: integrate CWS changehc
2009-08-31 19:38:50 +0200 pl r275633 : remove dbug printf
2009-08-31 17:41:50 +0200 pl r275623 : CWS-TOOLING: rebase CWS changehc to trunk@275331 (milestone: DEV300:m56)
2009-07-15 19:45:46 +0200 pl r274028 : #i35482# use HC flag to decide high contrast mode
2009-07-15 17:40:52 +0200 pl r274020 : #i35482# use HC flag to decide high contrast mode
2009-07-15 17:39:50 +0200 pl r274019 : #i35482# update autohc correctly in MergeSystemSettings
2009-07-15 17:38:57 +0200 pl r274018 : #i35482# update autohc correctly in MergeSystemSettings
2009-09-11 kz CWS-TOOLING: integrate CWS notes10
2009-08-24 07:25:57 +0200 mod r275287 : 2009-07-26 02:38:32 +0200 mod r274343 : #i#i103645#
2009-07-26 02:01:53 +0200 mod r274342 : #i103645#
2009-07-26 01:52:42 +0200 mod r274341 : #i103490#
2009-07-22 08:31:48 +0200 mod r274215 : #i103373#
2009-07-15 00:55:11 +0200 mod r273987 : #i101419#
2009-07-14 07:07:55 +0200 mod r273956 : #i101419#
2009-07-14 07:07:43 +0200 mod r273955 : #i101419#
2009-07-14 07:02:10 +0200 mod r273954 : changes from notes9
2009-07-14 06:14:25 +0200 mod r273953 : #i103476#
2009-09-11 kz CWS-TOOLING: integrate CWS ab70
2009-09-10 15:12:54 +0200 jsk r276034 : #i85434# - mandatory automatic update test
2009-09-10 15:11:06 +0200 jsk r276033 : #i85434# - mandatory automatic update test
2009-09-02 09:49:24 +0200 ab r275698 : #i85434# Dialog Import
2009-09-11 kz CWS-TOOLING: integrate CWS hb32bugs02
2009-09-02 Henning Brinkmann #i102420# revert changes
2009-08-26 Henning Brinkmann merged DEV300_m56
2009-08-19 Henning Brinkmann merged DEV300_m55
2009-08-14 Henning Brinkmann merged changes from wntmsci12
2009-08-12 Henning Brinkmann Implemented NoSpaceEdit constructor and destructor in .cxx to allow compile with debug on wntmsci12.
2009-08-12 Henning Brinkmann Added some SW_DLLPUBLIC to make compilable on wntmsci12.
2009-08-11 Henning Brinkmann #i102420# dbg_out: surround output for SwNodes with <nodes-array>.
2009-08-10 Henning Brinkmann #i102420# rewritten debug output for SwNodes.
2009-08-07 Henning Brinkmann #i102420# debug _MoveNodes: output the destination, too. Break after two iterations.
2009-08-07 Henning Brinkmann #i102420# _MoveNodes: Additionally check if destination index is inside source => false
Check if current range was already handled => loop
Debug output current range
2009-08-06 Henning Brinkmann merged DEV300_m54
2009-08-06 Henning Brinkmann added master fix
2009-08-06 Henning Brinkmann debug output for SwNodeRange
2009-08-04 Henning Brinkmann #i102844# robustness: check for NULL pointer to prevent crash
2009-08-03 Henning Brinkmann #i103475# applied patch and verified
2009-08-03 Henning Brinkmann Removed code preventing build of sw with DEBUG.
2009-09-11 convert-repo update tags
2009-09-10 kz CWS-TOOLING: integrate CWS os2port06dev300
2009-09-05 22:49:00 +0200 ydario r275858 : #i99588# applied os2port06 diff to DEV300 tree.
2009-09-10 kz CWS-TOOLING: integrate CWS mingwport23
2009-08-29 07:07:53 +0200 tono r275555 : i#104522: mingw port graphite
2009-08-29 07:07:26 +0200 tono r275554 : i#104522: mingw port printf format fix
2009-09-10 kz CWS-TOOLING: integrate CWS mh232
2009-08-26 03:52:57 +0200 mh r275385 : #i102182# FreeBSD patch
2009-08-26 03:43:20 +0200 mh r275384 : #i101333# patch for FreeBSD
2009-08-26 03:11:20 +0200 mh r275383 : #i39230
2009-08-26 03:07:51 +0200 mh r275382 : #i39230# more space for initials field
2009-08-26 02:41:19 +0200 mh r275380 : #i39230# use vos::osecurity for reading the user name
2009-08-18 22:06:00 +0200 mh r275130 : #i104243#, line ending problem with newer perl
2009-08-18 21:53:21 +0200 mh r275129 : #i39230# read initials via getpwnam
2009-08-18 21:34:05 +0200 mh r275128 : enable CAIROCANVAS for Linux and Mac, #i88613#
2009-08-17 18:02:59 +0200 mh r275067 : #i95498# make compile with gcc3
2009-09-10 kz CWS-TOOLING: integrate CWS tkr24
2009-09-07 14:31:06 +0200 is r275898 : #160081# adding NO_LICENSE_INTO_COPYRIGHT
2009-09-10 releng #i10000# change KeyMapping to SingletonRef<framework::KeyMapping>
2009-09-11 convert-repo update tags
2009-09-10 kz CWS-TOOLING: integrate CWS os2port06dev300
2009-09-05 22:49:00 +0200 ydario r275858 : #i99588# applied os2port06 diff to DEV300 tree.
2009-09-10 kz CWS-TOOLING: integrate CWS mingwport23
2009-08-29 07:07:53 +0200 tono r275555 : i#104522: mingw port graphite
2009-08-29 07:07:26 +0200 tono r275554 : i#104522: mingw port printf format fix
2009-09-10 kz CWS-TOOLING: integrate CWS mh232
2009-08-26 03:52:57 +0200 mh r275385 : #i102182# FreeBSD patch
2009-08-26 03:43:20 +0200 mh r275384 : #i101333# patch for FreeBSD
2009-08-26 03:11:20 +0200 mh r275383 : #i39230
2009-08-26 03:07:51 +0200 mh r275382 : #i39230# more space for initials field
2009-08-26 02:41:19 +0200 mh r275380 : #i39230# use vos::osecurity for reading the user name
2009-08-18 22:06:00 +0200 mh r275130 : #i104243#, line ending problem with newer perl
2009-08-18 21:53:21 +0200 mh r275129 : #i39230# read initials via getpwnam
2009-08-18 21:34:05 +0200 mh r275128 : enable CAIROCANVAS for Linux and Mac, #i88613#
2009-08-17 18:02:59 +0200 mh r275067 : #i95498# make compile with gcc3
2009-09-10 kz CWS-TOOLING: integrate CWS tkr24
2009-09-07 14:31:06 +0200 is r275898 : #160081# adding NO_LICENSE_INTO_COPYRIGHT
2009-09-10 releng #i10000# change KeyMapping to SingletonRef<framework::KeyMapping>
2009-09-11 14:29:45 +00:00
|
|
|
SwTxtAttr* pTxtAttr = pTxtNd->GetTxtAttrForCharAt(
|
|
|
|
pCursorPos->nContent.GetIndex(), RES_TXTATR_FIELD );
|
2008-07-08 07:19:50 +00:00
|
|
|
const SwField* pFld = pTxtAttr ? pTxtAttr->GetFld().GetFld() : 0;
|
|
|
|
if ( pFld && pFld->Which()== RES_POSTITFLD )
|
|
|
|
{
|
|
|
|
pPostItFld = static_cast<const SwPostItField*>(pFld);
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
return pPostItFld;
|
|
|
|
}
|
|
|
|
|
2000-09-18 23:08:29 +00:00
|
|
|
// befindet sich der Node in einem geschuetzten Bereich?
|
2011-01-17 15:06:54 +01:00
|
|
|
sal_Bool SwContentAtPos::IsInProtectSect() const
|
2000-09-18 23:08:29 +00:00
|
|
|
{
|
|
|
|
const SwTxtNode* pNd = 0;
|
|
|
|
if( pFndTxtAttr )
|
|
|
|
{
|
|
|
|
switch( eCntntAtPos )
|
|
|
|
{
|
|
|
|
case SW_FIELD:
|
|
|
|
case SW_CLICKFIELD:
|
|
|
|
pNd = ((SwTxtFld*)pFndTxtAttr)->GetpTxtNode();
|
|
|
|
break;
|
|
|
|
|
|
|
|
case SW_FTN:
|
|
|
|
pNd = &((SwTxtFtn*)pFndTxtAttr)->GetTxtNode();
|
|
|
|
break;
|
|
|
|
|
|
|
|
case SW_INETATTR:
|
|
|
|
pNd = ((SwTxtINetFmt*)pFndTxtAttr)->GetpTxtNode();
|
|
|
|
break;
|
2004-06-16 08:33:43 +00:00
|
|
|
|
|
|
|
default:
|
|
|
|
break;
|
2000-09-18 23:08:29 +00:00
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
const SwCntntFrm* pFrm;
|
|
|
|
return pNd && ( pNd->IsInProtectSect() ||
|
2011-02-09 15:55:27 +01:00
|
|
|
( 0 != ( pFrm = pNd->getLayoutFrm( pNd->GetDoc()->GetCurrentLayout(), 0,0,sal_False)) &&
|
2000-09-18 23:08:29 +00:00
|
|
|
pFrm->IsProtected() ));
|
|
|
|
}
|
2011-02-09 15:55:27 +01:00
|
|
|
|
2003-12-01 08:37:46 +00:00
|
|
|
bool SwContentAtPos::IsInRTLText()const
|
|
|
|
{
|
|
|
|
bool bRet = false;
|
|
|
|
const SwTxtNode* pNd = 0;
|
2004-06-16 08:33:43 +00:00
|
|
|
if (pFndTxtAttr && (eCntntAtPos == SW_FTN))
|
2003-12-01 08:37:46 +00:00
|
|
|
{
|
2004-06-16 08:33:43 +00:00
|
|
|
const SwTxtFtn* pTxtFtn = static_cast<const SwTxtFtn*>(pFndTxtAttr);
|
|
|
|
if(pTxtFtn->GetStartNode())
|
2003-12-01 08:37:46 +00:00
|
|
|
{
|
2004-06-16 08:33:43 +00:00
|
|
|
SwStartNode* pSttNd = pTxtFtn->GetStartNode()->GetNode().GetStartNode();
|
|
|
|
SwPaM aTemp( *pSttNd );
|
|
|
|
aTemp.Move(fnMoveForward, fnGoNode);
|
|
|
|
SwCntntNode* pCntntNode = aTemp.GetCntntNode();
|
|
|
|
if(pCntntNode && pCntntNode->IsTxtNode())
|
|
|
|
pNd = static_cast<SwTxtNode*>(pCntntNode);
|
2003-12-01 08:37:46 +00:00
|
|
|
}
|
|
|
|
}
|
|
|
|
if(pNd)
|
|
|
|
{
|
2010-12-17 09:02:23 +01:00
|
|
|
SwIterator<SwTxtFrm,SwTxtNode> aIter(*pNd);
|
|
|
|
SwTxtFrm* pTmpFrm = aIter.First();
|
|
|
|
while( pTmpFrm )
|
2003-12-01 08:37:46 +00:00
|
|
|
{
|
|
|
|
if ( !pTmpFrm->IsFollow())
|
|
|
|
{
|
|
|
|
bRet = pTmpFrm->IsRightToLeft();
|
|
|
|
break;
|
|
|
|
}
|
2010-12-17 09:02:23 +01:00
|
|
|
pTmpFrm = aIter.Next();
|
2003-12-01 08:37:46 +00:00
|
|
|
}
|
|
|
|
}
|
|
|
|
return bRet;
|
|
|
|
}
|
2000-09-18 23:08:29 +00:00
|
|
|
|
2011-01-17 15:06:54 +01:00
|
|
|
sal_Bool SwCrsrShell::SelectTxtAttr( sal_uInt16 nWhich, sal_Bool bExpand,
|
2000-09-18 23:08:29 +00:00
|
|
|
const SwTxtAttr* pTxtAttr )
|
|
|
|
{
|
|
|
|
SET_CURR_SHELL( this );
|
2011-01-17 15:06:54 +01:00
|
|
|
sal_Bool bRet = sal_False;
|
2000-09-18 23:08:29 +00:00
|
|
|
|
|
|
|
if( !IsTableMode() )
|
|
|
|
{
|
|
|
|
SwPosition& rPos = *pCurCrsr->GetPoint();
|
|
|
|
if( !pTxtAttr )
|
|
|
|
{
|
|
|
|
SwTxtNode* pTxtNd = rPos.nNode.GetNode().GetTxtNode();
|
2010-03-09 13:27:18 +01:00
|
|
|
pTxtAttr = (pTxtNd)
|
|
|
|
? pTxtNd->GetTxtAttrAt(rPos.nContent.GetIndex(),
|
2010-03-09 13:27:19 +01:00
|
|
|
static_cast<RES_TXTATR>(nWhich),
|
|
|
|
(bExpand) ? SwTxtNode::EXPAND : SwTxtNode::DEFAULT)
|
2010-03-09 13:27:18 +01:00
|
|
|
: 0;
|
2000-09-18 23:08:29 +00:00
|
|
|
}
|
|
|
|
|
|
|
|
if( pTxtAttr )
|
|
|
|
{
|
|
|
|
SwCallLink aLk( *this ); // Crsr-Moves ueberwachen,
|
|
|
|
SwCrsrSaveState aSaveState( *pCurCrsr );
|
|
|
|
|
|
|
|
pCurCrsr->DeleteMark();
|
|
|
|
rPos.nContent = *pTxtAttr->GetStart();
|
|
|
|
pCurCrsr->SetMark();
|
|
|
|
const xub_StrLen* pEnd = pTxtAttr->GetEnd();
|
|
|
|
rPos.nContent = pEnd ? *pEnd : *pTxtAttr->GetStart() + 1;
|
|
|
|
|
|
|
|
if( !pCurCrsr->IsSelOvr() )
|
|
|
|
{
|
|
|
|
UpdateCrsr();
|
2011-01-17 15:06:54 +01:00
|
|
|
bRet = sal_True;
|
2000-09-18 23:08:29 +00:00
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
return bRet;
|
|
|
|
}
|
|
|
|
|
|
|
|
|
2011-01-17 15:06:54 +01:00
|
|
|
sal_Bool SwCrsrShell::GotoINetAttr( const SwTxtINetFmt& rAttr )
|
2000-09-18 23:08:29 +00:00
|
|
|
{
|
2011-01-17 15:06:54 +01:00
|
|
|
sal_Bool bRet = sal_False;
|
2000-09-18 23:08:29 +00:00
|
|
|
if( rAttr.GetpTxtNode() )
|
|
|
|
{
|
2007-11-22 14:30:34 +00:00
|
|
|
SwCursor* pCrsr = getShellCrsr( true );
|
2000-09-18 23:08:29 +00:00
|
|
|
|
|
|
|
SET_CURR_SHELL( this );
|
|
|
|
SwCallLink aLk( *this ); // Crsr-Moves ueberwachen, evt. Link callen
|
|
|
|
SwCrsrSaveState aSaveState( *pCrsr );
|
|
|
|
|
|
|
|
pCrsr->GetPoint()->nNode = *rAttr.GetpTxtNode();
|
|
|
|
pCrsr->GetPoint()->nContent.Assign( (SwTxtNode*)rAttr.GetpTxtNode(),
|
|
|
|
*rAttr.GetStart() );
|
|
|
|
bRet = !pCrsr->IsSelOvr();
|
|
|
|
if( bRet )
|
|
|
|
UpdateCrsr(SwCrsrShell::SCROLLWIN|SwCrsrShell::CHKRANGE|SwCrsrShell::READONLY);
|
|
|
|
}
|
|
|
|
return bRet;
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
const SwFmtINetFmt* SwCrsrShell::FindINetAttr( const String& rName ) const
|
|
|
|
{
|
|
|
|
return pDoc->FindINetAttr( rName );
|
|
|
|
}
|
|
|
|
|
2011-01-17 15:06:54 +01:00
|
|
|
sal_Bool SwCrsrShell::GetShadowCrsrPos( const Point& rPt, SwFillMode eFillMode,
|
2007-09-27 07:28:58 +00:00
|
|
|
SwRect& rRect, sal_Int16& rOrient )
|
2000-09-18 23:08:29 +00:00
|
|
|
{
|
|
|
|
|
|
|
|
SET_CURR_SHELL( this );
|
2011-01-17 15:06:54 +01:00
|
|
|
sal_Bool bRet = sal_False;
|
2000-09-18 23:08:29 +00:00
|
|
|
|
2010-11-25 14:31:08 +01:00
|
|
|
if (!IsTableMode() && !HasSelection()
|
|
|
|
&& GetDoc()->GetIDocumentUndoRedo().DoesUndo())
|
2000-09-18 23:08:29 +00:00
|
|
|
{
|
|
|
|
Point aPt( rPt );
|
|
|
|
SwPosition aPos( *pCurCrsr->GetPoint() );
|
|
|
|
|
|
|
|
SwFillCrsrPos aFPos( eFillMode );
|
|
|
|
SwCrsrMoveState aTmpState( &aFPos );
|
|
|
|
|
|
|
|
if( GetLayout()->GetCrsrOfst( &aPos, aPt, &aTmpState ) &&
|
|
|
|
!aPos.nNode.GetNode().IsProtect())
|
|
|
|
{
|
|
|
|
// Start-Position im geschuetzten Bereich?
|
|
|
|
rRect = aFPos.aCrsr;
|
|
|
|
rOrient = aFPos.eOrient;
|
2011-01-17 15:06:54 +01:00
|
|
|
bRet = sal_True;
|
2000-09-18 23:08:29 +00:00
|
|
|
}
|
|
|
|
}
|
|
|
|
return bRet;
|
|
|
|
}
|
|
|
|
|
2011-01-17 15:06:54 +01:00
|
|
|
sal_Bool SwCrsrShell::SetShadowCrsrPos( const Point& rPt, SwFillMode eFillMode )
|
2000-09-18 23:08:29 +00:00
|
|
|
{
|
|
|
|
SET_CURR_SHELL( this );
|
2011-01-17 15:06:54 +01:00
|
|
|
sal_Bool bRet = sal_False;
|
2000-09-18 23:08:29 +00:00
|
|
|
|
2010-11-25 14:31:08 +01:00
|
|
|
if (!IsTableMode() && !HasSelection()
|
|
|
|
&& GetDoc()->GetIDocumentUndoRedo().DoesUndo())
|
2000-09-18 23:08:29 +00:00
|
|
|
{
|
|
|
|
Point aPt( rPt );
|
|
|
|
SwPosition aPos( *pCurCrsr->GetPoint() );
|
|
|
|
|
|
|
|
SwFillCrsrPos aFPos( eFillMode );
|
|
|
|
SwCrsrMoveState aTmpState( &aFPos );
|
|
|
|
|
|
|
|
if( GetLayout()->GetCrsrOfst( &aPos, aPt, &aTmpState ) )
|
|
|
|
{
|
|
|
|
SwCallLink aLk( *this ); // Crsr-Moves ueberwachen
|
|
|
|
StartAction();
|
|
|
|
|
|
|
|
SwCntntNode* pCNd = aPos.nNode.GetNode().GetCntntNode();
|
2007-09-27 07:28:58 +00:00
|
|
|
SwUndoId nUndoId = UNDO_INS_FROM_SHADOWCRSR;
|
2000-09-18 23:08:29 +00:00
|
|
|
// Werden nur die Absatzattribute Adjust oder LRSpace gesetzt,
|
|
|
|
// dann sollte der naechste Aufruf die NICHT wieder entfernen.
|
|
|
|
if( 0 == aFPos.nParaCnt + aFPos.nColumnCnt &&
|
|
|
|
( FILL_INDENT == aFPos.eMode ||
|
2007-09-27 07:28:58 +00:00
|
|
|
( text::HoriOrientation::NONE != aFPos.eOrient &&
|
2000-09-18 23:08:29 +00:00
|
|
|
0 == aFPos.nTabCnt + aFPos.nSpaceCnt )) &&
|
|
|
|
pCNd && pCNd->Len() )
|
2007-09-27 07:28:58 +00:00
|
|
|
nUndoId = UNDO_EMPTY;
|
2000-09-18 23:08:29 +00:00
|
|
|
|
2010-11-25 14:31:08 +01:00
|
|
|
GetDoc()->GetIDocumentUndoRedo().StartUndo( nUndoId, NULL );
|
2000-09-18 23:08:29 +00:00
|
|
|
|
|
|
|
SwTxtFmtColl* pNextFmt = 0;
|
|
|
|
SwTxtNode* pTNd = pCNd->GetTxtNode();
|
|
|
|
if( pTNd )
|
|
|
|
pNextFmt = &pTNd->GetTxtColl()->GetNextTxtFmtColl();
|
|
|
|
|
|
|
|
const SwSectionNode* pSectNd = pCNd->FindSectionNode();
|
|
|
|
if( pSectNd && aFPos.nParaCnt )
|
|
|
|
{
|
|
|
|
SwNodeIndex aEnd( aPos.nNode, 1 );
|
|
|
|
while( aEnd.GetNode().IsEndNode() &&
|
|
|
|
(const SwNode*)&aEnd.GetNode() !=
|
|
|
|
pSectNd->EndOfSectionNode() )
|
|
|
|
aEnd++;
|
|
|
|
|
|
|
|
if( aEnd.GetNode().IsEndNode() &&
|
|
|
|
pCNd->Len() == aPos.nContent.GetIndex() )
|
|
|
|
aPos.nNode = *pSectNd->EndOfSectionNode();
|
|
|
|
}
|
|
|
|
|
2011-01-17 15:06:54 +01:00
|
|
|
for( sal_uInt16 n = 0; n < aFPos.nParaCnt + aFPos.nColumnCnt; ++n )
|
2000-09-18 23:08:29 +00:00
|
|
|
{
|
|
|
|
GetDoc()->AppendTxtNode( aPos );
|
|
|
|
if( !n && pNextFmt )
|
|
|
|
{
|
|
|
|
*pCurCrsr->GetPoint() = aPos;
|
2007-12-12 12:22:21 +00:00
|
|
|
GetDoc()->SetTxtFmtColl( *pCurCrsr, pNextFmt, false );
|
2000-09-18 23:08:29 +00:00
|
|
|
}
|
|
|
|
if( n < aFPos.nColumnCnt )
|
|
|
|
{
|
|
|
|
*pCurCrsr->GetPoint() = aPos;
|
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
|
|
|
GetDoc()->InsertPoolItem( *pCurCrsr,
|
2007-05-10 14:55:09 +00:00
|
|
|
SvxFmtBreakItem( SVX_BREAK_COLUMN_BEFORE, RES_BREAK ), 0);
|
2000-09-18 23:08:29 +00:00
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
*pCurCrsr->GetPoint() = aPos;
|
|
|
|
switch( aFPos.eMode )
|
|
|
|
{
|
|
|
|
case FILL_INDENT:
|
|
|
|
if( 0 != (pCNd = aPos.nNode.GetNode().GetCntntNode() ))
|
|
|
|
{
|
|
|
|
SfxItemSet aSet( GetDoc()->GetAttrPool(),
|
|
|
|
RES_LR_SPACE, RES_LR_SPACE,
|
|
|
|
RES_PARATR_ADJUST, RES_PARATR_ADJUST,
|
|
|
|
0 );
|
|
|
|
SvxLRSpaceItem aLR( (SvxLRSpaceItem&)
|
|
|
|
pCNd->GetAttr( RES_LR_SPACE ) );
|
|
|
|
aLR.SetTxtLeft( aFPos.nTabCnt );
|
|
|
|
aLR.SetTxtFirstLineOfst( 0 );
|
|
|
|
aSet.Put( aLR );
|
|
|
|
|
|
|
|
const SvxAdjustItem& rAdj = (SvxAdjustItem&)pCNd->
|
|
|
|
GetAttr( RES_PARATR_ADJUST );
|
|
|
|
if( SVX_ADJUST_LEFT != rAdj.GetAdjust() )
|
2007-05-10 14:55:09 +00:00
|
|
|
aSet.Put( SvxAdjustItem( SVX_ADJUST_LEFT, RES_PARATR_ADJUST ) );
|
2000-09-18 23:08:29 +00:00
|
|
|
|
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
|
|
|
GetDoc()->InsertItemSet( *pCurCrsr, aSet, 0 );
|
2000-09-18 23:08:29 +00:00
|
|
|
}
|
2008-04-22 13:56:16 +00:00
|
|
|
else {
|
2010-11-25 17:08:45 +01:00
|
|
|
OSL_ENSURE( !this, "wo ist mein CntntNode?" );
|
2008-04-22 13:56:16 +00:00
|
|
|
}
|
2000-09-18 23:08:29 +00:00
|
|
|
break;
|
|
|
|
|
|
|
|
case FILL_TAB:
|
|
|
|
case FILL_SPACE:
|
|
|
|
{
|
|
|
|
String sInsert;
|
|
|
|
if( aFPos.nTabCnt )
|
|
|
|
sInsert.Fill( aFPos.nTabCnt, '\t' );
|
|
|
|
if( aFPos.nSpaceCnt )
|
|
|
|
{
|
|
|
|
String sSpace;
|
|
|
|
sSpace.Fill( aFPos.nSpaceCnt );
|
|
|
|
sInsert += sSpace;
|
|
|
|
}
|
|
|
|
if( sInsert.Len() )
|
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
|
|
|
{
|
|
|
|
GetDoc()->InsertString( *pCurCrsr, sInsert );
|
|
|
|
}
|
2000-09-18 23:08:29 +00:00
|
|
|
}
|
|
|
|
// kein break - Ausrichtung muss noch gesetzt werden
|
|
|
|
case FILL_MARGIN:
|
2007-09-27 07:28:58 +00:00
|
|
|
if( text::HoriOrientation::NONE != aFPos.eOrient )
|
2000-09-18 23:08:29 +00:00
|
|
|
{
|
2007-05-10 14:55:09 +00:00
|
|
|
SvxAdjustItem aAdj( SVX_ADJUST_LEFT, RES_PARATR_ADJUST );
|
2000-09-18 23:08:29 +00:00
|
|
|
switch( aFPos.eOrient )
|
|
|
|
{
|
2007-09-27 07:28:58 +00:00
|
|
|
case text::HoriOrientation::CENTER:
|
2000-09-18 23:08:29 +00:00
|
|
|
aAdj.SetAdjust( SVX_ADJUST_CENTER );
|
|
|
|
break;
|
2007-09-27 07:28:58 +00:00
|
|
|
case text::HoriOrientation::RIGHT:
|
2000-09-18 23:08:29 +00:00
|
|
|
aAdj.SetAdjust( SVX_ADJUST_RIGHT );
|
|
|
|
break;
|
2004-06-16 08:33:43 +00:00
|
|
|
default:
|
|
|
|
break;
|
2000-09-18 23:08:29 +00:00
|
|
|
}
|
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
|
|
|
GetDoc()->InsertPoolItem( *pCurCrsr, aAdj, 0 );
|
2000-09-18 23:08:29 +00:00
|
|
|
}
|
|
|
|
break;
|
|
|
|
}
|
|
|
|
|
2010-11-25 14:31:08 +01:00
|
|
|
GetDoc()->GetIDocumentUndoRedo().EndUndo( nUndoId, NULL );
|
2000-09-18 23:08:29 +00:00
|
|
|
EndAction();
|
|
|
|
|
2011-01-17 15:06:54 +01:00
|
|
|
bRet = sal_True;
|
2000-09-18 23:08:29 +00:00
|
|
|
}
|
|
|
|
}
|
|
|
|
return bRet;
|
|
|
|
}
|
|
|
|
|
|
|
|
const SwRedline* SwCrsrShell::SelNextRedline()
|
|
|
|
{
|
|
|
|
const SwRedline* pFnd = 0;
|
|
|
|
if( !IsTableMode() )
|
|
|
|
{
|
|
|
|
SET_CURR_SHELL( this );
|
|
|
|
SwCallLink aLk( *this ); // Crsr-Moves ueberwachen, evt. Link callen
|
|
|
|
SwCrsrSaveState aSaveState( *pCurCrsr );
|
|
|
|
|
|
|
|
pFnd = GetDoc()->SelNextRedline( *pCurCrsr );
|
|
|
|
if( pFnd && !pCurCrsr->IsInProtectTable() && !pCurCrsr->IsSelOvr() )
|
|
|
|
UpdateCrsr( SwCrsrShell::SCROLLWIN|SwCrsrShell::CHKRANGE|SwCrsrShell::READONLY);
|
|
|
|
else
|
|
|
|
pFnd = 0;
|
|
|
|
}
|
|
|
|
return pFnd;
|
|
|
|
}
|
|
|
|
|
|
|
|
const SwRedline* SwCrsrShell::SelPrevRedline()
|
|
|
|
{
|
|
|
|
const SwRedline* pFnd = 0;
|
|
|
|
if( !IsTableMode() )
|
|
|
|
{
|
|
|
|
SET_CURR_SHELL( this );
|
|
|
|
SwCallLink aLk( *this ); // Crsr-Moves ueberwachen, evt. Link callen
|
|
|
|
SwCrsrSaveState aSaveState( *pCurCrsr );
|
|
|
|
|
|
|
|
pFnd = GetDoc()->SelPrevRedline( *pCurCrsr );
|
|
|
|
if( pFnd && !pCurCrsr->IsInProtectTable() && !pCurCrsr->IsSelOvr() )
|
|
|
|
UpdateCrsr( SwCrsrShell::SCROLLWIN|SwCrsrShell::CHKRANGE|SwCrsrShell::READONLY);
|
|
|
|
else
|
|
|
|
pFnd = 0;
|
|
|
|
}
|
|
|
|
return pFnd;
|
|
|
|
}
|
|
|
|
|
2011-01-17 15:06:54 +01:00
|
|
|
const SwRedline* SwCrsrShell::_GotoRedline( sal_uInt16 nArrPos, sal_Bool bSelect )
|
2000-09-18 23:08:29 +00:00
|
|
|
{
|
|
|
|
const SwRedline* pFnd = 0;
|
|
|
|
SwCallLink aLk( *this ); // Crsr-Moves ueberwachen, evt. Link callen
|
|
|
|
SwCrsrSaveState aSaveState( *pCurCrsr );
|
|
|
|
|
|
|
|
pFnd = GetDoc()->GetRedlineTbl()[ nArrPos ];
|
|
|
|
if( pFnd )
|
|
|
|
{
|
|
|
|
*pCurCrsr->GetPoint() = *pFnd->Start();
|
|
|
|
|
|
|
|
SwCntntNode* pCNd;
|
|
|
|
SwNodeIndex* pIdx = &pCurCrsr->GetPoint()->nNode;
|
|
|
|
if( !pIdx->GetNode().IsCntntNode() &&
|
|
|
|
0 != ( pCNd = GetDoc()->GetNodes().GoNextSection( pIdx,
|
2011-01-17 15:06:54 +01:00
|
|
|
sal_True, IsReadOnlyAvailable() )) )
|
2000-09-18 23:08:29 +00:00
|
|
|
{
|
|
|
|
if( *pIdx <= pFnd->End()->nNode )
|
|
|
|
pCurCrsr->GetPoint()->nContent.Assign( pCNd, 0 );
|
|
|
|
else
|
|
|
|
pFnd = 0;
|
|
|
|
}
|
|
|
|
|
|
|
|
if( pFnd && bSelect )
|
|
|
|
{
|
|
|
|
pCurCrsr->SetMark();
|
2007-09-27 07:28:58 +00:00
|
|
|
if( nsRedlineType_t::REDLINE_FMTCOLL == pFnd->GetType() )
|
2000-09-18 23:08:29 +00:00
|
|
|
{
|
|
|
|
pCNd = pIdx->GetNode().GetCntntNode();
|
|
|
|
pCurCrsr->GetPoint()->nContent.Assign( pCNd, pCNd->Len() );
|
|
|
|
pCurCrsr->GetMark()->nContent.Assign( pCNd, 0 );
|
|
|
|
}
|
|
|
|
else
|
|
|
|
*pCurCrsr->GetPoint() = *pFnd->End();
|
|
|
|
|
|
|
|
pIdx = &pCurCrsr->GetPoint()->nNode;
|
|
|
|
if( !pIdx->GetNode().IsCntntNode() &&
|
|
|
|
0 != ( pCNd = GetDoc()->GetNodes().GoPrevSection( pIdx,
|
2011-01-17 15:06:54 +01:00
|
|
|
sal_True, IsReadOnlyAvailable() )) )
|
2000-09-18 23:08:29 +00:00
|
|
|
{
|
|
|
|
if( *pIdx >= pCurCrsr->GetMark()->nNode )
|
|
|
|
pCurCrsr->GetPoint()->nContent.Assign( pCNd, pCNd->Len() );
|
|
|
|
else
|
|
|
|
pFnd = 0;
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
if( !pFnd )
|
|
|
|
{
|
|
|
|
pCurCrsr->DeleteMark();
|
|
|
|
pCurCrsr->RestoreSavePos();
|
|
|
|
}
|
|
|
|
else if( bSelect && *pCurCrsr->GetMark() == *pCurCrsr->GetPoint() )
|
|
|
|
pCurCrsr->DeleteMark();
|
|
|
|
|
|
|
|
if( pFnd && !pCurCrsr->IsInProtectTable() && !pCurCrsr->IsSelOvr() )
|
|
|
|
UpdateCrsr( SwCrsrShell::SCROLLWIN | SwCrsrShell::CHKRANGE
|
|
|
|
| SwCrsrShell::READONLY );
|
|
|
|
else
|
|
|
|
{
|
|
|
|
pFnd = 0;
|
|
|
|
if( bSelect )
|
|
|
|
pCurCrsr->DeleteMark();
|
|
|
|
}
|
|
|
|
}
|
|
|
|
return pFnd;
|
|
|
|
}
|
|
|
|
|
2011-01-17 15:06:54 +01:00
|
|
|
const SwRedline* SwCrsrShell::GotoRedline( sal_uInt16 nArrPos, sal_Bool bSelect )
|
2000-09-18 23:08:29 +00:00
|
|
|
{
|
|
|
|
const SwRedline* pFnd = 0;
|
|
|
|
if( !IsTableMode() )
|
|
|
|
{
|
|
|
|
SET_CURR_SHELL( this );
|
|
|
|
|
|
|
|
const SwRedlineTbl& rTbl = GetDoc()->GetRedlineTbl();
|
|
|
|
const SwRedline* pTmp = rTbl[ nArrPos ];
|
2011-01-17 15:06:54 +01:00
|
|
|
sal_uInt16 nSeqNo = pTmp->GetSeqNo();
|
2000-09-18 23:08:29 +00:00
|
|
|
if( nSeqNo && bSelect )
|
|
|
|
{
|
2011-01-17 15:06:54 +01:00
|
|
|
sal_Bool bCheck = sal_False;
|
2000-09-18 23:08:29 +00:00
|
|
|
int nLoopCnt = 2;
|
2011-01-17 15:06:54 +01:00
|
|
|
sal_uInt16 nArrSavPos = nArrPos;
|
2000-09-18 23:08:29 +00:00
|
|
|
|
|
|
|
do {
|
2011-01-17 15:06:54 +01:00
|
|
|
pTmp = _GotoRedline( nArrPos, sal_True );
|
2000-09-18 23:08:29 +00:00
|
|
|
|
|
|
|
if( !pFnd )
|
|
|
|
pFnd = pTmp;
|
|
|
|
|
|
|
|
if( pTmp && bCheck )
|
|
|
|
{
|
|
|
|
// checke auf Ueberlappungen. Das kann durch
|
|
|
|
// FmtColl-Redlines kommen, die auf den gesamten Absatz
|
|
|
|
// aus gedehnt werden.
|
|
|
|
|
2007-09-27 07:28:58 +00:00
|
|
|
SwPaM* pCur = pCurCrsr;
|
|
|
|
SwPaM* pNextPam = (SwPaM*)pCur->GetNext();
|
2000-09-18 23:08:29 +00:00
|
|
|
SwPosition* pCStt = pCur->Start(), *pCEnd = pCur->End();
|
2007-09-27 07:28:58 +00:00
|
|
|
while( pCur != pNextPam )
|
2000-09-18 23:08:29 +00:00
|
|
|
{
|
2007-09-27 07:28:58 +00:00
|
|
|
const SwPosition *pNStt = pNextPam->Start(),
|
|
|
|
*pNEnd = pNextPam->End();
|
2000-09-18 23:08:29 +00:00
|
|
|
|
2011-01-17 15:06:54 +01:00
|
|
|
sal_Bool bDel = sal_True;
|
2000-09-18 23:08:29 +00:00
|
|
|
switch( ::ComparePosition( *pCStt, *pCEnd,
|
|
|
|
*pNStt, *pNEnd ))
|
|
|
|
{
|
|
|
|
case POS_INSIDE: // Pos1 liegt vollstaendig in Pos2
|
|
|
|
if( !pCur->HasMark() )
|
|
|
|
{
|
|
|
|
pCur->SetMark();
|
|
|
|
*pCur->GetMark() = *pNStt;
|
|
|
|
}
|
|
|
|
else
|
|
|
|
*pCStt = *pNStt;
|
|
|
|
*pCEnd = *pNEnd;
|
|
|
|
break;
|
|
|
|
|
|
|
|
case POS_OUTSIDE: // Pos2 liegt vollstaendig in Pos1
|
|
|
|
case POS_EQUAL: // Pos1 ist genauso gross wie Pos2
|
|
|
|
break;
|
|
|
|
|
|
|
|
case POS_OVERLAP_BEFORE: // Pos1 ueberlappt Pos2 am Anfang
|
|
|
|
if( !pCur->HasMark() )
|
|
|
|
pCur->SetMark();
|
|
|
|
*pCEnd = *pNEnd;
|
|
|
|
break;
|
|
|
|
case POS_OVERLAP_BEHIND: // Pos1 ueberlappt Pos2 am Ende
|
|
|
|
if( !pCur->HasMark() )
|
|
|
|
{
|
|
|
|
pCur->SetMark();
|
|
|
|
*pCur->GetMark() = *pNStt;
|
|
|
|
}
|
|
|
|
else
|
|
|
|
*pCStt = *pNStt;
|
|
|
|
break;
|
|
|
|
|
|
|
|
default:
|
2011-01-17 15:06:54 +01:00
|
|
|
bDel = sal_False;
|
2000-09-18 23:08:29 +00:00
|
|
|
}
|
|
|
|
|
|
|
|
if( bDel )
|
|
|
|
{
|
|
|
|
// den brauchen wir nicht mehr
|
2007-09-27 07:28:58 +00:00
|
|
|
SwPaM* pPrevPam = (SwPaM*)pNextPam->GetPrev();
|
|
|
|
delete pNextPam;
|
|
|
|
pNextPam = pPrevPam;
|
2000-09-18 23:08:29 +00:00
|
|
|
}
|
2007-09-27 07:28:58 +00:00
|
|
|
pNextPam = (SwPaM*)pNextPam->GetNext();
|
2000-09-18 23:08:29 +00:00
|
|
|
}
|
|
|
|
}
|
|
|
|
|
2011-01-17 15:06:54 +01:00
|
|
|
sal_uInt16 nFndPos = 2 == nLoopCnt
|
2000-09-18 23:08:29 +00:00
|
|
|
? rTbl.FindNextOfSeqNo( nArrPos )
|
|
|
|
: rTbl.FindPrevOfSeqNo( nArrPos );
|
|
|
|
if( USHRT_MAX != nFndPos ||
|
|
|
|
( 0 != ( --nLoopCnt ) && USHRT_MAX != (
|
|
|
|
nFndPos = rTbl.FindPrevOfSeqNo( nArrSavPos ))) )
|
|
|
|
{
|
|
|
|
if( pTmp )
|
|
|
|
{
|
|
|
|
// neuen Cursor erzeugen
|
|
|
|
CreateCrsr();
|
2011-01-17 15:06:54 +01:00
|
|
|
bCheck = sal_True;
|
2000-09-18 23:08:29 +00:00
|
|
|
}
|
|
|
|
nArrPos = nFndPos;
|
|
|
|
}
|
|
|
|
else
|
|
|
|
nLoopCnt = 0;
|
|
|
|
|
|
|
|
} while( nLoopCnt );
|
|
|
|
}
|
|
|
|
else
|
|
|
|
pFnd = _GotoRedline( nArrPos, bSelect );
|
|
|
|
}
|
|
|
|
return pFnd;
|
|
|
|
}
|
|
|
|
|
|
|
|
|
2011-01-17 15:06:54 +01:00
|
|
|
sal_Bool SwCrsrShell::SelectNxtPrvHyperlink( sal_Bool bNext )
|
2002-02-08 14:06:36 +00:00
|
|
|
{
|
|
|
|
SwNodes& rNds = GetDoc()->GetNodes();
|
|
|
|
const SwNode* pBodyEndNd = &rNds.GetEndOfContent();
|
2006-08-14 14:51:31 +00:00
|
|
|
const SwNode* pBodySttNd = pBodyEndNd->StartOfSectionNode();
|
2011-01-17 15:06:54 +01:00
|
|
|
sal_uLong nBodySttNdIdx = pBodySttNd->GetIndex();
|
2002-02-08 14:06:36 +00:00
|
|
|
Point aPt;
|
|
|
|
|
|
|
|
_SetGetExpFld aCmpPos( SwPosition( bNext ? *pBodyEndNd : *pBodySttNd ) );
|
|
|
|
_SetGetExpFld aCurPos( bNext ? *pCurCrsr->End() : *pCurCrsr->Start() );
|
|
|
|
if( aCurPos.GetNode() < nBodySttNdIdx )
|
|
|
|
{
|
|
|
|
const SwCntntNode* pCNd = aCurPos.GetNodeFromCntnt()->GetCntntNode();
|
|
|
|
SwCntntFrm* pFrm;
|
2010-06-13 15:22:56 +02:00
|
|
|
if( pCNd && 0 != ( pFrm = pCNd->getLayoutFrm( GetLayout(), &aPt )) )
|
2002-02-08 14:06:36 +00:00
|
|
|
aCurPos.SetBodyPos( *pFrm );
|
|
|
|
}
|
|
|
|
|
|
|
|
// check first all the hyperlink fields
|
|
|
|
{
|
|
|
|
const SwTxtNode* pTxtNd;
|
|
|
|
const SwCharFmts* pFmts = GetDoc()->GetCharFmts();
|
2011-01-17 15:06:54 +01:00
|
|
|
for( sal_uInt16 n = pFmts->Count(); 1 < n; )
|
2002-02-08 14:06:36 +00:00
|
|
|
{
|
2010-12-17 09:02:23 +01:00
|
|
|
SwIterator<SwTxtINetFmt,SwCharFmt> aIter(*(*pFmts)[--n]);
|
2002-02-08 14:06:36 +00:00
|
|
|
|
2010-12-17 09:02:23 +01:00
|
|
|
for( SwTxtINetFmt* pFnd = aIter.First(); pFnd; pFnd = aIter.Next() )
|
|
|
|
if( 0 != ( pTxtNd = pFnd->GetpTxtNode()) &&
|
2002-02-08 14:06:36 +00:00
|
|
|
pTxtNd->GetNodes().IsDocNodes() )
|
|
|
|
{
|
2010-12-17 09:02:23 +01:00
|
|
|
SwTxtINetFmt& rAttr = *pFnd;
|
2002-02-08 14:06:36 +00:00
|
|
|
SwPosition aTmpPos( *pTxtNd );
|
|
|
|
_SetGetExpFld aPos( aTmpPos.nNode, rAttr );
|
|
|
|
SwCntntFrm* pFrm;
|
|
|
|
if( pTxtNd->GetIndex() < nBodySttNdIdx &&
|
2010-06-13 15:22:56 +02:00
|
|
|
0 != ( pFrm = pTxtNd->getLayoutFrm( GetLayout(), &aPt )) )
|
2002-02-08 14:06:36 +00:00
|
|
|
aPos.SetBodyPos( *pFrm );
|
|
|
|
|
|
|
|
if( bNext
|
|
|
|
? ( aPos < aCmpPos && aCurPos < aPos )
|
|
|
|
: ( aCmpPos < aPos && aPos < aCurPos ))
|
|
|
|
{
|
|
|
|
String sTxt( pTxtNd->GetExpandTxt( *rAttr.GetStart(),
|
|
|
|
*rAttr.GetEnd() - *rAttr.GetStart() ) );
|
|
|
|
|
2011-11-18 21:03:31 +00:00
|
|
|
sTxt = comphelper::string::remove(sTxt, 0x0a);
|
2002-02-08 14:06:36 +00:00
|
|
|
sTxt.EraseLeadingChars().EraseTrailingChars();
|
|
|
|
|
|
|
|
if( sTxt.Len() )
|
|
|
|
aCmpPos = aPos;
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
// then check all the Flys with a URL or imapge map
|
|
|
|
{
|
|
|
|
const SwSpzFrmFmts* pFmts = GetDoc()->GetSpzFrmFmts();
|
2011-01-17 15:06:54 +01:00
|
|
|
for( sal_uInt16 n = 0, nEnd = pFmts->Count(); n < nEnd; ++n )
|
2002-02-08 14:06:36 +00:00
|
|
|
{
|
|
|
|
SwFlyFrmFmt* pFmt = (SwFlyFrmFmt*)(*pFmts)[ n ];
|
|
|
|
const SwFmtURL& rURLItem = pFmt->GetURL();
|
|
|
|
if( rURLItem.GetMap() || rURLItem.GetURL().Len() )
|
|
|
|
{
|
2011-01-17 15:06:54 +01:00
|
|
|
SwFlyFrm* pFly = pFmt->GetFrm( &aPt, sal_False );
|
2002-02-08 14:06:36 +00:00
|
|
|
SwPosition aTmpPos( *pBodySttNd );
|
|
|
|
if( pFly &&
|
|
|
|
GetBodyTxtNode( *GetDoc(), aTmpPos, *pFly->GetLower() ) )
|
|
|
|
{
|
|
|
|
_SetGetExpFld aPos( *pFmt, &aTmpPos );
|
|
|
|
|
|
|
|
if( bNext
|
|
|
|
? ( aPos < aCmpPos && aCurPos < aPos )
|
|
|
|
: ( aCmpPos < aPos && aPos < aCurPos ))
|
|
|
|
aCmpPos = aPos;
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
// found any URL ?
|
2011-01-17 15:06:54 +01:00
|
|
|
sal_Bool bRet = sal_False;
|
2002-02-08 14:06:36 +00:00
|
|
|
const SwTxtINetFmt* pFndAttr = aCmpPos.GetINetFmt();
|
|
|
|
const SwFlyFrmFmt* pFndFmt = aCmpPos.GetFlyFmt();
|
|
|
|
if( pFndAttr || pFndFmt )
|
|
|
|
{
|
|
|
|
SET_CURR_SHELL( this );
|
|
|
|
SwCallLink aLk( *this );
|
|
|
|
|
|
|
|
// find a text attribute ?
|
|
|
|
if( pFndAttr )
|
|
|
|
{
|
|
|
|
SwCrsrSaveState aSaveState( *pCurCrsr );
|
|
|
|
|
|
|
|
aCmpPos.GetPosOfContent( *pCurCrsr->GetPoint() );
|
|
|
|
pCurCrsr->DeleteMark();
|
|
|
|
pCurCrsr->SetMark();
|
|
|
|
pCurCrsr->GetPoint()->nContent = *pFndAttr->SwTxtAttr::GetEnd();
|
|
|
|
|
|
|
|
if( !pCurCrsr->IsInProtectTable() && !pCurCrsr->IsSelOvr() )
|
|
|
|
{
|
|
|
|
UpdateCrsr( SwCrsrShell::SCROLLWIN|SwCrsrShell::CHKRANGE|
|
|
|
|
SwCrsrShell::READONLY );
|
2011-01-17 15:06:54 +01:00
|
|
|
bRet = sal_True;
|
2002-02-08 14:06:36 +00:00
|
|
|
}
|
|
|
|
}
|
|
|
|
// find a draw object ?
|
|
|
|
else if( RES_DRAWFRMFMT == pFndFmt->Which() )
|
|
|
|
{
|
|
|
|
const SdrObject* pSObj = pFndFmt->FindSdrObject();
|
2003-11-24 15:00:41 +00:00
|
|
|
((SwFEShell*)this)->SelectObj( pSObj->GetCurrentBoundRect().Center() );
|
2002-02-08 14:06:36 +00:00
|
|
|
MakeSelVisible();
|
2011-01-17 15:06:54 +01:00
|
|
|
bRet = sal_True;
|
2002-02-08 14:06:36 +00:00
|
|
|
}
|
|
|
|
else // then is it a fly
|
|
|
|
{
|
2011-01-17 15:06:54 +01:00
|
|
|
SwFlyFrm* pFly = pFndFmt->GetFrm(&aPt, sal_False );
|
2002-02-08 14:06:36 +00:00
|
|
|
if( pFly )
|
|
|
|
{
|
2011-01-17 15:06:54 +01:00
|
|
|
((SwFEShell*)this)->SelectFlyFrm( *pFly, sal_True );
|
2002-02-08 14:06:36 +00:00
|
|
|
MakeSelVisible();
|
2011-01-17 15:06:54 +01:00
|
|
|
bRet = sal_True;
|
2002-02-08 14:06:36 +00:00
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
return bRet;
|
|
|
|
}
|
2000-09-18 23:08:29 +00:00
|
|
|
|
2010-10-14 08:30:41 +02:00
|
|
|
/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
|