summaryrefslogtreecommitdiff
path: root/sfx2
diff options
context:
space:
mode:
authorMike Kaganski <mike.kaganski@collabora.com>2016-11-06 01:19:01 +0300
committerCaolán McNamara <caolanm@redhat.com>2016-11-14 08:56:42 +0000
commit450762b224d62ded0c55144fee0796085dd4def3 (patch)
tree29ff18f83485fe8d0c3ad3f70f70f02b6c071a01 /sfx2
parent6b35488c723e2f2266f7e377ad53a82af7b6fede (diff)
tdf#68118: Pass current document frame to SvxScriptSelectorDialog
... through MacroChooser Without this, current document's macros library is unavailable in "Assign" dialog Change-Id: I83baa3b98858260eab61e8f4fefde3f9979c6d83 Reviewed-on: https://gerrit.libreoffice.org/30600 Tested-by: Jenkins <ci@libreoffice.org> Reviewed-by: Caolán McNamara <caolanm@redhat.com> Tested-by: Caolán McNamara <caolanm@redhat.com>
Diffstat (limited to 'sfx2')
-rw-r--r--sfx2/source/appl/appserv.cxx16
-rw-r--r--sfx2/source/control/request.cxx12
2 files changed, 23 insertions, 5 deletions
diff --git a/sfx2/source/appl/appserv.cxx b/sfx2/source/appl/appserv.cxx
index 7345027ab9ec..e804007ce55c 100644
--- a/sfx2/source/appl/appserv.cxx
+++ b/sfx2/source/appl/appserv.cxx
@@ -1190,17 +1190,17 @@ void SfxApplication::MiscState_Impl(SfxItemSet &rSet)
#ifndef DISABLE_DYNLOADING
-typedef rtl_uString* (SAL_CALL *basicide_choose_macro)(void*, sal_Bool, rtl_uString*);
+typedef rtl_uString* (SAL_CALL *basicide_choose_macro)(void*, void*, sal_Bool, rtl_uString*);
extern "C" { static void SAL_CALL thisModule() {} }
#else
-extern "C" rtl_uString* basicide_choose_macro(void*, sal_Bool, rtl_uString*);
+extern "C" rtl_uString* basicide_choose_macro(void*, void*, sal_Bool, rtl_uString*);
#endif
-OUString ChooseMacro( const Reference< XModel >& rxLimitToDocument, bool bChooseOnly )
+OUString ChooseMacro( const Reference< XModel >& rxLimitToDocument, const Reference< XFrame >& xDocFrame, bool bChooseOnly )
{
#ifndef DISABLE_DYNLOADING
osl::Module aMod;
@@ -1220,7 +1220,7 @@ OUString ChooseMacro( const Reference< XModel >& rxLimitToDocument, bool bChoose
// call basicide_choose_macro in basctl
OUString rMacroDesc;
- rtl_uString* pScriptURL = pSymbol( rxLimitToDocument.get(), bChooseOnly, rMacroDesc.pData );
+ rtl_uString* pScriptURL = pSymbol( rxLimitToDocument.get(), xDocFrame.get(), bChooseOnly, rMacroDesc.pData );
OUString aScriptURL( pScriptURL );
rtl_uString_release( pScriptURL );
return aScriptURL;
@@ -1469,7 +1469,13 @@ void SfxApplication::OfaExec_Impl( SfxRequest& rReq )
}
}
- rReq.SetReturnValue( SfxStringItem( rReq.GetSlot(), ChooseMacro( xLimitToModel, bChooseOnly ) ) );
+ Reference< XFrame > xFrame;
+ const SfxItemSet* pIntSet = rReq.GetInternalArgs_Impl();
+ const SfxUnoFrameItem* pFrameItem = SfxItemSet::GetItem<SfxUnoFrameItem>(pIntSet, SID_FILLFRAME, false);
+ if (pFrameItem)
+ xFrame = pFrameItem->GetFrame();
+
+ rReq.SetReturnValue(SfxStringItem(rReq.GetSlot(), ChooseMacro(xLimitToModel, xFrame, bChooseOnly)));
rReq.Done();
}
break;
diff --git a/sfx2/source/control/request.cxx b/sfx2/source/control/request.cxx
index 2cadc7924525..2c8f1ea69cb4 100644
--- a/sfx2/source/control/request.cxx
+++ b/sfx2/source/control/request.cxx
@@ -267,6 +267,18 @@ SfxRequest::SfxRequest
}
+SfxRequest::SfxRequest
+(
+ sal_uInt16 nSlotId,
+ SfxCallMode nMode,
+ const SfxAllItemSet& rSfxArgs,
+ const SfxAllItemSet& rSfxInternalArgs
+)
+: SfxRequest(nSlotId, nMode, rSfxArgs)
+{
+ SetInternalArgs_Impl(rSfxInternalArgs);
+}
+
SfxCallMode SfxRequest::GetCallMode() const
{
return pImpl->nCallMode;