[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