diff options
author | Caolán McNamara <caolanm@redhat.com> | 2017-06-02 11:57:30 +0100 |
---|---|---|
committer | Caolán McNamara <caolanm@redhat.com> | 2017-06-02 13:24:23 +0200 |
commit | 57ccbbc1bae230b9f03f808d8b5d363f22fa1b25 (patch) | |
tree | 6778e16182851daad414a3a08bb2d1e6f7e23679 /sd | |
parent | 30a1c429c24b8de9a51ed066571d3c315f812844 (diff) |
Resolves: tdf#108187 fatal exception on testing if ooxml is a odf
Change-Id: Ie88a66aa8d73bb3c4045629604756470ce51b92b
Reviewed-on: https://gerrit.libreoffice.org/38353
Reviewed-by: Caolán McNamara <caolanm@redhat.com>
Tested-by: Caolán McNamara <caolanm@redhat.com>
Diffstat (limited to 'sd')
-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 a0dec36b6c8c..d106886d8f31 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(); } |