[Libreoffice-commits] .: Branch 'libreoffice-3-5-1' - 14 commits - comphelper/inc comphelper/source distro-configs/LibreOfficeMacOSX.conf editeng/inc editeng/source extensions/source libcroco/makefile.mk libxml2/prj libxslt/prj oox/source scp2/source solenv/bin sw/inc sw/source

Petr Mladek pmladek at kemper.freedesktop.org
Fri Feb 24 06:21:40 PST 2012


 comphelper/inc/comphelper/TypeGeneration.hxx     |    1 
 comphelper/source/property/TypeGeneration.cxx    |    2 
 distro-configs/LibreOfficeMacOSX.conf            |    1 
 editeng/inc/editeng/memberids.hrc                |    2 
 editeng/source/items/frmitems.cxx                |   48 ++++++++++++++++
 extensions/source/ole/unoconversionutilities.hxx |   67 ++++++++---------------
 libcroco/makefile.mk                             |   11 +++
 libxml2/prj/d.lst                                |    2 
 libxslt/prj/d.lst                                |    5 +
 oox/source/vml/vmldrawing.cxx                    |   26 +++++++-
 oox/source/xls/viewsettings.cxx                  |    8 ++
 scp2/source/ooo/common_brand.scp                 |    2 
 scp2/source/ooo/registryitem_ooo.scp             |    8 +-
 solenv/bin/macosx-change-install-names.pl        |    1 
 sw/inc/unoprnms.hxx                              |    6 +-
 sw/source/core/doc/doclay.cxx                    |    3 +
 sw/source/core/docnode/ndcopy.cxx                |    2 
 sw/source/core/unocore/unoframe.cxx              |   11 +++
 sw/source/core/unocore/unomap.cxx                |    4 +
 sw/source/core/unocore/unoprnms.cxx              |    3 +
 sw/source/core/unocore/unotext.cxx               |   21 +++++++
 21 files changed, 177 insertions(+), 57 deletions(-)

New commits:
commit 274407ccd9eaf7bf759650e259470fa44999e3bc
Author: Andras Timar <atimar at suse.com>
Date:   Fri Feb 24 11:46:39 2012 +0100

    fdo#46377 BASISINSTALLLOCATION = INSTALLLOCATION
    
    Signed-off-by: Petr Mladek <pmladek at suse.cz>

diff --git a/scp2/source/ooo/common_brand.scp b/scp2/source/ooo/common_brand.scp
index aa8c77a..bb5e8ca 100644
--- a/scp2/source/ooo/common_brand.scp
+++ b/scp2/source/ooo/common_brand.scp
@@ -1387,7 +1387,7 @@ ProfileItem gid_Brand_Profileitem_Setup_Basisinstall
     Section = "Bootstrap";
     Order = 4;
     Key = "BASISINSTALLLOCATION";
-    Value = "[INSTALLLOCATION]Basis\\";
+    Value = "[INSTALLLOCATION]";
     Inifiletablekey = "BasisInstallLocation";
     Inifiletableaction = "1";
     Styles = (INIFILETABLE);
diff --git a/scp2/source/ooo/registryitem_ooo.scp b/scp2/source/ooo/registryitem_ooo.scp
index 5bc40d6..803f979 100644
--- a/scp2/source/ooo/registryitem_ooo.scp
+++ b/scp2/source/ooo/registryitem_ooo.scp
@@ -334,7 +334,7 @@ RegistryItem gid_Regitem_Software_Manufacturer_Productname_Productversion_Produc
 	Subkey = "Software\%MANUFACTURER\%PRODUCTNAME%PRODUCTADDON\%PRODUCTVERSION\%PRODUCTCODE";
 	ModuleID = gid_Module_Root;
 	Name = "BASISINSTALLLOCATION";
-	Value = "[INSTALLLOCATION]Basis\\";
+	Value = "[INSTALLLOCATION]";
 	Styles = (LANGUAGEPACK,ALWAYS_REQUIRED);
 End
 
@@ -343,7 +343,7 @@ RegistryItem gid_Regitem_Software_Manufacturer_Productname_Productversion_Upgrad
 	Subkey = "Software\%MANUFACTURER\%PRODUCTNAME%PRODUCTADDON\%PRODUCTVERSION\%UPGRADECODE";
 	ModuleID = gid_Module_Root;
 	Name = "BASISINSTALLLOCATION";
-	Value = "[INSTALLLOCATION]Basis\\";
+	Value = "[INSTALLLOCATION]";
 	Styles = (LANGUAGEPACK,ALWAYS_REQUIRED);
 End
 
@@ -352,7 +352,7 @@ RegistryItem gid_Regitem_Software_OpenOfficeorg_Ooobaseversion_Basisinstall
     Subkey = "Software\LibreOffice\${REGISTRYLAYERNAME}\Basis\%PRODUCTVERSION";
 	ModuleID = gid_Module_Root;
 	Name = "BASISINSTALLLOCATION";
-	Value = "[INSTALLLOCATION]Basis\\";
+	Value = "[INSTALLLOCATION]";
 	Styles = (ALWAYS_REQUIRED,LAYER_REGISTRY,USE_PRODUCTVERSION);
 End
 
@@ -361,7 +361,7 @@ RegistryItem gid_Regitem_Software_OpenOfficeorg_Ooobaseversion_Layer_Basisinstal
     Subkey = "Software\LibreOffice\${REGISTRYLAYERNAME}\%PRODUCTNAME\%BRANDPACKAGEVERSION";
 	ModuleID = gid_Module_Root;
 	Name = "BASISINSTALLLOCATION";
-	Value = "[INSTALLLOCATION]Basis\\";
+	Value = "[INSTALLLOCATION]";
 	Styles = (ALWAYS_REQUIRED);
 End
 
commit 0bbd6c4f6f858f2caee10b7cceab06b423cce97e
Author: Cédric Bosdonnat <cedric.bosdonnat.ooo at free.fr>
Date:   Thu Feb 23 13:52:17 2012 +0100

    fdo#45560: Fixed docx textbox borders style and width import
    
    (cherry picked from commits e3e7623bf6cecf0e32912347a58e5a2c7297099d,
    2c7a532b7e2b8cf41792292610df96755b131987 and
    fda2c3639de6b673faf2ccd84b6d4318e592fbf0)
    
    Signed-off-by: Miklos Vajna <vmiklos at suse.cz>
    
    Conflicts:
    
    	sw/inc/unoprnms.hxx

diff --git a/comphelper/inc/comphelper/TypeGeneration.hxx b/comphelper/inc/comphelper/TypeGeneration.hxx
index c987b2a..9492ac8 100644
--- a/comphelper/inc/comphelper/TypeGeneration.hxx
+++ b/comphelper/inc/comphelper/TypeGeneration.hxx
@@ -71,6 +71,7 @@ namespace comphelper
         CPPUTYPE_SEQDEPTXTFLD,      //getCppuType( (Sequence<Reference<XDependentTextField> >*)0 )
         CPPUTYPE_TXTCNTANCHOR,      //getCppuType( (text::TextContentAnchorType*)0 )
         CPPUTYPE_WRAPTXTMODE,       //getCppuType( (text::WrapTextMode*)0 )
+        CPPUTYPE_LINESTYLE,         //getCppuType( (drawing::LineStyle*)0 )
         CPPUTYPE_COLORMODE,         //getCppuType( (drawing::ColorMode*)0 )
         CPPUTYPE_PAGESTYLELAY,      //getCppuType( (style::PageStyleLayout*)0 )
         CPPUTYPE_VERTALIGN,         //getCppuType( (style::VerticalAlignment*)0 )
diff --git a/comphelper/source/property/TypeGeneration.cxx b/comphelper/source/property/TypeGeneration.cxx
index 62c6d05..93c255c 100644
--- a/comphelper/source/property/TypeGeneration.cxx
+++ b/comphelper/source/property/TypeGeneration.cxx
@@ -128,6 +128,7 @@
 #include <com/sun/star/drawing/HomogenMatrix3.hpp>
 #include <com/sun/star/graphic/XGraphic.hpp>
 #include <com/sun/star/embed/XEmbeddedObject.hpp>
+#include <com/sun/star/drawing/LineStyle.hpp>
 
 using ::rtl::OUString;
 using namespace ::com::sun::star;
@@ -225,6 +226,7 @@ namespace comphelper
             case CPPUTYPE_REFXGRAPHIC:      pType = &::getCppuType( (Reference< graphic::XGraphic >*)0); break;
             case CPPUTYPE_TABLEBORDERDISTANCES:     pType = &::getCppuType( (table::TableBorderDistances*)0 ); break;
             case CPPUTPYE_REFEMBEDDEDOBJECT:        pType = &embed::XEmbeddedObject::static_type(); break;
+            case CPPUTYPE_LINESTYLE:        pType = &::getCppuType( (drawing::LineStyle*)0 ); break;
             default:
                 OSL_FAIL( "Unknown CPPU type" );
         }
diff --git a/editeng/inc/editeng/memberids.hrc b/editeng/inc/editeng/memberids.hrc
index fa57ab1..b53276c 100755
--- a/editeng/inc/editeng/memberids.hrc
+++ b/editeng/inc/editeng/memberids.hrc
@@ -168,6 +168,8 @@
 #define MID_RIGHT_BORDER            11
 #define MID_TOP_BORDER              12
 #define MID_BOTTOM_BORDER           13
+#define LINE_STYLE                  14
+#define LINE_WIDTH                  15
 
 //BrushItem
 #define MID_BACK_COLOR          0
diff --git a/editeng/source/items/frmitems.cxx b/editeng/source/items/frmitems.cxx
index cdf29de..f01f91e 100644
--- a/editeng/source/items/frmitems.cxx
+++ b/editeng/source/items/frmitems.cxx
@@ -29,6 +29,7 @@
 
 // include ---------------------------------------------------------------
 #include <com/sun/star/uno/Any.hxx>
+#include <com/sun/star/drawing/LineStyle.hpp>
 #include <com/sun/star/script/XTypeConverter.hpp>
 #include <com/sun/star/lang/XMultiServiceFactory.hpp>
 #include <com/sun/star/table/ShadowLocation.hpp>
@@ -1918,6 +1919,53 @@ bool SvxBoxItem::PutValue( const uno::Any& rVal, sal_uInt8 nMemberId )
         case MID_TOP_BORDER:
             nLine = BOX_LINE_TOP;
             break;
+        case LINE_STYLE:
+            {
+                drawing::LineStyle eDrawingStyle;
+                rVal >>= eDrawingStyle;
+                editeng::SvxBorderStyle eBorderStyle = editeng::NO_STYLE;
+                switch ( eDrawingStyle )
+                {
+                    default:
+                    case drawing::LineStyle_NONE:
+                        eBorderStyle = editeng::NO_STYLE;
+                        break;
+                    case drawing::LineStyle_SOLID:
+                        eBorderStyle = editeng::SOLID;
+                        break;
+                    case drawing::LineStyle_DASH:
+                        eBorderStyle = editeng::DASHED;
+                        break;
+                }
+
+                // Set the line style on all borders
+                const sal_uInt16 aBorders[] = { BOX_LINE_LEFT, BOX_LINE_RIGHT, BOX_LINE_BOTTOM, BOX_LINE_TOP };
+                for (int n(0); n != SAL_N_ELEMENTS(aBorders); ++n)
+                {
+                    editeng::SvxBorderLine* pLine = const_cast< editeng::SvxBorderLine* >( GetLine( aBorders[n] ) );
+                    pLine->SetStyle( eBorderStyle );
+                }
+                return sal_True;
+            }
+            break;
+        case LINE_WIDTH:
+            {
+                // Set the line width on all borders
+                long nWidth(0);
+                rVal >>= nWidth;
+                if( bConvert )
+                    nWidth = MM100_TO_TWIP( nWidth );
+
+                // Set the line Width on all borders
+                const sal_uInt16 aBorders[] = { BOX_LINE_LEFT, BOX_LINE_RIGHT, BOX_LINE_BOTTOM, BOX_LINE_TOP };
+                for (int n(0); n != SAL_N_ELEMENTS(aBorders); ++n)
+                {
+                    editeng::SvxBorderLine* pLine = const_cast< editeng::SvxBorderLine* >( GetLine( aBorders[n] ) );
+                    pLine->SetWidth( nWidth );
+                }
+            }
+            return sal_True;
+            break;
     }
 
     if( bDistMember || nMemberId == BORDER_DISTANCE )
diff --git a/sw/inc/unoprnms.hxx b/sw/inc/unoprnms.hxx
index 8df75ee..40cdc53 100644
--- a/sw/inc/unoprnms.hxx
+++ b/sw/inc/unoprnms.hxx
@@ -806,7 +806,11 @@ enum SwPropNameIds
 /* 0742 */  UNO_NAME_SEPARATOR_LINE_STYLE,
 /* 0743 */  UNO_NAME_FOOTNOTE_LINE_STYLE,
 /* 0744 */  UNO_NAME_EMBEDDED_OBJECT,
-/* 0745 */  SW_PROPNAME_END
+
+/* 0745 */  UNO_NAME_LINE_STYLE,
+/* 0746 */  UNO_NAME_LINE_WIDTH,
+
+/* 0747 */  SW_PROPNAME_END
 
 // new items in this array must match SwPropNameTab aPropNameTab
 };
diff --git a/sw/source/core/unocore/unoframe.cxx b/sw/source/core/unocore/unoframe.cxx
index 141dabf..21bc5fa 100644
--- a/sw/source/core/unocore/unoframe.cxx
+++ b/sw/source/core/unocore/unoframe.cxx
@@ -386,8 +386,13 @@ bool BaseFrameProperties_Impl::FillBaseProperties(SfxItemSet& rToSet, const SfxI
     GetProperty(RES_BOX, CONVERT_TWIPS|TOP_BORDER_DISTANCE,  pTopDistance);
     const ::uno::Any* pBottomDistance  = 0;
     GetProperty(RES_BOX, CONVERT_TWIPS|BOTTOM_BORDER_DISTANCE,   pBottomDistance);
+    const ::uno::Any* pLineStyle  = 0;
+    GetProperty(RES_BOX, LINE_STYLE,   pLineStyle);
+    const ::uno::Any* pLineWidth  = 0;
+    GetProperty(RES_BOX, LINE_WIDTH,   pLineWidth);
     if( pLeft || pRight || pTop ||  pBottom || pDistance ||
-        pLeftDistance  || pRightDistance || pTopDistance || pBottomDistance )
+        pLeftDistance  || pRightDistance || pTopDistance || pBottomDistance ||
+        pLineStyle || pLineWidth )
     {
         SvxBoxItem aBox ( static_cast < const :: SvxBoxItem & > ( rFromSet.Get ( RES_BOX ) ) );
         if( pLeft )
@@ -408,6 +413,10 @@ bool BaseFrameProperties_Impl::FillBaseProperties(SfxItemSet& rToSet, const SfxI
             bRet &= ((SfxPoolItem&)aBox).PutValue(*pTopDistance, CONVERT_TWIPS|TOP_BORDER_DISTANCE);
         if( pBottomDistance )
             bRet &= ((SfxPoolItem&)aBox).PutValue(*pBottomDistance, CONVERT_TWIPS|BOTTOM_BORDER_DISTANCE);
+        if( pLineStyle )
+            bRet &= ((SfxPoolItem&)aBox).PutValue(*pLineStyle, LINE_STYLE);
+        if( pLineWidth )
+            bRet &= ((SfxPoolItem&)aBox).PutValue(*pLineWidth, LINE_WIDTH|CONVERT_TWIPS);
         rToSet.Put(aBox);
     }
     {
diff --git a/sw/source/core/unocore/unomap.cxx b/sw/source/core/unocore/unomap.cxx
index 1554fdc..40aa7da 100644
--- a/sw/source/core/unocore/unomap.cxx
+++ b/sw/source/core/unocore/unomap.cxx
@@ -348,7 +348,9 @@ SwUnoPropertyMapProvider::~SwUnoPropertyMapProvider()
     { SW_PROP_NMID(UNO_NAME_WRAP_INFLUENCE_ON_POSITION), RES_WRAP_INFLUENCE_ON_OBJPOS, CPPU_E2T(CPPUTYPE_INT8), PROPERTY_NONE, MID_WRAP_INFLUENCE}, \
     { SW_PROP_NMID(UNO_NAME_TITLE), FN_UNO_TITLE, CPPU_E2T(CPPUTYPE_OUSTRING), PROPERTY_NONE, 0}, \
     { SW_PROP_NMID(UNO_NAME_DESCRIPTION), FN_UNO_DESCRIPTION, CPPU_E2T(CPPUTYPE_OUSTRING), PROPERTY_NONE, 0}, \
-    { SW_PROP_NMID(UNO_NAME_LAYOUT_SIZE), WID_LAYOUT_SIZE, CPPU_E2T(CPPUTYPE_AWTSIZE), PropertyAttribute::MAYBEVOID | PropertyAttribute::READONLY, 0 },
+    { SW_PROP_NMID(UNO_NAME_LAYOUT_SIZE), WID_LAYOUT_SIZE, CPPU_E2T(CPPUTYPE_AWTSIZE), PropertyAttribute::MAYBEVOID | PropertyAttribute::READONLY, 0 }, \
+    { SW_PROP_NMID(UNO_NAME_LINE_STYLE), RES_BOX, CPPU_E2T(CPPUTYPE_LINESTYLE),  0, LINE_STYLE }, \
+    { SW_PROP_NMID(UNO_NAME_LINE_WIDTH), RES_BOX, CPPU_E2T(CPPUTYPE_INT32),  0, LINE_WIDTH |CONVERT_TWIPS },
 
 
 
diff --git a/sw/source/core/unocore/unoprnms.cxx b/sw/source/core/unocore/unoprnms.cxx
index 28e9d48..2efd7ac 100644
--- a/sw/source/core/unocore/unoprnms.cxx
+++ b/sw/source/core/unocore/unoprnms.cxx
@@ -782,6 +782,9 @@ const SwPropNameTab aPropNameTab = {
 /* 0743 UNO_NAME_FOOTNOTE_LINE_STYLE */ {MAP_CHAR_LEN("FootnoteLineStyle")},
 /* 0744 UNO_NAME_EMBEDDED_OBJECT */ {MAP_CHAR_LEN("EmbeddedObject")},
 
+/* 0745 UNO_NAME_LINE_STYLE */	         {MAP_CHAR_LEN("LineStyle")},
+/* 0746 UNO_NAME_LINE_WIDTH */	         {MAP_CHAR_LEN("LineWidth")},
+
 // new items in this array must match enum SwPropNameIds
 };
 
commit 79cacbc9c9b28a1a54f7f589469c0c5f3a5744a3
Author: Cédric Bosdonnat <cedric.bosdonnat.ooo at free.fr>
Date:   Thu Feb 23 13:51:21 2012 +0100

    fdo#45560: Fixed docx textbox position and size import
    (cherry picked from commit 94698d89f675da9b4da1143fa150bbd76def6ccf)
    
    Signed-off-by: Miklos Vajna <vmiklos at suse.cz>

diff --git a/oox/source/vml/vmldrawing.cxx b/oox/source/vml/vmldrawing.cxx
index 6483f20..a908875 100644
--- a/oox/source/vml/vmldrawing.cxx
+++ b/oox/source/vml/vmldrawing.cxx
@@ -29,9 +29,13 @@
 #include "oox/vml/vmldrawing.hxx"
 
 #include <algorithm>
+#include <com/sun/star/beans/XPropertySet.hpp>
 #include <com/sun/star/drawing/XControlShape.hpp>
 #include <com/sun/star/drawing/XShapes.hpp>
 #include <com/sun/star/lang/XMultiServiceFactory.hpp>
+#include <com/sun/star/text/HoriOrientation.hpp>
+#include <com/sun/star/text/VertOrientation.hpp>
+#include <rtl/oustringostreaminserter.hxx>
 #include "oox/core/xmlfilterbase.hxx"
 #include "oox/helper/containerhelper.hxx"
 #include "oox/ole/axcontrol.hxx"
@@ -44,8 +48,10 @@ namespace vml {
 // ============================================================================
 
 using namespace ::com::sun::star::awt;
+using namespace ::com::sun::star::beans;
 using namespace ::com::sun::star::drawing;
 using namespace ::com::sun::star::lang;
+using namespace ::com::sun::star::text;
 using namespace ::com::sun::star::uno;
 
 using ::oox::core::XmlFilterBase;
@@ -217,13 +223,25 @@ Reference< XShape > Drawing::createAndInsertXShape( const OUString& rService,
     {
         Reference< XMultiServiceFactory > xModelFactory( mrFilter.getModelFactory(), UNO_SET_THROW );
         xShape.set( xModelFactory->createInstance( rService ), UNO_QUERY_THROW );
-        // insert shape into passed shape collection (maybe drawpage or group shape)
-        rxShapes->add( xShape );
-        xShape->setPosition( Point( rShapeRect.X, rShapeRect.Y ) );
+        if ( !rService.equalsAscii( "com.sun.star.text.TextFrame" ) )
+        {
+            // insert shape into passed shape collection (maybe drawpage or group shape)
+            rxShapes->add( xShape );
+            xShape->setPosition( Point( rShapeRect.X, rShapeRect.Y ) );
+        }
+        else
+        {
+            Reference< XPropertySet > xPropSet( xShape, UNO_QUERY_THROW );
+            xPropSet->setPropertyValue( OUString::createFromAscii( "HoriOrient" ), makeAny( HoriOrientation::NONE ) );
+            xPropSet->setPropertyValue( OUString::createFromAscii( "VertOrient" ), makeAny( VertOrientation::NONE ) );
+            xPropSet->setPropertyValue( OUString::createFromAscii( "HoriOrientPosition" ), makeAny( rShapeRect.X ) );
+            xPropSet->setPropertyValue( OUString::createFromAscii( "VertOrientPosition" ), makeAny( rShapeRect.Y ) );
+        }
         xShape->setSize( Size( rShapeRect.Width, rShapeRect.Height ) );
     }
-    catch( Exception& )
+    catch( Exception& e )
     {
+        SAL_WARN( "oox", "Drawing::createAndInsertXShape - error during shape object creation: " << e.Message );
     }
     OSL_ENSURE( xShape.is(), "Drawing::createAndInsertXShape - cannot instanciate shape object" );
     return xShape;
commit 3bb8073cdb4ac02cb8b0fb59eb9badadf63505da
Author: Thorsten Behrens <tbehrens at suse.com>
Date:   Fri Feb 24 10:47:53 2012 +0100

    Use internal libxml for Mac release builds.
    
    Following up from 49843f0f9788e01805d8d0d27428fe5e6a4cc530, actually
    use internal libxml for release builds.
    
    Signed-off-by: Norbert Thiebaud <nthiebaud at gmail.com>

diff --git a/distro-configs/LibreOfficeMacOSX.conf b/distro-configs/LibreOfficeMacOSX.conf
index 9366a04..1a1fd09 100644
--- a/distro-configs/LibreOfficeMacOSX.conf
+++ b/distro-configs/LibreOfficeMacOSX.conf
@@ -1,6 +1,7 @@
 --with-vendor=The Document Foundation
 --enable-epm
 --enable-binfilter
+--without-system-libxml
 --disable-cairo-canvas
 --with-java-target-version=1.5
 --enable-ext-presenter-minimizer
commit 867a5e5378c3f3465a894aee97b5790af94f75b8
Author: Stephan Bergmann <sbergman at redhat.com>
Date:   Thu Feb 23 16:26:23 2012 +0100

    Tentative libcroco fix for Mac OS X --without-system-libxml

diff --git a/libcroco/makefile.mk b/libcroco/makefile.mk
index d405f95..28c588b 100644
--- a/libcroco/makefile.mk
+++ b/libcroco/makefile.mk
@@ -51,14 +51,21 @@ PATCH_FILES=
 CONFIGURE_DIR=
 
 .IF "$(OS)"=="MACOSX"
+.IF "$(SYSTEM_LIBXML)" == "YES"
+my_libxml2_cflags=$(LIBXML_CFLAGS)
+my_libxml2_libs=$(LIBXML_LIBS)
+.ELSE
+my_libxml2_cflags=-I$(SOLARINCDIR)/external/libxml
+my_libxml2_libs=-L$(SOLARLIBDIR) -lxml2
+.ENDIF
 CONFIGURE_ACTION=./configure --prefix=$(SRC_ROOT)/$(PRJNAME)/$(MISC) \
                  CPPFLAGS="$(EXTRA_CDEFS)" \
                  CFLAGS="$(ARCH_FLAGS) $(EXTRA_CFLAGS) -I$(SOLARINCDIR)/external -I$(SOLARINCDIR)/external/glib-2.0" \
                  LDFLAGS="-L$(SOLARLIBDIR) $(EXTRA_LINKFLAGS) -Wl,-dylib_file, at loader_path/libgmodule-2.0.0.dylib:$(SOLARLIBDIR)/libgmodule-2.0.0.dylib" \
                  GLIB2_CFLAGS="-I$(SOLARINCDIR)/external/glib-2.0" \
                  GLIB2_LIBS="-lgio-2.0 -lgobject-2.0 -lgthread-2.0 -lglib-2.0 -lintl" \
-                 LIBXML2_CFLAGS="$(LIBXML_CFLAGS)" \
-                 LIBXML2_LIBS="$(LIBXML_LIBS)"
+                 LIBXML2_CFLAGS='$(my_libxml2_cflags)' \
+                 LIBXML2_LIBS='$(my_libxml2_libs)'
 
 .IF "$(CROSS_COMPILING)"=="YES"
 CONFIGURE_FLAGS+=--build=$(BUILD_PLATFORM) --host=$(HOST_PLATFORM)
commit e8a99237fd110dc5185acbb1ed13f4ab66de25f9
Author: Stephan Bergmann <sbergman at redhat.com>
Date:   Thu Feb 23 12:43:25 2012 +0100

    Add shl/LOADER/URELIB to make --without-sytem-libxml work on Mac OS X
    
    I doubt that the "LOADER" token is needed at all, but will investigate that
    later.

diff --git a/solenv/bin/macosx-change-install-names.pl b/solenv/bin/macosx-change-install-names.pl
index 57f4e79..290a488 100644
--- a/solenv/bin/macosx-change-install-names.pl
+++ b/solenv/bin/macosx-change-install-names.pl
@@ -42,6 +42,7 @@ sub action($$$)
          'shl/OOO/URELIB' => '@loader_path/../ure-link/lib',
          'shl/OOO/OOO' => '@loader_path',
          'shl/LOADER/LOADER' => '@loader_path',
+         'shl/LOADER/URELIB' => '@loader_path/../ure-link/lib',
          'shl/OXT/URELIB' => '@executable_path/urelibs',
          'shl/NONE/URELIB' => '@__VIA_LIBRARY_PATH__',
          'shl/OOO/NONE' => '@__VIA_LIBRARY_PATH__',
commit 65f44e41867b35b3f74257e9a3029956c2408b48
Author: Petr Mladek <pmladek at suse.cz>
Date:   Thu Feb 23 11:10:53 2012 +0100

    set back rpath to ure/lib for libxml on MAC
    
    The library is installed in ure/lib. Thanks Stefan Bergman for the pointer.

diff --git a/libxml2/makefile.mk b/libxml2/makefile.mk
index d39b8a5..1d125c1 100644
--- a/libxml2/makefile.mk
+++ b/libxml2/makefile.mk
@@ -137,7 +137,7 @@ CONFIGURE_FLAGS+=--build=$(BUILD_PLATFORM) --host=$(HOST_PLATFORM)
 OUTDIR2INC=include$/libxml 
 
 .IF "$(OS)"=="MACOSX"
-EXTRPATH=LOADER
+EXTRPATH=URELIB
 OUT2LIB+=.libs$/libxml2.*.dylib
 OUT2BIN+=.libs$/xmllint
 OUT2BIN+=xml2-config
commit 9946d289968d67b1dfbe71beef136153a19ceb74
Author: Norbert Thiebaud <nthiebaud at gmail.com>
Date:   Wed Feb 22 15:58:19 2012 -0600

    support using for libxml2 internal on MacOSX

diff --git a/libxml2/makefile.mk b/libxml2/makefile.mk
index 1d125c1..d39b8a5 100644
--- a/libxml2/makefile.mk
+++ b/libxml2/makefile.mk
@@ -137,7 +137,7 @@ CONFIGURE_FLAGS+=--build=$(BUILD_PLATFORM) --host=$(HOST_PLATFORM)
 OUTDIR2INC=include$/libxml 
 
 .IF "$(OS)"=="MACOSX"
-EXTRPATH=URELIB
+EXTRPATH=LOADER
 OUT2LIB+=.libs$/libxml2.*.dylib
 OUT2BIN+=.libs$/xmllint
 OUT2BIN+=xml2-config
diff --git a/libxml2/prj/d.lst b/libxml2/prj/d.lst
index 6e7bbb4..d5e98d4 100644
--- a/libxml2/prj/d.lst
+++ b/libxml2/prj/d.lst
@@ -2,6 +2,8 @@ mkdir: %_DEST%\inc\external\libxml
 ..\%__SRC%\inc\libxml\*.h %_DEST%\inc\external\libxml\*.h
 ..\%__SRC%\lib\libxml2.so.2 %_DEST%\lib\libxml2.so.2
 symlink: %_DEST%\lib\libxml2.so.2 %_DEST%\lib\libxml2.so
+..\%__SRC%\lib\libxml2.2.dylib %_DEST%\lib\libxml2.2.dylib
+symlink: %_DEST%\lib\libxml2.2.dylib %_DEST%\lib\libxml2.dylib
 ..\%__SRC%\lib\libxml2.so %_DEST%\lib\libxml2.so
 ..\%__SRC%\lib\*.lib %_DEST%\lib
 ..\%__SRC%\lib\libxml2.dll.a %_DEST%\lib\libxml2.dll.a
diff --git a/libxslt/prj/d.lst b/libxslt/prj/d.lst
index 0627cc1..f3613b0 100644
--- a/libxslt/prj/d.lst
+++ b/libxslt/prj/d.lst
@@ -1,10 +1,15 @@
 mkdir: %_DEST%\inc\external\libxslt
 ..\%__SRC%\inc\*.h %_DEST%\inc\external\libxslt\*.h
+..\%__SRC%\lib\libxslt.1.dylib %_DEST%\lib\libxslt.1.dylib
+symlink: %_DEST%\lib\libxslt.1.dylib %_DEST%\lib\libxslt.dylib
+...\%__SRC%\lib\libexslt.so %_DEST%\lib\libexslt.so
 ..\%__SRC%\lib\libxslt.so.1 %_DEST%\lib\libxslt.so.1
 symlink: %_DEST%\lib\libxslt.so.1 %_DEST%\lib\libxslt.so
 ..\%__SRC%\lib\libxslt.so %_DEST%\lib\libxslt.so
 ..\%__SRC%\lib\libexslt.so.0 %_DEST%\lib\libexslt.so.0
 symlink: %_DEST%\lib\libexslt.so.0 %_DEST%\lib\libexslt.so
+..\%__SRC%\lib\libexslt.0.dylib %_DEST%\lib\libexslt.0.dylib
+symlink: %_DEST%\lib\libexslt.0.dylib %_DEST%\lib\libexslt.dylib
 ..\%__SRC%\lib\libexslt.so %_DEST%\lib\libexslt.so
 ..\%__SRC%\lib\libxslt*.* %_DEST%\lib\libxslt*.*
 ..\%__SRC%\lib\lib*.dll.a %_DEST%\lib\*.a
commit aa7eee949ad48085589863c4f2e16d27ab972fa2
Author: Michael Stahl <mstahl at redhat.com>
Date:   Wed Feb 22 23:58:04 2012 +0100

    fdo#46482: prevent duplication of frames:
    
    SwDoc::MakeFlySection: abuse the SwDoc::mbRedlineMove flag, which
    (with the fix for fdo#40599) does exactly what is necessary to prevent
    the spurious copies.
    Also, remove the ugly hack to work around this problem from
    SwXText::convertToTextFrame.
    (cherry picked from commit 91fab30f3b1617024ee2eadf3c7ad1ea84d7f6dd)

diff --git a/sw/source/core/doc/doclay.cxx b/sw/source/core/doc/doclay.cxx
index a2ae209..59377f9 100644
--- a/sw/source/core/doc/doclay.cxx
+++ b/sw/source/core/doc/doclay.cxx
@@ -840,8 +840,10 @@ if( GetIDocumentUndoRedo().DoesUndo() )
                 SwPaM* pTmp = (SwPaM*)&rPam;
                 sal_Bool bOldFlag = mbCopyIsMove;
                 bool const bOldUndo = GetIDocumentUndoRedo().DoesUndo();
+                bool const bOldRedlineMove(IsRedlineMove());
                 mbCopyIsMove = sal_True;
                 GetIDocumentUndoRedo().DoUndo(false);
+                SetRedlineMove(true);
                 do {
                     if( pTmp->HasMark() &&
                         *pTmp->GetPoint() != *pTmp->GetMark() )
@@ -850,6 +852,7 @@ if( GetIDocumentUndoRedo().DoesUndo() )
                     }
                     pTmp = static_cast<SwPaM*>(pTmp->GetNext());
                 } while ( &rPam != pTmp );
+                SetRedlineMove(bOldRedlineMove);
                 mbCopyIsMove = bOldFlag;
                 GetIDocumentUndoRedo().DoUndo(bOldUndo);
 
diff --git a/sw/source/core/unocore/unotext.cxx b/sw/source/core/unocore/unotext.cxx
index a562a25..71939e4 100644
--- a/sw/source/core/unocore/unotext.cxx
+++ b/sw/source/core/unocore/unotext.cxx
@@ -1720,12 +1720,6 @@ throw (lang::IllegalArgumentException, uno::RuntimeException)
                         SwFmtAnchor aAnchor((*i)->GetAnchor());
                         aAnchor.SetAnchor(aMovePam.Start());
                         m_pImpl->m_pDoc->SetAttr(aAnchor, *(*i));
-
-                        // delete the old anchor
-                        SwSpzFrmFmts* pFrmFmts = m_pImpl->m_pDoc->GetSpzFrmFmts();
-                        // here we rely on that fact that this is a sorted list, where the last element is the newly created frame
-                        SwFrmFmt *pFrmFmt = (*pFrmFmts)[pFrmFmts->Count()-1];
-                        m_pImpl->m_pDoc->DelLayoutFmt(pFrmFmt);
                     }
                 }
             }
commit eda71e73a401458acdb58a26841791de1d23c2c5
Author: Michael Stahl <mstahl at redhat.com>
Date:   Wed Feb 22 23:48:57 2012 +0100

    fdo#40599 i#112763: fix frame duplication:
    
    SwDoc::CopyFlyInFlyImpl: When called from SwRedline::CopyToSection, do not
    copy frames that are anchored at the redline end node by checking
    IsRedlineMove(); these frames are not deleted by DelCopyOfSection and were
    thus duplicated on every Show/Hide redlines.
    (regression from 62ebbb006b4a11974e14dd61d3c453a98336f951 (CWS os131))
    (cherry picked from commit 23e52c207760c596cc2f841ef59f3100c110d591)
    
    Signed-off-by: Caolán McNamara <caolanm at redhat.com>

diff --git a/sw/source/core/docnode/ndcopy.cxx b/sw/source/core/docnode/ndcopy.cxx
index 3ac2c18..0a823c2 100644
--- a/sw/source/core/docnode/ndcopy.cxx
+++ b/sw/source/core/docnode/ndcopy.cxx
@@ -1432,7 +1432,7 @@ void SwDoc::CopyFlyInFlyImpl( const SwNodeRange& rRg,
             bool bAdd = false;
             if( pAPos->nNode < rRg.aEnd )
                 bAdd = true;
-            if( !bAdd )
+            if (!bAdd && !IsRedlineMove()) // fdo#40599: not for redline move
             {
                 bool bEmptyNode = false;
                 bool bLastNode = false;
commit ca76395eead22525d9c1a3a3b0863189b911ed1c
Author: Miklos Vajna <vmiklos at suse.cz>
Date:   Mon Feb 20 10:12:01 2012 +0100

    n#695479 fix anchor handling in SwXText::convertToTextFrame()
    
    When two (or more) text frames was imported without a non-frame
    paragraph in between, the first frame was anchored to the second one,
    instead of a non-frame paragraph.
    
    The fix is modelled after what the old RTF import already did in
    SwRTFParser::Continue() in swparrtf.cxx:493 and
    SwRTFParser::SetFlysInDoc() in rtffly.cxx:481.
    (cherry picked from commit 9592f56323de27f9e1d890ee6259a5f4f328cbd3)
    
    Signed-off-by: Caolán McNamara <caolanm at redhat.com>

diff --git a/sw/source/core/unocore/unotext.cxx b/sw/source/core/unocore/unotext.cxx
index 820239f..a562a25 100644
--- a/sw/source/core/unocore/unotext.cxx
+++ b/sw/source/core/unocore/unotext.cxx
@@ -1665,6 +1665,18 @@ throw (lang::IllegalArgumentException, uno::RuntimeException)
     aStartPam.SetMark();
     *aStartPam.End() = *pEndPam->End();
     pEndPam.reset(0);
+
+    // see if there are frames already anchored to this node
+    std::vector<SwFrmFmt*> aAnchoredFrames;
+    for (int i = 0; i < m_pImpl->m_pDoc->GetSpzFrmFmts()->Count(); ++i)
+    {
+        SwFrmFmt* pFrmFmt = (*m_pImpl->m_pDoc->GetSpzFrmFmts())[i];
+        const SwFmtAnchor& rAnchor = pFrmFmt->GetAnchor();
+        if (FLY_AT_PARA == rAnchor.GetAnchorId() &&
+                aStartPam.GetNode()->GetIndex() == rAnchor.GetCntntAnchor()->nNode.GetIndex())
+            aAnchoredFrames.push_back(pFrmFmt);
+    }
+
     SwXTextFrame *const pNewFrame = new SwXTextFrame(m_pImpl->m_pDoc);
     const uno::Reference< text::XTextFrame > xNewFrame = pNewFrame;
     pNewFrame->SetSelection( aStartPam );
@@ -1700,6 +1712,21 @@ throw (lang::IllegalArgumentException, uno::RuntimeException)
                     aNewAnchor.SetAnchor( aMovePam.Start() );
                     m_pImpl->m_pDoc->SetAttr(
                         aNewAnchor, *pNewFrame->GetFrmFmt() );
+
+                    // also move frames anchored to us
+                    for (std::vector<SwFrmFmt*>::iterator i = aAnchoredFrames.begin(); i != aAnchoredFrames.end(); ++i)
+                    {
+                        // copy the anchor to the next paragraph
+                        SwFmtAnchor aAnchor((*i)->GetAnchor());
+                        aAnchor.SetAnchor(aMovePam.Start());
+                        m_pImpl->m_pDoc->SetAttr(aAnchor, *(*i));
+
+                        // delete the old anchor
+                        SwSpzFrmFmts* pFrmFmts = m_pImpl->m_pDoc->GetSpzFrmFmts();
+                        // here we rely on that fact that this is a sorted list, where the last element is the newly created frame
+                        SwFrmFmt *pFrmFmt = (*pFrmFmts)[pFrmFmts->Count()-1];
+                        m_pImpl->m_pDoc->DelLayoutFmt(pFrmFmt);
+                    }
                 }
             }
             m_pImpl->m_pDoc->DelFullPara(aStartPam);
commit 9a440f8aa8eacb39eeaec03ffddf3612b3964f32
Author: Joachim Lingner <jl at openoffice.org>
Date:   Thu Feb 23 12:38:36 2012 +0000

    default conversion of sequences is now again SAFEARRAY of VARIANTs #fdo46165
    
    cws jl166 patch: #i117010# default conversion of sequences is now again SAFEARRAY of VARIANTs
    
    Signed-off-by: Michael Meeks <michael.meeks at suse.com>

diff --git a/extensions/source/ole/unoconversionutilities.hxx b/extensions/source/ole/unoconversionutilities.hxx
index b6ac7f1..1aae119 100644
--- a/extensions/source/ole/unoconversionutilities.hxx
+++ b/extensions/source/ole/unoconversionutilities.hxx
@@ -1318,47 +1318,32 @@ SAFEARRAY*  UnoConversionUtilities<T>::createUnoSequenceWrapper(const Any& rSeq)
 
     typelib_TypeDescription* pSeqElementDesc= NULL;
     TYPELIB_DANGER_GET( &pSeqElementDesc, pSeqElementTypeRef);
+    sal_Int32 nElementSize= pSeqElementDesc->nSize;
+    n= punoSeq->nElements;
 
-    // try to find VARIANT type that is related to the UNO type of the sequence elements
-    // the sequence as a sequence element should be handled in a special way
-    VARTYPE eTargetElementType = VT_EMPTY;
-    if ( pSeqElementDesc->eTypeClass != TypeClass_SEQUENCE )
-        eTargetElementType = mapTypeClassToVartype( static_cast< TypeClass >( pSeqElementDesc->eTypeClass ) );
+    SAFEARRAYBOUND rgsabound[1];
+    rgsabound[0].lLbound = 0;
+    rgsabound[0].cElements = n;
+    VARIANT oleElement;
+    long safeI[1];
 
-    if ( eTargetElementType != VT_EMPTY )
-        pArray = createUnoSequenceWrapper( rSeq, eTargetElementType );
+    pArray = SafeArrayCreate(VT_VARIANT, 1, rgsabound);
 
-    if ( !pArray )
-    {
-        sal_Int32 nElementSize= pSeqElementDesc->nSize;
-        n= punoSeq->nElements;
-
-        SAFEARRAYBOUND rgsabound[1];
-        rgsabound[0].lLbound = 0;
-        rgsabound[0].cElements = n;
-        VARIANT oleElement;
-        long safeI[1];
-
-        pArray = SafeArrayCreate(VT_VARIANT, 1, rgsabound);
-
-        Any unoElement;
-        //      sal_uInt8 * pSeqData= (sal_uInt8*) punoSeq->pElements;
-        sal_uInt8 * pSeqData= (sal_uInt8*) punoSeq->elements;
+    Any unoElement;
+    sal_uInt8 * pSeqData= (sal_uInt8*) punoSeq->elements;
 
-        for (sal_uInt32 i = 0; i < n; i++)
-        {
-            unoElement.setValue( pSeqData + i * nElementSize, pSeqElementDesc);
-            VariantInit(&oleElement);
+    for (sal_uInt32 i = 0; i < n; i++)
+    {
+        unoElement.setValue( pSeqData + i * nElementSize, pSeqElementDesc);
+        VariantInit(&oleElement);
 
-            anyToVariant(&oleElement, unoElement);
+        anyToVariant(&oleElement, unoElement);
 
-            safeI[0] = i;
-            SafeArrayPutElement(pArray, safeI, &oleElement);
+        safeI[0] = i;
+        SafeArrayPutElement(pArray, safeI, &oleElement);
 
-            VariantClear(&oleElement);
-        }
+        VariantClear(&oleElement);
     }
-
     TYPELIB_DANGER_RELEASE( pSeqElementDesc);
 
     return pArray;
commit 466cb51bc3a27c0ec19d0c841d7376ab2eae3f9a
Author: Noel Power <noel.power at novell.com>
Date:   Thu Feb 23 12:36:05 2012 +0000

    Revert "fix handling of SAFEARRAY(s) returned as variant in olebridge (fdo#38441)"
    
    This reverts commit 3fcb94311fd7dd40c05ca132e3a30a888316cbbe.
    
    Signed-off-by: Noel Power <noel.power at novell.com>

diff --git a/extensions/source/ole/unoconversionutilities.hxx b/extensions/source/ole/unoconversionutilities.hxx
index 359009e..b6ac7f1 100644
--- a/extensions/source/ole/unoconversionutilities.hxx
+++ b/extensions/source/ole/unoconversionutilities.hxx
@@ -134,7 +134,7 @@ public:
     /** @exception com.sun.star.lang.IllegalArgumentException
         If rSeq does not contain a sequence then the exception is thrown.
     */
-    VARTYPE createUnoSequenceWrapper(const Any& rSeq, SAFEARRAY*& pOutArray );
+    SAFEARRAY*  createUnoSequenceWrapper(const Any& rSeq);
     /** @exception com.sun.star.lang.IllegalArgumentException
         If rSeq does not contain a sequence or elemtype has no proper value
         then the exception is thrown.
@@ -779,12 +779,11 @@ void UnoConversionUtilities<T>::anyToVariant(VARIANT* pVariant, const Any& rAny)
         }
         case TypeClass_SEQUENCE:        // sequence ??? SafeArray descriptor
         {
-            SAFEARRAY* pOutArray = NULL;
-            VARTYPE eArrayType = createUnoSequenceWrapper(rAny, pOutArray );
-            if (pOutArray)
+            SAFEARRAY* pArray = createUnoSequenceWrapper(rAny);
+            if (pArray)
             {
-                V_VT(pVariant) = VT_ARRAY | eArrayType;
-                V_ARRAY(pVariant) = pOutArray;
+                V_VT(pVariant) = VT_ARRAY | VT_VARIANT;
+                V_ARRAY(pVariant) = pArray;
             }
             else
             {
@@ -1296,8 +1295,9 @@ void  UnoConversionUtilities<T>::getElementCountAndTypeOfSequence( const Any& rS
 
 
 template<class T>
-VARTYPE UnoConversionUtilities<T>::createUnoSequenceWrapper(const Any& rSeq,  SAFEARRAY*& pArray)
+SAFEARRAY*  UnoConversionUtilities<T>::createUnoSequenceWrapper(const Any& rSeq)
 {
+    SAFEARRAY* pArray = NULL;
     sal_uInt32 n = 0;
 
     if( rSeq.getValueTypeClass() != TypeClass_SEQUENCE )
@@ -1361,7 +1361,7 @@ VARTYPE UnoConversionUtilities<T>::createUnoSequenceWrapper(const Any& rSeq,  SA
 
     TYPELIB_DANGER_RELEASE( pSeqElementDesc);
 
-    return eTargetElementType;
+    return pArray;
 }
 
 /* The argument rObj can contain
commit 50ab8fd93086a68eb0724411de0a19b0f04f4529
Author: Noel Power <noel.power at novell.com>
Date:   Wed Feb 22 15:08:21 2012 +0000

    force imported xlsx active tab to be shown bnc#748198
    
    weirdly even though a sheet/tab can be marked as hidden in workbook.xml, if that same tab/sheet is the active one then it *will* be shown
    
    Signed-off-by: Andras Timar <atimar at suse.com>

diff --git a/oox/source/xls/viewsettings.cxx b/oox/source/xls/viewsettings.cxx
index 1eb07c7..297b3dc 100644
--- a/oox/source/xls/viewsettings.cxx
+++ b/oox/source/xls/viewsettings.cxx
@@ -498,7 +498,13 @@ void SheetViewSettings::finalizeImport()
 
     // sheet selected (active sheet must be selected)
     bool bSelected = xModel->mbSelected || (getSheetIndex() == getViewSettings().getActiveCalcSheet());
-
+    if ( bSelected )
+    {
+        // active tab/sheet cannot be hidden
+        // always force it to be displayed
+        PropertySet aPropSet( getSheet() );
+        aPropSet.setProperty( PROP_IsVisible, sal_True );
+    }
     // visible area and current cursor position (selection not supported via API)
     CellAddress aFirstPos = xModel->maFirstPos;
     const PaneSelectionModel* pPaneSel = xModel->getActiveSelection();


More information about the Libreoffice-commits mailing list