oovbaapi/ooo/vba/word/XWordBasic.idl | 1 + sw/source/ui/vba/vbaapplication.cxx | 20 ++++++++++++++++++++ 2 files changed, 21 insertions(+)
New commits: commit 82ed9aa096aea95c2a9fe0ca9c1d27b70dcbc8fa Author: Tor Lillqvist <t...@collabora.com> AuthorDate: Wed Jan 23 18:33:50 2019 +0200 Commit: Tor Lillqvist <t...@collabora.com> CommitDate: Thu Jan 24 00:33:14 2019 +0200 Add WordBasic.FileClose() Change-Id: Ifc48e5fbcc212f0e80cf6877e2781910e38e5e54 diff --git a/oovbaapi/ooo/vba/word/XWordBasic.idl b/oovbaapi/ooo/vba/word/XWordBasic.idl index d704b92b122c..5150a431401b 100644 --- a/oovbaapi/ooo/vba/word/XWordBasic.idl +++ b/oovbaapi/ooo/vba/word/XWordBasic.idl @@ -18,6 +18,7 @@ interface XWordBasic void FileOpen( [in] string Name, [in] any ConfirmConversions, [in] any ReadOnly, [in] any AddToMru, [in] any PasswordDoc, [in] any PasswordDot, [in] any Revert, [in] any WritePasswordDoc, [in] any WritePasswordDot ); void FileSave(); + void FileClose( [in] any Save ); void ToolsOptionsView( [in] any DraftFont, [in] any WrapToWindow, [in] any PicturePlaceHolders, [in] any FieldCodes, [in] any BookMarks, [in] any FieldShading, [in] any StatusBar, [in] any HScroll, [in] any VScroll, [in] any StyleAreaWidth, [in] any Tabs, [in] any Spaces, [in] any Paras, [in] any Hyphens, [in] any Hidden, [in] any ShowAll, [in] any Drawings, [in] any Anchors, [in] any TextBoundaries, [in] any VRuler, [in] any Highlight ); string WindowName(); boolean ExistingBookmark( [in] string Name ); diff --git a/sw/source/ui/vba/vbaapplication.cxx b/sw/source/ui/vba/vbaapplication.cxx index 6836f5ab7c5d..d9e33430c9d1 100644 --- a/sw/source/ui/vba/vbaapplication.cxx +++ b/sw/source/ui/vba/vbaapplication.cxx @@ -77,6 +77,7 @@ public: virtual void SAL_CALL FileOpen( const OUString& Name, const uno::Any& ConfirmConversions, const uno::Any& ReadOnly, const uno::Any& AddToMru, const uno::Any& PasswordDoc, const uno::Any& PasswordDot, const uno::Any& Revert, const uno::Any& WritePasswordDoc, const uno::Any& WritePasswordDot ) override; virtual void SAL_CALL FileSave() override; + virtual void SAL_CALL FileClose( const css::uno::Any& Save ) override; virtual void SAL_CALL ToolsOptionsView( const css::uno::Any& DraftFont, const css::uno::Any& WrapToWindow, const css::uno::Any& PicturePlaceHolders, @@ -539,6 +540,25 @@ SwWordBasic::FileSave() } void SAL_CALL +SwWordBasic::FileClose( const css::uno::Any& Save ) +{ + uno::Reference< frame::XModel > xModel( mpApp->getCurrentDocument(), uno::UNO_SET_THROW ); + + bool bSave = false; + if (Save.hasValue() && (Save >>= bSave) && bSave) + FileSave(); + + // FIXME: Here I would much prefer to call VbaDocumentBase::Close() but not sure how to get at + // the VbaDocumentBase of the current document. (Probably it is easy and I haven't looked hard + // enough.) + // + // FIXME: Error handling. If there is no current document, return some kind of error? But for + // now, just ignore errors. This code is written to work for a very specific customer use case + // ayway, not for an arbitrary sequence of COM calls to the "VBA" API. + dispatchRequests(xModel,".uno:CloseDoc"); +} + +void SAL_CALL SwWordBasic::ToolsOptionsView( const css::uno::Any& DraftFont, const css::uno::Any& WrapToWindow, const css::uno::Any& PicturePlaceHolders, _______________________________________________ Libreoffice-commits mailing list libreoffice-comm...@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/libreoffice-commits