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

Andrea Pescetti pescetti at apache.org
Mon Feb 10 16:10:15 PST 2014


 extensions.lst                   |    2 -
 sw/source/core/graphic/ndgrf.cxx |   40 +++++++++++++++++++++++++++++++++++++--
 2 files changed, 39 insertions(+), 3 deletions(-)

New commits:
commit 58f18227a16379b5a4b3530b6ab2b683a63e6906
Author: Andrea Pescetti <pescetti at apache.org>
Date:   Mon Feb 10 22:56:42 2014 +0000

    #i124127# Update English dictionary to the latest (2014.02.10) version.

diff --git a/extensions.lst b/extensions.lst
index 1f53f19..e016099 100644
--- a/extensions.lst
+++ b/extensions.lst
@@ -39,7 +39,7 @@
 
 # English dictionary
 [ language=en.* || language=de || language=it ]
-    043e3c42b1b2a20517f8069afb9cba24 http://sourceforge.net/projects/aoo-extensions/files/17102/2/dict-en-marcoagpinto-20140107.oxt/download "dict-en.oxt"
+    21000528c50707539220e05df554172f http://sourceforge.net/projects/aoo-extensions/files/17102/3/dict-en.oxt/download "dict-en.oxt"
 
 # English (USA, en_US) dictionary
 [ language==nl || language==ru ]
commit a9325263271883fb147351d287c817ea7984fbe9
Author: Armin Le Grand <alg at apache.org>
Date:   Mon Feb 10 22:24:18 2014 +0000

    i15508 keep trhe original file and format AFAP when breaking links to graphic contents in Writer

diff --git a/sw/source/core/graphic/ndgrf.cxx b/sw/source/core/graphic/ndgrf.cxx
index b96e13f..5fa944c 100644
--- a/sw/source/core/graphic/ndgrf.cxx
+++ b/sw/source/core/graphic/ndgrf.cxx
@@ -741,8 +741,11 @@ void SwGrfNode::ReleaseLink()
 {
     if( refLink.Is() )
     {
-        // erst die Grafik reinswappen!
-//      if( aGraphic.IsSwapOut() || !refLink->IsSynchron() )
+        // #15508# remember some stuff from the linked graphic
+        const String aFileName(maGrfObj.GetLink());
+        const Graphic aLocalGraphic(maGrfObj.GetGraphic());
+        const bool bHasOriginalData(aLocalGraphic.IsLink());
+
         {
             bInSwapIn = sal_True;
             SwBaseLink* pLink = (SwBaseLink*)(::sfx2::SvBaseLink*) refLink;
@@ -750,9 +753,42 @@ void SwGrfNode::ReleaseLink()
             pLink->SwapIn( sal_True, sal_True );
             bInSwapIn = sal_False;
         }
+
         getIDocumentLinksAdministration()->GetLinkManager().Remove( refLink );
         refLink.Clear();
         maGrfObj.SetLink();
+
+        // #15508# added extra processing after getting rid of the link. Use whatever is
+        // known from the formally linked graphic to get to a state as close to a directly
+        // unlinked insterted graphic as possible. Goal is to have a valid GfxLink at the
+        // ImplGraphic (see there) that holds temporary data to the original data and type
+        // information about the original data. Only when this is given will
+        // SvXMLGraphicHelper::ImplInsertGraphicURL which is used at export use that type
+        // and use the original graphic at export for the ODF, without evtl. recoding
+        // of trhe bitmap graphic data to something without loss (e.g. PNG) but bigger
+        if(bHasOriginalData)
+        {
+            // #15508# if we have the original data at the Graphic, let it survive
+            // by using that Graphic again, this time at a GraphicObject without link.
+            // This happens e.g. when inserting a linked graphic and breaking the link
+            maGrfObj.SetGraphic(aLocalGraphic);
+        }
+        else if(aFileName.Len())
+        {
+            // #15508# we have no original data, but a file name. This happens e.g.
+            // when inserting a linked graphic and save, reload document. Try to access
+            // that data from the original file; if this works, use it. Else use the
+            // data we have (but without knowing the original format)
+            int nRes = GRFILTER_OK;
+            GraphicFilter* pFlt = GraphicFilter::GetGraphicFilter();
+            Graphic aNew;
+            nRes = GraphicFilter::LoadGraphic( aFileName, String(), aNew, pFlt);
+
+            if(GRFILTER_OK == nRes)
+            {
+                maGrfObj.SetGraphic(aNew);
+            }
+        }
     }
 }
 


More information about the Libreoffice-commits mailing list