include/vcl/toolkit/svlbitm.hxx     |   14 +++++-----
 vcl/source/app/salvtables.cxx       |    4 +--
 vcl/source/treelist/svlbitm.cxx     |   48 ++++++++++++------------------------
 vcl/source/treelist/treelistbox.cxx |    4 +--
 4 files changed, 28 insertions(+), 42 deletions(-)

New commits:
commit a697539819386b56df0ea89b8202ffc2910b470b
Author:     Michael Weghorn <m.wegh...@posteo.de>
AuthorDate: Fri Feb 21 11:53:06 2025 +0100
Commit:     Michael Weghorn <m.wegh...@posteo.de>
CommitDate: Fri Feb 21 16:49:17 2025 +0100

    vcl: Merge SvLBoxButtonData_Impl into SvLBoxButtonData
    
    Change-Id: Icde3ef5effd893ade779002514f7a4132c9b2390
    Reviewed-on: https://gerrit.libreoffice.org/c/core/+/181990
    Tested-by: Jenkins
    Reviewed-by: Michael Weghorn <m.wegh...@posteo.de>

diff --git a/include/vcl/toolkit/svlbitm.hxx b/include/vcl/toolkit/svlbitm.hxx
index bb480ff53701..87ac3c9ee88b 100644
--- a/include/vcl/toolkit/svlbitm.hxx
+++ b/include/vcl/toolkit/svlbitm.hxx
@@ -57,18 +57,20 @@ namespace o3tl
     template<> struct typed_flags<SvItemStateFlags> : 
is_typed_flags<SvItemStateFlags, 0x0f> {};
 }
 
-struct SvLBoxButtonData_Impl;
-
 class SvLBoxButtonData
 {
 private:
     Link<SvLBoxButtonData*,void> aLink;
     tools::Long                    nWidth;
     tools::Long                    nHeight;
-    std::unique_ptr<SvLBoxButtonData_Impl> pImpl;
     bool                    bDataOk;
     std::vector<Image>      aBmps;  // indices s. constants BMP_...
 
+    SvTreeListEntry* m_pEntry;
+    SvLBoxButton* m_pBox;
+    bool m_bDefaultImages;
+    bool m_bShowRadioButton;
+
     void                    SetWidthAndHeight();
 public:
                             // include creating default images (CheckBox or 
RadioButton)
diff --git a/vcl/source/treelist/svlbitm.cxx b/vcl/source/treelist/svlbitm.cxx
index 8fb88f9feeb1..13b8d6d8be53 100644
--- a/vcl/source/treelist/svlbitm.cxx
+++ b/vcl/source/treelist/svlbitm.cxx
@@ -28,26 +28,19 @@
 #include <vcl/salnativewidgets.hxx>
 #include <vcl/settings.hxx>
 
-struct SvLBoxButtonData_Impl
-{
-    SvTreeListEntry*    pEntry;
-    SvLBoxButton*       pBox;
-    bool                bDefaultImages;
-    bool                bShowRadioButton;
-
-    SvLBoxButtonData_Impl() : pEntry(nullptr), pBox(nullptr), 
bDefaultImages(false), bShowRadioButton(false) {}
-};
-
 SvLBoxButtonData::SvLBoxButtonData(const Control& rControlForSettings, bool 
_bRadioBtn)
-    : pImpl( new SvLBoxButtonData_Impl )
+    : m_pEntry(nullptr)
+    , m_pBox(nullptr)
+    , m_bDefaultImages(false)
+    , m_bShowRadioButton(false)
 {
     nWidth = nHeight = 0;
 
     aBmps.resize(int(SvBmp::HITRISTATE)+1);
 
     bDataOk = false;
-    pImpl->bDefaultImages = true;
-    pImpl->bShowRadioButton = _bRadioBtn;
+    m_bDefaultImages = true;
+    m_bShowRadioButton = _bRadioBtn;
 
     SetDefaultImages(rControlForSettings);
 }
@@ -91,8 +84,8 @@ void SvLBoxButtonData::SetWidthAndHeight()
 
 void SvLBoxButtonData::StoreButtonState(SvTreeListEntry* pActEntry, 
SvLBoxButton* pActBox)
 {
-    pImpl->pEntry = pActEntry;
-    pImpl->pBox = pActBox;
+    m_pEntry = pActEntry;
+    m_pBox = pActBox;
 }
 
 SvButtonState SvLBoxButtonData::ConvertToButtonState( SvItemStateFlags 
nItemFlags )
@@ -115,21 +108,19 @@ SvButtonState SvLBoxButtonData::ConvertToButtonState( 
SvItemStateFlags nItemFlag
 
 SvTreeListEntry* SvLBoxButtonData::GetActEntry() const
 {
-    assert(pImpl && "-SvLBoxButtonData::GetActEntry(): don't use me that 
way!");
-    return pImpl->pEntry;
+    return m_pEntry;
 }
 
 SvLBoxButton* SvLBoxButtonData::GetActBox() const
 {
-    assert(pImpl && "-SvLBoxButtonData::GetActBox(): don't use me that way!");
-    return pImpl->pBox;
+    return m_pBox;
 }
 
 void SvLBoxButtonData::SetDefaultImages(const Control& rCtrl)
 {
     const AllSettings& rSettings = rCtrl.GetSettings();
 
-    if ( pImpl->bShowRadioButton )
+    if (m_bShowRadioButton)
     {
         SetImage(SvBmp::UNCHECKED,   RadioButton::GetRadioImage( rSettings, 
DrawButtonFlags::Default ) );
         SetImage(SvBmp::CHECKED,     RadioButton::GetRadioImage( rSettings, 
DrawButtonFlags::Checked ) );
@@ -151,11 +142,11 @@ void SvLBoxButtonData::SetDefaultImages(const Control& 
rCtrl)
 
 bool SvLBoxButtonData::HasDefaultImages() const
 {
-    return pImpl->bDefaultImages;
+    return m_bDefaultImages;
 }
 
 bool SvLBoxButtonData::IsRadio() const {
-    return pImpl->bShowRadioButton;
+    return m_bShowRadioButton;
 }
 
 // ***************************************************************
commit ffe3ac6192f952a0604aafdd1a0f93004026b948
Author:     Michael Weghorn <m.wegh...@posteo.de>
AuthorDate: Fri Feb 21 11:44:56 2025 +0100
Commit:     Michael Weghorn <m.wegh...@posteo.de>
CommitDate: Fri Feb 21 16:49:11 2025 +0100

    vcl: Pass control by ref to SvLBoxButtonData::SetDefaultImages
    
    and in the SvLBoxButtonData ctor. Drop the (unused)
    fallback to application settings.
    
    Change-Id: I3275551ef20c1d982b99c19573f8da09d0f46acc
    Reviewed-on: https://gerrit.libreoffice.org/c/core/+/181989
    Reviewed-by: Michael Weghorn <m.wegh...@posteo.de>
    Tested-by: Jenkins

diff --git a/include/vcl/toolkit/svlbitm.hxx b/include/vcl/toolkit/svlbitm.hxx
index 698dca970bd9..bb480ff53701 100644
--- a/include/vcl/toolkit/svlbitm.hxx
+++ b/include/vcl/toolkit/svlbitm.hxx
@@ -72,7 +72,7 @@ private:
     void                    SetWidthAndHeight();
 public:
                             // include creating default images (CheckBox or 
RadioButton)
-                            SvLBoxButtonData( const Control* 
pControlForSettings, bool _bRadioBtn );
+                            SvLBoxButtonData(const Control& 
rControlForSettings, bool _bRadioBtn);
 
                             ~SvLBoxButtonData();
 
@@ -93,9 +93,8 @@ public:
     void                    SetImage(SvBmp nIndex, const Image& aImage) { 
aBmps[static_cast<int>(nIndex)] = aImage; }
     Image&                  GetImage(SvBmp nIndex) { return 
aBmps[static_cast<int>(nIndex)]; }
 
-    void                    SetDefaultImages( const Control* 
pControlForSettings );
+    void                    SetDefaultImages(const Control& 
rControlForSettings);
                                 // set images according to the color scheme of 
the Control
-                                // pControlForSettings == NULL: settings are 
taken from Application
     bool                    HasDefaultImages() const;
 };
 
diff --git a/vcl/source/app/salvtables.cxx b/vcl/source/app/salvtables.cxx
index 172f889ccfec..4d6647c9bce0 100644
--- a/vcl/source/app/salvtables.cxx
+++ b/vcl/source/app/salvtables.cxx
@@ -3861,8 +3861,8 @@ SalInstanceTreeView::SalInstanceTreeView(SvTabListBox* 
pTreeView, SalInstanceBui
                                          bool bTakeOwnership)
     : SalInstanceWidget(pTreeView, pBuilder, bTakeOwnership)
     , m_xTreeView(pTreeView)
-    , m_aCheckButtonData(pTreeView, false)
-    , m_aRadioButtonData(pTreeView, true)
+    , m_aCheckButtonData(*pTreeView, false)
+    , m_aRadioButtonData(*pTreeView, true)
     , m_bTogglesAsRadio(false)
     , m_nSortColumn(-1)
 {
diff --git a/vcl/source/treelist/svlbitm.cxx b/vcl/source/treelist/svlbitm.cxx
index 82214e3f8ff9..8fb88f9feeb1 100644
--- a/vcl/source/treelist/svlbitm.cxx
+++ b/vcl/source/treelist/svlbitm.cxx
@@ -38,7 +38,7 @@ struct SvLBoxButtonData_Impl
     SvLBoxButtonData_Impl() : pEntry(nullptr), pBox(nullptr), 
bDefaultImages(false), bShowRadioButton(false) {}
 };
 
-SvLBoxButtonData::SvLBoxButtonData( const Control* pControlForSettings, bool 
_bRadioBtn )
+SvLBoxButtonData::SvLBoxButtonData(const Control& rControlForSettings, bool 
_bRadioBtn)
     : pImpl( new SvLBoxButtonData_Impl )
 {
     nWidth = nHeight = 0;
@@ -49,7 +49,7 @@ SvLBoxButtonData::SvLBoxButtonData( const Control* 
pControlForSettings, bool _bR
     pImpl->bDefaultImages = true;
     pImpl->bShowRadioButton = _bRadioBtn;
 
-    SetDefaultImages(pControlForSettings);
+    SetDefaultImages(rControlForSettings);
 }
 
 SvLBoxButtonData::~SvLBoxButtonData()
@@ -125,9 +125,9 @@ SvLBoxButton* SvLBoxButtonData::GetActBox() const
     return pImpl->pBox;
 }
 
-void SvLBoxButtonData::SetDefaultImages( const Control* pCtrl )
+void SvLBoxButtonData::SetDefaultImages(const Control& rCtrl)
 {
-    const AllSettings& rSettings = pCtrl? pCtrl->GetSettings() : 
Application::GetSettings();
+    const AllSettings& rSettings = rCtrl.GetSettings();
 
     if ( pImpl->bShowRadioButton )
     {
diff --git a/vcl/source/treelist/treelistbox.cxx 
b/vcl/source/treelist/treelistbox.cxx
index 5dd1dff72688..fa58641c6bfe 100644
--- a/vcl/source/treelist/treelistbox.cxx
+++ b/vcl/source/treelist/treelistbox.cxx
@@ -3435,7 +3435,7 @@ void SvTreeListBox::ApplySettings(vcl::RenderContext& 
rRenderContext)
 
     // always try to re-create default-SvLBoxButtonData
     if (pCheckButtonData && pCheckButtonData->HasDefaultImages())
-        pCheckButtonData->SetDefaultImages(this);
+        pCheckButtonData->SetDefaultImages(*this);
 }
 
 void SvTreeListBox::InitSettings()
@@ -3452,7 +3452,7 @@ void SvTreeListBox::InitSettings()
 
     // always try to re-create default-SvLBoxButtonData
     if( pCheckButtonData && pCheckButtonData->HasDefaultImages() )
-        pCheckButtonData->SetDefaultImages(this);
+        pCheckButtonData->SetDefaultImages(*this);
 }
 
 css::uno::Reference< XAccessible > SvTreeListBox::CreateAccessible()
commit 8b794cfbe3d4b3429f5a5e5128947f95444f82be
Author:     Michael Weghorn <m.wegh...@posteo.de>
AuthorDate: Fri Feb 21 11:36:46 2025 +0100
Commit:     Michael Weghorn <m.wegh...@posteo.de>
CommitDate: Fri Feb 21 16:49:05 2025 +0100

    vcl: Merge SvLBoxButtonData::InitData into ctor
    
    Change-Id: Ia6634d886943264fd197e5234278463b9cacbdc7
    Reviewed-on: https://gerrit.libreoffice.org/c/core/+/181988
    Tested-by: Jenkins
    Reviewed-by: Michael Weghorn <m.wegh...@posteo.de>

diff --git a/include/vcl/toolkit/svlbitm.hxx b/include/vcl/toolkit/svlbitm.hxx
index b4001287d012..698dca970bd9 100644
--- a/include/vcl/toolkit/svlbitm.hxx
+++ b/include/vcl/toolkit/svlbitm.hxx
@@ -70,7 +70,6 @@ private:
     std::vector<Image>      aBmps;  // indices s. constants BMP_...
 
     void                    SetWidthAndHeight();
-    void                    InitData( bool _bRadioBtn, const Control* 
pControlForSettings );
 public:
                             // include creating default images (CheckBox or 
RadioButton)
                             SvLBoxButtonData( const Control* 
pControlForSettings, bool _bRadioBtn );
diff --git a/vcl/source/treelist/svlbitm.cxx b/vcl/source/treelist/svlbitm.cxx
index 26b3da45476e..82214e3f8ff9 100644
--- a/vcl/source/treelist/svlbitm.cxx
+++ b/vcl/source/treelist/svlbitm.cxx
@@ -38,7 +38,8 @@ struct SvLBoxButtonData_Impl
     SvLBoxButtonData_Impl() : pEntry(nullptr), pBox(nullptr), 
bDefaultImages(false), bShowRadioButton(false) {}
 };
 
-void SvLBoxButtonData::InitData( bool _bRadioBtn, const Control* pCtrl )
+SvLBoxButtonData::SvLBoxButtonData( const Control* pControlForSettings, bool 
_bRadioBtn )
+    : pImpl( new SvLBoxButtonData_Impl )
 {
     nWidth = nHeight = 0;
 
@@ -48,13 +49,7 @@ void SvLBoxButtonData::InitData( bool _bRadioBtn, const 
Control* pCtrl )
     pImpl->bDefaultImages = true;
     pImpl->bShowRadioButton = _bRadioBtn;
 
-    SetDefaultImages( pCtrl );
-}
-
-SvLBoxButtonData::SvLBoxButtonData( const Control* pControlForSettings, bool 
_bRadioBtn )
-    : pImpl( new SvLBoxButtonData_Impl )
-{
-    InitData( _bRadioBtn, pControlForSettings );
+    SetDefaultImages(pControlForSettings);
 }
 
 SvLBoxButtonData::~SvLBoxButtonData()

Reply via email to