diff options
Diffstat (limited to 'svx/source/svdraw')
-rw-r--r-- | svx/source/svdraw/svddrgv.cxx | 3 | ||||
-rw-r--r-- | svx/source/svdraw/svdedtv1.cxx | 3 | ||||
-rw-r--r-- | svx/source/svdraw/svdedxv.cxx | 11 | ||||
-rw-r--r-- | svx/source/svdraw/svdmrkv.cxx | 5 | ||||
-rw-r--r-- | svx/source/svdraw/svdoashp.cxx | 12 | ||||
-rw-r--r-- | svx/source/svdraw/svdograf.cxx | 8 | ||||
-rw-r--r-- | svx/source/svdraw/svdopath.cxx | 8 | ||||
-rw-r--r-- | svx/source/svdraw/svdotext.cxx | 16 | ||||
-rw-r--r-- | svx/source/svdraw/svdotextdecomposition.cxx | 19 | ||||
-rw-r--r-- | svx/source/svdraw/svdotxed.cxx | 2 | ||||
-rw-r--r-- | svx/source/svdraw/svdovirt.cxx | 18 | ||||
-rw-r--r-- | svx/source/svdraw/svdpagv.cxx | 18 | ||||
-rw-r--r-- | svx/source/svdraw/svdpdf.cxx | 15 |
13 files changed, 76 insertions, 62 deletions
diff --git a/svx/source/svdraw/svddrgv.cxx b/svx/source/svdraw/svddrgv.cxx index 02cfc5ee38c8..645cb8fd2bef 100644 --- a/svx/source/svdraw/svddrgv.cxx +++ b/svx/source/svdraw/svddrgv.cxx @@ -415,8 +415,7 @@ bool SdrDragView::BegDragObj(const Point& rPnt, OutputDevice* pOut, SdrHdl* pHdl { bool bResizeAllowed = IsResizeAllowed(true); SfxViewShell* pViewShell = GetSfxViewShell(); - SfxObjectShell* pObjectShell = pViewShell ? pViewShell->GetObjectShell() : nullptr; - if (!bResizeAllowed && pObjectShell && pObjectShell->GetSignPDFCertificate().Is()) + if (!bResizeAllowed && pViewShell && pViewShell->GetSignPDFCertificate().Is()) { // If the just added signature line shape is selected, allow resizing it. bResizeAllowed = true; diff --git a/svx/source/svdraw/svdedtv1.cxx b/svx/source/svdraw/svdedtv1.cxx index d8b5162c70f6..693d5f3c0f7c 100644 --- a/svx/source/svdraw/svdedtv1.cxx +++ b/svx/source/svdraw/svdedtv1.cxx @@ -1829,8 +1829,7 @@ void SdrEditView::SetGeoAttrToMarked(const SfxItemSet& rAttr, bool addPageMargin // change position bool bMoveAllowed = m_bMoveAllowed; SfxViewShell* pViewShell = GetSfxViewShell(); - SfxObjectShell* pObjectShell = pViewShell ? pViewShell->GetObjectShell() : nullptr; - if (!bMoveAllowed && pObjectShell && pObjectShell->GetSignPDFCertificate().Is()) + if (!bMoveAllowed && pViewShell && pViewShell->GetSignPDFCertificate().Is()) { // If the just added signature line shape is selected, allow moving it. bMoveAllowed = true; diff --git a/svx/source/svdraw/svdedxv.cxx b/svx/source/svdraw/svdedxv.cxx index 374c38baf00e..cd7cb89b2e05 100644 --- a/svx/source/svdraw/svdedxv.cxx +++ b/svx/source/svdraw/svdedxv.cxx @@ -2830,10 +2830,13 @@ sal_uInt16 SdrObjEditView::GetSelectionLevel() const for (sal_Int32 nPara = nStartPara; nPara <= nEndPara; nPara++) { sal_Int16 nDepth = mpTextEditOutliner->GetDepth(nPara); - assert(nDepth >= 0 && nDepth <= 15); - sal_uInt16 nParaDepth = 1 << static_cast<sal_uInt16>(nDepth); - if (!(nLevel & nParaDepth)) - nLevel += nParaDepth; + assert(nDepth <= 15); + if (nDepth >= 0) + { + sal_uInt16 nParaDepth = 1 << static_cast<sal_uInt16>(nDepth); + if (!(nLevel & nParaDepth)) + nLevel += nParaDepth; + } } //reduce one level for Outliner Object //if( nLevel > 0 && GetTextEditObject()->GetObjIdentifier() == OBJ_OUTLINETEXT ) diff --git a/svx/source/svdraw/svdmrkv.cxx b/svx/source/svdraw/svdmrkv.cxx index c4f096dd04a8..5c9db14b5402 100644 --- a/svx/source/svdraw/svdmrkv.cxx +++ b/svx/source/svdraw/svdmrkv.cxx @@ -985,6 +985,9 @@ void SdrMarkView::SetMarkHandlesForLOKit(tools::Rectangle const & rRect, const S + OString::number(p.getY())); } + if (meDragMode == SdrDragMode::Crop) + aExtraInfo.append(", \"isCropMode\": true"); + if (bWriterGraphic) { aExtraInfo.append(", \"isWriterGraphic\": true"); @@ -1116,7 +1119,7 @@ void SdrMarkView::SetMarkHandlesForLOKit(tools::Rectangle const & rRect, const S else { SfxObjectShell* pObjectShell = pViewShell ? pViewShell->GetObjectShell() : nullptr; - if (pObjectShell && pObjectShell->IsSignPDF() && pObjectShell->GetSignPDFCertificate().Is()) + if (pObjectShell && pObjectShell->IsSignPDF() && pViewShell && pViewShell->GetSignPDFCertificate().Is()) { // Expose the info that this is the special signature widget that is OK to // move/resize. diff --git a/svx/source/svdraw/svdoashp.cxx b/svx/source/svdraw/svdoashp.cxx index 996071b27e92..51a2fc58b98a 100644 --- a/svx/source/svdraw/svdoashp.cxx +++ b/svx/source/svdraw/svdoashp.cxx @@ -2964,8 +2964,8 @@ void SdrObjCustomShape::AdjustToMaxRect(const tools::Rectangle& rMaxRect, bool b basegfx::B2DHomMatrix aMathMatrix; aMathMatrix = basegfx::utils::createScaleShearXRotateTranslateB2DHomMatrix( aScale, - basegfx::fTools::equalZero(fShearX) ? 0.0 : -fShearX, - basegfx::fTools::equalZero(fRotate) ? 0.0 : fRotate, + -fShearX, + fRotate, aTranslate); // Calculate scaling factors from size of the transformed unit polygon as ersatz for the not @@ -2995,8 +2995,8 @@ void SdrObjCustomShape::AdjustToMaxRect(const tools::Rectangle& rMaxRect, bool b aMathMatrix.decompose(aScale, aTranslate, fRotate, fShearX); aMatrix = basegfx::utils::createScaleShearXRotateTranslateB2DHomMatrix( aScale, - basegfx::fTools::equalZero(fShearX) ? 0.0 : -fShearX, - basegfx::fTools::equalZero(fRotate) ? 0.0 : fRotate, + -fShearX, + fRotate, aTranslate); // Now use TRSetBaseGeometry to actually perform scale, shear, rotate and translate @@ -3103,7 +3103,7 @@ void SdrObjCustomShape::TRSetBaseGeometry(const basegfx::B2DHomMatrix& rMatrix, if (aScale.getX() > 2.0 && aScale.getY() > 2.0) aScale -= basegfx::B2DTuple(1.0, 1.0); basegfx::B2DHomMatrix aMathMat = basegfx::utils::createScaleShearXRotateTranslateB2DHomMatrix( - aScale, -fShearX, basegfx::fTools::equalZero(fRotate) ? 0.0 : fRotate, + aScale, -fShearX, fRotate, aTranslate); // Use matrix to get current center basegfx::B2DPoint aCenter(0.5,0.5); @@ -3200,7 +3200,7 @@ bool SdrObjCustomShape::TRGetBaseGeometry(basegfx::B2DHomMatrix& rMatrix, basegf rMatrix = basegfx::utils::createScaleShearXRotateTranslateB2DHomMatrix( aScale, basegfx::fTools::equalZero(fShearX) ? 0.0 : tan(fShearX), - basegfx::fTools::equalZero(fRotate) ? 0.0 : -fRotate, + -fRotate, aTranslate); return false; diff --git a/svx/source/svdraw/svdograf.cxx b/svx/source/svdraw/svdograf.cxx index 82a312c77d9c..7a074bf29ed1 100644 --- a/svx/source/svdraw/svdograf.cxx +++ b/svx/source/svdraw/svdograf.cxx @@ -1143,15 +1143,9 @@ void SdrGrafObj::addCropHandles(SdrHdlList& rTarget) const aMatrix.decompose(aScale, aTranslate, fRotate, fShearX); - if(!basegfx::fTools::equalZero(fShearX)) - { - // shearX is used, correct it - fShearX = -fShearX; - } - aMatrix = basegfx::utils::createScaleShearXRotateTranslateB2DHomMatrix( aScale, - fShearX, + -fShearX, fRotate, aTranslate); } diff --git a/svx/source/svdraw/svdopath.cxx b/svx/source/svdraw/svdopath.cxx index 84ef3909c7b5..2782930b0fd7 100644 --- a/svx/source/svdraw/svdopath.cxx +++ b/svx/source/svdraw/svdopath.cxx @@ -2876,7 +2876,7 @@ bool SdrPathObj::TRGetBaseGeometry(basegfx::B2DHomMatrix& rMatrix, basegfx::B2DP rMatrix = basegfx::utils::createScaleShearXRotateTranslateB2DHomMatrix( aScale, basegfx::fTools::equalZero(fShearX) ? 0.0 : tan(fShearX), - basegfx::fTools::equalZero(fRotate) ? 0.0 : -fRotate, + -fRotate, aTranslate); return true; @@ -2900,7 +2900,7 @@ void SdrPathObj::TRSetBaseGeometry(const basegfx::B2DHomMatrix& rMatrix, const b // #i75086# Old DrawingLayer (GeoStat and geometry) does not support holding negative scalings // in X and Y which equal a 180 degree rotation. Recognize it and react accordingly - if(basegfx::fTools::less(aScale.getX(), 0.0) && basegfx::fTools::less(aScale.getY(), 0.0)) + if(aScale.getX() < 0.0 && aScale.getY() < 0.0) { aScale.setX(fabs(aScale.getX())); aScale.setY(fabs(aScale.getY())); @@ -2931,8 +2931,8 @@ void SdrPathObj::TRSetBaseGeometry(const basegfx::B2DHomMatrix& rMatrix, const b // #i75086# // Given polygon is already scaled (for historical reasons), but not mirrored yet. // Thus, when scale is negative in X or Y, apply the needed mirroring accordingly. - double fScaleX(basegfx::fTools::less(aScale.getX(), 0.0) ? -1.0 : 1.0); - double fScaleY(basegfx::fTools::less(aScale.getY(), 0.0) ? -1.0 : 1.0); + double fScaleX(aScale.getX() < 0.0 ? -1.0 : 1.0); + double fScaleY(aScale.getY() < 0.0 ? -1.0 : 1.0); // tdf#98565, tdf#98584. While loading a shape, svg:width and svg:height is used to scale // the polygon. But draw:transform might introduce additional scaling factors, which need to diff --git a/svx/source/svdraw/svdotext.cxx b/svx/source/svdraw/svdotext.cxx index 88def27d0d2c..d0ac761a205e 100644 --- a/svx/source/svdraw/svdotext.cxx +++ b/svx/source/svdraw/svdotext.cxx @@ -520,9 +520,9 @@ void SdrTextObj::AdaptTextMinSize() // No auto grow requested. Bail out. return; - SfxItemSetFixed<SDRATTR_TEXT_MINFRAMEHEIGHT, SDRATTR_TEXT_AUTOGROWHEIGHT, - SDRATTR_TEXT_MINFRAMEWIDTH, SDRATTR_TEXT_AUTOGROWWIDTH> // contains SDRATTR_TEXT_MAXFRAMEWIDTH - aSet(*GetObjectItemSet().GetPool()); + SfxItemSet aSet(SfxItemSet::makeFixedSfxItemSet<SDRATTR_TEXT_MINFRAMEHEIGHT, SDRATTR_TEXT_AUTOGROWHEIGHT, + // contains SDRATTR_TEXT_MAXFRAMEWIDTH + SDRATTR_TEXT_MINFRAMEWIDTH, SDRATTR_TEXT_AUTOGROWWIDTH>(*GetObjectItemSet().GetPool())); if(bW) { @@ -1507,10 +1507,10 @@ void SdrTextObj::SetVerticalWriting(bool bVertical) tools::Rectangle aObjectRect = GetSnapRect(); // prepare ItemSet to set exchanged width and height items - SfxItemSetFixed<SDRATTR_TEXT_AUTOGROWHEIGHT, SDRATTR_TEXT_AUTOGROWHEIGHT, - // Expanded item ranges to also support hor and ver adjust. - SDRATTR_TEXT_VERTADJUST, SDRATTR_TEXT_VERTADJUST, - SDRATTR_TEXT_AUTOGROWWIDTH, SDRATTR_TEXT_HORZADJUST> aNewSet(*rSet.GetPool()); + SfxItemSet aNewSet(SfxItemSet::makeFixedSfxItemSet<SDRATTR_TEXT_AUTOGROWHEIGHT, SDRATTR_TEXT_AUTOGROWHEIGHT, + // Expanded item ranges to also support hor and ver adjust. + SDRATTR_TEXT_VERTADJUST, SDRATTR_TEXT_VERTADJUST, + SDRATTR_TEXT_AUTOGROWWIDTH, SDRATTR_TEXT_HORZADJUST>(*rSet.GetPool())); aNewSet.Put(rSet); aNewSet.Put(makeSdrTextAutoGrowWidthItem(bAutoGrowHeight)); @@ -1590,7 +1590,7 @@ bool SdrTextObj::TRGetBaseGeometry(basegfx::B2DHomMatrix& rMatrix, basegfx::B2DP rMatrix = basegfx::utils::createScaleShearXRotateTranslateB2DHomMatrix( aScale, basegfx::fTools::equalZero(fShearX) ? 0.0 : tan(fShearX), - basegfx::fTools::equalZero(fRotate) ? 0.0 : -fRotate, + -fRotate, aTranslate); return false; diff --git a/svx/source/svdraw/svdotextdecomposition.cxx b/svx/source/svdraw/svdotextdecomposition.cxx index be386f0be223..10975edd9c0f 100644 --- a/svx/source/svdraw/svdotextdecomposition.cxx +++ b/svx/source/svdraw/svdotextdecomposition.cxx @@ -962,10 +962,9 @@ void SdrTextObj::impDecomposeAutoFitTextPrimitive( // add one to range sizes to get back to the old Rectangle and outliner measurements const sal_uInt32 nAnchorTextWidth(basegfx::fround<sal_uInt32>(aAnchorTextRange.getWidth() + 1)); const sal_uInt32 nAnchorTextHeight(basegfx::fround<sal_uInt32>(aAnchorTextRange.getHeight() + 1)); - const OutlinerParaObject* pOutlinerParaObject = rSdrAutofitTextPrimitive.getSdrText()->GetOutlinerParaObject(); - OSL_ENSURE(pOutlinerParaObject, "impDecomposeBlockTextPrimitive used with no OutlinerParaObject (!)"); - const bool bVerticalWriting(pOutlinerParaObject->IsEffectivelyVertical()); - const bool bTopToBottom(pOutlinerParaObject->IsTopToBottom()); + const OutlinerParaObject& rOutlinerParaObject(rSdrAutofitTextPrimitive.getOutlinerParaObject()); + const bool bVerticalWriting(rOutlinerParaObject.IsEffectivelyVertical()); + const bool bTopToBottom(rOutlinerParaObject.IsTopToBottom()); const Size aAnchorTextSize(Size(nAnchorTextWidth, nAnchorTextHeight)); if(rSdrAutofitTextPrimitive.getWordWrap() || IsTextFrame()) @@ -987,7 +986,7 @@ void SdrTextObj::impDecomposeAutoFitTextPrimitive( rOutliner.SetPaperSize(aAnchorTextSize); rOutliner.SetUpdateLayout(true); - rOutliner.SetText(*pOutlinerParaObject); + rOutliner.SetText(rOutlinerParaObject); setupAutoFitText(rOutliner, aAnchorTextSize); // set visualizing page at Outliner; needed e.g. for PageNumberField decomposition @@ -1788,11 +1787,9 @@ void SdrTextObj::impDecomposeChainedTextPrimitive( const sal_uInt32 nAnchorTextHeight(basegfx::fround<sal_uInt32>(aAnchorTextRange.getHeight() + 1)); // Text - const OutlinerParaObject* pOutlinerParaObject = rSdrChainedTextPrimitive.getSdrText()->GetOutlinerParaObject(); - OSL_ENSURE(pOutlinerParaObject, "impDecomposeBlockTextPrimitive used with no OutlinerParaObject (!)"); - - const bool bVerticalWriting(pOutlinerParaObject->IsEffectivelyVertical()); - const bool bTopToBottom(pOutlinerParaObject->IsTopToBottom()); + const OutlinerParaObject& rOutlinerParaObject(rSdrChainedTextPrimitive.getOutlinerParaObject()); + const bool bVerticalWriting(rOutlinerParaObject.IsEffectivelyVertical()); + const bool bTopToBottom(rOutlinerParaObject.IsTopToBottom()); const Size aAnchorTextSize(Size(nAnchorTextWidth, nAnchorTextHeight)); if(IsTextFrame()) @@ -1813,7 +1810,7 @@ void SdrTextObj::impDecomposeChainedTextPrimitive( rOutliner.SetPaperSize(aNullSize); rOutliner.SetUpdateLayout(true); // Sets original text - rOutliner.SetText(*pOutlinerParaObject); + rOutliner.SetText(rOutlinerParaObject); /* Begin overflow/underflow handling */ diff --git a/svx/source/svdraw/svdotxed.cxx b/svx/source/svdraw/svdotxed.cxx index adcdb6a578a1..32fb9111a47e 100644 --- a/svx/source/svdraw/svdotxed.cxx +++ b/svx/source/svdraw/svdotxed.cxx @@ -95,7 +95,7 @@ bool SdrTextObj::BegTextEdit(SdrOutliner& rOutl) // at SetParaAttribs(), all attributes contained in the parent become // attributed hard to the paragraph. const SfxItemSet& rSet = GetObjectItemSet(); - SfxItemSetFixed<EE_ITEMS_START, EE_ITEMS_END> aFilteredSet(*rSet.GetPool()); + SfxItemSet aFilteredSet(SfxItemSet::makeFixedSfxItemSet<EE_ITEMS_START, EE_ITEMS_END>(*rSet.GetPool())); aFilteredSet.Put(rSet); rOutl.SetParaAttribs(0, aFilteredSet); } diff --git a/svx/source/svdraw/svdovirt.cxx b/svx/source/svdraw/svdovirt.cxx index 2a4bc1e68c4d..89ef01f54a51 100644 --- a/svx/source/svdraw/svdovirt.cxx +++ b/svx/source/svdraw/svdovirt.cxx @@ -64,7 +64,7 @@ SdrVirtObj::SdrVirtObj( mxRefObj->AddReference(*this); - aSnapRect = rSource.aSnapRect; + maSnapRect = rSource.maSnapRect; m_aAnchor = rSource.m_aAnchor; } @@ -433,15 +433,15 @@ void SdrVirtObj::Shear(const Point& rRef, Degree100 nAngle, double tn, bool bVSh void SdrVirtObj::RecalcSnapRect() { - aSnapRect=mxRefObj->GetSnapRect(); - aSnapRect+=m_aAnchor; + maSnapRect=mxRefObj->GetSnapRect(); + maSnapRect+=m_aAnchor; } const tools::Rectangle& SdrVirtObj::GetSnapRect() const { - const_cast<SdrVirtObj*>(this)->aSnapRect=mxRefObj->GetSnapRect(); - const_cast<SdrVirtObj*>(this)->aSnapRect+=m_aAnchor; - return aSnapRect; + const_cast<SdrVirtObj*>(this)->maSnapRect=mxRefObj->GetSnapRect(); + const_cast<SdrVirtObj*>(this)->maSnapRect+=m_aAnchor; + return maSnapRect; } void SdrVirtObj::SetSnapRect(const tools::Rectangle& rRect) @@ -465,9 +465,9 @@ void SdrVirtObj::NbcSetSnapRect(const tools::Rectangle& rRect) const tools::Rectangle& SdrVirtObj::GetLogicRect() const { - const_cast<SdrVirtObj*>(this)->aSnapRect=mxRefObj->GetLogicRect(); // An abuse of aSnapRect! - const_cast<SdrVirtObj*>(this)->aSnapRect+=m_aAnchor; // If there's trouble, we need another Rectangle Member (or a Heap). - return aSnapRect; + const_cast<SdrVirtObj*>(this)->maSnapRect=mxRefObj->GetLogicRect(); // An abuse of aSnapRect! + const_cast<SdrVirtObj*>(this)->maSnapRect+=m_aAnchor; // If there's trouble, we need another Rectangle Member (or a Heap). + return maSnapRect; } void SdrVirtObj::SetLogicRect(const tools::Rectangle& rRect) diff --git a/svx/source/svdraw/svdpagv.cxx b/svx/source/svdraw/svdpagv.cxx index 8b1f837a6301..1ce89406a18c 100644 --- a/svx/source/svdraw/svdpagv.cxx +++ b/svx/source/svdraw/svdpagv.cxx @@ -25,6 +25,7 @@ #include <svx/svdogrp.hxx> #include <svx/svdtypes.hxx> +#include <svx/sdr/contact/objectcontact.hxx> #include <svx/sdr/contact/viewobjectcontactredirector.hxx> #include <algorithm> @@ -898,5 +899,22 @@ void SdrPageView::SetApplicationDocumentColor(Color aDocumentColor) maDocumentColor = aDocumentColor; } +void SdrPageView::resetGridOffsetsOfAllPageWindows() const +{ + for (auto& pPageWindow : maPageWindows) + { + assert(pPageWindow && "SdrView::SetMasterPagePaintCaching: Corrupt SdrPageWindow list (!)"); + + if (pPageWindow) + { + sdr::contact::ObjectContact& rObjectContact(pPageWindow->GetObjectContact()); + + if (rObjectContact.supportsGridOffsets()) + { + rObjectContact.resetAllGridOffsets(); + } + } + } +} /* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/svx/source/svdraw/svdpdf.cxx b/svx/source/svdraw/svdpdf.cxx index 6a00bd286ce1..b128a05fc13b 100644 --- a/svx/source/svdraw/svdpdf.cxx +++ b/svx/source/svdraw/svdpdf.cxx @@ -101,12 +101,12 @@ ImpSdrPdfImport::ImpSdrPdfImport(SdrModel& rModel, SdrLayerID nLay, const tools: mpVD->SetLineColor(); mpVD->SetFillColor(); maOldLineColor.SetRed(mpVD->GetLineColor().GetRed() + 1); - mpLineAttr = std::make_unique<SfxItemSetFixed<XATTR_LINE_FIRST, XATTR_LINE_LAST>>( - rModel.GetItemPool()); - mpFillAttr = std::make_unique<SfxItemSetFixed<XATTR_FILL_FIRST, XATTR_FILL_LAST>>( - rModel.GetItemPool()); - mpTextAttr - = std::make_unique<SfxItemSetFixed<EE_ITEMS_START, EE_ITEMS_END>>(rModel.GetItemPool()); + mpLineAttr = std::make_unique<SfxItemSet>( + SfxItemSet::makeFixedSfxItemSet<XATTR_LINE_FIRST, XATTR_LINE_LAST>(rModel.GetItemPool())); + mpFillAttr = std::make_unique<SfxItemSet>( + SfxItemSet::makeFixedSfxItemSet<XATTR_FILL_FIRST, XATTR_FILL_LAST>(rModel.GetItemPool())); + mpTextAttr = std::make_unique<SfxItemSet>( + SfxItemSet::makeFixedSfxItemSet<EE_ITEMS_START, EE_ITEMS_END>(rModel.GetItemPool())); checkClip(); @@ -819,7 +819,8 @@ void ImpSdrPdfImport::InsertTextObject(const Point& rPos, const Size& rSize, con if (!aFont.IsTransparent()) { - SfxItemSetFixed<XATTR_FILL_FIRST, XATTR_FILL_LAST> aAttr(*mpFillAttr->GetPool()); + SfxItemSet aAttr(SfxItemSet::makeFixedSfxItemSet<XATTR_FILL_FIRST, XATTR_FILL_LAST>( + *mpFillAttr->GetPool())); aAttr.Put(XFillStyleItem(drawing::FillStyle_SOLID)); aAttr.Put(XFillColorItem(OUString(), aFont.GetFillColor())); pText->SetMergedItemSet(aAttr); |