sd/source/ui/dlg/tpaction.cxx |   37 +++++++++++++++++++++++--------------
 1 file changed, 23 insertions(+), 14 deletions(-)

New commits:
commit 5e0e1facbdf1c4a2a3db253aa39c6253506a2f1b
Author: Caolán McNamara <caol...@redhat.com>
Date:   Fri Jun 2 11:57:30 2017 +0100

    Resolves: tdf#108187 fatal exception on testing if ooxml is a odf
    
    Change-Id: Ie88a66aa8d73bb3c4045629604756470ce51b92b
    Reviewed-on: https://gerrit.libreoffice.org/38354
    Tested-by: Jenkins <c...@libreoffice.org>
    Reviewed-by: Christian Lohmaier <lohmaier+libreoff...@googlemail.com>

diff --git a/sd/source/ui/dlg/tpaction.cxx b/sd/source/ui/dlg/tpaction.cxx
index d1a0b7472dd8..3ab1e5ad9a5e 100644
--- a/sd/source/ui/dlg/tpaction.cxx
+++ b/sd/source/ui/dlg/tpaction.cxx
@@ -662,30 +662,39 @@ IMPL_LINK_NOARG(SdTPAction, CheckFileHdl, Control&, void)
         {
             WaitObject aWait( GetParentDialog() );
 
+            bool bHideTreeDocument = true;
+
             // is it a draw file?
             // open with READ, otherwise the Storages might write into the 
file!
             uno::Reference < embed::XStorage > xStorage = aMedium.GetStorage();
             DBG_ASSERT( xStorage.is(), "No storage!" );
 
             uno::Reference < container::XNameAccess > xAccess( xStorage, 
uno::UNO_QUERY );
-            if( xAccess.is() &&
-                ( xAccess->hasByName( pStarDrawXMLContent ) ||
-                xAccess->hasByName( pStarDrawOldXMLContent ) ) )
+            if (xAccess.is())
             {
-                SdDrawDocument* pBookmarkDoc = mpDoc->OpenBookmarkDoc( aFile );
-                if( pBookmarkDoc )
+                try
+                {
+                    if (xAccess->hasByName(pStarDrawXMLContent) ||
+                        xAccess->hasByName(pStarDrawOldXMLContent))
+                    {
+                        if (SdDrawDocument* pBookmarkDoc = 
mpDoc->OpenBookmarkDoc(aFile))
+                        {
+                            aLastFile = aFile;
+
+                            m_pLbTreeDocument->Clear();
+                            m_pLbTreeDocument->Fill(pBookmarkDoc, true, aFile);
+                            mpDoc->CloseBookmarkDoc();
+                            m_pLbTreeDocument->Show();
+                            bHideTreeDocument = false;
+                        }
+                    }
+                }
+                catch (...)
                 {
-                    aLastFile = aFile;
-
-                    m_pLbTreeDocument->Clear();
-                    m_pLbTreeDocument->Fill( pBookmarkDoc, true, aFile );
-                    mpDoc->CloseBookmarkDoc();
-                    m_pLbTreeDocument->Show();
                 }
-                else
-                    m_pLbTreeDocument->Hide();
             }
-            else
+
+            if (bHideTreeDocument)
                 m_pLbTreeDocument->Hide();
 
         }
_______________________________________________
Libreoffice-commits mailing list
libreoffice-comm...@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/libreoffice-commits

Reply via email to