diff options
author | Tor Lillqvist <tml@collabora.com> | 2018-11-29 15:04:06 +0200 |
---|---|---|
committer | Tor Lillqvist <tml@collabora.com> | 2018-11-29 15:54:29 +0200 |
commit | e3ce6ea30e2cdd81857597f50ef5e0a6acd198ee (patch) | |
tree | 1cf267729e1f1347d3264e1241b73d2a9e536d11 /sw/source/uibase/uiview | |
parent | d414ac8c51f9ff0c5b69b50b0a566757ddac718c (diff) |
Make use of SwView::InsertGraphicDlg() in the mobile app case work
Despite the name of the function, when inserting an image that we
already know the file name for, we don't actually need to invoke any
interactive file dialog (file picker). We don't build any file picker
for non-desktop platforms anyway, so make sure this code does not
crash in trying to access a such.
Change-Id: I91cc8c4d9dac26e66f4f852c3d84f5c778c90644
Diffstat (limited to 'sw/source/uibase/uiview')
-rw-r--r-- | sw/source/uibase/uiview/view2.cxx | 25 |
1 files changed, 20 insertions, 5 deletions
diff --git a/sw/source/uibase/uiview/view2.cxx b/sw/source/uibase/uiview/view2.cxx index f4222bf07eb4..dfd9cceeeddc 100644 --- a/sw/source/uibase/uiview/view2.cxx +++ b/sw/source/uibase/uiview/view2.cxx @@ -286,13 +286,21 @@ bool SwView::InsertGraphicDlg( SfxRequest& rReq ) { bool bReturn = false; SwDocShell* pDocShell = GetDocShell(); - const sal_uInt16 nHtmlMode = ::GetHtmlMode(pDocShell); + SwDoc* pDoc = pDocShell->GetDoc(); + + OUString sGraphicFormat = SwResId(STR_POOLFRM_GRAPHIC); + +// No file pickers in a non-desktop (mobile app) build. + +#if HAVE_FEATURE_DESKTOP // when in HTML mode insert only as a link + const sal_uInt16 nHtmlMode = ::GetHtmlMode(pDocShell); std::unique_ptr<FileDialogHelper> pFileDlg(new FileDialogHelper( ui::dialogs::TemplateDescription::FILEOPEN_LINK_PREVIEW_IMAGE_TEMPLATE, FileDialogFlags::Graphic, GetFrameWeld())); pFileDlg->SetTitle(SwResId(STR_INSERT_GRAPHIC )); pFileDlg->SetContext( FileDialogHelper::SW_INSERT_GRAPHIC ); + uno::Reference < XFilePicker3 > xFP = pFileDlg->GetFilePicker(); uno::Reference < XFilePickerControlAccess > xCtrlAcc(xFP, UNO_QUERY); if(nHtmlMode & HTMLMODE_ON) @@ -302,7 +310,6 @@ bool SwView::InsertGraphicDlg( SfxRequest& rReq ) } std::vector<OUString> aFormats; - SwDoc* pDoc = pDocShell->GetDoc(); const size_t nArrLen = pDoc->GetFrameFormats()->size(); for( size_t i = 0; i < nArrLen; ++i ) { @@ -327,7 +334,6 @@ bool SwView::InsertGraphicDlg( SfxRequest& rReq ) Sequence<OUString> aListBoxEntries(aFormats.size()); OUString* pEntries = aListBoxEntries.getArray(); sal_Int16 nSelect = 0; - OUString sGraphicFormat = SwResId(STR_POOLFRM_GRAPHIC); for( size_t i = 0; i < aFormats.size(); ++i ) { pEntries[i] = aFormats[i]; @@ -349,10 +355,15 @@ bool SwView::InsertGraphicDlg( SfxRequest& rReq ) { OSL_FAIL("control access failed"); } +#endif const SfxStringItem* pName = rReq.GetArg<SfxStringItem>(SID_INSERT_GRAPHIC); bool bShowError = !pName; - if( pName || ERRCODE_NONE == pFileDlg->Execute() ) + if( pName +#if HAVE_FEATURE_DESKTOP + || ERRCODE_NONE == pFileDlg->Execute() +#endif + ) { OUString aFileName, aFilterName; @@ -363,6 +374,7 @@ bool SwView::InsertGraphicDlg( SfxRequest& rReq ) if ( pFilter ) aFilterName = pFilter->GetValue(); } +#if HAVE_FEATURE_DESKTOP else { aFileName = pFileDlg->GetPath(); @@ -394,11 +406,13 @@ bool SwView::InsertGraphicDlg( SfxRequest& rReq ) } rReq.AppendItem( SfxBoolItem( FN_PARAM_1, bAsLink ) ); } - const SfxBoolItem* pAsLink = rReq.GetArg<SfxBoolItem>(FN_PARAM_1); const SfxStringItem* pStyle = rReq.GetArg<SfxStringItem>(FN_PARAM_2); +#endif bool bAsLink = false; + +#if HAVE_FEATURE_DESKTOP if( nHtmlMode & HTMLMODE_ON ) bAsLink = true; else @@ -434,6 +448,7 @@ bool SwView::InsertGraphicDlg( SfxRequest& rReq ) bAsLink=false; // don't store as link } } +#endif SwWrtShell& rSh = GetWrtShell(); rSh.LockPaint(); |