[Libreoffice-commits] core.git: framework/inc framework/source solenv/sanitizers svtools/uiconfig svtools/UIConfig_svt.mk
framework/inc/uielement/spinfieldtoolbarcontroller.hxx|4 framework/source/uielement/spinfieldtoolbarcontroller.cxx | 249 ++ solenv/sanitizers/ui/svt.suppr|1 svtools/UIConfig_svt.mk |1 svtools/uiconfig/ui/spinfieldcontrol.ui | 29 + 5 files changed, 146 insertions(+), 138 deletions(-) New commits: commit 07875e36f7f8aab16e5a1e5e78c189e572d57bf8 Author: Caolán McNamara AuthorDate: Thu Jun 25 21:24:03 2020 +0100 Commit: Caolán McNamara CommitDate: Fri Jun 26 15:44:11 2020 +0200 weld SpinfieldControl Change-Id: I1696105ead648c86076f05f50f6286e9a3a932d4 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/97218 Tested-by: Jenkins Reviewed-by: Caolán McNamara diff --git a/framework/inc/uielement/spinfieldtoolbarcontroller.hxx b/framework/inc/uielement/spinfieldtoolbarcontroller.hxx index 8445110b896b..3e2af6c78719 100644 --- a/framework/inc/uielement/spinfieldtoolbarcontroller.hxx +++ b/framework/inc/uielement/spinfieldtoolbarcontroller.hxx @@ -56,14 +56,14 @@ class SpinfieldToolbarController final : public ComplexToolbarController void Modify(); void GetFocus(); void LoseFocus(); -bool PreNotify( NotifyEvent const & rNEvt ); +void Activate(); +OUString FormatOutputString(double fValue); private: virtual void executeControlCommand( const css::frame::ControlCommand& rControlCommand ) override; virtual css::uno::Sequence< css::beans::PropertyValue> getExecuteArgs(sal_Int16 KeyModifier) const override; bool impl_getValue( const css::uno::Any& rAny, sal_Int32& nValue, double& fValue, bool& bFloat ); -OUString impl_formatOutputString( double fValue ); bool m_bFloat, m_bMaxSet, diff --git a/framework/source/uielement/spinfieldtoolbarcontroller.cxx b/framework/source/uielement/spinfieldtoolbarcontroller.cxx index db3f9d67781c..1dad7b918683 100644 --- a/framework/source/uielement/spinfieldtoolbarcontroller.cxx +++ b/framework/source/uielement/spinfieldtoolbarcontroller.cxx @@ -26,8 +26,8 @@ #include #include +#include #include -#include #include #include #include @@ -46,101 +46,135 @@ namespace framework // Unfortunaltly the events are notified through virtual methods instead // of Listeners. -class SpinfieldControl : public SpinField +class SpinfieldControl final : public InterimItemWindow { -public: -SpinfieldControl( vcl::Window* pParent, WinBits nStyle, SpinfieldToolbarController* pSpinfieldToolbarController ); -virtual ~SpinfieldControl() override; -virtual void dispose() override; - -virtual void Up() override; -virtual void Down() override; -virtual void First() override; -virtual void Last() override; -virtual void Modify() override; -virtual void GetFocus() override; -virtual void LoseFocus() override; -virtual bool PreNotify( NotifyEvent& rNEvt ) override; - -private: -SpinfieldToolbarController* m_pSpinfieldToolbarController; -}; +public: +SpinfieldControl(vcl::Window* pParent, SpinfieldToolbarController* pSpinfieldToolbarController); +virtual ~SpinfieldControl() override; +virtual void dispose() override; -SpinfieldControl::SpinfieldControl( vcl::Window* pParent, WinBits nStyle, SpinfieldToolbarController* pSpinfieldToolbarController ) : -SpinField( pParent, nStyle ) -, m_pSpinfieldToolbarController( pSpinfieldToolbarController ) -{ -} +void set_value(double fValue); -SpinfieldControl::~SpinfieldControl() +void set_digits(int nDigits) +{ +m_xWidget->set_digits(nDigits); +} + +void set_min(double fMin) +{ +m_xWidget->set_min(fMin); +} + +void set_max(double fMax) +{ +m_xWidget->set_max(fMax); +} + +void set_step(double fStep) +{ +m_xWidget->set_increments(fStep, fStep * 10); +} + +OUString get_entry_text() const { return m_xWidget->get_text(); } + +DECL_LINK(ValueChangedHdl, weld::FormattedSpinButton&, void); +DECL_LINK(FormatOutputHdl, weld::FormattedSpinButton&, void); +DECL_LINK(ParseInputHdl, double*, bool); +DECL_LINK(ModifyHdl, weld::Entry&, void); +DECL_LINK(ActivateHdl, weld::Entry&, bool); +DECL_LINK(FocusInHdl, weld::Widget&, void); +DECL_LINK(FocusOutHdl, weld::Widget&, void); + +private: +std::unique_ptr m_xWidget; +SpinfieldToolbarController* m_pSpinfieldToolbarController; +}; + +SpinfieldControl::SpinfieldControl(vcl::Window* pParent, SpinfieldToolbarController* pSpinfieldToolbarController) +: InterimItemWindow(pParent, "svt/ui/spinfieldcontrol.ui", "SpinFieldControl") +, m_xWidget(m_xBuilder->weld_formatted_spin_button("spinbutton")) +, m_pSpinfieldToolbarController(pSpinfieldToolbarController) { -
[Libreoffice-commits] core.git: framework/inc framework/source solenv/sanitizers svtools/uiconfig svtools/UIConfig_svt.mk
framework/inc/uielement/edittoolbarcontroller.hxx|2 framework/source/uielement/edittoolbarcontroller.cxx | 102 --- solenv/sanitizers/ui/svt.suppr |1 svtools/UIConfig_svt.mk |1 svtools/uiconfig/ui/editcontrol.ui | 26 5 files changed, 77 insertions(+), 55 deletions(-) New commits: commit 0ea8aab3ed9defd45de4b64d7bfbbd05b3053e0a Author: Caolán McNamara AuthorDate: Wed Apr 22 14:17:20 2020 +0100 Commit: Caolán McNamara CommitDate: Wed Apr 22 20:10:56 2020 +0200 weld EditControl as used by the LibreLogo toolbar Change-Id: Ice60d1f5146a58cab5bab44a12a2bdcf4dbd77ec Reviewed-on: https://gerrit.libreoffice.org/c/core/+/92703 Tested-by: Jenkins Reviewed-by: Caolán McNamara diff --git a/framework/inc/uielement/edittoolbarcontroller.hxx b/framework/inc/uielement/edittoolbarcontroller.hxx index 3344ed1319f2..193af5920634 100644 --- a/framework/inc/uielement/edittoolbarcontroller.hxx +++ b/framework/inc/uielement/edittoolbarcontroller.hxx @@ -51,7 +51,7 @@ class EditToolbarController final : public ComplexToolbarController void Modify(); void GetFocus(); void LoseFocus(); -bool PreNotify( NotifyEvent const & rNEvt ); +void Activate(); private: virtual void executeControlCommand( const css::frame::ControlCommand& rControlCommand ) override; diff --git a/framework/source/uielement/edittoolbarcontroller.cxx b/framework/source/uielement/edittoolbarcontroller.cxx index 5b6cd39cd45d..52c5164629db 100644 --- a/framework/source/uielement/edittoolbarcontroller.cxx +++ b/framework/source/uielement/edittoolbarcontroller.cxx @@ -20,12 +20,11 @@ #include #include - +#include #include #include #include #include -#include using namespace ::com::sun::star; using namespace css::uno; @@ -41,26 +40,37 @@ namespace framework // Unfortunaltly the events are notified through virtual methods instead // of Listeners. -class EditControl : public Edit +class EditControl : public InterimItemWindow { -public: -EditControl( vcl::Window* pParent, WinBits nStyle, EditToolbarController* pEditToolbarController ); -virtual ~EditControl() override; -virtual void dispose() override; +public: +EditControl(vcl::Window* pParent, EditToolbarController* pEditToolbarController); +virtual ~EditControl() override; +virtual void dispose() override; + +OUString get_text() const { return m_xWidget->get_text(); } +void set_text(const OUString& rText) { m_xWidget->set_text(rText); } -virtual void Modify() override; -virtual void GetFocus() override; -virtual void LoseFocus() override; -virtual bool PreNotify( NotifyEvent& rNEvt ) override; +private: +std::unique_ptr m_xWidget; +EditToolbarController* m_pEditToolbarController; -private: -EditToolbarController* m_pEditToolbarController; +DECL_LINK(FocusInHdl, weld::Widget&, void); +DECL_LINK(FocusOutHdl, weld::Widget&, void); +DECL_LINK(ModifyHdl, weld::Entry&, void); +DECL_LINK(ActivateHdl, weld::Entry&, bool); }; -EditControl::EditControl( vcl::Window* pParent, WinBits nStyle, EditToolbarController* pEditToolbarController ) : -Edit( pParent, nStyle ) -, m_pEditToolbarController( pEditToolbarController ) +EditControl::EditControl(vcl::Window* pParent, EditToolbarController* pEditToolbarController) +: InterimItemWindow(pParent, "svt/ui/editcontrol.ui", "EditControl") +, m_xWidget(m_xBuilder->weld_entry("entry")) +, m_pEditToolbarController(pEditToolbarController) { +m_xWidget->connect_focus_in(LINK(this, EditControl, FocusInHdl)); +m_xWidget->connect_focus_out(LINK(this, EditControl, FocusOutHdl)); +m_xWidget->connect_changed(LINK(this, EditControl, ModifyHdl)); +m_xWidget->connect_activate(LINK(this, EditControl, ActivateHdl)); + +SetSizePixel(get_preferred_size()); } EditControl::~EditControl() @@ -71,39 +81,34 @@ EditControl::~EditControl() void EditControl::dispose() { m_pEditToolbarController = nullptr; -Edit::dispose(); +m_xWidget.reset(); +InterimItemWindow::dispose(); } -void EditControl::Modify() +IMPL_LINK_NOARG(EditControl, ModifyHdl, weld::Entry&, void) { -Edit::Modify(); -if ( m_pEditToolbarController ) +if (m_pEditToolbarController) m_pEditToolbarController->Modify(); } -void EditControl::GetFocus() +IMPL_LINK_NOARG(EditControl, FocusInHdl, weld::Widget&, void) { -Edit::GetFocus(); -if ( m_pEditToolbarController ) +if (m_pEditToolbarController) m_pEditToolbarController->GetFocus(); } -void EditControl::LoseFocus() +IMPL_LINK_NOARG(EditControl, FocusOutHdl, weld::Widget&, void) { -Edit::LoseFocus(); if ( m_pEditToolbarController ) m_pEditToolbarController->LoseFocus(); } -bool