vcl/inc/calendar.hxx | 2 vcl/inc/salvtables.hxx | 43 +++++++++++++++ vcl/source/app/salvtables.cxx | 114 ++++++++++++++-------------------------- vcl/source/control/calendar.cxx | 13 ++++ 4 files changed, 100 insertions(+), 72 deletions(-)
New commits: commit 97c56d3d8912391d6151e99de27d91c1f0c4561f Author: Szymon Kłos <szymon.k...@collabora.com> AuthorDate: Thu Jul 6 15:15:50 2023 +0200 Commit: Szymon Kłos <szymon.k...@collabora.com> CommitDate: Tue Jul 11 21:49:35 2023 +0200 jsdialog: dump calendar data Change-Id: I51d5e553c5ec1ba9fa5fd63844621368f3cedbd8 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/154133 Tested-by: Jenkins CollaboraOffice <jenkinscollaboraoff...@gmail.com> Reviewed-by: Szymon Kłos <szymon.k...@collabora.com> (cherry picked from commit b61b6fa6ee97a735ba30a4b725075b4c0fffbdd5) Reviewed-on: https://gerrit.libreoffice.org/c/core/+/154314 Tested-by: Jenkins diff --git a/vcl/inc/calendar.hxx b/vcl/inc/calendar.hxx index 5d757e056170..9c96b83708e5 100644 --- a/vcl/inc/calendar.hxx +++ b/vcl/inc/calendar.hxx @@ -220,6 +220,8 @@ public: void SetSelectHdl( const Link<Calendar*,void>& rLink ) { maSelectHdl = rLink; } void SetActivateHdl( const Link<Calendar*,void>& rLink ) { maActivateHdl = rLink; } + + virtual void DumpAsPropertyTree(tools::JsonWriter&) override; }; #endif // INCLUDED_VCL_CALENDAR_HXX diff --git a/vcl/source/control/calendar.cxx b/vcl/source/control/calendar.cxx index 5f437ff0300e..cce0bce63a3a 100644 --- a/vcl/source/control/calendar.cxx +++ b/vcl/source/control/calendar.cxx @@ -33,6 +33,7 @@ #include <com/sun/star/i18n/CalendarDisplayIndex.hpp> #include <com/sun/star/i18n/CalendarFieldIndex.hpp> #include <sal/log.hxx> +#include <tools/json_writer.hxx> #include <calendar.hxx> #include <svdata.hxx> @@ -1521,6 +1522,18 @@ Size Calendar::GetOptimalSize() const return CalcWindowSizePixel(); } +void Calendar::DumpAsPropertyTree(tools::JsonWriter& rJsonWriter) +{ + Control::DumpAsPropertyTree(rJsonWriter); + + auto aDate = GetFirstSelectedDate(); + + rJsonWriter.put("type", "calendar"); + rJsonWriter.put("day", aDate.GetDay()); + rJsonWriter.put("month", aDate.GetMonth()); + rJsonWriter.put("year", aDate.GetYear()); +} + namespace { class ImplCFieldFloat final commit 11d874ee2fc1aeaa468648027050d677ac664ef7 Author: Szymon Kłos <szymon.k...@collabora.com> AuthorDate: Fri Jul 7 17:56:46 2023 +0200 Commit: Szymon Kłos <szymon.k...@collabora.com> CommitDate: Tue Jul 11 21:49:30 2023 +0200 Move SalInstanceFormattedSpinButton decl to header Change-Id: I64582387b9169efa700a0df5c89e042a9a150423 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/154192 Tested-by: Jenkins CollaboraOffice <jenkinscollaboraoff...@gmail.com> Reviewed-by: Pranam Lashkari <lpra...@collabora.com> (cherry picked from commit b0de1f5fc3b6170f562328de8abd3680f2382a7a) Reviewed-on: https://gerrit.libreoffice.org/c/core/+/154313 Tested-by: Jenkins Reviewed-by: Szymon Kłos <szymon.k...@collabora.com> diff --git a/vcl/inc/salvtables.hxx b/vcl/inc/salvtables.hxx index d3949cd68590..04a42c3a8929 100644 --- a/vcl/inc/salvtables.hxx +++ b/vcl/inc/salvtables.hxx @@ -2207,4 +2207,47 @@ public: } }; +class SalInstanceFormattedSpinButton : public SalInstanceEntry, + public virtual weld::FormattedSpinButton +{ +private: + VclPtr<FormattedField> m_xButton; + weld::EntryFormatter* m_pFormatter; + Link<weld::Widget&, void> m_aLoseFocusHdl; + + DECL_LINK(UpDownHdl, SpinField&, void); + DECL_LINK(LoseFocusHdl, Control&, void); + +public: + SalInstanceFormattedSpinButton(FormattedField* pButton, SalInstanceBuilder* pBuilder, + bool bTakeOwnership); + + virtual void set_text(const OUString& rText) override; + + virtual void connect_changed(const Link<weld::Entry&, void>& rLink) override; + + virtual void connect_focus_out(const Link<weld::Widget&, void>& rLink) override; + + virtual void SetFormatter(weld::EntryFormatter* pFormatter) override; + + virtual void sync_value_from_formatter() override + { + // no-op for gen + } + + virtual void sync_range_from_formatter() override + { + // no-op for gen + } + + virtual void sync_increments_from_formatter() override + { + // no-op for gen + } + + virtual Formatter& GetFormatter() override; + + virtual ~SalInstanceFormattedSpinButton() override; +}; + /* vim:set shiftwidth=4 softtabstop=4 expandtab cinoptions=b1,g0,N-s cinkeys+=0=break: */ diff --git a/vcl/source/app/salvtables.cxx b/vcl/source/app/salvtables.cxx index 4de845997375..bd1778308314 100644 --- a/vcl/source/app/salvtables.cxx +++ b/vcl/source/app/salvtables.cxx @@ -5805,88 +5805,59 @@ IMPL_LINK(SalInstanceSpinButton, InputHdl, sal_Int64*, pResult, TriState) return eRet; } -namespace -{ -class SalInstanceFormattedSpinButton : public SalInstanceEntry, - public virtual weld::FormattedSpinButton +SalInstanceFormattedSpinButton::SalInstanceFormattedSpinButton(FormattedField* pButton, + SalInstanceBuilder* pBuilder, + bool bTakeOwnership) + : SalInstanceEntry(pButton, pBuilder, bTakeOwnership) + , m_xButton(pButton) + , m_pFormatter(nullptr) { -private: - VclPtr<FormattedField> m_xButton; - weld::EntryFormatter* m_pFormatter; - Link<weld::Widget&, void> m_aLoseFocusHdl; - - DECL_LINK(UpDownHdl, SpinField&, void); - DECL_LINK(LoseFocusHdl, Control&, void); - -public: - SalInstanceFormattedSpinButton(FormattedField* pButton, SalInstanceBuilder* pBuilder, - bool bTakeOwnership) - : SalInstanceEntry(pButton, pBuilder, bTakeOwnership) - , m_xButton(pButton) - , m_pFormatter(nullptr) - { - m_xButton->SetUpHdl(LINK(this, SalInstanceFormattedSpinButton, UpDownHdl)); - m_xButton->SetDownHdl(LINK(this, SalInstanceFormattedSpinButton, UpDownHdl)); - m_xButton->SetLoseFocusHdl(LINK(this, SalInstanceFormattedSpinButton, LoseFocusHdl)); - } - - virtual void set_text(const OUString& rText) override - { - disable_notify_events(); - m_xButton->SpinField::SetText(rText); - enable_notify_events(); - } - - virtual void connect_changed(const Link<weld::Entry&, void>& rLink) override - { - if (!m_pFormatter) // once a formatter is set, it takes over "changed" - { - SalInstanceEntry::connect_changed(rLink); - return; - } - m_pFormatter->connect_changed(rLink); - } - - virtual void connect_focus_out(const Link<weld::Widget&, void>& rLink) override - { - if (!m_pFormatter) // once a formatter is set, it takes over "focus-out" - { - m_aLoseFocusHdl = rLink; - return; - } - m_pFormatter->connect_focus_out(rLink); - } + m_xButton->SetUpHdl(LINK(this, SalInstanceFormattedSpinButton, UpDownHdl)); + m_xButton->SetDownHdl(LINK(this, SalInstanceFormattedSpinButton, UpDownHdl)); + m_xButton->SetLoseFocusHdl(LINK(this, SalInstanceFormattedSpinButton, LoseFocusHdl)); +} - virtual void SetFormatter(weld::EntryFormatter* pFormatter) override - { - m_pFormatter = pFormatter; - m_xButton->SetFormatter(pFormatter); - } +void SalInstanceFormattedSpinButton::set_text(const OUString& rText) +{ + disable_notify_events(); + m_xButton->SpinField::SetText(rText); + enable_notify_events(); +} - virtual void sync_value_from_formatter() override +void SalInstanceFormattedSpinButton::connect_changed(const Link<weld::Entry&, void>& rLink) +{ + if (!m_pFormatter) // once a formatter is set, it takes over "changed" { - // no-op for gen + SalInstanceEntry::connect_changed(rLink); + return; } + m_pFormatter->connect_changed(rLink); +} - virtual void sync_range_from_formatter() override +void SalInstanceFormattedSpinButton::connect_focus_out(const Link<weld::Widget&, void>& rLink) +{ + if (!m_pFormatter) // once a formatter is set, it takes over "focus-out" { - // no-op for gen + m_aLoseFocusHdl = rLink; + return; } + m_pFormatter->connect_focus_out(rLink); +} - virtual void sync_increments_from_formatter() override - { - // no-op for gen - } +void SalInstanceFormattedSpinButton::SetFormatter(weld::EntryFormatter* pFormatter) +{ + m_pFormatter = pFormatter; + m_xButton->SetFormatter(pFormatter); +} - virtual Formatter& GetFormatter() override { return m_xButton->GetFormatter(); } +Formatter& SalInstanceFormattedSpinButton::GetFormatter() { return m_xButton->GetFormatter(); } - virtual ~SalInstanceFormattedSpinButton() override - { - m_xButton->SetLoseFocusHdl(Link<Control&, void>()); - m_xButton->SetDownHdl(Link<SpinField&, void>()); - m_xButton->SetUpHdl(Link<SpinField&, void>()); - } -}; +SalInstanceFormattedSpinButton::~SalInstanceFormattedSpinButton() +{ + m_xButton->SetLoseFocusHdl(Link<Control&, void>()); + m_xButton->SetDownHdl(Link<SpinField&, void>()); + m_xButton->SetUpHdl(Link<SpinField&, void>()); +} IMPL_LINK_NOARG(SalInstanceFormattedSpinButton, UpDownHdl, SpinField&, void) { @@ -5899,7 +5870,6 @@ IMPL_LINK_NOARG(SalInstanceFormattedSpinButton, LoseFocusHdl, Control&, void) signal_value_changed(); m_aLoseFocusHdl.Call(*this); } -} SalInstanceLabel::SalInstanceLabel(Control* pLabel, SalInstanceBuilder* pBuilder, bool bTakeOwnership)