diff options
25 files changed, 99 insertions, 19 deletions
diff --git a/cui/source/options/optpath.cxx b/cui/source/options/optpath.cxx index 45c8bbb4aa54..f44456ce1c88 100644 --- a/cui/source/options/optpath.cxx +++ b/cui/source/options/optpath.cxx @@ -51,6 +51,8 @@ #include "optHeaderTabListbox.hxx" #include <vcl/help.hxx> +#include <boost/scoped_ptr.hpp> + using namespace ::com::sun::star::beans; using namespace ::com::sun::star::lang; using namespace ::com::sun::star::ui::dialogs; diff --git a/cui/source/options/tsaurls.cxx b/cui/source/options/tsaurls.cxx index 142ea656f045..a886975b4bab 100644 --- a/cui/source/options/tsaurls.cxx +++ b/cui/source/options/tsaurls.cxx @@ -15,6 +15,8 @@ #include <com/sun/star/ui/dialogs/ExecutableDialogResults.hpp> +#include <boost/scoped_ptr.hpp> + using namespace ::com::sun::star; TSAURLsDialog::TSAURLsDialog(vcl::Window* pParent) diff --git a/filter/source/svg/svgfilter.cxx b/filter/source/svg/svgfilter.cxx index e44c37d9136f..b3a56dffb630 100644 --- a/filter/source/svg/svgfilter.cxx +++ b/filter/source/svg/svgfilter.cxx @@ -50,6 +50,8 @@ #include "svgfilter.hxx" #include "svgwriter.hxx" +#include <boost/scoped_ptr.hpp> + using namespace ::com::sun::star; namespace diff --git a/filter/source/svg/svgimport.cxx b/filter/source/svg/svgimport.cxx index b803b6d62285..1d3daafe1963 100644 --- a/filter/source/svg/svgimport.cxx +++ b/filter/source/svg/svgimport.cxx @@ -43,6 +43,8 @@ #include <unotools/mediadescriptor.hxx> #include <tools/zcodec.hxx> +#include <boost/scoped_ptr.hpp> + using namespace ::com::sun::star; using namespace ::svgi; diff --git a/include/svtools/DocumentInfoPreview.hxx b/include/svtools/DocumentInfoPreview.hxx index 9eba310af05c..6cd4fc8b7365 100644 --- a/include/svtools/DocumentInfoPreview.hxx +++ b/include/svtools/DocumentInfoPreview.hxx @@ -29,6 +29,8 @@ #include <tools/wintypes.hxx> #include <vcl/window.hxx> +#include <boost/scoped_ptr.hpp> + class SvtDocInfoTable_Impl; namespace com { namespace sun { namespace star { diff --git a/include/vcl/edit.hxx b/include/vcl/edit.hxx index c134780ee035..a24598516aef 100644 --- a/include/vcl/edit.hxx +++ b/include/vcl/edit.hxx @@ -20,17 +20,23 @@ #ifndef INCLUDED_VCL_EDIT_HXX #define INCLUDED_VCL_EDIT_HXX -#include <boost/signals2/signal.hpp> +#include <vcl/ctrl.hxx> + +#include <functional> +#include <memory> + #include <tools/solar.h> #include <vcl/dllapi.h> #include <vcl/timer.hxx> #include <vcl/idle.hxx> -#include <vcl/ctrl.hxx> #include <vcl/menu.hxx> #include <vcl/dndhelp.hxx> #include <vcl/vclptr.hxx> #include <com/sun/star/uno/Reference.h> +// forward declare signals stuff - those headers are staggeringly expensive +namespace boost { namespace signals2 { class connection; } } + namespace com { namespace sun { namespace star { @@ -68,6 +74,9 @@ enum AutocompleteAction{ AUTOCOMPLETE_KEYINPUT, AUTOCOMPLETE_TABFORWARD, AUTOCOM class VCL_DLLPUBLIC Edit : public Control, public vcl::unohelper::DragAndDropClient { private: + struct Impl; + ::std::unique_ptr<Impl> m_pImpl; + VclPtr<Edit> mpSubEdit; Timer* mpUpdateDataTimer; TextFilter* mpFilterText; @@ -244,7 +253,8 @@ public: void SetSubEdit( Edit* pEdit ); Edit* GetSubEdit() const { return mpSubEdit; } - boost::signals2::signal< void ( Edit* ) > autocompleteSignal; + void SignalConnectAutocomplete(::boost::signals2::connection * pConnection, + ::std::function<void (Edit *)>); AutocompleteAction GetAutocompleteAction() const { return meAutocompleteAction; } virtual Size CalcMinimumSize() const; diff --git a/sd/source/filter/ppt/pptinanimations.cxx b/sd/source/filter/ppt/pptinanimations.cxx index d5ed3721c012..f1e8b2202515 100644 --- a/sd/source/filter/ppt/pptinanimations.cxx +++ b/sd/source/filter/ppt/pptinanimations.cxx @@ -65,6 +65,9 @@ #include <pptatom.hxx> #include "pptin.hxx" #include "randomnode.hxx" + +#include <boost/scoped_ptr.hpp> + #include <algorithm> using ::std::map; diff --git a/sd/source/ui/func/fuoltext.cxx b/sd/source/ui/func/fuoltext.cxx index 79c13a17a444..b7fbe74f2c7a 100644 --- a/sd/source/ui/func/fuoltext.cxx +++ b/sd/source/ui/func/fuoltext.cxx @@ -35,6 +35,8 @@ #include "ViewShell.hxx" #include "OutlineViewShell.hxx" +#include <boost/scoped_ptr.hpp> + #include <stdio.h> namespace sd { diff --git a/sd/source/ui/slidesorter/cache/SlsRequestQueue.hxx b/sd/source/ui/slidesorter/cache/SlsRequestQueue.hxx index 5bec93d8e788..21b47c24bef7 100644 --- a/sd/source/ui/slidesorter/cache/SlsRequestQueue.hxx +++ b/sd/source/ui/slidesorter/cache/SlsRequestQueue.hxx @@ -27,6 +27,9 @@ #include <osl/mutex.hxx> #include <svx/sdrpageuser.hxx> +#include <boost/scoped_ptr.hpp> + + namespace sd { namespace slidesorter { namespace cache { class RequestData; diff --git a/sd/source/ui/slidesorter/controller/SlideSorterController.cxx b/sd/source/ui/slidesorter/controller/SlideSorterController.cxx index 316189fd0c2e..1aaae267a10a 100644 --- a/sd/source/ui/slidesorter/controller/SlideSorterController.cxx +++ b/sd/source/ui/slidesorter/controller/SlideSorterController.cxx @@ -83,6 +83,8 @@ #include <com/sun/star/drawing/XDrawPages.hpp> #include <com/sun/star/accessibility/AccessibleEventId.hpp> +#include <boost/scoped_ptr.hpp> + using namespace ::com::sun::star; using namespace ::com::sun::star::uno; using namespace ::sd::slidesorter::model; diff --git a/sd/source/ui/slidesorter/inc/controller/SlideSorterController.hxx b/sd/source/ui/slidesorter/inc/controller/SlideSorterController.hxx index 62818dc4ebc3..6923b111bbb4 100644 --- a/sd/source/ui/slidesorter/inc/controller/SlideSorterController.hxx +++ b/sd/source/ui/slidesorter/inc/controller/SlideSorterController.hxx @@ -30,6 +30,8 @@ #include <tools/link.hxx> #include <tools/gen.hxx> +#include <boost/scoped_ptr.hpp> + namespace sd { namespace slidesorter { class SlideSorter; } } diff --git a/sd/source/ui/tools/PreviewRenderer.cxx b/sd/source/ui/tools/PreviewRenderer.cxx index 66032635a626..4cf26949ace4 100644 --- a/sd/source/ui/tools/PreviewRenderer.cxx +++ b/sd/source/ui/tools/PreviewRenderer.cxx @@ -36,6 +36,8 @@ #include <svx/sdr/contact/viewobjectcontact.hxx> #include <svx/sdr/contact/viewcontact.hxx> +#include <boost/scoped_ptr.hpp> + using namespace ::com::sun::star; using namespace ::com::sun::star::uno; diff --git a/sfx2/source/dialog/templdlg.cxx b/sfx2/source/dialog/templdlg.cxx index d4e01ca20fdd..5b91be93f979 100644 --- a/sfx2/source/dialog/templdlg.cxx +++ b/sfx2/source/dialog/templdlg.cxx @@ -18,6 +18,7 @@ */ #include <boost/noncopyable.hpp> +#include <boost/scoped_ptr.hpp> #include <vcl/menu.hxx> #include <vcl/settings.hxx> diff --git a/sfx2/source/doc/graphhelp.cxx b/sfx2/source/doc/graphhelp.cxx index ca19d1bf8ce5..1167db357c70 100644 --- a/sfx2/source/doc/graphhelp.cxx +++ b/sfx2/source/doc/graphhelp.cxx @@ -53,6 +53,8 @@ #include "graphhelp.hxx" #include "doc.hrc" +#include <boost/scoped_ptr.hpp> + using namespace css; SvMemoryStream* GraphicHelper::getFormatStrFromGDI_Impl( const GDIMetaFile* pGDIMeta, ConvertDataFormat nFormat ) diff --git a/svtools/source/control/inettbc.cxx b/svtools/source/control/inettbc.cxx index 4f3419845726..7579687add13 100644 --- a/svtools/source/control/inettbc.cxx +++ b/svtools/source/control/inettbc.cxx @@ -893,7 +893,8 @@ void SvtURLBox::Init(bool bSetDefaultHelpID) SetText( OUString() ); - GetSubEdit()->autocompleteSignal.connect( boost::bind( &SvtURLBox::AutoCompleteHandler, this, _1 ) ); + GetSubEdit()->SignalConnectAutocomplete(nullptr, + [this] (Edit *const pEdit) { this->AutoCompleteHandler(pEdit); } ); UpdatePicklistForSmartProtocol_Impl(); EnableAutoSize(GetStyle() & WB_AUTOSIZE); diff --git a/svtools/source/control/ruler.cxx b/svtools/source/control/ruler.cxx index 4595b42028e5..0d6c6ab05f88 100644 --- a/svtools/source/control/ruler.cxx +++ b/svtools/source/control/ruler.cxx @@ -29,6 +29,8 @@ #include <svtools/svtools.hrc> #include <svtools/colorcfg.hxx> +#include <boost/scoped_ptr.hpp> + #include <vector> using namespace std; diff --git a/svx/source/fmcomp/gridctrl.cxx b/svx/source/fmcomp/gridctrl.cxx index cdb33028fbf8..3607211f467b 100644 --- a/svx/source/fmcomp/gridctrl.cxx +++ b/svx/source/fmcomp/gridctrl.cxx @@ -56,6 +56,8 @@ #include <comphelper/property.hxx> +#include <boost/scoped_ptr.hpp> + #include <algorithm> #include <cstdlib> #include <map> diff --git a/svx/source/form/fmtextcontrolshell.cxx b/svx/source/form/fmtextcontrolshell.cxx index fab7097f3f32..62a07c8117b5 100644 --- a/svx/source/form/fmtextcontrolshell.cxx +++ b/svx/source/form/fmtextcontrolshell.cxx @@ -63,6 +63,8 @@ #include <vcl/outdev.hxx> #include <osl/mutex.hxx> +#include <boost/scoped_ptr.hpp> + namespace svx { diff --git a/svx/source/svdraw/svdedxv.cxx b/svx/source/svdraw/svdedxv.cxx index f577522e4066..dc7f4f688788 100644 --- a/svx/source/svdraw/svdedxv.cxx +++ b/svx/source/svdraw/svdedxv.cxx @@ -60,6 +60,9 @@ #include <sdr/overlay/overlaytools.hxx> #include <svx/sdr/table/tablecontroller.hxx> #include <drawinglayer/processor2d/processor2dtools.hxx> + +#include <boost/scoped_ptr.hpp> + #include <memory> diff --git a/sw/source/core/text/pormulti.cxx b/sw/source/core/text/pormulti.cxx index ca60bae72fc2..d66702e0ab7e 100644 --- a/sw/source/core/text/pormulti.cxx +++ b/sw/source/core/text/pormulti.cxx @@ -50,6 +50,8 @@ #include <swtable.hxx> #include <fmtfsize.hxx> +#include <boost/scoped_ptr.hpp> + using namespace ::com::sun::star; // A SwMultiPortion is not a simple portion, diff --git a/sw/source/filter/ww8/docxtablestyleexport.cxx b/sw/source/filter/ww8/docxtablestyleexport.cxx index 60510dab978f..1142f3551b51 100644 --- a/sw/source/filter/ww8/docxtablestyleexport.cxx +++ b/sw/source/filter/ww8/docxtablestyleexport.cxx @@ -15,6 +15,8 @@ #include <comphelper/sequenceashashmap.hxx> #include <o3tl/make_unique.hxx> +#include <boost/optional.hpp> + using namespace com::sun::star; using namespace oox; diff --git a/vcl/source/control/combobox.cxx b/vcl/source/control/combobox.cxx index 15a3c0986588..9249acb8d616 100644 --- a/vcl/source/control/combobox.cxx +++ b/vcl/source/control/combobox.cxx @@ -284,8 +284,12 @@ void ComboBox::EnableAutocomplete( bool bEnable, bool bMatchCase ) if ( bEnable ) { if( !m_pImpl->m_AutocompleteConnection.connected()) - m_pImpl->m_AutocompleteConnection = m_pImpl->m_pSubEdit->autocompleteSignal.connect( - boost::bind( &ComboBox::Impl::ImplAutocompleteHandler, m_pImpl.get(), _1 ) ); + { + m_pImpl->m_pSubEdit->SignalConnectAutocomplete( + &m_pImpl->m_AutocompleteConnection, + [this] (Edit *const pEdit) { m_pImpl->ImplAutocompleteHandler(pEdit); } + ); + } } else m_pImpl->m_AutocompleteConnection.disconnect(); diff --git a/vcl/source/control/edit.cxx b/vcl/source/control/edit.cxx index ce1d9bb8b73c..43ba36c26f1e 100644 --- a/vcl/source/control/edit.cxx +++ b/vcl/source/control/edit.cxx @@ -65,6 +65,9 @@ #include <vcl/unohelp2.hxx> #include <officecfg/Office/Common.hxx> + +#include <boost/signals2/signal.hpp> + #include <memory> using namespace ::com::sun::star; @@ -154,21 +157,29 @@ void Impl_IMEInfos::DestroyAttribs() nLen = 0; } -Edit::Edit( WindowType nType ) : - Control( nType ) +struct Edit::Impl +{ + boost::signals2::signal< void (Edit *) > m_AutocompleteSignal; +}; + +Edit::Edit( WindowType nType ) + : Control( nType ) + , m_pImpl(new Impl) { ImplInitEditData(); } -Edit::Edit( vcl::Window* pParent, WinBits nStyle ) : - Control( WINDOW_EDIT ) +Edit::Edit( vcl::Window* pParent, WinBits nStyle ) + : Control( WINDOW_EDIT ) + , m_pImpl(new Impl) { ImplInitEditData(); ImplInit( pParent, nStyle ); } -Edit::Edit( vcl::Window* pParent, const ResId& rResId ) : - Control( WINDOW_EDIT ) +Edit::Edit( vcl::Window* pParent, const ResId& rResId ) + : Control( WINDOW_EDIT ) + , m_pImpl(new Impl) { rResId.SetRT( RSC_EDIT ); WinBits nStyle = ImplInitRes( rResId ); @@ -1639,12 +1650,12 @@ bool Edit::ImplHandleKeyEvent( const KeyEvent& rKEvt ) ImplCopyToSelectionClipboard(); } - if ( bGoEnd && !autocompleteSignal.empty() && !rKEvt.GetKeyCode().GetModifier() ) + if (bGoEnd && !m_pImpl->m_AutocompleteSignal.empty() && !rKEvt.GetKeyCode().GetModifier()) { if ( (maSelection.Min() == maSelection.Max()) && (maSelection.Min() == maText.getLength()) ) { meAutocompleteAction = AUTOCOMPLETE_KEYINPUT; - autocompleteSignal( this ); + m_pImpl->m_AutocompleteSignal( this ); } } @@ -1739,12 +1750,12 @@ bool Edit::ImplHandleKeyEvent( const KeyEvent& rKEvt ) if ( !mbReadOnly ) { ImplInsertText(OUString(rKEvt.GetCharCode()), 0, true); - if ( !autocompleteSignal.empty() ) + if (!m_pImpl->m_AutocompleteSignal.empty()) { if ( (maSelection.Min() == maSelection.Max()) && (maSelection.Min() == maText.getLength()) ) { meAutocompleteAction = AUTOCOMPLETE_KEYINPUT; - autocompleteSignal( this ); + m_pImpl->m_AutocompleteSignal( this ); } } } @@ -2103,12 +2114,12 @@ void Edit::Command( const CommandEvent& rCEvt ) Invalidate(); // #i25161# call auto complete handler for ext text commit also - if ( autocompleteSignal.empty() ) + if (m_pImpl->m_AutocompleteSignal.empty()) { if ( (maSelection.Min() == maSelection.Max()) && (maSelection.Min() == maText.getLength()) ) { meAutocompleteAction = AUTOCOMPLETE_KEYINPUT; - autocompleteSignal( this ); + m_pImpl->m_AutocompleteSignal( this ); } } } @@ -2720,7 +2731,7 @@ void Edit::SetSubEdit(Edit* pEdit) mpSubEdit->mbIsSubEdit = true; mpSubEdit->SetReadOnly(mbReadOnly); - mpSubEdit->autocompleteSignal.connect(autocompleteSignal); + mpSubEdit->m_pImpl->m_AutocompleteSignal.connect(m_pImpl->m_AutocompleteSignal); } } @@ -3047,4 +3058,14 @@ Selection Edit::GetSurroundingTextSelection() const return GetSelection(); } +void Edit::SignalConnectAutocomplete( + boost::signals2::connection *const pConnection, + std::function<void (Edit *)> slot) +{ + boost::signals2::connection const& rConnection( + m_pImpl->m_AutocompleteSignal.connect(slot)); + if (pConnection) + *pConnection = rConnection; +} + /* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/vcl/source/filter/wmf/wmf.cxx b/vcl/source/filter/wmf/wmf.cxx index 21ab4a46c8be..c566bc3e7b04 100644 --- a/vcl/source/filter/wmf/wmf.cxx +++ b/vcl/source/filter/wmf/wmf.cxx @@ -24,6 +24,8 @@ #include <vcl/gdimetafiletools.hxx> #include <comphelper/scopeguard.hxx> +#include <boost/bind.hpp> + bool ConvertWMFToGDIMetaFile( SvStream & rStreamWMF, GDIMetaFile & rGDIMetaFile, FilterConfigItem* pConfigItem, WMF_EXTERNALHEADER *pExtHeader ) { sal_uInt32 nMetaType; diff --git a/vcl/unx/generic/window/salframe.cxx b/vcl/unx/generic/window/salframe.cxx index 4ce6f75aee82..d11e52056b89 100644 --- a/vcl/unx/generic/window/salframe.cxx +++ b/vcl/unx/generic/window/salframe.cxx @@ -70,6 +70,8 @@ #include "svids.hrc" #include "impbmp.hxx" +#include <boost/optional.hpp> + #include <algorithm> #ifndef Button6 |