CWS-TOOLING: integrate CWS hb20_DEV300

2009-03-10 09:17:27 +0100 od  r269243 : #i100043# method <OutWW8_SwTxtNode(..)>
	  - if paragraph is numbered via set list style at paragraph style
	    and list level indent values of LABEL_ALIGNMENT list level style
	    not applicable, put indent values into temporary itemset for export
	    NOTE: This is a correction of fix for issue i94187
2009-03-06 08:42:17 +0100 od  r268967 : #i99665# method <SwNoTxtFrm::PaintPicture(..)>
	 - adjust AntiAliasing mode at output device for the output
	   of the chart OLE replacement image
2009-03-05 12:04:34 +0100 od  r268894 : #i99876# method <ObjectContactOfPageView::DoProcessDisplay(..)>
	 - set the ClipRegion as ViewRange on printing, as already done on PDF export
2009-03-05 11:48:13 +0100 od  r268891 : #i99822# method <SwWW8ImplReader::RegisterNumFmtOnTxtNode(..)>
         - do not apply list level formatting indents directly at the text node
           for list levels of position and space mode LABEL_ALIGNMENT
2009-03-05 09:25:24 +0100 hbrinkm  r268876 : #i99789# write vertical merge flags
2009-03-05 08:30:31 +0100 hbrinkm  r268872 : CWS-TOOLING: rebase CWS hb20 to branches/OOO310@268862 (milestone: OOO310:m4)
This commit is contained in:
Vladimir Glazounov 2009-03-17 10:06:02 +00:00
parent 792cbc03ae
commit 482fa4ca7c
8 changed files with 132 additions and 45 deletions

View file

@ -149,6 +149,10 @@ public:
void CheckFileLink_Impl();
// --> OD 2009-03-05 #i99665#
bool IsChart() const;
// <--
#ifndef _FESHVIEW_ONLY_INLINE_NEEDED
const String& GetChartTblName() const { return sChartTblName; }
void SetChartTblName( const String& rNm ) { sChartTblName = rNm; }

View file

@ -82,6 +82,9 @@
#include <svtools/embedhlp.hxx>
#include <svtools/chartprettypainter.hxx>
// --> OD 2009-03-05 #i99665#
#include <dview.hxx>
// <--
using namespace com::sun::star;
@ -955,6 +958,18 @@ void SwNoTxtFrm::PaintPicture( OutputDevice* pOut, const SwRect &rGrfArea ) cons
}
else if( pOLENd )
{
// --> OD 2009-03-05 #i99665#
// Adjust AntiAliasing mode at output device for chart OLE
const USHORT nFormerAntialiasingAtOutput( pOut->GetAntialiasing() );
if ( pOLENd->IsChart() &&
pShell->Imp()->GetDrawView()->IsAntiAliasing() )
{
const USHORT nAntialiasingForChartOLE =
nFormerAntialiasingAtOutput | ANTIALIASING_PIXELSNAPHAIRLINE;
pOut->SetAntialiasing( nAntialiasingForChartOLE );
}
// <--
Point aPosition(aAlignedGrfArea.Pos());
Size aSize(aAlignedGrfArea.SSize());
@ -1003,6 +1018,14 @@ void SwNoTxtFrm::PaintPicture( OutputDevice* pOut, const SwRect &rGrfArea ) cons
ASSERT( pFly, "OLE not in FlyFrm" );
((SwFEShell*)pShell)->ConnectObj( pOLENd->GetOLEObj().GetObject(), pFly->Prt(), pFly->Frm());
}
// --> OD 2009-03-05 #i99665#
if ( pOLENd->IsChart() &&
pShell->Imp()->GetDrawView()->IsAntiAliasing() )
{
pOut->SetAntialiasing( nFormerAntialiasingAtOutput );
}
// <--
}
}

View file

@ -146,6 +146,13 @@ SwDrawView::SwDrawView( SwViewImp &rI, SdrModel *pMd, OutputDevice *pOutDev) :
SetBufferedOutputAllowed(getOptionsDrawinglayer().IsPaintBuffer_Writer());
}
// --> OD 2009-03-05 #i99665#
sal_Bool SwDrawView::IsAntiAliasing() const
{
return getOptionsDrawinglayer().IsAntiAliasing();
}
// <--
/*************************************************************************
|*
|* SwDrawView::AddCustomHdl()

View file

@ -119,6 +119,10 @@ public:
//JP 06.10.98: 2. Versuch
inline void ValidateMarkList() { FlushComeBackTimer(); }
// --> OD 2009-03-05 #i99665#
sal_Bool IsAntiAliasing() const;
// <--
// OD 18.06.2003 #108784# - method to replace marked/selected <SwDrawVirtObj>
// by its reference object for delete of selection and group selection
static void ReplaceMarkedDrawVirtObjs( SdrMarkView& _rMarkView );

View file

@ -644,6 +644,23 @@ void SwOLENode::CheckFileLink_Impl()
}
}
// --> OD 2009-03-05 #i99665#
bool SwOLENode::IsChart() const
{
bool bIsChart( false );
const uno::Reference< embed::XEmbeddedObject > xEmbObj =
const_cast<SwOLEObj&>(GetOLEObj()).GetOleRef();
if ( xEmbObj.is() )
{
SvGlobalName aClassID( xEmbObj->getClassID() );
bIsChart = SotExchange::IsChart( aClassID );
}
return bIsChart;
}
// <--
SwOLEObj::SwOLEObj( const svt::EmbeddedObjectRef& xObj ) :
pOLENd( 0 ),
pListener( 0 ),

View file

@ -1889,20 +1889,29 @@ Writer& OutWW8_SwTxtNode( Writer& rWrt, SwCntntNode& rNode )
aLR.SetTxtFirstLineOfstValue(pFmt->GetAbsLSpace() - pFmt->GetFirstLineOffset());
else
aLR.SetTxtFirstLineOfst(GetWordFirstLineOffset(*pFmt));
// --> OD 2009-01-12 #i94187#
// set list style directly only in position and space mode LABEL_WIDTH_AND_POSITION
if (SFX_ITEM_SET !=
pTmpSet->GetItemState(RES_PARATR_NUMRULE, false) )
{
//If the numbering is not outline, and theres no numrule
//name in the itemset, put one in there
// NumRule from a template - then put it into the itemset
pTmpSet->Put( SwNumRuleItem( pRule->GetName() ));
}
}
// <--
// --> OD 2009-03-09 #100020#
// correct fix for issue i94187
if (SFX_ITEM_SET !=
pTmpSet->GetItemState(RES_PARATR_NUMRULE, false) )
{
// List style set via paragraph style - then put it into the itemset.
// This is needed to get list level and list id exported for
// the paragraph.
pTmpSet->Put( SwNumRuleItem( pRule->GetName() ));
// Put indent values into the itemset in case that the list
// style is applied via paragraph style and the list level
// indent values are not applicable.
if ( pFmt->GetPositionAndSpaceMode() ==
SvxNumberFormat::LABEL_ALIGNMENT &&
!pNd->AreListLevelIndentsApplicable() )
{
pTmpSet->Put( aLR );
}
}
}
else
pTmpSet->ClearItem(RES_PARATR_NUMRULE);

View file

@ -1851,7 +1851,12 @@ static sal_uInt16 lcl_TCFlags(const SwTableBox * pBox)
{
sal_uInt16 nFlags = 0;
//long nRowSpan = pBox->getRowSpan();
long nRowSpan = pBox->getRowSpan();
if (nRowSpan > 1)
nFlags |= (3 << 5);
else if (nRowSpan < 0)
nFlags |= (1 << 5);
const SwFrmFmt * pFmt = pBox->GetFrmFmt();
switch (pFmt->GetVertOrient().GetVertOrient())

View file

@ -1842,43 +1842,61 @@ void SwWW8ImplReader::RegisterNumFmtOnTxtNode(sal_uInt16 nActLFO,
}
// <--
SfxItemSet aListIndent(rDoc.GetAttrPool(), RES_LR_SPACE,
RES_LR_SPACE);
const SvxLRSpaceItem *pItem = (const SvxLRSpaceItem*)(
GetFmtAttr(RES_LR_SPACE));
ASSERT(pItem, "impossible");
if (pItem)
aListIndent.Put(*pItem);
/*
Take the original paragraph sprms attached to this list level
formatting and apply them to the paragraph. I'm convinced that
this is exactly what word does.
*/
if (short nLen = static_cast< short >(aParaSprms.size()))
// --> OD 2009-03-04 #i99822#
// Direct application of the list level formatting no longer
// needed for list levels of mode LABEL_ALIGNMENT
bool bApplyListLevelIndentDirectlyAtPara( true );
if ( pTxtNd->GetNumRule() && nActLevel < MAXLEVEL )
{
SfxItemSet* pOldAktItemSet = pAktItemSet;
SetAktItemSet(&aListIndent);
sal_uInt8* pSprms1 = &aParaSprms[0];
while (0 < nLen)
const SwNumFmt& rFmt = pTxtNd->GetNumRule()->Get( nActLevel );
if ( rFmt.GetPositionAndSpaceMode() ==
SvxNumberFormat::LABEL_ALIGNMENT )
{
sal_uInt16 nL1 = ImportSprm(pSprms1);
nLen = nLen - nL1;
pSprms1 += nL1;
bApplyListLevelIndentDirectlyAtPara = false;
}
}
if ( bApplyListLevelIndentDirectlyAtPara )
{
SfxItemSet aListIndent(rDoc.GetAttrPool(), RES_LR_SPACE,
RES_LR_SPACE);
const SvxLRSpaceItem *pItem = (const SvxLRSpaceItem*)(
GetFmtAttr(RES_LR_SPACE));
ASSERT(pItem, "impossible");
if (pItem)
aListIndent.Put(*pItem);
/*
Take the original paragraph sprms attached to this list level
formatting and apply them to the paragraph. I'm convinced that
this is exactly what word does.
*/
if (short nLen = static_cast< short >(aParaSprms.size()))
{
SfxItemSet* pOldAktItemSet = pAktItemSet;
SetAktItemSet(&aListIndent);
sal_uInt8* pSprms1 = &aParaSprms[0];
while (0 < nLen)
{
sal_uInt16 nL1 = ImportSprm(pSprms1);
nLen = nLen - nL1;
pSprms1 += nL1;
}
SetAktItemSet(pOldAktItemSet);
}
SetAktItemSet(pOldAktItemSet);
}
const SvxLRSpaceItem *pLR =
HasItem<SvxLRSpaceItem>(aListIndent, RES_LR_SPACE);
ASSERT(pLR, "Impossible");
if (pLR)
{
pCtrlStck->NewAttr(*pPaM->GetPoint(), *pLR);
pCtrlStck->SetAttr(*pPaM->GetPoint(), RES_LR_SPACE);
const SvxLRSpaceItem *pLR =
HasItem<SvxLRSpaceItem>(aListIndent, RES_LR_SPACE);
ASSERT(pLR, "Impossible");
if (pLR)
{
pCtrlStck->NewAttr(*pPaM->GetPoint(), *pLR);
pCtrlStck->SetAttr(*pPaM->GetPoint(), RES_LR_SPACE);
}
}
// <--
}
}
}