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)

Reply via email to