cui/source/dialogs/hldocntp.cxx | 180 +++++----- cui/source/inc/hldocntp.hxx | 1 download.lst | 6 external/libetonyek/0001-add-missing-include-for-std-min.patch.1 | 25 - external/libetonyek/Library_etonyek.mk | 27 + external/libetonyek/UnpackedTarball_libetonyek.mk | 3 external/libetonyek/c++17.patch | 11 external/libetonyek/ubsan.patch | 8 external/libetonyek/warnings.patch | 11 9 files changed, 149 insertions(+), 123 deletions(-)
New commits: commit ce07d65f1fec8d536dcadcb0e8e13f969c05d9c8 Author: Caolán McNamara <caol...@redhat.com> Date: Tue Apr 10 17:09:57 2018 +0100 grab an early libetonyek-0.1.8 snapshot Change-Id: Ib31a8cb75f4cebcaa974b95097270362b3b26aef Reviewed-on: https://gerrit.libreoffice.org/52689 Tested-by: Jenkins <c...@libreoffice.org> Reviewed-by: Caolán McNamara <caol...@redhat.com> Tested-by: Caolán McNamara <caol...@redhat.com> diff --git a/download.lst b/download.lst index 354c39285f43..0a1fa65396d1 100644 --- a/download.lst +++ b/download.lst @@ -39,9 +39,9 @@ export EPM_SHA256SUM := b3fc4c5445de6c9a801504a3ea3efb2d4ea9d5a622c9427e716736e7 export EPM_TARBALL := 3ade8cfe7e59ca8e65052644fed9fca4-epm-3.7.tar.gz export EPUBGEN_SHA256SUM := 730bd1cbeee166334faadbc06c953a67b145c3c4754a3b503482066dae4cd633 export EPUBGEN_TARBALL := libepubgen-0.1.0.tar.bz2 -export ETONYEK_SHA256SUM := 69dbe10d4426d52f09060d489f8eb90dfa1df592e82eb0698d9dbaf38cc734ac -export ETONYEK_VERSION_MICRO := 7 -export ETONYEK_TARBALL := libetonyek-0.1.$(ETONYEK_VERSION_MICRO).tar.xz +export ETONYEK_SHA256SUM := 8a70cc83a9ee031444f9c891609b1cc11e20e2d6b41ae02d17d8f1ca8a68c4f2 +export ETONYEK_VERSION_MICRO := 8 +export ETONYEK_TARBALL := libetonyek-0.1.$(ETONYEK_VERSION_MICRO)-snapshot1.tar.xz export EXPAT_SHA256SUM := d9dc32efba7e74f788fcc4f212a43216fc37cf5f23f4c2339664d473353aedf6 export EXPAT_TARBALL := expat-2.2.5.tar.bz2 export FIREBIRD_SHA256SUM := 6994be3555e23226630c587444be19d309b25b0fcf1f87df3b4e3f88943e5860 diff --git a/external/libetonyek/0001-add-missing-include-for-std-min.patch.1 b/external/libetonyek/0001-add-missing-include-for-std-min.patch.1 deleted file mode 100644 index dc3e70988d56..000000000000 --- a/external/libetonyek/0001-add-missing-include-for-std-min.patch.1 +++ /dev/null @@ -1,25 +0,0 @@ -From cc71d75b4d9b88b5c920cd039bab3e707e71568b Mon Sep 17 00:00:00 2001 -From: David Tardon <dtar...@redhat.com> -Date: Mon, 23 Oct 2017 12:55:43 +0200 -Subject: [PATCH] add missing include for std::min - -Change-Id: I2088057657f3ce23b91dbbc7b4f5840914dbcaa8 ---- - src/lib/IWASnappyStream.cpp | 1 + - 1 file changed, 1 insertion(+) - -diff --git a/src/lib/IWASnappyStream.cpp b/src/lib/IWASnappyStream.cpp -index 7b28681..9cc84c3 100644 ---- a/src/lib/IWASnappyStream.cpp -+++ b/src/lib/IWASnappyStream.cpp -@@ -9,6 +9,7 @@ - - #include "IWASnappyStream.h" - -+#include <algorithm> - #include <cassert> - #include <limits> - #include <memory> --- -2.14.1 - diff --git a/external/libetonyek/Library_etonyek.mk b/external/libetonyek/Library_etonyek.mk index b79d3603bffe..414b2d02b707 100644 --- a/external/libetonyek/Library_etonyek.mk +++ b/external/libetonyek/Library_etonyek.mk @@ -43,6 +43,7 @@ $(eval $(call gb_Library_add_generated_exception_objects,etonyek,\ UnpackedTarball/libetonyek/src/lib/EtonyekDocument \ UnpackedTarball/libetonyek/src/lib/IWAField \ UnpackedTarball/libetonyek/src/lib/IWAMessage \ + UnpackedTarball/libetonyek/src/lib/IWAObjectIndex \ UnpackedTarball/libetonyek/src/lib/IWAParser \ UnpackedTarball/libetonyek/src/lib/IWAReader \ UnpackedTarball/libetonyek/src/lib/IWASnappyStream \ @@ -84,15 +85,17 @@ $(eval $(call gb_Library_add_generated_exception_objects,etonyek,\ UnpackedTarball/libetonyek/src/lib/IWORKXMLContextBase \ UnpackedTarball/libetonyek/src/lib/IWORKXMLParserState \ UnpackedTarball/libetonyek/src/lib/IWORKZlibStream \ + UnpackedTarball/libetonyek/src/lib/KEY1Dictionary \ UnpackedTarball/libetonyek/src/lib/KEY1Parser \ + UnpackedTarball/libetonyek/src/lib/KEY1ParserState \ UnpackedTarball/libetonyek/src/lib/KEY1Token \ - UnpackedTarball/libetonyek/src/lib/KEY2Collector \ UnpackedTarball/libetonyek/src/lib/KEY2Dictionary \ UnpackedTarball/libetonyek/src/lib/KEY2Parser \ UnpackedTarball/libetonyek/src/lib/KEY2ParserState \ UnpackedTarball/libetonyek/src/lib/KEY2Token \ UnpackedTarball/libetonyek/src/lib/KEY6Parser \ UnpackedTarball/libetonyek/src/lib/KEYCollector \ + UnpackedTarball/libetonyek/src/lib/KEYProperties \ UnpackedTarball/libetonyek/src/lib/KEYTypes \ UnpackedTarball/libetonyek/src/lib/NUM1Dictionary \ UnpackedTarball/libetonyek/src/lib/NUM1Parser \ @@ -111,12 +114,16 @@ $(eval $(call gb_Library_add_generated_exception_objects,etonyek,\ UnpackedTarball/libetonyek/src/lib/contexts/IWORKBezierElement \ UnpackedTarball/libetonyek/src/lib/contexts/IWORKBinaryElement \ UnpackedTarball/libetonyek/src/lib/contexts/IWORKBrContext \ + UnpackedTarball/libetonyek/src/lib/contexts/IWORKCalcEngineContext \ UnpackedTarball/libetonyek/src/lib/contexts/IWORKChartInfoElement \ UnpackedTarball/libetonyek/src/lib/contexts/IWORKColorElement \ UnpackedTarball/libetonyek/src/lib/contexts/IWORKCoreImageFilterDescriptorElement \ UnpackedTarball/libetonyek/src/lib/contexts/IWORKDataElement \ + UnpackedTarball/libetonyek/src/lib/contexts/IWORKFieldElement \ + UnpackedTarball/libetonyek/src/lib/contexts/IWORKFillElement \ UnpackedTarball/libetonyek/src/lib/contexts/IWORKFilteredImageElement \ - UnpackedTarball/libetonyek/src/lib/contexts/IWORKFoElement \ + UnpackedTarball/libetonyek/src/lib/contexts/IWORKFormatElement \ + UnpackedTarball/libetonyek/src/lib/contexts/IWORKFormulaElement \ UnpackedTarball/libetonyek/src/lib/contexts/IWORKGeometryElement \ UnpackedTarball/libetonyek/src/lib/contexts/IWORKGroupElement \ UnpackedTarball/libetonyek/src/lib/contexts/IWORKHeaderFooterContext \ @@ -124,6 +131,7 @@ $(eval $(call gb_Library_add_generated_exception_objects,etonyek,\ UnpackedTarball/libetonyek/src/lib/contexts/IWORKImageElement \ UnpackedTarball/libetonyek/src/lib/contexts/IWORKLayoutElement \ UnpackedTarball/libetonyek/src/lib/contexts/IWORKLineElement \ + UnpackedTarball/libetonyek/src/lib/contexts/IWORKLineEndElement \ UnpackedTarball/libetonyek/src/lib/contexts/IWORKLinkElement \ UnpackedTarball/libetonyek/src/lib/contexts/IWORKListLabelGeometriesProperty \ UnpackedTarball/libetonyek/src/lib/contexts/IWORKListLabelGeometryElement \ @@ -131,7 +139,6 @@ $(eval $(call gb_Library_add_generated_exception_objects,etonyek,\ UnpackedTarball/libetonyek/src/lib/contexts/IWORKListLabelTypeinfoElement \ UnpackedTarball/libetonyek/src/lib/contexts/IWORKListLabelTypesProperty \ UnpackedTarball/libetonyek/src/lib/contexts/IWORKListTextIndentsProperty \ - UnpackedTarball/libetonyek/src/lib/contexts/IWORKListstyleElement \ UnpackedTarball/libetonyek/src/lib/contexts/IWORKMediaElement \ UnpackedTarball/libetonyek/src/lib/contexts/IWORKMetadataElement \ UnpackedTarball/libetonyek/src/lib/contexts/IWORKNumberConverter \ @@ -145,20 +152,34 @@ $(eval $(call gb_Library_add_generated_exception_objects,etonyek,\ UnpackedTarball/libetonyek/src/lib/contexts/IWORKSizeElement \ UnpackedTarball/libetonyek/src/lib/contexts/IWORKSpanElement \ UnpackedTarball/libetonyek/src/lib/contexts/IWORKStringElement \ + UnpackedTarball/libetonyek/src/lib/contexts/IWORKStrokeContext \ UnpackedTarball/libetonyek/src/lib/contexts/IWORKStyleContext \ UnpackedTarball/libetonyek/src/lib/contexts/IWORKStyleRefContext \ UnpackedTarball/libetonyek/src/lib/contexts/IWORKStylesContext \ UnpackedTarball/libetonyek/src/lib/contexts/IWORKStylesheetBase \ UnpackedTarball/libetonyek/src/lib/contexts/IWORKTabElement \ + UnpackedTarball/libetonyek/src/lib/contexts/IWORKTableInfoElement \ UnpackedTarball/libetonyek/src/lib/contexts/IWORKTabsElement \ UnpackedTarball/libetonyek/src/lib/contexts/IWORKTabularInfoElement \ + UnpackedTarball/libetonyek/src/lib/contexts/IWORKTabularModelElement \ UnpackedTarball/libetonyek/src/lib/contexts/IWORKTextBodyElement \ UnpackedTarball/libetonyek/src/lib/contexts/IWORKTextElement \ UnpackedTarball/libetonyek/src/lib/contexts/IWORKTextLabelElement \ UnpackedTarball/libetonyek/src/lib/contexts/IWORKTextStorageElement \ UnpackedTarball/libetonyek/src/lib/contexts/IWORKUnfilteredElement \ + UnpackedTarball/libetonyek/src/lib/contexts/IWORKWrapElement \ + UnpackedTarball/libetonyek/src/lib/contexts/KEY1ContentElement \ + UnpackedTarball/libetonyek/src/lib/contexts/KEY1DivElement \ + UnpackedTarball/libetonyek/src/lib/contexts/KEY1FillElement \ + UnpackedTarball/libetonyek/src/lib/contexts/KEY1SpanElement \ + UnpackedTarball/libetonyek/src/lib/contexts/KEY1StringConverter \ + UnpackedTarball/libetonyek/src/lib/contexts/KEY1StylesContext \ + UnpackedTarball/libetonyek/src/lib/contexts/KEY1TableElement \ UnpackedTarball/libetonyek/src/lib/contexts/KEY2StyleContext \ + UnpackedTarball/libetonyek/src/lib/contexts/PAG1AnnotationContext \ + UnpackedTarball/libetonyek/src/lib/contexts/PAG1AnnotationElement \ UnpackedTarball/libetonyek/src/lib/contexts/PAG1FootnotesElement \ + UnpackedTarball/libetonyek/src/lib/contexts/PAG1ShapeContext \ UnpackedTarball/libetonyek/src/lib/contexts/PAG1StyleContext \ UnpackedTarball/libetonyek/src/lib/contexts/PAG1TextStorageElement \ UnpackedTarball/libetonyek/src/lib/libetonyek_utils \ diff --git a/external/libetonyek/UnpackedTarball_libetonyek.mk b/external/libetonyek/UnpackedTarball_libetonyek.mk index 1b59b77cab97..d64d7e45212b 100644 --- a/external/libetonyek/UnpackedTarball_libetonyek.mk +++ b/external/libetonyek/UnpackedTarball_libetonyek.mk @@ -19,8 +19,7 @@ $(eval $(call gb_UnpackedTarball_add_patches,libetonyek,\ external/libetonyek/win_build.patch.1 \ external/libetonyek/ubsan.patch \ external/libetonyek/rpath.patch \ - external/libetonyek/0001-add-missing-include-for-std-min.patch.1 \ - external/libetonyek/c++17.patch \ + external/libetonyek/warnings.patch \ )) ifneq ($(OS),MACOSX) diff --git a/external/libetonyek/c++17.patch b/external/libetonyek/c++17.patch deleted file mode 100644 index bc4e9b96a46a..000000000000 --- a/external/libetonyek/c++17.patch +++ /dev/null @@ -1,11 +0,0 @@ ---- src/lib/KEY1Token.inc -+++ src/lib/KEY1Token.inc -@@ -524,7 +524,7 @@ - - if (len <= MAX_WORD_LENGTH && len >= MIN_WORD_LENGTH) - { -- register int key = hash (str, len); -+ int key = hash (str, len); - - if (key <= MAX_HASH_VALUE && key >= 0) - { diff --git a/external/libetonyek/ubsan.patch b/external/libetonyek/ubsan.patch index b7da70904b62..260e9f33df58 100644 --- a/external/libetonyek/ubsan.patch +++ b/external/libetonyek/ubsan.patch @@ -1,11 +1,11 @@ --- src/lib/libetonyek_xml.cpp +++ src/lib/libetonyek_xml.cpp -@@ -33,7 +33,7 @@ +@@ -35,7 +35,7 @@ unsigned long bytesRead = 0; - const unsigned char *const bytes = input->read(len, bytesRead); + const unsigned char *const bytes = input->read((unsigned long)len, bytesRead); -- std::memcpy(buffer, bytes, static_cast<int>(bytesRead)); -+ if (bytesRead != 0) std::memcpy(buffer, bytes, static_cast<int>(bytesRead)); +- std::memcpy(buffer, bytes, static_cast<size_t>(bytesRead)); ++ if (bytesRead != 0) std::memcpy(buffer, bytes, static_cast<size_t>(bytesRead)); return static_cast<int>(bytesRead); } catch (...) diff --git a/external/libetonyek/warnings.patch b/external/libetonyek/warnings.patch new file mode 100644 index 000000000000..841d70cb68e8 --- /dev/null +++ b/external/libetonyek/warnings.patch @@ -0,0 +1,11 @@ +--- src/lib/IWORKXMLContext.cpp ++++ src/lib/IWORKXMLContext.cpp +@@ -18,7 +18,7 @@ + { + } + +-void IWORKXMLContext::CDATA(const char */*value*/) ++void IWORKXMLContext::CDATA(const char * /*value*/) + { + ETONYEK_DEBUG_MSG(("IWORKXMLContext::cData: find unexpected CDATA block\n")); + } commit e3e447ed6fcbdf22c16fbe78c0dcf944bedac39a Author: Caolán McNamara <caol...@redhat.com> Date: Tue Apr 17 17:02:11 2018 +0100 Resolves: tdf#116928 dispatch hyperlink dialog new doc in idle callback collect up all the piece of data that the dispatch requires and launch it in an idle. So if a dialog appears its embedded mainloop will not return to body if the deleted SvxHyperlinkNewDocTp Change-Id: Ie978bc552c3b88dc11eae2ec49417cc8bd0f02bc Reviewed-on: https://gerrit.libreoffice.org/53056 Tested-by: Jenkins <c...@libreoffice.org> Reviewed-by: Caolán McNamara <caol...@redhat.com> Tested-by: Caolán McNamara <caol...@redhat.com> diff --git a/cui/source/dialogs/hldocntp.cxx b/cui/source/dialogs/hldocntp.cxx index 965198480d95..962298168b49 100644 --- a/cui/source/dialogs/hldocntp.cxx +++ b/cui/source/dialogs/hldocntp.cxx @@ -21,6 +21,7 @@ #include <osl/file.hxx> #include <sfx2/viewfrm.hxx> #include <sfx2/docfac.hxx> +#include <com/sun/star/awt/XTopWindow.hpp> #include <com/sun/star/uno/Reference.h> #include <com/sun/star/uno/Sequence.h> #include <com/sun/star/beans/PropertyValue.hpp> @@ -286,6 +287,83 @@ bool SvxHyperlinkNewDocTp::AskApply() return bRet; } +namespace +{ + struct ExecuteInfo + { + bool bRbtEditLater; + bool bRbtEditNow; + INetURLObject aURL; + OUString aStrDocName; + // current document + css::uno::Reference<css::frame::XFrame> xFrame; + SfxDispatcher* pDispatcher; + }; +} + +IMPL_STATIC_LINK(SvxHyperlinkNewDocTp, DispatchDocument, void*, p, void) +{ + std::unique_ptr<ExecuteInfo> xExecuteInfo(static_cast<ExecuteInfo*>(p)); + if (!xExecuteInfo->xFrame.is()) + return; + try + { + //if it throws dispatcher is invalid + css::uno::Reference<css::awt::XTopWindow>(xExecuteInfo->xFrame->getContainerWindow(), css::uno::UNO_QUERY_THROW); + + SfxViewFrame *pViewFrame = nullptr; + + // create items + SfxStringItem aName( SID_FILE_NAME, xExecuteInfo->aStrDocName ); + SfxStringItem aReferer( SID_REFERER, OUString("private:user") ); + SfxStringItem aFrame( SID_TARGETNAME, OUString("_blank") ); + + OUString aStrFlags('S'); + if (xExecuteInfo->bRbtEditLater) + { + aStrFlags += "H"; + } + SfxStringItem aFlags (SID_OPTIONS, aStrFlags); + + // open url + const SfxPoolItem* pReturn = xExecuteInfo->pDispatcher->ExecuteList( + SID_OPENDOC, SfxCallMode::SYNCHRON, + { &aName, &aFlags, &aFrame, &aReferer }); + + // save new doc + const SfxViewFrameItem *pItem = dynamic_cast<const SfxViewFrameItem*>( pReturn ); // SJ: pReturn is NULL if the Hyperlink + if ( pItem ) // creation is cancelled #106216# + { + pViewFrame = pItem->GetFrame(); + if (pViewFrame) + { + SfxStringItem aNewName( SID_FILE_NAME, xExecuteInfo->aURL.GetMainURL( INetURLObject::DecodeMechanism::NONE ) ); + SfxUnoFrameItem aDocFrame( SID_FILLFRAME, pViewFrame->GetFrame().GetFrameInterface() ); + fprintf(stderr, "is there a frame int %p\n", pViewFrame->GetFrame().GetFrameInterface().get() ); + pViewFrame->GetDispatcher()->ExecuteList( + SID_SAVEASDOC, SfxCallMode::SYNCHRON, + { &aNewName }, { &aDocFrame }); + } + } + + if (xExecuteInfo->bRbtEditNow) + { + css::uno::Reference<css::awt::XTopWindow> xWindow(xExecuteInfo->xFrame->getContainerWindow(), css::uno::UNO_QUERY); + if (xWindow.is()) //will be false if the frame was exited while the document was loading (e.g. we waited for warning dialogs) + xWindow->toFront(); + } + + if (pViewFrame && xExecuteInfo->bRbtEditLater) + { + SfxObjectShell* pObjShell = pViewFrame->GetObjectShell(); + pObjShell->DoClose(); + } + } + catch (...) + { + } +} + /************************************************************************* |* |* Any action to do after apply-button is pressed @@ -302,101 +380,53 @@ void SvxHyperlinkNewDocTp::DoApply () if ( aStrNewName.isEmpty() ) aStrNewName = maStrInitURL; - // create a real URL-String - INetURLObject aURL; if ( ImplGetURLObject( aStrNewName, m_pCbbPath->GetBaseURL(), aURL ) ) { - - // create Document - aStrNewName = aURL.GetURLPath( INetURLObject::DecodeMechanism::NONE ); - SfxViewFrame *pViewFrame = nullptr; + bool bCreate = true; try { - bool bCreate = true; - // check if file exists, warn before we overwrite it - { - SvStream* pIStm = ::utl::UcbStreamHelper::CreateStream( aURL.GetMainURL( INetURLObject::DecodeMechanism::NONE ), StreamMode::READ ); + SvStream* pIStm = ::utl::UcbStreamHelper::CreateStream( aURL.GetMainURL( INetURLObject::DecodeMechanism::NONE ), StreamMode::READ ); - bool bOk = pIStm && ( pIStm->GetError() == ERRCODE_NONE); + bool bOk = pIStm && ( pIStm->GetError() == ERRCODE_NONE); - delete pIStm; + delete pIStm; - if( bOk ) - { - std::unique_ptr<weld::MessageDialog> xWarn(Application::CreateMessageDialog(GetFrameWeld(), - VclMessageType::Warning, VclButtonsType::YesNo, - CuiResId(RID_SVXSTR_HYPERDLG_QUERYOVERWRITE))); - bCreate = xWarn->run() == RET_YES; - } - } - - if( bCreate ) + if( bOk ) { - // current document - SfxViewFrame* pCurrentDocFrame = SfxViewFrame::Current(); - - if ( !aStrNewName.isEmpty() ) - { - // get private-url - sal_Int32 nPos = m_pLbDocTypes->GetSelectedEntryPos(); - if( nPos == LISTBOX_ENTRY_NOTFOUND ) - nPos=0; - OUString aStrDocName ( static_cast<DocumentTypeData*>( - m_pLbDocTypes->GetEntryData( nPos ))->aStrURL ); - - // create items - SfxStringItem aName( SID_FILE_NAME, aStrDocName ); - SfxStringItem aReferer( SID_REFERER, OUString("private:user") ); - SfxStringItem aFrame( SID_TARGETNAME, OUString("_blank") ); - - OUString aStrFlags('S'); - if ( m_pRbtEditLater->IsChecked() ) - { - aStrFlags += "H"; - } - SfxStringItem aFlags (SID_OPTIONS, aStrFlags); - - // open url - const SfxPoolItem* pReturn = GetDispatcher()->ExecuteList( - SID_OPENDOC, SfxCallMode::SYNCHRON, - { &aName, &aFlags, &aFrame, &aReferer }); - - // save new doc - const SfxViewFrameItem *pItem = dynamic_cast<const SfxViewFrameItem*>( pReturn ); // SJ: pReturn is NULL if the Hyperlink - if ( pItem ) // creation is cancelled #106216# - { - pViewFrame = pItem->GetFrame(); - if (pViewFrame) - { - SfxStringItem aNewName( SID_FILE_NAME, aURL.GetMainURL( INetURLObject::DecodeMechanism::NONE ) ); - SfxUnoFrameItem aDocFrame( SID_FILLFRAME, pViewFrame->GetFrame().GetFrameInterface() ); - - pViewFrame->GetDispatcher()->ExecuteList( - SID_SAVEASDOC, SfxCallMode::SYNCHRON, - { &aNewName }, { &aDocFrame } ); - } - } - } - - if ( m_pRbtEditNow->IsChecked() && pCurrentDocFrame ) - { - pCurrentDocFrame->ToTop(); - } + std::unique_ptr<weld::MessageDialog> xWarn(Application::CreateMessageDialog(GetFrameWeld(), + VclMessageType::Warning, VclButtonsType::YesNo, + CuiResId(RID_SVXSTR_HYPERDLG_QUERYOVERWRITE))); + bCreate = xWarn->run() == RET_YES; } } catch (const uno::Exception&) { } - if ( pViewFrame && m_pRbtEditLater->IsChecked() ) + if (bCreate && !aStrNewName.isEmpty()) { - SfxObjectShell* pObjShell = pViewFrame->GetObjectShell(); - pObjShell->DoClose(); + ExecuteInfo* pExecuteInfo = new ExecuteInfo; + + pExecuteInfo->bRbtEditLater = m_pRbtEditLater->IsChecked(); + pExecuteInfo->bRbtEditNow = m_pRbtEditNow->IsChecked(); + // get private-url + sal_Int32 nPos = m_pLbDocTypes->GetSelectedEntryPos(); + if( nPos == LISTBOX_ENTRY_NOTFOUND ) + nPos=0; + pExecuteInfo->aURL = aURL; + pExecuteInfo->aStrDocName = static_cast<DocumentTypeData*>( + m_pLbDocTypes->GetEntryData( nPos ))->aStrURL; + + // current document + pExecuteInfo->xFrame = GetDispatcher()->GetFrame()->GetFrame().GetFrameInterface(); + pExecuteInfo->pDispatcher = GetDispatcher(); + + Application::PostUserEvent(LINK(nullptr, SvxHyperlinkNewDocTp, DispatchDocument), pExecuteInfo); } } diff --git a/cui/source/inc/hldocntp.hxx b/cui/source/inc/hldocntp.hxx index c33bb85a7610..42466e5fbf0f 100644 --- a/cui/source/inc/hldocntp.hxx +++ b/cui/source/inc/hldocntp.hxx @@ -40,6 +40,7 @@ private: void FillDocumentList (); DECL_LINK (ClickNewHdl_Impl, Button*, void ); + DECL_STATIC_LINK(SvxHyperlinkNewDocTp, DispatchDocument, void*, void); protected: void FillDlgFields(const OUString& rStrURL) override; _______________________________________________ Libreoffice-commits mailing list libreoffice-comm...@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/libreoffice-commits