diff options
author | Armin Le Grand (Allotropia) <Armin.Le.Grand@me.com> | 2021-04-30 17:26:41 +0200 |
---|---|---|
committer | Jan-Marek Glogowski <glogow@fbihome.de> | 2022-01-20 12:28:54 +0100 |
commit | 02140554ee1d70b219a42546191e2219d58be4b0 (patch) | |
tree | 3dd419dbdd0c23676c7f749bd8a83d09ad26c8bd /svx | |
parent | 02634fb7c7e8dc613ffc3717bb244f85cf81a7c6 (diff) |
WASM --enable-wasm-strip now skips lots of LO code
... resulting in a stripped-down, Writer-only build to decrease
the resulting WASM bytecode size.
It removes the following code from the build:
* All other major modules: Base, Calc, Chart, Draw, Impress and
Math and related writerperfect filters
* The premultiply tables
* The (auto-)recovery functionality
* All accessibility (but not the accessibility document checker)
* The LanguageGuess component
* EPUB support
* The start center / BackingWindow
* The TipOfTheDay functionality
* The splash screen communication
Currently crashs with anything different then soffice --writer.
Closing the document also still crashes.
FYI: many of these features are now behind ENABLE_WASM_STRIP_*
defines, but they normally don't work on their own, globally!
That's because we started with stripping the main components.
Change-Id: Ib9c0f9452815910c0a2aceaf142ba1ad4a9cb0d7
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/126182
Tested-by: Jenkins
Reviewed-by: Jan-Marek Glogowski <glogow@fbihome.de>
Diffstat (limited to 'svx')
-rw-r--r-- | svx/Library_svx.mk | 25 | ||||
-rw-r--r-- | svx/Library_svxcore.mk | 4 | ||||
-rw-r--r-- | svx/source/dialog/charmap.cxx | 12 | ||||
-rw-r--r-- | svx/source/dialog/dlgctrl.cxx | 22 | ||||
-rw-r--r-- | svx/source/dialog/frmsel.cxx | 24 | ||||
-rw-r--r-- | svx/source/dialog/graphctl.cxx | 9 | ||||
-rw-r--r-- | svx/source/dialog/searchcharmap.cxx | 4 | ||||
-rw-r--r-- | svx/source/dialog/weldeditview.cxx | 14 | ||||
-rw-r--r-- | svx/util/svx.component | 1 | ||||
-rw-r--r-- | svx/util/svx.component.recoveryui | 7 | ||||
-rw-r--r-- | svx/util/svxcore.component | 1 | ||||
-rw-r--r-- | svx/util/svxcore.component.draw | 7 |
12 files changed, 121 insertions, 9 deletions
diff --git a/svx/Library_svx.mk b/svx/Library_svx.mk index 22e266ff19c6..092a4613f374 100644 --- a/svx/Library_svx.mk +++ b/svx/Library_svx.mk @@ -21,7 +21,10 @@ $(eval $(call gb_Library_Library,svx)) $(eval $(call gb_Library_set_componentfile,svx,svx/util/svx,services)) -$(eval $(call gb_Helper_optional,BREAKPAD,$(call gb_Library_add_componentimpl,svx,crashreport))) +$(eval $(call gb_Library_add_componentimpls,svx, \ + $(call gb_Helper_optional,BREAKPAD,crashreport) \ + $(if $(ENABLE_WASM_STRIP_RECOVERYUI),,recoveryui) \ +)) $(eval $(call gb_Library_set_include,svx,\ -I$(SRCDIR)/svx/inc \ @@ -82,10 +85,17 @@ $(eval $(call gb_Library_use_externals,svx,\ icu_headers \ )) +ifneq ($(ENABLE_WASM_STRIP_RECOVERYUI),TRUE) +$(eval $(call gb_Library_add_exception_objects,svx,\ + svx/source/dialog/docrecovery \ + svx/source/unodraw/recoveryui \ +)) +endif + +ifneq ($(ENABLE_WASM_STRIP_ACCESSIBILITY),TRUE) $(eval $(call gb_Library_add_exception_objects,svx,\ svx/source/accessibility/AccessibleControlShape \ svx/source/accessibility/AccessibleEmptyEditSource \ - svx/source/accessibility/AccessibleFrameSelector \ svx/source/accessibility/AccessibleGraphicShape \ svx/source/accessibility/AccessibleOLEShape \ svx/source/accessibility/AccessibleShape \ @@ -99,9 +109,14 @@ $(eval $(call gb_Library_add_exception_objects,svx,\ svx/source/accessibility/GraphCtlAccessibleContext \ svx/source/accessibility/ShapeTypeHandler \ svx/source/accessibility/SvxShapeTypes \ - svx/source/accessibility/charmapacc \ svx/source/accessibility/lookupcolorname \ - svx/source/accessibility/svxpixelctlaccessiblecontext \ +)) +endif + +$(eval $(call gb_Library_add_exception_objects,svx,\ + svx/source/accessibility/AccessibleFrameSelector \ + svx/source/accessibility/charmapacc \ + svx/source/accessibility/svxpixelctlaccessiblecontext \ svx/source/accessibility/svxrectctaccessiblecontext \ svx/source/customshapes/EnhancedCustomShape3d \ svx/source/customshapes/EnhancedCustomShapeEngine \ @@ -127,7 +142,6 @@ $(eval $(call gb_Library_add_exception_objects,svx,\ svx/source/dialog/dialcontrol \ svx/source/dialog/dlgctl3d \ svx/source/dialog/dlgctrl \ - svx/source/dialog/docrecovery \ svx/source/dialog/fntctrl \ svx/source/dialog/fontwork \ svx/source/dialog/frmdirlbox \ @@ -259,7 +273,6 @@ $(eval $(call gb_Library_add_exception_objects,svx,\ svx/source/tbxctrls/tbxdrctl \ svx/source/tbxctrls/verttexttbxctrl \ svx/source/uitest/uiobject \ - svx/source/unodraw/recoveryui \ svx/source/unodraw/unoctabl \ svx/source/unodraw/UnoNamespaceMap \ svx/source/unodraw/unopool \ diff --git a/svx/Library_svxcore.mk b/svx/Library_svxcore.mk index fd6dcfd6f455..b386f72ef15c 100644 --- a/svx/Library_svxcore.mk +++ b/svx/Library_svxcore.mk @@ -21,6 +21,10 @@ $(eval $(call gb_Library_Library,svxcore)) $(eval $(call gb_Library_set_componentfile,svxcore,svx/util/svxcore,services)) +$(eval $(call gb_Library_add_componentimpls,svxcore, \ + $(if $(ENABLE_WASM_STRIP_BASIC_CALC_DRAW_MATH_IMPRESS),,draw) \ +)) + $(eval $(call gb_Library_add_sdi_headers,svxcore,svx/sdi/svxslots)) $(eval $(call gb_Library_use_custom_headers,svxcore,\ diff --git a/svx/source/dialog/charmap.cxx b/svx/source/dialog/charmap.cxx index fd72c77d52d6..3617e48a82c8 100644 --- a/svx/source/dialog/charmap.cxx +++ b/svx/source/dialog/charmap.cxx @@ -17,6 +17,8 @@ * the License at http://www.apache.org/licenses/LICENSE-2.0 . */ +#include <config_wasm_strip.h> + #include <vcl/event.hxx> #include <vcl/fontcharmap.hxx> #include <vcl/svapp.hxx> @@ -732,6 +734,7 @@ void SvxShowCharSet::SelectIndex(int nNewIndex, bool bFocus) if( nSelectedIndex >= 0 ) { getSelectedChar() = mxFontCharMap->GetCharFromIndex( nSelectedIndex ); +#if !ENABLE_WASM_STRIP_ACCESSIBILITY if( m_xAccessible.is() ) { svx::SvxShowCharSetItem* pItem = ImplGetItem(nSelectedIndex); @@ -751,6 +754,7 @@ void SvxShowCharSet::SelectIndex(int nNewIndex, bool bFocus) aNewAny <<= AccessibleStateType::SELECTED; pItem->m_xItem->fireEvent( AccessibleEventId::STATE_CHANGED, aOldAny, aNewAny ); } +#endif } aHighHdl.Call( this ); } @@ -785,6 +789,7 @@ IMPL_LINK_NOARG(SvxShowCharSet, VscrollHdl, weld::ScrolledWindow&, void) } else if( nSelectedIndex > LastInView() ) { +#if !ENABLE_WASM_STRIP_ACCESSIBILITY if( m_xAccessible.is() ) { css::uno::Any aOldAny, aNewAny; @@ -795,6 +800,7 @@ IMPL_LINK_NOARG(SvxShowCharSet, VscrollHdl, weld::ScrolledWindow&, void) m_xAccessible ->fireEvent( AccessibleEventId::CHILD, aOldAny, aNewAny ); } } +#endif SelectIndex( (LastInView() - COLUMN_COUNT + 1) + (nSelectedIndex % COLUMN_COUNT) ); } @@ -803,18 +809,22 @@ IMPL_LINK_NOARG(SvxShowCharSet, VscrollHdl, weld::ScrolledWindow&, void) SvxShowCharSet::~SvxShowCharSet() { +#if !ENABLE_WASM_STRIP_ACCESSIBILITY if (m_xAccessible.is()) { m_aItems.clear(); m_xAccessible->clearCharSetControl(); m_xAccessible.clear(); } +#endif } css::uno::Reference< XAccessible > SvxShowCharSet::CreateAccessible() { +#if !ENABLE_WASM_STRIP_ACCESSIBILITY OSL_ENSURE(!m_xAccessible.is(),"Accessible already created!"); m_xAccessible = new svx::SvxShowCharSetAcc(this); +#endif return m_xAccessible; } @@ -823,7 +833,9 @@ svx::SvxShowCharSetItem* SvxShowCharSet::ImplGetItem( int _nPos ) ItemsMap::iterator aFind = m_aItems.find(_nPos); if ( aFind == m_aItems.end() ) { +#if !ENABLE_WASM_STRIP_ACCESSIBILITY OSL_ENSURE(m_xAccessible.is(), "Who wants to create a child of my table without a parent?"); +#endif auto xItem = std::make_shared<svx::SvxShowCharSetItem>(*this, m_xAccessible.get(), sal::static_int_cast< sal_uInt16 >(_nPos)); aFind = m_aItems.emplace(_nPos, xItem).first; diff --git a/svx/source/dialog/dlgctrl.cxx b/svx/source/dialog/dlgctrl.cxx index f14cc1822a39..35737285a231 100644 --- a/svx/source/dialog/dlgctrl.cxx +++ b/svx/source/dialog/dlgctrl.cxx @@ -17,6 +17,8 @@ * the License at http://www.apache.org/licenses/LICENSE-2.0 . */ +#include <config_wasm_strip.h> + #include <vcl/svapp.hxx> #include <vcl/settings.hxx> #include <vcl/virdev.hxx> @@ -89,7 +91,9 @@ void SvxRectCtl::SetControlSettings(RectPoint eRpt, sal_uInt16 nBorder) SvxRectCtl::~SvxRectCtl() { pBitmap.reset(); +#if !ENABLE_WASM_STRIP_ACCESSIBILITY pAccContext.clear(); +#endif } void SvxRectCtl::Resize() @@ -415,11 +419,13 @@ void SvxRectCtl::GetFocus() { Invalidate(); +#if !ENABLE_WASM_STRIP_ACCESSIBILITY // Send accessibility event. if (pAccContext.is()) { pAccContext->FireChildFocus(GetActualRP()); } +#endif } void SvxRectCtl::LoseFocus() @@ -499,9 +505,11 @@ void SvxRectCtl::SetActualRP( RectPoint eNewRP ) Invalidate(); +#if !ENABLE_WASM_STRIP_ACCESSIBILITY // notify accessibility object about change if (pAccContext.is()) pAccContext->selectChild( eNewRP /* MT, bFireFocus */ ); +#endif } void SvxRectCtl::SetState( CTL_STATE nState ) @@ -552,7 +560,9 @@ tools::Rectangle SvxRectCtl::CalculateFocusRectangle( RectPoint eRectPoint ) con Reference< XAccessible > SvxRectCtl::CreateAccessible() { +#if !ENABLE_WASM_STRIP_ACCESSIBILITY pAccContext = new SvxRectCtlAccessibleContext(this); +#endif return pAccContext; } @@ -572,8 +582,10 @@ void SvxRectCtl::DoCompletelyDisable(bool bNew) css::uno::Reference< css::accessibility::XAccessible > SvxPixelCtl::CreateAccessible() { +#if !ENABLE_WASM_STRIP_ACCESSIBILITY if (!m_xAccess.is()) m_xAccess = new SvxPixelCtlAccessible(this); +#endif return m_xAccess; } @@ -673,10 +685,14 @@ bool SvxPixelCtl::MouseButtonDown( const MouseEvent& rMEvt ) tools::Long nIndex = ShowPosition(rMEvt.GetPosPixel()); +#if !ENABLE_WASM_STRIP_ACCESSIBILITY if(m_xAccess.is()) { m_xAccess->NotifyChild(nIndex,true, true); } +#else + (void)nIndex; +#endif return true; } @@ -816,6 +832,7 @@ bool SvxPixelCtl::KeyInput( const KeyEvent& rKEvt ) default: return CustomWidgetController::KeyInput( rKEvt ); } +#if !ENABLE_WASM_STRIP_ACCESSIBILITY if(m_xAccess.is()) { tools::Long nIndex = GetFocusPosIndex(); @@ -837,6 +854,9 @@ bool SvxPixelCtl::KeyInput( const KeyEvent& rKEvt ) break; } } +#else + (void)bFocusPosChanged; +#endif return true; } else @@ -850,10 +870,12 @@ void SvxPixelCtl::GetFocus() { Invalidate(implCalFocusRect(aFocusPosition)); +#if !ENABLE_WASM_STRIP_ACCESSIBILITY if (m_xAccess.is()) { m_xAccess->NotifyChild(GetFocusPosIndex(),true,false); } +#endif } void SvxPixelCtl::LoseFocus() diff --git a/svx/source/dialog/frmsel.cxx b/svx/source/dialog/frmsel.cxx index 117bec6f6784..f7d470896cc5 100644 --- a/svx/source/dialog/frmsel.cxx +++ b/svx/source/dialog/frmsel.cxx @@ -17,6 +17,8 @@ * the License at http://www.apache.org/licenses/LICENSE-2.0 . */ +#include <config_wasm_strip.h> + #include <sal/config.h> #include <o3tl/safeint.hxx> @@ -236,8 +238,10 @@ FrameSelectorImpl::FrameSelectorImpl( FrameSelector& rFrameSel ) : mbBLTR( false ), mbFullRepaint( true ), mbAutoSelect( true ), - mbHCMode( false ), - maChildVec( 8 ) + mbHCMode( false ) +#if !ENABLE_WASM_STRIP_ACCESSIBILITY + ,maChildVec( 8 ) +#endif { maAllBorders.resize( FRAMEBORDERTYPE_COUNT, nullptr ); maAllBorders[ GetIndexFromFrameBorderType( FrameBorderType::Left ) ] = &maLeft; @@ -269,11 +273,12 @@ FrameSelectorImpl::FrameSelectorImpl( FrameSelector& rFrameSel ) : } FrameSelectorImpl::~FrameSelectorImpl() - { +#if !ENABLE_WASM_STRIP_ACCESSIBILITY for( auto& rpChild : maChildVec ) if( rpChild.is() ) rpChild->Invalidate(); +#endif } // initialization @@ -754,17 +759,24 @@ void FrameSelectorImpl::SetBorderState( FrameBorder& rBorder, FrameBorderState e Any aNew; Any& rMod = eState == FrameBorderState::Show ? aNew : aOld; rMod <<= AccessibleStateType::CHECKED; + +#if !ENABLE_WASM_STRIP_ACCESSIBILITY rtl::Reference< a11y::AccFrameSelectorChild > xRet; size_t nVecIdx = static_cast< size_t >( rBorder.GetType() ); if( GetBorder(rBorder.GetType()).IsEnabled() && (1 <= nVecIdx) && (nVecIdx <= maChildVec.size()) ) xRet = maChildVec[ --nVecIdx ].get(); +#endif if( eState == FrameBorderState::Show ) SetBorderCoreStyle( rBorder, &maCurrStyle ); else rBorder.SetState( eState ); + +#if !ENABLE_WASM_STRIP_ACCESSIBILITY if (xRet.is()) xRet->NotifyAccessibleEvent( AccessibleEventId::STATE_CHANGED, aOld, aNew ); +#endif + DoInvalidate( true ); } @@ -838,8 +850,10 @@ void FrameSelector::SetDrawingArea(weld::DrawingArea* pDrawingArea) FrameSelector::~FrameSelector() { +#if !ENABLE_WASM_STRIP_ACCESSIBILITY if( mxAccess.is() ) mxAccess->Invalidate(); +#endif } void FrameSelector::Initialize( FrameSelFlags nFlags ) @@ -972,6 +986,7 @@ bool FrameSelector::IsBorderSelected( FrameBorderType eBorder ) const void FrameSelector::SelectBorder( FrameBorderType eBorder ) { mxImpl->SelectBorder( mxImpl->GetBorderAccess( eBorder ), true/*bSelect*/ ); +#if !ENABLE_WASM_STRIP_ACCESSIBILITY // MT: bFireFox as API parameter is ugly... // if (bFocus) { @@ -983,6 +998,7 @@ void FrameSelector::SelectBorder( FrameBorderType eBorder ) xRet->NotifyAccessibleEvent( AccessibleEventId::STATE_CHANGED, aOldValue, aNewValue ); } } +#endif } bool FrameSelector::IsAnyBorderSelected() const @@ -1026,8 +1042,10 @@ SvxBorderLineStyle FrameSelector::getCurrentStyleLineStyle() const // accessibility Reference< XAccessible > FrameSelector::CreateAccessible() { +#if !ENABLE_WASM_STRIP_ACCESSIBILITY if( !mxAccess.is() ) mxAccess = new a11y::AccFrameSelector(*this); +#endif return mxAccess; } diff --git a/svx/source/dialog/graphctl.cxx b/svx/source/dialog/graphctl.cxx index ba44840a9b16..136eae27b52c 100644 --- a/svx/source/dialog/graphctl.cxx +++ b/svx/source/dialog/graphctl.cxx @@ -17,6 +17,8 @@ * the License at http://www.apache.org/licenses/LICENSE-2.0 . */ +#include <config_wasm_strip.h> + #include <svl/itempool.hxx> #include <vcl/settings.hxx> #include <vcl/ptrstyle.hxx> @@ -74,11 +76,14 @@ GraphCtrl::~GraphCtrl() { aUpdateIdle.Stop(); +#if !ENABLE_WASM_STRIP_ACCESSIBILITY if( mpAccContext.is() ) { mpAccContext->disposing(); mpAccContext.clear(); } +#endif + pView.reset(); pModel.reset(); pUserCall.reset(); @@ -142,9 +147,11 @@ void GraphCtrl::InitSdrModel() pView->SetBufferedOutputAllowed(true); pView->SetBufferedOverlayAllowed(true); +#if !ENABLE_WASM_STRIP_ACCESSIBILITY // Tell the accessibility object about the changes. if (mpAccContext.is()) mpAccContext->setModelAndView (pModel.get(), pView.get()); +#endif } void GraphCtrl::SetGraphic( const Graphic& rGraphic, bool bNewModel ) @@ -829,12 +836,14 @@ Point GraphCtrl::GetPositionInDialog() const css::uno::Reference< css::accessibility::XAccessible > GraphCtrl::CreateAccessible() { +#if !ENABLE_WASM_STRIP_ACCESSIBILITY if(mpAccContext == nullptr ) { // Disable accessibility if no model/view data available if (pView && pModel) mpAccContext = new SvxGraphCtrlAccessibleContext(*this); } +#endif return mpAccContext; } diff --git a/svx/source/dialog/searchcharmap.cxx b/svx/source/dialog/searchcharmap.cxx index 1cdb3cfc082a..201e018d5652 100644 --- a/svx/source/dialog/searchcharmap.cxx +++ b/svx/source/dialog/searchcharmap.cxx @@ -17,6 +17,8 @@ * the License at http://www.apache.org/licenses/LICENSE-2.0 . */ +#include <config_wasm_strip.h> + #include <vcl/event.hxx> #include <vcl/svapp.hxx> #include <vcl/settings.hxx> @@ -394,7 +396,9 @@ svx::SvxShowCharSetItem* SvxSearchCharSet::ImplGetItem( int _nPos ) ItemsMap::iterator aFind = m_aItems.find(_nPos); if ( aFind == m_aItems.end() ) { +#if !ENABLE_WASM_STRIP_ACCESSIBILITY OSL_ENSURE(m_xAccessible.is(), "Who wants to create a child of my table without a parent?"); +#endif auto xItem = std::make_shared<svx::SvxShowCharSetItem>(*this, m_xAccessible.get(), sal::static_int_cast< sal_uInt16 >(_nPos)); aFind = m_aItems.emplace(_nPos, xItem).first; diff --git a/svx/source/dialog/weldeditview.cxx b/svx/source/dialog/weldeditview.cxx index 341a7cc58a67..d3f3c3f79c9e 100644 --- a/svx/source/dialog/weldeditview.cxx +++ b/svx/source/dialog/weldeditview.cxx @@ -17,6 +17,8 @@ * the License at http://www.apache.org/licenses/LICENSE-2.0 . */ +#include <config_wasm_strip.h> + #include <basegfx/matrix/b2dhommatrix.hxx> #include <com/sun/star/accessibility/AccessibleRole.hpp> #include <com/sun/star/accessibility/AccessibleStateType.hpp> @@ -846,18 +848,22 @@ public: css::uno::Reference<css::accessibility::XAccessible> WeldEditView::CreateAccessible() { +#if !ENABLE_WASM_STRIP_ACCESSIBILITY if (!m_xAccessible.is()) m_xAccessible.set(new WeldEditAccessible(this)); +#endif return m_xAccessible; } WeldEditView::~WeldEditView() { +#if !ENABLE_WASM_STRIP_ACCESSIBILITY if (m_xAccessible.is()) { m_xAccessible->ClearWin(); // make Accessible nonfunctional m_xAccessible.clear(); } +#endif } bool WeldViewForwarder::IsValid() const { return m_rEditAcc.GetEditView() != nullptr; } @@ -1566,14 +1572,18 @@ void WeldEditView::SetDrawingArea(weld::DrawingArea* pDrawingArea) pDrawingArea->set_cursor(PointerStyle::Text); +#if !ENABLE_WASM_STRIP_ACCESSIBILITY InitAccessible(); +#endif } +#if !ENABLE_WASM_STRIP_ACCESSIBILITY void WeldEditView::InitAccessible() { if (m_xAccessible.is()) m_xAccessible->Init(GetEditEngine(), GetEditView()); } +#endif int WeldEditView::GetSurroundingText(OUString& rSurrounding) { @@ -1603,6 +1613,7 @@ void WeldEditView::GetFocus() weld::CustomWidgetController::GetFocus(); +#if !ENABLE_WASM_STRIP_ACCESSIBILITY if (m_xAccessible.is()) { // Note: will implicitly send the AccessibleStateType::FOCUSED event @@ -1610,6 +1621,7 @@ void WeldEditView::GetFocus() if (pHelper) pHelper->SetFocus(); } +#endif } void WeldEditView::LoseFocus() @@ -1617,6 +1629,7 @@ void WeldEditView::LoseFocus() weld::CustomWidgetController::LoseFocus(); Invalidate(); // redraw without cursor +#if !ENABLE_WASM_STRIP_ACCESSIBILITY if (m_xAccessible.is()) { // Note: will implicitly send the AccessibleStateType::FOCUSED event @@ -1624,6 +1637,7 @@ void WeldEditView::LoseFocus() if (pHelper) pHelper->SetFocus(false); } +#endif } bool WeldEditView::CanFocus() const { return true; } diff --git a/svx/util/svx.component b/svx/util/svx.component index db47c36fc1e7..c655da210995 100644 --- a/svx/util/svx.component +++ b/svx/util/svx.component @@ -31,6 +31,7 @@ <implementation name="com.sun.star.comp.svx.RecoveryUI" constructor="com_sun_star_comp_svx_RecoveryUI_get_implementation"> <service name="com.sun.star.dialog.RecoveryUI"/> + <optional/> </implementation> <implementation name="com.sun.star.comp.svx.CrashReportUI" constructor="com_sun_star_comp_svx_CrashReportUI_get_implementation"> diff --git a/svx/util/svx.component.recoveryui b/svx/util/svx.component.recoveryui new file mode 100644 index 000000000000..2a3f4b0aed89 --- /dev/null +++ b/svx/util/svx.component.recoveryui @@ -0,0 +1,7 @@ +# This file is part of the LibreOffice project. +# +# This Source Code Form is subject to the terms of the Mozilla Public +# License, v. 2.0. If a copy of the MPL was not distributed with this +# file, You can obtain one at http://mozilla.org/MPL/2.0/. + +com.sun.star.comp.svx.RecoveryUI diff --git a/svx/util/svxcore.component b/svx/util/svxcore.component index d8989b71f4e9..d3b0942f4a84 100644 --- a/svx/util/svxcore.component +++ b/svx/util/svxcore.component @@ -21,6 +21,7 @@ <implementation name="com.sun.star.comp.Draw.GraphicExporter" constructor="com_sun_star_comp_Draw_GraphicExporter_get_implementation"> <service name="com.sun.star.drawing.GraphicExportFilter"/> + <optional/> </implementation> <implementation name="com.sun.star.comp.svx.ExtrusionDepthController" constructor="com_sun_star_comp_svx_ExtrusionDepthController_get_implementation"> diff --git a/svx/util/svxcore.component.draw b/svx/util/svxcore.component.draw new file mode 100644 index 000000000000..5192ae34fd88 --- /dev/null +++ b/svx/util/svxcore.component.draw @@ -0,0 +1,7 @@ +# This file is part of the LibreOffice project. +# +# This Source Code Form is subject to the terms of the Mozilla Public +# License, v. 2.0. If a copy of the MPL was not distributed with this +# file, You can obtain one at http://mozilla.org/MPL/2.0/. + +com.sun.star.comp.Draw.GraphicExporter |