summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorCaolán McNamara <caolanm@redhat.com>2017-06-02 11:57:30 +0100
committerChristian Lohmaier <lohmaier+LibreOffice@googlemail.com>2017-06-14 10:17:53 +0200
commit5e0e1facbdf1c4a2a3db253aa39c6253506a2f1b (patch)
tree07da65b668444a7f951b188147b2151187ba7115
parent7cf6a646f06845c705a50ea7c5743b3792604be9 (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.cxx37
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();
}