summaryrefslogtreecommitdiff
path: root/sw
diff options
context:
space:
mode:
authorTor Lillqvist <tml@collabora.com>2018-11-29 15:04:06 +0200
committerTor Lillqvist <tml@collabora.com>2019-09-19 18:49:11 +0200
commitbdcadcd8cd0fcae3e062267033139fba050cde50 (patch)
treedd55f2f036fcf7b4fbc5f5228a4132ea2c16c085 /sw
parent648d064cd4c112e78438e31cd0cfc17ec0edd073 (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 Reviewed-on: https://gerrit.libreoffice.org/79137 Reviewed-by: Tor Lillqvist <tml@collabora.com> Tested-by: Tor Lillqvist <tml@collabora.com>
Diffstat (limited to 'sw')
-rw-r--r--sw/source/uibase/uiview/view2.cxx25
1 files changed, 20 insertions, 5 deletions
diff --git a/sw/source/uibase/uiview/view2.cxx b/sw/source/uibase/uiview/view2.cxx
index f3eb5fd62a4a..0985ab6b207b 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();