[ooo-build-commit] .: patches/dev300

Cédric Bosdonnat cbosdo at kemper.freedesktop.org
Tue Sep 21 11:31:56 PDT 2010


 patches/dev300/apply                        |    5 
 patches/dev300/empty-fields.diff            |   40 ++++++
 patches/dev300/fields-double-click.diff     |   61 +++++++++
 patches/dev300/floating-tables.diff         |   27 ++++
 patches/dev300/pdf-link-export-fix.diff     |  184 ++++++++++++++++++++++++++++
 patches/dev300/skip-empty-links-in-pdf.diff |   20 ---
 6 files changed, 316 insertions(+), 21 deletions(-)

New commits:
commit d1680f9dec92d7118aeb92fed7b971e890623e74
Author: Cédric Bosdonnat <cedricbosdo at openoffice.org>
Date:   Tue Sep 21 19:27:44 2010 +0200

    Cherry-picked some bug fixes on 3.2.1

diff --git a/patches/dev300/apply b/patches/dev300/apply
index e61b340..65ca71d 100644
--- a/patches/dev300/apply
+++ b/patches/dev300/apply
@@ -2178,6 +2178,9 @@ win32-restore-associations.diff, n#530872, tml
 fix-ppt-linespacing-import-export.diff, n#355302, rodo
 
 dummy-fields.diff, n#628098, cbosdo
+empty-fields.diff, n#623944, cbosdo
+floating-tables.diff n#617593, cbosdo
+fields-double-click.diff, n#639288, cbosdo
 
 svx-hacky-htmlselect-control-import.diff, n#523191, noelpwer
 
@@ -2869,7 +2872,7 @@ svx-hu-name-order.diff, i#105342, timar
 # to export an empty "link annotation", which gets turned into a
 # rather bogus file: link to the directory the presentadion document
 # is in.  Just don't bother handling such empty "link annotations".
-skip-empty-links-in-pdf.diff, bnc#598816, tml
+pdf-link-export-fix.diff, n#598816, n#639278, cbosdo
 
 # don't set header in DDE tables, usually not what the user wants
 sw-dde-table-no-header.diff, n#634517, jholesov
diff --git a/patches/dev300/empty-fields.diff b/patches/dev300/empty-fields.diff
new file mode 100644
index 0000000..5c366b1
--- /dev/null
+++ b/patches/dev300/empty-fields.diff
@@ -0,0 +1,40 @@
+WW8: Don't show the result of the fields when field code is 0x01
+
+From: Cédric Bosdonnat <cedricbosdo at openoffice.org>
+
+
+---
+
+ sw/source/filter/ww8/ww8par5.cxx |   11 +++++++----
+ 1 files changed, 7 insertions(+), 4 deletions(-)
+
+
+diff --git sw/source/filter/ww8/ww8par5.cxx sw/source/filter/ww8/ww8par5.cxx
+index a32e26f..31c8030 100644
+--- sw/source/filter/ww8/ww8par5.cxx
++++ sw/source/filter/ww8/ww8par5.cxx
+@@ -822,7 +822,7 @@ long SwWW8ImplReader::Read_Field(WW8PLCFManResult* pRes)
+     static FNReadField aWW8FieldTab[eMax+1] =
+     {
+         0,
+-        0,
++        &SwWW8ImplReader::Read_F_Input,
+         0,
+         &SwWW8ImplReader::Read_F_Ref,               // 3
+         0,
+@@ -1205,9 +1205,12 @@ eF_ResT SwWW8ImplReader::Read_F_Input( WW8FieldDesc* pF, String& rStr )
+     if( !aDef.Len() )
+         aDef = GetFieldResult( pF );
+ 
+-    SwInputField aFld( (SwInputFieldType*)rDoc.GetSysFldType( RES_INPUTFLD ),
+-                        aDef, aQ, INP_TXT, 0 ); // sichtbar ( geht z.Zt. nicht anders )
+-    rDoc.InsertPoolItem( *pPaM, SwFmtFld( aFld ), 0 );
++    if ( pF->nId != 0x01 ) // 0x01 fields have no result
++    {
++        SwInputField aFld( (SwInputFieldType*)rDoc.GetSysFldType( RES_INPUTFLD ),
++                            aDef, aQ, INP_TXT, 0 ); // sichtbar ( geht z.Zt. nicht anders )
++        rDoc.InsertPoolItem( *pPaM, SwFmtFld( aFld ), 0 );
++    }
+ 
+     return FLD_OK;
+ }
diff --git a/patches/dev300/fields-double-click.diff b/patches/dev300/fields-double-click.diff
new file mode 100644
index 0000000..e023a7c
--- /dev/null
+++ b/patches/dev300/fields-double-click.diff
@@ -0,0 +1,61 @@
+diff --git sw/source/core/crsr/swcrsr.cxx sw/source/core/crsr/swcrsr.cxx
+index bcf2b0c..5272571 100644
+--- sw/source/core/crsr/swcrsr.cxx
++++ sw/source/core/crsr/swcrsr.cxx
+@@ -1372,22 +1372,44 @@ BOOL SwCursor::SelectWordWT( sal_Int16 nWordType, const Point* pPt )
+     const SwTxtNode* pTxtNd = GetNode()->GetTxtNode();
+     if( pTxtNd && pBreakIt->GetBreakIter().is() )
+     {
+-        xub_StrLen nPtPos = GetPoint()->nContent.GetIndex();
+-        Boundary aBndry( pBreakIt->GetBreakIter()->getWordBoundary(
+-                            pTxtNd->GetTxt(), nPtPos,
+-                            pBreakIt->GetLocale( pTxtNd->GetLang( nPtPos ) ),
+-                            nWordType,
+-                            bForward ));
+-
+-        if( aBndry.startPos != aBndry.endPos )
++        // Should we select the whole fieldmark?
++        const IDocumentMarkAccess* pMarksAccess = GetDoc()->getIDocumentMarkAccess( );
++        sw::mark::IMark* pMark = GetPoint() ? pMarksAccess->getFieldmarkFor( *GetPoint( ) ) : NULL;
++        if ( pMark )
+         {
+-            GetPoint()->nContent = (xub_StrLen)aBndry.endPos;
+-            if( !IsSelOvr() )
++            const SwPosition rStart = pMark->GetMarkStart();
++            GetPoint()->nNode = rStart.nNode;
++            GetPoint()->nContent = rStart.nContent;
++
++            const SwPosition rEnd = pMark->GetMarkEnd();
++
++            if ( rStart != rEnd )
+             {
+                 SetMark();
+-                GetMark()->nContent = (xub_StrLen)aBndry.startPos;
++                GetMark()->nNode = rEnd.nNode;
++                GetMark()->nContent = rEnd.nContent;
++            }
++            bRet = TRUE;
++        }
++        else
++        {
++            xub_StrLen nPtPos = GetPoint()->nContent.GetIndex();
++            Boundary aBndry( pBreakIt->GetBreakIter()->getWordBoundary(
++                                pTxtNd->GetTxt(), nPtPos,
++                                pBreakIt->GetLocale( pTxtNd->GetLang( nPtPos ) ),
++                                nWordType,
++                                bForward ));
++
++            if( aBndry.startPos != aBndry.endPos )
++            {
++                GetPoint()->nContent = (xub_StrLen)aBndry.endPos;
+                 if( !IsSelOvr() )
+-                    bRet = TRUE;
++                {
++                    SetMark();
++                    GetMark()->nContent = (xub_StrLen)aBndry.startPos;
++                    if( !IsSelOvr() )
++                        bRet = TRUE;
++                }
+             }
+         }
+     }
diff --git a/patches/dev300/floating-tables.diff b/patches/dev300/floating-tables.diff
new file mode 100644
index 0000000..31bcad9
--- /dev/null
+++ b/patches/dev300/floating-tables.diff
@@ -0,0 +1,27 @@
+WW8: Fix floating table import
+
+From: Cédric Bosdonnat <cedricbosdo at openoffice.org>
+
+
+---
+
+ sw/source/filter/ww8/ww8par6.cxx |    5 ++++-
+ 1 files changed, 4 insertions(+), 1 deletions(-)
+
+
+diff --git sw/source/filter/ww8/ww8par6.cxx sw/source/filter/ww8/ww8par6.cxx
+index c16177e..3d4779a 100644
+--- sw/source/filter/ww8/ww8par6.cxx
++++ sw/source/filter/ww8/ww8par6.cxx
+@@ -2216,7 +2216,10 @@ WW8FlySet::WW8FlySet(SwWW8ImplReader& rReader, const WW8FlyPara* pFW,
+         Put(SvxULSpaceItem(pFS->nUpMgn, pFS->nLoMgn, RES_UL_SPACE));
+ 
+     //we no longer need to hack around the header/footer problems
+-    Put(SwFmtSurround(pFS->eSurround));
++    SwFmtSurround aSurround(pFS->eSurround);
++    if ( pFS->eSurround == SURROUND_IDEAL )
++        aSurround.SetAnchorOnly( TRUE );
++    Put( aSurround );
+ 
+     short aSizeArray[5]={0};
+     rReader.SetFlyBordersShadow(*this,(const WW8_BRC*)pFW->brc,&aSizeArray[0]);
diff --git a/patches/dev300/pdf-link-export-fix.diff b/patches/dev300/pdf-link-export-fix.diff
new file mode 100644
index 0000000..1bd93b0
--- /dev/null
+++ b/patches/dev300/pdf-link-export-fix.diff
@@ -0,0 +1,184 @@
+diff --git sd/source/ui/unoidl/unomodel.cxx sd/source/ui/unoidl/unomodel.cxx
+index d7e36f9..ec181ed 100644
+--- sd/source/ui/unoidl/unomodel.cxx
++++ sd/source/ui/unoidl/unomodel.cxx
+@@ -1947,7 +1947,9 @@ void SAL_CALL SdXImpressDocument::render( sal_Int32 nRenderer, const uno::Any& r
+                                     // if necessary, the master page interactions will be exported first
+                                     sal_Bool bIsBackgroundObjectsVisible = sal_False;	// SJ: #i39428# IsBackgroundObjectsVisible not available for Draw
+                                     const rtl::OUString sIsBackgroundObjectsVisible( RTL_CONSTASCII_USTRINGPARAM( "IsBackgroundObjectsVisible" ) );
+-                                    if ( mbImpressDoc && ( xPagePropSet->getPropertyValue( sIsBackgroundObjectsVisible ) >>= bIsBackgroundObjectsVisible ) && bIsBackgroundObjectsVisible )
++                                    if ( xPagePropSet->getPropertySetInfo( )->hasPropertyByName( sIsBackgroundObjectsVisible ) )
++                                        xPagePropSet->getPropertyValue( sIsBackgroundObjectsVisible ) >>= bIsBackgroundObjectsVisible;
++                                    if ( mbImpressDoc && bIsBackgroundObjectsVisible )
+                                     {
+                                         uno::Reference< drawing::XMasterPageTarget > xMasterPageTarget( xPage, uno::UNO_QUERY );
+                                         if ( xMasterPageTarget.is() )
+@@ -1986,82 +1988,93 @@ void SAL_CALL SdXImpressDocument::render( sal_Int32 nRenderer, const uno::Any& r
+                                         const rtl::OUString sSpeed ( RTL_CONSTASCII_USTRINGPARAM( "Speed" ) );
+                                         sal_Int32 nTime = 800;
+                                         presentation::AnimationSpeed aAs;
+-                                        aAny = xPagePropSet->getPropertyValue( sSpeed );
+-                                        if ( aAny >>= aAs )
++                                        if ( xPagePropSet->getPropertySetInfo( )->hasPropertyByName( sSpeed ) )
+                                         {
+-                                            switch( aAs )
++                                            aAny = xPagePropSet->getPropertyValue( sSpeed );
++                                            if ( aAny >>= aAs )
+                                             {
+-                                                case presentation::AnimationSpeed_SLOW : nTime = 1500; break;
+-                                                case presentation::AnimationSpeed_FAST : nTime = 300; break;
+-                                                default:
+-                                                case presentation::AnimationSpeed_MEDIUM : nTime = 800;
++                                                switch( aAs )
++                                                {
++                                                    case presentation::AnimationSpeed_SLOW : nTime = 1500; break;
++                                                    case presentation::AnimationSpeed_FAST : nTime = 300; break;
++                                                    default:
++                                                    case presentation::AnimationSpeed_MEDIUM : nTime = 800;
++                                                }
+                                             }
+                                         }
+                                         presentation::FadeEffect eFe;
+-                                        aAny = xPagePropSet->getPropertyValue( sEffect );
+                                         vcl::PDFWriter::PageTransition eType = vcl::PDFWriter::Regular;
+-                                        if ( aAny >>= eFe )
++                                        if ( xPagePropSet->getPropertySetInfo( )->hasPropertyByName( sEffect ) )
+                                         {
+-                                            switch( eFe )
++                                            aAny = xPagePropSet->getPropertyValue( sEffect );
++                                            if ( aAny >>= eFe )
+                                             {
+-                                                case presentation::FadeEffect_HORIZONTAL_LINES :
+-                                                case presentation::FadeEffect_HORIZONTAL_CHECKERBOARD :
+-                                                case presentation::FadeEffect_HORIZONTAL_STRIPES : eType = vcl::PDFWriter::BlindsHorizontal; break;
+-
+-                                                case presentation::FadeEffect_VERTICAL_LINES :
+-                                                case presentation::FadeEffect_VERTICAL_CHECKERBOARD :
+-                                                case presentation::FadeEffect_VERTICAL_STRIPES : eType = vcl::PDFWriter::BlindsVertical; break;
+-
+-                                                case presentation::FadeEffect_UNCOVER_TO_RIGHT :
+-                                                case presentation::FadeEffect_UNCOVER_TO_UPPERRIGHT :
+-                                                case presentation::FadeEffect_ROLL_FROM_LEFT :
+-                                                case presentation::FadeEffect_FADE_FROM_UPPERLEFT :
+-                                                case presentation::FadeEffect_MOVE_FROM_UPPERLEFT :
+-                                                case presentation::FadeEffect_FADE_FROM_LEFT :
+-                                                case presentation::FadeEffect_MOVE_FROM_LEFT : eType = vcl::PDFWriter::WipeLeftToRight; break;
+-
+-                                                case presentation::FadeEffect_UNCOVER_TO_BOTTOM :
+-                                                case presentation::FadeEffect_UNCOVER_TO_LOWERRIGHT :
+-                                                case presentation::FadeEffect_ROLL_FROM_TOP :
+-                                                case presentation::FadeEffect_FADE_FROM_UPPERRIGHT :
+-                                                case presentation::FadeEffect_MOVE_FROM_UPPERRIGHT :
+-                                                case presentation::FadeEffect_FADE_FROM_TOP :
+-                                                case presentation::FadeEffect_MOVE_FROM_TOP : eType = vcl::PDFWriter::WipeTopToBottom; break;
+-
+-                                                case presentation::FadeEffect_UNCOVER_TO_LEFT :
+-                                                case presentation::FadeEffect_UNCOVER_TO_LOWERLEFT :
+-                                                case presentation::FadeEffect_ROLL_FROM_RIGHT :
+-
+-                                                case presentation::FadeEffect_FADE_FROM_LOWERRIGHT :
+-                                                case presentation::FadeEffect_MOVE_FROM_LOWERRIGHT :
+-                                                case presentation::FadeEffect_FADE_FROM_RIGHT :
+-                                                case presentation::FadeEffect_MOVE_FROM_RIGHT : eType = vcl::PDFWriter::WipeRightToLeft; break;
+-
+-                                                case presentation::FadeEffect_UNCOVER_TO_TOP :
+-                                                case presentation::FadeEffect_UNCOVER_TO_UPPERLEFT :
+-                                                case presentation::FadeEffect_ROLL_FROM_BOTTOM :
+-                                                case presentation::FadeEffect_FADE_FROM_LOWERLEFT :
+-                                                case presentation::FadeEffect_MOVE_FROM_LOWERLEFT :
+-                                                case presentation::FadeEffect_FADE_FROM_BOTTOM :
+-                                                case presentation::FadeEffect_MOVE_FROM_BOTTOM : eType = vcl::PDFWriter::WipeBottomToTop; break;
+-
+-                                                case presentation::FadeEffect_OPEN_VERTICAL : eType = vcl::PDFWriter::SplitHorizontalInward; break;
+-                                                case presentation::FadeEffect_CLOSE_HORIZONTAL : eType = vcl::PDFWriter::SplitHorizontalOutward; break;
+-
+-                                                case presentation::FadeEffect_OPEN_HORIZONTAL : eType = vcl::PDFWriter::SplitVerticalInward; break;
+-                                                case presentation::FadeEffect_CLOSE_VERTICAL : eType = vcl::PDFWriter::SplitVerticalOutward; break;
+-
+-                                                case presentation::FadeEffect_FADE_TO_CENTER : eType = vcl::PDFWriter::BoxInward; break;
+-                                                case presentation::FadeEffect_FADE_FROM_CENTER : eType = vcl::PDFWriter::BoxOutward; break;
+-
+-                                                case presentation::FadeEffect_NONE : eType = vcl::PDFWriter::Regular; break;
+-
+-                                                case presentation::FadeEffect_RANDOM :
+-                                                case presentation::FadeEffect_DISSOLVE :
+-                                                default: eType = vcl::PDFWriter::Dissolve; break;
++                                                switch( eFe )
++                                                {
++                                                    case presentation::FadeEffect_HORIZONTAL_LINES :
++                                                    case presentation::FadeEffect_HORIZONTAL_CHECKERBOARD :
++                                                    case presentation::FadeEffect_HORIZONTAL_STRIPES : eType = vcl::PDFWriter::BlindsHorizontal; break;
++
++                                                    case presentation::FadeEffect_VERTICAL_LINES :
++                                                    case presentation::FadeEffect_VERTICAL_CHECKERBOARD :
++                                                    case presentation::FadeEffect_VERTICAL_STRIPES : eType = vcl::PDFWriter::BlindsVertical; break;
++
++                                                    case presentation::FadeEffect_UNCOVER_TO_RIGHT :
++                                                    case presentation::FadeEffect_UNCOVER_TO_UPPERRIGHT :
++                                                    case presentation::FadeEffect_ROLL_FROM_LEFT :
++                                                    case presentation::FadeEffect_FADE_FROM_UPPERLEFT :
++                                                    case presentation::FadeEffect_MOVE_FROM_UPPERLEFT :
++                                                    case presentation::FadeEffect_FADE_FROM_LEFT :
++                                                    case presentation::FadeEffect_MOVE_FROM_LEFT : eType = vcl::PDFWriter::WipeLeftToRight; break;
++
++                                                    case presentation::FadeEffect_UNCOVER_TO_BOTTOM :
++                                                    case presentation::FadeEffect_UNCOVER_TO_LOWERRIGHT :
++                                                    case presentation::FadeEffect_ROLL_FROM_TOP :
++                                                    case presentation::FadeEffect_FADE_FROM_UPPERRIGHT :
++                                                    case presentation::FadeEffect_MOVE_FROM_UPPERRIGHT :
++                                                    case presentation::FadeEffect_FADE_FROM_TOP :
++                                                    case presentation::FadeEffect_MOVE_FROM_TOP : eType = vcl::PDFWriter::WipeTopToBottom; break;
++
++                                                    case presentation::FadeEffect_UNCOVER_TO_LEFT :
++                                                    case presentation::FadeEffect_UNCOVER_TO_LOWERLEFT :
++                                                    case presentation::FadeEffect_ROLL_FROM_RIGHT :
++
++                                                    case presentation::FadeEffect_FADE_FROM_LOWERRIGHT :
++                                                    case presentation::FadeEffect_MOVE_FROM_LOWERRIGHT :
++                                                    case presentation::FadeEffect_FADE_FROM_RIGHT :
++                                                    case presentation::FadeEffect_MOVE_FROM_RIGHT : eType = vcl::PDFWriter::WipeRightToLeft; break;
++
++                                                    case presentation::FadeEffect_UNCOVER_TO_TOP :
++                                                    case presentation::FadeEffect_UNCOVER_TO_UPPERLEFT :
++                                                    case presentation::FadeEffect_ROLL_FROM_BOTTOM :
++                                                    case presentation::FadeEffect_FADE_FROM_LOWERLEFT :
++                                                    case presentation::FadeEffect_MOVE_FROM_LOWERLEFT :
++                                                    case presentation::FadeEffect_FADE_FROM_BOTTOM :
++                                                    case presentation::FadeEffect_MOVE_FROM_BOTTOM : eType = vcl::PDFWriter::WipeBottomToTop; break;
++
++                                                    case presentation::FadeEffect_OPEN_VERTICAL : eType = vcl::PDFWriter::SplitHorizontalInward; break;
++                                                    case presentation::FadeEffect_CLOSE_HORIZONTAL : eType = vcl::PDFWriter::SplitHorizontalOutward; break;
++
++                                                    case presentation::FadeEffect_OPEN_HORIZONTAL : eType = vcl::PDFWriter::SplitVerticalInward; break;
++                                                    case presentation::FadeEffect_CLOSE_VERTICAL : eType = vcl::PDFWriter::SplitVerticalOutward; break;
++
++                                                    case presentation::FadeEffect_FADE_TO_CENTER : eType = vcl::PDFWriter::BoxInward; break;
++                                                    case presentation::FadeEffect_FADE_FROM_CENTER : eType = vcl::PDFWriter::BoxOutward; break;
++
++                                                    case presentation::FadeEffect_NONE : eType = vcl::PDFWriter::Regular; break;
++
++                                                    case presentation::FadeEffect_RANDOM :
++                                                    case presentation::FadeEffect_DISSOLVE :
++                                                    default: eType = vcl::PDFWriter::Dissolve; break;
++                                                }
+                                             }
+                                         }
+-                                        pPDFExtOutDevData->SetPageTransition( eType, nTime, -1 );
++                                        
++                                        if ( xPagePropSet->getPropertySetInfo( )->hasPropertyByName( sEffect ) ||
++                                             xPagePropSet->getPropertySetInfo( )->hasPropertyByName( sSpeed ) )
++                                        {
++                                             pPDFExtOutDevData->SetPageTransition( eType, nTime, -1 );
++                                        }
+                                     }
+                                 }
+                             }
+@@ -2108,7 +2121,7 @@ void SAL_CALL SdXImpressDocument::render( sal_Int32 nRenderer, const uno::Any& r
+                             }
+                             //<--- i56629, i40318
+                         }
+-                        catch( uno::Exception& )
++                        catch( uno::Exception& e )
+                         {
+                         }
+ 
diff --git a/patches/dev300/skip-empty-links-in-pdf.diff b/patches/dev300/skip-empty-links-in-pdf.diff
deleted file mode 100644
index 653d06a..0000000
--- a/patches/dev300/skip-empty-links-in-pdf.diff
+++ /dev/null
@@ -1,20 +0,0 @@
----
- vcl/source/gdi/pdfwriter_impl.cxx |    2 ++
- 1 files changed, 2 insertions(+), 0 deletions(-)
-
-diff --git vcl/source/gdi/pdfwriter_impl.cxx vcl/source/gdi/pdfwriter_impl.cxx
-index 0296eb6..f6370ef 100644
---- vcl/source/gdi/pdfwriter_impl.cxx
-+++ vcl/source/gdi/pdfwriter_impl.cxx
-@@ -4490,6 +4490,8 @@ bool PDFWriterImpl::emitLinkAnnotations()
-     for( int i = 0; i < nAnnots; i++ )
-     {
-         const PDFLink& rLink			= m_aLinks[i];
-+        if( rLink.m_aURL.getLength() == 0 )
-+            continue;
-         if( ! updateObject( rLink.m_nObject ) )
-             continue;
- 
--- 
-1.7.0.1
-


More information about the ooo-build-commit mailing list