diff --git a/include/vcl/treelistentry.hxx b/include/vcl/treelistentry.hxx index 1cb234c7c98a..71c8e8229f11 100644 --- a/include/vcl/treelistentry.hxx +++ b/include/vcl/treelistentry.hxx @@ -22,10 +22,12 @@ #include #include +#include #include #include #include +#include #include #include @@ -62,7 +64,7 @@ class VCL_DLLPUBLIC SvTreeListEntry void* pUserData; SvTLEntryFlags nEntryFlags; Color maBackColor; - std::unique_ptr mxTextColor; + boost::optional mxTextColor; private: void ClearChildren(); @@ -110,8 +112,8 @@ public: void SetBackColor( const Color& rColor ) { maBackColor = rColor; } const Color& GetBackColor() const { return maBackColor; } - void SetTextColor( const Color* pColor ) { mxTextColor.reset(pColor ? new Color(*pColor) : nullptr); } - const Color* GetTextColor() const { return mxTextColor.get(); } + void SetTextColor( boost::optional xColor ) { mxTextColor = xColor; } + boost::optional const & GetTextColor() const { return mxTextColor; } SvTreeListEntry* GetParent() const { return pParent; } diff --git a/vcl/source/app/salvtables.cxx b/vcl/source/app/salvtables.cxx index c7ca128fd818..df7de9561743 100644 --- a/vcl/source/app/salvtables.cxx +++ b/vcl/source/app/salvtables.cxx @@ -2233,7 +2233,7 @@ public: virtual void set_font_color(int pos, const Color& rColor) const override { SvTreeListEntry* pEntry = m_xTreeView->GetEntry(nullptr, pos); - pEntry->SetTextColor(&rColor); + pEntry->SetTextColor(rColor); } virtual void remove(int pos) override diff --git a/vcl/source/treelist/treelistbox.cxx b/vcl/source/treelist/treelistbox.cxx index b069d1d0ea12..aa91551177d8 100644 --- a/vcl/source/treelist/treelistbox.cxx +++ b/vcl/source/treelist/treelistbox.cxx @@ -2701,8 +2701,8 @@ void SvTreeListBox::PaintEntry1(SvTreeListEntry& rEntry, long nLine, vcl::Render if (bCurFontIsSel || rEntry.GetTextColor()) { bCurFontIsSel = false; - if (const auto* pCustomTextColor = rEntry.GetTextColor()) - rRenderContext.SetTextColor(*pCustomTextColor); + if (const auto & xCustomTextColor = rEntry.GetTextColor()) + rRenderContext.SetTextColor(*xCustomTextColor); else rRenderContext.SetTextColor(aBackupTextColor); rRenderContext.SetFont(aBackupFont);