[Libreoffice-commits] core.git: Branch 'aoo/trunk' - svx/source sw/source

2014-07-02 Thread Armin Le Grand
 svx/source/unodraw/unobrushitemhelper.cxx |   30 +++-
 sw/source/core/layout/paintfrm.cxx|   56 +++---
 2 files changed, 73 insertions(+), 13 deletions(-)

New commits:
commit 63f53dbd6cac4fcd7fe568af62f29ae19768085f
Author: Armin Le Grand a...@apache.org
Date:   Wed Jul 2 16:06:42 2014 +

i125189 corrected used transparency and handling to values used in the 
fallback SvxBrushItem

diff --git a/svx/source/unodraw/unobrushitemhelper.cxx 
b/svx/source/unodraw/unobrushitemhelper.cxx
index 733f3c9..ff83649 100644
--- a/svx/source/unodraw/unobrushitemhelper.cxx
+++ b/svx/source/unodraw/unobrushitemhelper.cxx
@@ -62,8 +62,9 @@ void setSvxBrushItemAsFillAttributesToTargetSet(const 
SvxBrushItem rBrush, SfxI
 rToSet.Put(XFillStyleItem(XFILL_SOLID));
 rToSet.Put(XFillColorItem(String(), aColor));
 
-// nTransparency is in range [0..255], convert to [0..100] which is 
used in XFillTransparenceItem
-rToSet.Put(XFillTransparenceItemsal_Int32)nTransparency * 100) + 
127) / 255));
+// #125189# nTransparency is in range [0..254], convert to [0..100] 
which is used in
+// XFillTransparenceItem (caution with the range which is in an 
*item-specific* range)
+rToSet.Put(XFillTransparenceItemsal_Int32)nTransparency * 100) + 
127) / 254));
 }
 else if(GPOS_NONE != rBrush.GetGraphicPos())
 {
@@ -182,8 +183,12 @@ SvxBrushItem getSvxBrushItemForSolid(const SfxItemSet 
rSourceSet, sal_Bool bSea
 
 if(0 != nFillTransparence)
 {
-// nFillTransparence is in range [0..100] and needs to be in [0..255] 
unsigned
-aFillColor.SetTransparency(static_cast sal_uInt8 ((nFillTransparence 
* 255) / 100));
+// #i125189# nFillTransparence is in range [0..100] and needs to be in 
[0..254] unsigned
+// It is necessary to use the maximum of 0xfe for transparence for the 
SvxBrushItem
+// since the oxff value is used for special purposes (like no fill and 
derive from parent)
+const sal_uInt8 aTargetTrans(std::min(sal_uInt8(0xfe), static_cast 
sal_uInt8 ((nFillTransparence * 254) / 100)));
+
+aFillColor.SetTransparency(aTargetTrans);
 }
 
 return SvxBrushItem(aFillColor, nBackgroundID);
@@ -233,8 +238,12 @@ SvxBrushItem getSvxBrushItemFromSourceSet(const 
SfxItemSet rSourceSet, sal_uInt
 
 if(0 != nFillTransparence)
 {
-// nFillTransparence is in range [0..100] and needs to be in 
[0..255] unsigned
-aMixedColor.SetTransparency(static_cast sal_uInt8 
((nFillTransparence * 255) / 100));
+// #i125189# nFillTransparence is in range [0..100] and needs 
to be in [0..254] unsigned
+// It is necessary to use the maximum of 0xfe for transparence 
for the SvxBrushItem
+// since the oxff value is used for special purposes (like no 
fill and derive from parent)
+const sal_uInt8 aTargetTrans(std::min(sal_uInt8(0xfe), 
static_cast sal_uInt8 ((nFillTransparence * 254) / 100)));
+
+aMixedColor.SetTransparency(aTargetTrans);
 }
 
 aRetval = SvxBrushItem(aMixedColor, nBackgroundID);
@@ -263,9 +272,12 @@ SvxBrushItem getSvxBrushItemFromSourceSet(const 
SfxItemSet rSourceSet, sal_uInt
 // take half orig transparence, add half transparent, clamp 
result
 nFillTransparence = 
basegfx::clamp((sal_uInt16)((nFillTransparence / 2) + 50), (sal_uInt16)0, 
(sal_uInt16)255);
 
-// nFillTransparence is in range [0..100] and needs to be in 
[0..255] unsigned
-aHatchColor.SetTransparency(static_cast sal_uInt8 
((nFillTransparence * 255) / 100));
+// #i125189# nFillTransparence is in range [0..100] and needs 
to be in [0..254] unsigned
+// It is necessary to use the maximum of 0xfe for transparence 
for the SvxBrushItem
+// since the oxff value is used for special purposes (like no 
fill and derive from parent)
+const sal_uInt8 aTargetTrans(std::min(sal_uInt8(0xfe), 
static_cast sal_uInt8 ((nFillTransparence * 254) / 100)));
 
+aHatchColor.SetTransparency(aTargetTrans);
 aRetval = SvxBrushItem(aHatchColor, nBackgroundID);
 }
 
@@ -316,7 +328,7 @@ SvxBrushItem getSvxBrushItemFromSourceSet(const SfxItemSet 
rSourceSet, sal_uInt
 
 if(0 != nFillTransparence)
 {
-// nFillTransparence is in range [0..100] and needs to be in 
[0..100] signed
+// #i125189# nFillTransparence is in range [0..100] and needs 
to be in [0..100] signed
 aRetval.setGraphicTransparency(static_cast sal_Int8 
(nFillTransparence));
 }
 
diff --git a/sw/source/core/layout/paintfrm.cxx 
b/sw/source/core/layout/paintfrm.cxx
index 2b61006..2cb2186 100644
--- a/sw/source/core/layout/paintfrm.cxx
+++ 

[Libreoffice-commits] core.git: Branch 'aoo/trunk' - svx/source sw/source

2013-06-18 Thread Armin Le Grand
 svx/source/sidebar/possize/PosSizePropertyPanel.cxx |   57 ++--
 sw/source/core/draw/dcontact.cxx|   22 ++-
 2 files changed, 50 insertions(+), 29 deletions(-)

New commits:
commit 2c9c9923fdf042c41cebaf9a15def7caac86032d
Author: Armin Le Grand a...@apache.org
Date:   Tue Jun 18 13:10:42 2013 +

i121917 Corrected access to text object

diff --git a/svx/source/sidebar/possize/PosSizePropertyPanel.cxx 
b/svx/source/sidebar/possize/PosSizePropertyPanel.cxx
index d093d0b..de12d70 100644
--- a/svx/source/sidebar/possize/PosSizePropertyPanel.cxx
+++ b/svx/source/sidebar/possize/PosSizePropertyPanel.cxx
@@ -156,6 +156,34 @@ void PosSizePropertyPanel::ShowMenu (void)
 
 
 
+namespace
+{
+bool hasText(const SdrView rSdrView)
+{
+const SdrMarkList rMarkList = rSdrView.GetMarkedObjectList();
+
+if(1 == rMarkList.GetMarkCount())
+{
+const SdrObject* pObj = rMarkList.GetMark(0)-GetMarkedSdrObj();
+const SdrObjKind eKind((SdrObjKind)pObj-GetObjIdentifier());
+
+if((pObj-GetObjInventor() == SdrInventor)  (OBJ_TEXT == eKind 
|| OBJ_TITLETEXT == eKind || OBJ_OUTLINETEXT == eKind))
+{
+const SdrTextObj* pSdrTextObj = dynamic_cast const 
SdrTextObj* (pObj);
+
+if(pSdrTextObj  pSdrTextObj-HasText())
+{
+return true;
+}
+}
+}
+
+return false;
+}
+} // end of anonymous namespace
+
+
+
 void PosSizePropertyPanel::Initialize()
 {
 mpFtPosX-SetBackground(Wallpaper());
@@ -228,18 +256,7 @@ void PosSizePropertyPanel::Initialize()
 if ( mpView != NULL )
 {
 maUIScale = mpView-GetModel()-GetUIScale();
-
-const SdrMarkList rMarkList = mpView-GetMarkedObjectList();
-if(1 == rMarkList.GetMarkCount())
-{
-const SdrObject* pObj = rMarkList.GetMark(0)-GetMarkedSdrObj();
-const SdrObjKind eKind((SdrObjKind)pObj-GetObjIdentifier());
-
-if((pObj-GetObjInventor() == SdrInventor)  (OBJ_TEXT == eKind 
|| OBJ_TITLETEXT == eKind || OBJ_OUTLINETEXT == eKind)  
((SdrTextObj*)pObj)-HasText())
-{
-mbAdjustEnabled = true;
-}
-}
+mbAdjustEnabled = hasText(*mpView);
 }
 
 mePoolUnit = maTransfWidthControl.GetCoreMetric();
@@ -705,20 +722,7 @@ void PosSizePropertyPanel::NotifyItemUpdate(
 if ( mpView == NULL )
 return;
 
-const SdrMarkList rMarkList = mpView-GetMarkedObjectList();
-
-if(1 == rMarkList.GetMarkCount())
-{
-const SdrObject* pObj = rMarkList.GetMark(0)-GetMarkedSdrObj();
-const SdrObjKind eKind((SdrObjKind)pObj-GetObjIdentifier());
-
-if((pObj-GetObjInventor() == SdrInventor)  (OBJ_TEXT == eKind || 
OBJ_TITLETEXT == eKind || OBJ_OUTLINETEXT == eKind)  
((SdrTextObj*)pObj)-HasText())
-mbAdjustEnabled = true;
-else
-mbAdjustEnabled = false;
-}
-else
-mbAdjustEnabled = false;
+mbAdjustEnabled = hasText(*mpView);
 
 // Pool unit and dialog unit may have changed, make sure that we
 // have the current values.
@@ -942,6 +946,7 @@ void PosSizePropertyPanel::NotifyItemUpdate(
 }
 
 const sal_Int32 nCombinedContext(maContext.GetCombinedContext_DI());
+const SdrMarkList rMarkList = mpView-GetMarkedObjectList();
 
 switch (rMarkList.GetMarkCount())
 {
diff --git a/sw/source/core/draw/dcontact.cxx b/sw/source/core/draw/dcontact.cxx
index f55d031..32784e0 100644
--- a/sw/source/core/draw/dcontact.cxx
+++ b/sw/source/core/draw/dcontact.cxx
@@ -2582,8 +2582,16 @@ basegfx::B2DPolyPolygon SwDrawVirtObj::TakeContour() 
const
 SdrHdl* SwDrawVirtObj::GetHdl(sal_uInt32 nHdlNum) const
 {
 SdrHdl* pHdl = rRefObj.GetHdl(nHdlNum);
-Point aP(pHdl-GetPos() + GetOffset());
-pHdl-SetPos(aP);
+
+if(pHdl)
+{
+Point aP(pHdl-GetPos() + GetOffset());
+pHdl-SetPos(aP);
+}
+else
+{
+OSL_ENSURE(false, Got no SdrHdl(!));
+}
 
 return pHdl;
 }
@@ -2591,7 +2599,15 @@ SdrHdl* SwDrawVirtObj::GetHdl(sal_uInt32 nHdlNum) const
 SdrHdl* SwDrawVirtObj::GetPlusHdl(const SdrHdl rHdl, sal_uInt16 nPlNum) const
 {
 SdrHdl* pHdl = rRefObj.GetPlusHdl(rHdl, nPlNum);
-pHdl-SetPos(pHdl-GetPos() + GetOffset());
+
+if(pHdl)
+{
+pHdl-SetPos(pHdl-GetPos() + GetOffset());
+}
+else
+{
+OSL_ENSURE(false, Got no SdrHdl(!));
+}
 
 return pHdl;
 }
___
Libreoffice-commits mailing list
libreoffice-comm...@lists.freedesktop.org
http://lists.freedesktop.org/mailman/listinfo/libreoffice-commits