[Libreoffice-commits] .: Branch 'libreoffice-3-4' - 9 commits -

Petr Mladek pmladek at kemper.freedesktop.org
Wed Apr 6 05:13:30 PDT 2011


 0 files changed

New commits:
commit 474e9373e4627b41336c8a224a7dd119603babbb
Merge: ee22055... b59804d...
Author: Petr Mladek <pmladek at suse.cz>
Date:   Tue Apr 5 19:36:50 2011 +0200

    Merge remote-tracking branch 'origin/libreoffice-3-3' into libreoffice-3-4
    
    Conflicts:
    	sw/source/core/docnode/nodes.cxx
    	sw/source/filter/ww8/rtfexport.hxx

commit b59804d94e107c5227532aa3511d4fad1dd15436
Author: Caolán McNamara <caolanm at redhat.com>
Date:   Fri Mar 18 17:47:27 2011 +0100

    Related: fdo#32553/fdo#31792 nsure correct odt mimetype and pdf export filter
    
    Signed-off-by: Petr Mladek <pmladek at suse.cz>

diff --git a/sw/source/ui/dbui/mmoutputpage.cxx b/sw/source/ui/dbui/mmoutputpage.cxx
index f6d0409..2b6c5fe 100644
--- a/sw/source/ui/dbui/mmoutputpage.cxx
+++ b/sw/source/ui/dbui/mmoutputpage.cxx
@@ -1043,7 +1043,6 @@ IMPL_LINK(SwMailMergeOutputPage, SendDocumentsHdl_Impl, PushButton*, pButton)
             nEnd = rConfigItem.GetMergedDocumentCount();
     }
     bool bAsBody = false;
-    bool bIsPDF = false;
     rtl_TextEncoding eEncoding = ::gsl_getSystemTextEncoding();
     SfxFilterContainer* pFilterContainer = SwDocShell::Factory().GetFilterContainer();
     const SfxFilter *pSfxFlt = 0;
@@ -1051,8 +1050,22 @@ IMPL_LINK(SwMailMergeOutputPage, SendDocumentsHdl_Impl, PushButton*, pButton)
     String sExtension = lcl_GetExtensionForDocType(nDocType);
     switch( nDocType )
     {
-        case MM_DOCTYPE_OOO : break;
-        case MM_DOCTYPE_PDF : bIsPDF = true; break;
+        case MM_DOCTYPE_OOO:
+        {
+            //Make sure we don't pick e.g. the flat xml filter
+            //for this format
+            pSfxFlt = SwIoSystem::GetFilterOfFormat(
+                String::CreateFromAscii( FILTER_XML ),
+                SwDocShell::Factory().GetFilterContainer() );
+        }
+        break;
+        case MM_DOCTYPE_PDF:
+        {
+            pSfxFlt = pFilterContainer->GetFilter4FilterName(
+                ::rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("writer_pdf_Export")),
+                SFX_FILTER_EXPORT);
+        }
+        break;
         case MM_DOCTYPE_WORD:
         {
             //the method SwIOSystemGetFilterOfFormat( ) returns the template filter
@@ -1195,14 +1208,6 @@ IMPL_LINK(SwMailMergeOutputPage, SendDocumentsHdl_Impl, PushButton*, pButton)
                     INetURLObject(), utl::TempFile::CreateTempName(0),
                     URIHelper::GetMaybeFileHdl()) );
 
-/*        if(bIsPDF)
-        {
-            SfxDispatcher* pSfxDispatcher = pTempView->GetViewFrame()->GetDispatcher();
-            pSfxDispatcher->Execute(
-                            SID_DIRECTEXPORTDOCASPDF,
-                                  SFX_CALLMODE_SYNCHRON, &aName, &aFilterName, 0L );
-        }
-        else*/
         {
             uno::Sequence< beans::PropertyValue > aFilterValues(MM_DOCTYPE_TEXT == nDocType ? 2 : 1);
             beans::PropertyValue* pFilterValues = aFilterValues.getArray();
commit d1234b1bcd542b4ce523b6be76e7491afdce4de8
Author: Caolán McNamara <caolanm at redhat.com>
Date:   Fri Mar 18 12:29:41 2011 +0000

    Resolves: fdo#32553 freeze/hang on mailmerge to attached pdf
    
    Signed-off-by: Petr Mladek <pmladek at suse.cz>

diff --git a/sw/source/core/docnode/nodes.cxx b/sw/source/core/docnode/nodes.cxx
index e47a094..b44c285 100644
--- a/sw/source/core/docnode/nodes.cxx
+++ b/sw/source/core/docnode/nodes.cxx
@@ -2108,9 +2108,13 @@ void SwNodes::_CopyNodes( const SwNodeRange& rRange,
                     pDoc->GetNodes().GetEndOfInserts().StartOfSectionIndex()
                     < aInsPos.GetIndex() )
             {
-                nNodeCnt -=
+                ULONG nDistance =
                     ( pAktNode->EndOfSectionIndex() -
                         aRg.aStart.GetIndex() );
+                if (nDistance < nNodeCnt)
+                    nNodeCnt -= nDistance;
+                else
+                    nNodeCnt = 1;
 
                 // dann alle Nodes der Tabelle in die akt. Zelle kopieren
                 // fuer den TabellenNode einen DummyNode einfuegen?
@@ -2145,7 +2149,11 @@ void SwNodes::_CopyNodes( const SwNodeRange& rRange,
                 SwNodeIndex nStt( aInsPos, -1 );
                 SwTableNode* pTblNd = ((SwTableNode*)pAktNode)->
                                         MakeCopy( pDoc, aInsPos );
-                nNodeCnt -= aInsPos.GetIndex() - nStt.GetIndex() -2;
+                ULONG nDistance = aInsPos.GetIndex() - nStt.GetIndex() - 2;
+                if (nDistance < nNodeCnt)
+                    nNodeCnt -= nDistance;
+                else
+                    nNodeCnt = 1;
 
                 aRg.aStart = pAktNode->EndOfSectionIndex();
 
@@ -2169,7 +2177,11 @@ void SwNodes::_CopyNodes( const SwNodeRange& rRange,
                 SwSectionNode* pSectNd = ((SwSectionNode*)pAktNode)->
                                     MakeCopy( pDoc, aInsPos );
 
-                nNodeCnt -= aInsPos.GetIndex() - nStt.GetIndex() -2;
+                ULONG nDistance = aInsPos.GetIndex() - nStt.GetIndex() - 2;
+                if (nDistance < nNodeCnt)
+                    nNodeCnt -= nDistance;
+                else
+                    nNodeCnt = 1;
                 aRg.aStart = pAktNode->EndOfSectionIndex();
 
                 if( bNewFrms && pSectNd &&
commit 5974be757044982b8f510c5fc642e8e03ae62c74
Author: Cédric Bosdonnat <cedricbosdo at openoffice.org>
Date:   Tue Mar 8 16:32:57 2011 +0100

    n#663622: Fix the positions of imported fields to avoid crashes
    
    Signed-off-by: Petr Mladek <pmladek at suse.cz>

diff --git a/sw/source/core/crsr/bookmrk.cxx b/sw/source/core/crsr/bookmrk.cxx
index 1f9f14a..3989ac5 100644
--- a/sw/source/core/crsr/bookmrk.cxx
+++ b/sw/source/core/crsr/bookmrk.cxx
@@ -83,7 +83,7 @@ namespace
         SwTxtNode const * const pStartTxtNode = io_pDoc->GetNodes()[rStart.nNode]->GetTxtNode();
         SwTxtNode const * const pEndTxtNode = io_pDoc->GetNodes()[rEnd.nNode]->GetTxtNode();
         const sal_Unicode ch_start=pStartTxtNode->GetTxt().GetChar(rStart.nContent.GetIndex());
-        xub_StrLen nEndPos = rEnd.nContent.GetIndex() == 0 ? 0 : rEnd.nContent.GetIndex() - 1;
+        xub_StrLen nEndPos = rEnd == rStart ? rEnd.nContent.GetIndex() : rEnd.nContent.GetIndex() - 1;
         const sal_Unicode ch_end=pEndTxtNode->GetTxt().GetChar( nEndPos );
         SwPaM aStartPaM(rStart);
         SwPaM aEndPaM(rEnd);
diff --git a/sw/source/core/inc/bookmrk.hxx b/sw/source/core/inc/bookmrk.hxx
index 88683ca..8878dbe 100644
--- a/sw/source/core/inc/bookmrk.hxx
+++ b/sw/source/core/inc/bookmrk.hxx
@@ -77,7 +77,7 @@ namespace sw { namespace mark
             virtual SwPosition& GetMarkEnd() const
             {
                 if( !IsExpanded() ) return GetMarkPos();
-                if ( GetMarkPos( ) > GetOtherMarkPos( ) )
+                if ( GetMarkPos( ) >= GetOtherMarkPos( ) )
                     return GetMarkPos( );
                 else
                     return GetOtherMarkPos( );
commit 5b8ca75bc3ef7fc23373cb7ae383ef8c75f69d1a
Author: Petr Mladek <pmladek at suse.cz>
Date:   Tue Mar 8 15:31:14 2011 +0100

    Version 3.3.2.1, tag libreoffice-3.3.2.1 (3.3.2-rc1)
commit 39cf47bb37d17c1e37c2155385afa704c13684f9
Author: Noel Power <noel.power at novell.com>
Date:   Wed Mar 2 12:24:11 2011 +0000

    minor tweak to existing fix for ( bnc#660816 & fdo#34908
    
    it seems the orig commit ( af4d6062b7e676ed56dc84927fb99b79aa03a7b5 ) when tweaked for libreoffice3.3 had a little mistake introduced ( which then go ported into master )
    
    Signed-off-by: Cédric Bosdonnat <cedric.bosdonnat.ooo at free.fr>

diff --git a/sw/source/core/crsr/bookmrk.cxx b/sw/source/core/crsr/bookmrk.cxx
index 0641e96..1f9f14a 100644
--- a/sw/source/core/crsr/bookmrk.cxx
+++ b/sw/source/core/crsr/bookmrk.cxx
@@ -335,10 +335,9 @@ namespace sw { namespace mark
     }
     void CheckboxFieldmark::SetChecked(bool checked)
     {
-        (*GetParameters())[::rtl::OUString::createFromAscii(ODF_FORMCHECKBOX_RESULT)] = makeAny(checked);
-        bool bOld( IsChecked() );
-        if ( bOld != checked )
+        if ( IsChecked() != checked )
         {
+            (*GetParameters())[::rtl::OUString(RTL_CONSTASCII_USTRINGPARAM(ODF_FORMCHECKBOX_RESULT))] = makeAny(checked);
             // mark document as modified
             SwDoc *const pDoc( GetMarkPos().GetDoc() );
             if ( pDoc )
commit 42e70ee046504caf6e628f03bc79b83a706a8cfb
Author: Noel Power <noel.power at novell.com>
Date:   Fri Feb 4 09:56:54 2011 +0000

    fix for bnc#659631
    
    Signed-off-by: Caolán McNamara <caolanm at redhat.com>

diff --git a/sw/source/filter/ww8/ww8par.cxx b/sw/source/filter/ww8/ww8par.cxx
index 76c6ae1..033df99 100644
--- a/sw/source/filter/ww8/ww8par.cxx
+++ b/sw/source/filter/ww8/ww8par.cxx
@@ -3699,6 +3699,34 @@ void wwSectionManager::InsertSegments()
             SwFmtPageDesc aDesc(SetSwFmtPageDesc(aIter, aStart, bIgnoreCols));
             if (!aDesc.GetPageDesc())
                 continue;
+
+            // special case handling for odd/even section break
+            // a) as before create a new page style for the section break
+            // b) set Layout of generated page style to right/left ( according
+            //    to section break odd/even )
+            // c) create a new style to follow the break page style
+            if ( aIter->maSep.bkc == 3 || aIter->maSep.bkc == 4 )
+            {
+                // SetSwFmtPageDesc calls some methods that could
+                // modify aIter (e.g. wwSection ).
+                // Since  we call SetSwFmtPageDesc below to generate the
+                // 'Following' style of the Break style, it is safer
+                // to take  a copy of the contents of aIter.
+                wwSection aTmpSection = *aIter;
+                // create a new following page style
+                SwFmtPageDesc aFollow(SetSwFmtPageDesc(aIter, aStart, bIgnoreCols));
+                // restore any contents of aIter trashed by SetSwFmtPageDesc
+                *aIter = aTmpSection;
+
+                // Handle the section break
+                UseOnPage eUseOnPage = nsUseOnPage::PD_LEFT;
+                if ( aIter->maSep.bkc == 4 ) // Odd ( right ) Section break
+                    eUseOnPage = nsUseOnPage::PD_RIGHT;
+
+                aDesc.GetPageDesc()->WriteUseOn( eUseOnPage );
+                aDesc.GetPageDesc()->SetFollow( aFollow.GetPageDesc() );
+            }
+
             GiveNodePageDesc(aIter->maStart, aDesc, mrReader.rDoc);
         }
 
commit 45326ac3017229f7d04f66515502a0da5f9301c5
Author: Miklos Vajna <vmiklos at frugalware.org>
Date:   Wed Jan 26 15:03:02 2011 +0100

    RtfExport::HackIsWW8OrHigher(): return true (closes fdo#33478)
    
    This makes the exporter use unicode unconditionally when exporting
    accents. This is needed because in case we don't do unicode, we need
    special fonts (see SwWW8AttrIter::OutAttr()), while in RTF we need to
    output the font table before exporting the docuent.
    
    Agreed-by: Caolán McNamara <caolanm at redhat.com>
    Signed-off-by: Caolán McNamara <caolanm at redhat.com>

diff --git a/sw/source/filter/ww8/rtfexport.hxx b/sw/source/filter/ww8/rtfexport.hxx
index 50bd72b..f2667d0 100644
--- a/sw/source/filter/ww8/rtfexport.hxx
+++ b/sw/source/filter/ww8/rtfexport.hxx
@@ -83,7 +83,7 @@ public:
     virtual RtfSdrExport& SdrExporter() const;
 
     /// Hack, unfortunately necessary at some places for now.
-    virtual bool HackIsWW8OrHigher() const { return false; }
+    virtual bool HackIsWW8OrHigher() const { return true; }
 
     /// Guess the script (asian/western).
     virtual bool CollapseScriptsforWordOk( USHORT nScript, USHORT nWhich );
commit 60c297cc61df9ef025312f75ba214b4a8499e959
Author: Luke Dixon <6b8b4567 at gmail.com>
Date:   Tue Feb 8 20:15:21 2011 +0000

    Fix for bugs 32759 and 32755 on freedesktop bugzilla
    
    Signed-off-by: Michael Meeks <michael.meeks at novell.com>

diff --git a/starmath/source/visitors.cxx b/starmath/source/visitors.cxx
index dc5dd38..7b7dafe 100644
--- a/starmath/source/visitors.cxx
+++ b/starmath/source/visitors.cxx
@@ -2131,7 +2131,7 @@ void SmNodeToTextVisitor::Visit( SmTableNode* pNode )
             LineToText( it.Current( ) );
             if( it.Next( ) ) {
                 Separate( );
-                Append( "## " );
+                Append( "# " );
             }else
                 break;
         }
@@ -2447,7 +2447,6 @@ void SmNodeToTextVisitor::Visit( SmTextNode* pNode )
 
 void SmNodeToTextVisitor::Visit( SmSpecialNode* pNode )
 {
-    Append( "%" );
     Append( pNode->GetToken( ).aText );
 }
 


More information about the Libreoffice-commits mailing list