diff options
author | Caolán McNamara <caolanm@redhat.com> | 2017-06-02 11:57:30 +0100 |
---|---|---|
committer | Christian Lohmaier <lohmaier+LibreOffice@googlemail.com> | 2017-06-14 10:17:53 +0200 |
commit | 5e0e1facbdf1c4a2a3db253aa39c6253506a2f1b (patch) | |
tree | 07da65b668444a7f951b188147b2151187ba7115 | |
parent | 7cf6a646f06845c705a50ea7c5743b3792604be9 (diff) |
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 <ci@libreoffice.org>
Reviewed-by: Christian Lohmaier <lohmaier+LibreOffice@googlemail.com>
-rw-r--r-- | sd/source/ui/dlg/tpaction.cxx | 37 |
1 files changed, 23 insertions, 14 deletions
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(); } |