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:
parent
792cbc03ae
commit
482fa4ca7c
8 changed files with 132 additions and 45 deletions
|
@ -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; }
|
||||
|
|
|
@ -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 );
|
||||
}
|
||||
// <--
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
@ -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()
|
||||
|
|
|
@ -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 );
|
||||
|
|
|
@ -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 ),
|
||||
|
|
|
@ -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);
|
||||
|
|
|
@ -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())
|
||||
|
|
|
@ -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);
|
||||
}
|
||||
}
|
||||
// <--
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
Loading…
Reference in a new issue