[Libreoffice-commits] core.git: Branch 'feature/eszka' - 4 commits - cui/source include/vcl vcl/inc vcl/jsdialog vcl/source

Caolán McNamara (via logerrit) logerrit at kemper.freedesktop.org
Tue Nov 17 13:45:21 UTC 2020


 cui/source/options/optjava.cxx       |    6 ++--
 include/vcl/layout.hxx               |    1 
 include/vcl/salvtables.hxx           |   17 +++++++++++++
 vcl/inc/jsdialog/jsdialogbuilder.hxx |   24 ++++++++++++++-----
 vcl/jsdialog/executor.cxx            |   12 +++++++++
 vcl/jsdialog/jsdialogbuilder.cxx     |   29 +++++++++++++++++++++++
 vcl/source/app/salvtables.cxx        |   43 +++++++++++++----------------------
 vcl/source/window/layout.cxx         |    7 +++++
 8 files changed, 104 insertions(+), 35 deletions(-)

New commits:
commit 8dcf476a7866a16884a6cfd13384115c400bdf54
Author:     Caolán McNamara <caolanm at redhat.com>
AuthorDate: Tue Aug 4 20:02:40 2020 +0100
Commit:     Szymon Kłos <szymon.klos at collabora.com>
CommitDate: Tue Nov 17 14:44:26 2020 +0100

    tdf#135367 enable_toggle_buttons sets SvTreeFlags::CHKBTN
    
    designating that the special auto-sized toggle column is in use
    
    Change-Id: I23aa927c56e706590f397d15ef7329d20e0b18a9
    Reviewed-on: https://gerrit.libreoffice.org/c/core/+/100136
    Tested-by: Caolán McNamara <caolanm at redhat.com>
    Reviewed-by: Caolán McNamara <caolanm at redhat.com>

diff --git a/cui/source/options/optjava.cxx b/cui/source/options/optjava.cxx
index d107eaeeb28f..25be071fa8fc 100644
--- a/cui/source/options/optjava.cxx
+++ b/cui/source/options/optjava.cxx
@@ -360,7 +360,7 @@ void SvxJavaOptionsPage::AddJRE( JavaInfo const * _pInfo )
 #if HAVE_FEATURE_JAVA
     int nPos = m_xJavaList->n_children();
     m_xJavaList->append();
-    m_xJavaList->set_toggle(nPos, TRISTATE_FALSE, 0);
+    m_xJavaList->set_toggle(nPos, TRISTATE_FALSE);
     m_xJavaList->set_text(nPos, _pInfo->sVendor, 1);
     m_xJavaList->set_text(nPos, _pInfo->sVersion, 2);
     OUString sFeature;
@@ -383,7 +383,7 @@ void SvxJavaOptionsPage::HandleCheckEntry(int nCheckedRow)
     for (int i = 0, nCount = m_xJavaList->n_children(); i < nCount; ++i)
     {
         // we have radio button behavior -> so uncheck the other entries
-        m_xJavaList->set_toggle(i, i == nCheckedRow ? TRISTATE_TRUE : TRISTATE_FALSE, 0);
+        m_xJavaList->set_toggle(i, i == nCheckedRow ? TRISTATE_TRUE : TRISTATE_FALSE);
     }
 }
 
@@ -522,7 +522,7 @@ bool SvxJavaOptionsPage::FillItemSet( SfxItemSet* /*rCoreSet*/ )
     sal_uInt32 nCount = m_xJavaList->n_children();
     for (sal_uInt32 i = 0; i < nCount; ++i)
     {
-        if (m_xJavaList->get_toggle(i, 0) == TRISTATE_TRUE)
+        if (m_xJavaList->get_toggle(i) == TRISTATE_TRUE)
         {
             JavaInfo const * pInfo;
             if ( i < m_parJavaInfo.size() )
commit 6feff7ae813b4cacc042ef69c5506479a7e4a825
Author:     Szymon Kłos <szymon.klos at collabora.com>
AuthorDate: Tue Nov 17 14:32:04 2020 +0100
Commit:     Szymon Kłos <szymon.klos at collabora.com>
CommitDate: Tue Nov 17 14:44:26 2020 +0100

    jsdialog: implemented Expander widget
    
    Change-Id: Ib0aee0e01c662a4d6a9231d9a1a951c9fa68eff4

diff --git a/vcl/inc/jsdialog/jsdialogbuilder.hxx b/vcl/inc/jsdialog/jsdialogbuilder.hxx
index 2412fe2197fb..5df3f0d4f324 100644
--- a/vcl/inc/jsdialog/jsdialogbuilder.hxx
+++ b/vcl/inc/jsdialog/jsdialogbuilder.hxx
@@ -119,12 +119,14 @@ public:
     weld_drawing_area(const OString& id, const a11yref& rA11yImpl = nullptr,
                       FactoryFunction pUITestFactoryFunction = nullptr, void* pUserData = nullptr,
                       bool bTakeOwnership = false) override;
-    std::unique_ptr<weld::Toolbar> weld_toolbar(const OString& id,
-                                                bool bTakeOwnership = true) override;
-    std::unique_ptr<weld::TextView> weld_text_view(const OString& id,
-                                                   bool bTakeOwnership = false) override;
-    std::unique_ptr<weld::TreeView> weld_tree_view(const OString& id,
-                                                   bool bTakeOwnership = false) override;
+    virtual std::unique_ptr<weld::Toolbar> weld_toolbar(const OString& id,
+                                                        bool bTakeOwnership = true) override;
+    virtual std::unique_ptr<weld::TextView> weld_text_view(const OString& id,
+                                                           bool bTakeOwnership = false) override;
+    virtual std::unique_ptr<weld::TreeView> weld_tree_view(const OString& id,
+                                                           bool bTakeOwnership = false) override;
+    virtual std::unique_ptr<weld::Expander> weld_expander(const OString& id,
+                                                          bool bTakeOwnership = false) override;
 
     static weld::MessageDialog* CreateMessageDialog(weld::Widget* pParent,
                                                     VclMessageType eMessageType,
@@ -319,4 +321,14 @@ public:
     virtual void select(int pos) override;
 };
 
+class JSExpander : public JSWidget<SalInstanceExpander, ::VclExpander>
+{
+public:
+    JSExpander(VclPtr<vcl::Window> aNotifierWindow, VclPtr<vcl::Window> aContentWindow,
+               ::VclExpander* pExpander, SalInstanceBuilder* pBuilder, bool bTakeOwnership,
+               std::string sTypeOfJSON);
+
+    virtual void set_expanded(bool bExpand) override;
+};
+
 /* vim:set shiftwidth=4 softtabstop=4 expandtab cinoptions=b1,g0,N-s cinkeys+=0=break: */
diff --git a/vcl/jsdialog/executor.cxx b/vcl/jsdialog/executor.cxx
index 91a2750f4686..281c7b4d3893 100644
--- a/vcl/jsdialog/executor.cxx
+++ b/vcl/jsdialog/executor.cxx
@@ -190,6 +190,18 @@ bool ExecuteAction(sal_uInt64 nWindowId, const OString& rWidget, StringMap& rDat
                 }
             }
         }
+        else if (sControlType == "expander")
+        {
+            auto pExpander = dynamic_cast<weld::Expander*>(pWidget);
+            if (pExpander)
+            {
+                if (sAction == "toggle")
+                {
+                    pExpander->set_expanded(!pExpander->get_expanded());
+                    return true;
+                }
+            }
+        }
     }
 
     return false;
diff --git a/vcl/jsdialog/jsdialogbuilder.cxx b/vcl/jsdialog/jsdialogbuilder.cxx
index 5ae77f856e2f..f02d469dc701 100644
--- a/vcl/jsdialog/jsdialogbuilder.cxx
+++ b/vcl/jsdialog/jsdialogbuilder.cxx
@@ -463,6 +463,21 @@ std::unique_ptr<weld::TreeView> JSInstanceBuilder::weld_tree_view(const OString&
     return pWeldWidget;
 }
 
+std::unique_ptr<weld::Expander> JSInstanceBuilder::weld_expander(const OString& id,
+                                                                 bool bTakeOwnership)
+{
+    VclExpander* pExpander = m_xBuilder->get<VclExpander>(id);
+    auto pWeldWidget
+        = pExpander ? std::make_unique<JSExpander>(GetNotifierWindow(), GetContentWindow(),
+                                                   pExpander, this, bTakeOwnership, m_sTypeOfJSON)
+                    : nullptr;
+
+    if (pWeldWidget)
+        RememberWidget(id, pWeldWidget.get());
+
+    return pWeldWidget;
+}
+
 weld::MessageDialog* JSInstanceBuilder::CreateMessageDialog(weld::Widget* pParent,
                                                             VclMessageType eMessageType,
                                                             VclButtonsType eButtonType,
@@ -791,4 +806,18 @@ void JSTreeView::select(int pos)
     enable_notify_events();
 }
 
+JSExpander::JSExpander(VclPtr<vcl::Window> aNotifierWindow, VclPtr<vcl::Window> aContentWindow,
+                       ::VclExpander* pExpander, SalInstanceBuilder* pBuilder, bool bTakeOwnership,
+                       std::string sTypeOfJSON)
+    : JSWidget<SalInstanceExpander, ::VclExpander>(aNotifierWindow, aContentWindow, pExpander,
+                                                   pBuilder, bTakeOwnership, sTypeOfJSON)
+{
+}
+
+void JSExpander::set_expanded(bool bExpand)
+{
+    SalInstanceExpander::set_expanded(bExpand);
+    notifyDialogState();
+}
+
 /* vim:set shiftwidth=4 softtabstop=4 expandtab cinoptions=b1,g0,N-s cinkeys+=0=break: */
commit be5136721ccbcb70d5b9884ba7edf09c457214bb
Author:     Szymon Kłos <szymon.klos at collabora.com>
AuthorDate: Tue Nov 17 09:03:35 2020 +0100
Commit:     Szymon Kłos <szymon.klos at collabora.com>
CommitDate: Tue Nov 17 14:44:25 2020 +0100

    Move SalInstanceExpander decl to header file
    
    Change-Id: I5399f5aca07dd27dfc668cad66cf347936bbba7a

diff --git a/include/vcl/salvtables.hxx b/include/vcl/salvtables.hxx
index 23db65df8525..401cbb0702a3 100644
--- a/include/vcl/salvtables.hxx
+++ b/include/vcl/salvtables.hxx
@@ -1430,4 +1430,21 @@ public:
     virtual ~SalInstanceTreeView() override;
 };
 
+class SalInstanceExpander : public SalInstanceContainer, public virtual weld::Expander
+{
+private:
+    VclPtr<VclExpander> m_xExpander;
+
+    DECL_LINK(ExpandedHdl, VclExpander&, void);
+
+public:
+    SalInstanceExpander(VclExpander* pExpander, SalInstanceBuilder* pBuilder, bool bTakeOwnership);
+
+    virtual bool get_expanded() const override;
+
+    virtual void set_expanded(bool bExpand) override;
+
+    virtual ~SalInstanceExpander() override;
+};
+
 #endif
diff --git a/vcl/source/app/salvtables.cxx b/vcl/source/app/salvtables.cxx
index e06438e3e0c5..6eadfa2cb6b2 100644
--- a/vcl/source/app/salvtables.cxx
+++ b/vcl/source/app/salvtables.cxx
@@ -5320,36 +5320,27 @@ IMPL_LINK(SalInstanceTextView, CursorListener, VclWindowEvent&, rEvent, void)
         signal_cursor_position();
 }
 
-class SalInstanceExpander : public SalInstanceContainer, public virtual weld::Expander
+SalInstanceExpander::SalInstanceExpander(VclExpander* pExpander, SalInstanceBuilder* pBuilder, bool bTakeOwnership)
+    : SalInstanceContainer(pExpander, pBuilder, bTakeOwnership)
+    , m_xExpander(pExpander)
 {
-private:
-    VclPtr<VclExpander> m_xExpander;
-
-    DECL_LINK(ExpandedHdl, VclExpander&, void);
-
-public:
-    SalInstanceExpander(VclExpander* pExpander, SalInstanceBuilder* pBuilder, bool bTakeOwnership)
-        : SalInstanceContainer(pExpander, pBuilder, bTakeOwnership)
-        , m_xExpander(pExpander)
-    {
-        m_xExpander->SetExpandedHdl(LINK(this, SalInstanceExpander, ExpandedHdl));
-    }
+    m_xExpander->SetExpandedHdl(LINK(this, SalInstanceExpander, ExpandedHdl));
+}
 
-    virtual bool get_expanded() const override
-    {
-        return m_xExpander->get_expanded();
-    }
+bool SalInstanceExpander::get_expanded() const
+{
+    return m_xExpander->get_expanded();
+}
 
-    virtual void set_expanded(bool bExpand) override
-    {
-        m_xExpander->set_expanded(bExpand);
-    }
+void SalInstanceExpander::set_expanded(bool bExpand)
+{
+    m_xExpander->set_expanded(bExpand);
+}
 
-    virtual ~SalInstanceExpander() override
-    {
-        m_xExpander->SetExpandedHdl(Link<VclExpander&, void>());
-    }
-};
+SalInstanceExpander::~SalInstanceExpander()
+{
+    m_xExpander->SetExpandedHdl(Link<VclExpander&, void>());
+}
 
 IMPL_LINK_NOARG(SalInstanceExpander, ExpandedHdl, VclExpander&, void)
 {
commit 2c22f8cb02d32249eb6b7e03e906678a4f5d6362
Author:     Szymon Kłos <szymon.klos at collabora.com>
AuthorDate: Tue Nov 17 08:40:30 2020 +0100
Commit:     Szymon Kłos <szymon.klos at collabora.com>
CommitDate: Tue Nov 17 14:44:25 2020 +0100

    jsdialog: dump VclExpander type
    
    Change-Id: Ie40632ab8ce53e0b1f9277dce3d46032a508edce

diff --git a/include/vcl/layout.hxx b/include/vcl/layout.hxx
index d1f675a3be07..d29b631ac98c 100644
--- a/include/vcl/layout.hxx
+++ b/include/vcl/layout.hxx
@@ -493,6 +493,7 @@ public:
     }
     virtual void StateChanged(StateChangedType nType) override;
     void  SetExpandedHdl( const Link<VclExpander&,void>& rLink ) { maExpandedHdl = rLink; }
+    virtual boost::property_tree::ptree DumpAsPropertyTree() override;
 private:
     virtual Size calculateRequisition() const override;
     virtual void setAllocation(const Size &rAllocation) override;
diff --git a/vcl/source/window/layout.cxx b/vcl/source/window/layout.cxx
index 52197b51992d..1d26ec5a8803 100644
--- a/vcl/source/window/layout.cxx
+++ b/vcl/source/window/layout.cxx
@@ -1652,6 +1652,13 @@ void VclExpander::StateChanged(StateChangedType nType)
     }
 }
 
+boost::property_tree::ptree VclExpander::DumpAsPropertyTree()
+{
+    boost::property_tree::ptree aTree(VclContainer::DumpAsPropertyTree());
+    aTree.put("type", "expander");
+    return aTree;
+}
+
 IMPL_LINK( VclExpander, ClickHdl, CheckBox&, rBtn, void )
 {
     vcl::Window *pChild = get_child();


More information about the Libreoffice-commits mailing list