diff options
author | Michael Meeks <michael.meeks@collabora.com> | 2015-01-01 09:42:15 +0000 |
---|---|---|
committer | Michael Meeks <michael.meeks@collabora.com> | 2015-04-09 19:53:19 +0100 |
commit | 2e03ce9e18ed9d3fe39e8ae847b803ab42234737 (patch) | |
tree | 9f5498aa24c1f864ed58cd2e7aa55cc5fbec8169 /include/vcl/edit.hxx | |
parent | vcl: convert MessageDialog to use VclReferences. (diff) | |
download | core-2e03ce9e18ed9d3fe39e8ae847b803ab42234737.tar.gz core-2e03ce9e18ed9d3fe39e8ae847b803ab42234737.zip |
vcl: manage SubEdit with references - and fix leak / cleanup.
Change-Id: Icbfe237a55cfbd83739b055350d5a6a54a2fa36d
Conflicts:
vcl/source/control/edit.cxx
Diffstat (limited to 'include/vcl/edit.hxx')
-rw-r--r-- | include/vcl/edit.hxx | 13 |
1 files changed, 8 insertions, 5 deletions
diff --git a/include/vcl/edit.hxx b/include/vcl/edit.hxx index ec05923011b8..5a28ecb58360 100644 --- a/include/vcl/edit.hxx +++ b/include/vcl/edit.hxx @@ -28,6 +28,7 @@ #include <vcl/ctrl.hxx> #include <vcl/menu.hxx> #include <vcl/dndhelp.hxx> +#include <vcl/vclref.hxx> #include <com/sun/star/uno/Reference.h> namespace com { @@ -68,7 +69,7 @@ enum AutocompleteAction{ AUTOCOMPLETE_KEYINPUT, AUTOCOMPLETE_TABFORWARD, AUTOCOM class VCL_DLLPUBLIC Edit : public Control, public vcl::unohelper::DragAndDropClient { private: - Edit* mpSubEdit; + VclReference<Edit> mpSubEdit; Timer* mpUpdateDataTimer; TextFilter* mpFilterText; DDInfo* mpDDInfo; @@ -85,7 +86,7 @@ private: sal_Int32 mnMaxWidthChars; AutocompleteAction meAutocompleteAction; sal_Unicode mcEchoChar; - bool mbModified:1, + bool mbModified:1, mbInternModified:1, mbReadOnly:1, mbInsertMode:1, @@ -164,6 +165,7 @@ public: Edit( vcl::Window* pParent, WinBits nStyle = WB_BORDER ); Edit( vcl::Window* pParent, const ResId& rResId ); virtual ~Edit(); + virtual void dispose() SAL_OVERRIDE; virtual void MouseButtonDown( const MouseEvent& rMEvt ) SAL_OVERRIDE; virtual void MouseButtonUp( const MouseEvent& rMEvt ) SAL_OVERRIDE; @@ -186,7 +188,7 @@ public: virtual void SetModifyFlag(); virtual void ClearModifyFlag(); - virtual bool IsModified() const { return mpSubEdit ? mpSubEdit->mbModified : mbModified; } + virtual bool IsModified() const { return mpSubEdit.get() ? mpSubEdit->mbModified : mbModified; } virtual void EnableUpdateData( sal_uLong nTimeout = EDIT_UPDATEDATA_TIMEOUT ); virtual void DisableUpdateData() { delete mpUpdateDataTimer; mpUpdateDataTimer = NULL; } @@ -235,8 +237,8 @@ public: virtual const Link& GetModifyHdl() const { return maModifyHdl; } virtual void SetUpdateDataHdl( const Link& rLink ) { maUpdateDataHdl = rLink; } - void SetSubEdit( Edit* pEdit ); - Edit* GetSubEdit() const { return mpSubEdit; } + void SetSubEdit( VclReference<Edit> pEdit ); + Edit* GetSubEdit() const { return mpSubEdit.get(); } boost::signals2::signal< void ( Edit* ) > autocompleteSignal; AutocompleteAction GetAutocompleteAction() const { return meAutocompleteAction; } @@ -268,6 +270,7 @@ public: // global style settings (needed by sc's inputwin.cxx) static Size GetMinimumEditSize(); }; +typedef VclReference<Edit> EditRef; #endif // INCLUDED_VCL_EDIT_HXX |