summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorNoel Grandin <noel.grandin@collabora.co.uk>2018-04-11 12:09:57 +0200
committerNoel Grandin <noel.grandin@collabora.co.uk>2018-04-12 08:45:17 +0200
commitd1ae2387c729ac8a0e616c57075174eb0d06d389 (patch)
tree8ce39a165e5c6560c6b57645c109384b4c20efc9
parent6ec4109f73740de067b713cd46dae043f1b05dc5 (diff)
make FontList::Clone return a std::unique_ptr
and simplify the logic in SvxCharNamePage Change-Id: Ic1b379bb83203aa1ebf47b44d944c83a02c04224 Reviewed-on: https://gerrit.libreoffice.org/52744 Tested-by: Jenkins <ci@libreoffice.org> Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
-rw-r--r--cui/source/tabpages/chardlg.cxx26
-rw-r--r--include/svtools/ctrltool.hxx2
-rw-r--r--svtools/source/control/ctrltool.cxx5
3 files changed, 7 insertions, 26 deletions
diff --git a/cui/source/tabpages/chardlg.cxx b/cui/source/tabpages/chardlg.cxx
index 08bababd9bbf..1d06dae5cb04 100644
--- a/cui/source/tabpages/chardlg.cxx
+++ b/cui/source/tabpages/chardlg.cxx
@@ -223,27 +223,17 @@ struct SvxCharNamePage_Impl
{
Idle m_aUpdateIdle;
OUString m_aNoStyleText;
- const FontList* m_pFontList;
+ std::unique_ptr<FontList> m_pFontList;
sal_Int32 m_nExtraEntryPos;
- bool m_bMustDelete;
bool m_bInSearchMode;
SvxCharNamePage_Impl() :
-
- m_pFontList ( nullptr ),
m_nExtraEntryPos( COMBOBOX_ENTRY_NOTFOUND ),
- m_bMustDelete ( false ),
m_bInSearchMode ( false )
{
m_aUpdateIdle.SetPriority( TaskPriority::LOWEST );
}
-
- ~SvxCharNamePage_Impl()
- {
- if ( m_bMustDelete )
- delete m_pFontList;
- }
};
// class SvxCharNamePage -------------------------------------------------
@@ -435,19 +425,16 @@ const FontList* SvxCharNamePage::GetFontList() const
{
DBG_ASSERT(nullptr != static_cast<const SvxFontListItem*>(pItem)->GetFontList(),
"Where is the font list?");
- m_pImpl->m_pFontList = static_cast<const SvxFontListItem*>(pItem )->GetFontList()->Clone();
- m_pImpl->m_bMustDelete = true;
+ m_pImpl->m_pFontList = static_cast<const SvxFontListItem*>(pItem )->GetFontList()->Clone();
}
}
if(!m_pImpl->m_pFontList)
{
- m_pImpl->m_pFontList =
- new FontList( Application::GetDefaultDevice() );
- m_pImpl->m_bMustDelete = true;
+ m_pImpl->m_pFontList.reset(new FontList( Application::GetDefaultDevice() ));
}
}
- return m_pImpl->m_pFontList;
+ return m_pImpl->m_pFontList.get();
}
@@ -1228,12 +1215,7 @@ bool SvxCharNamePage::FillItemSet( SfxItemSet* rSet )
void SvxCharNamePage::SetFontList( const SvxFontListItem& rItem )
{
- if ( m_pImpl->m_bMustDelete )
- {
- delete m_pImpl->m_pFontList;
- }
m_pImpl->m_pFontList = rItem.GetFontList()->Clone();
- m_pImpl->m_bMustDelete = true;
}
diff --git a/include/svtools/ctrltool.hxx b/include/svtools/ctrltool.hxx
index 4c642df4be47..da7be4b3c770 100644
--- a/include/svtools/ctrltool.hxx
+++ b/include/svtools/ctrltool.hxx
@@ -159,7 +159,7 @@ public:
OutputDevice* pDevice2 = nullptr);
~FontList();
- FontList* Clone() const;
+ std::unique_ptr<FontList> Clone() const;
OUString GetFontMapText( const FontMetric& rFontMetric ) const;
diff --git a/svtools/source/control/ctrltool.cxx b/svtools/source/control/ctrltool.cxx
index ad0e038dacc9..993a0ffb8b30 100644
--- a/svtools/source/control/ctrltool.cxx
+++ b/svtools/source/control/ctrltool.cxx
@@ -381,10 +381,9 @@ FontList::~FontList()
}
}
-FontList* FontList::Clone() const
+std::unique_ptr<FontList> FontList::Clone() const
{
- FontList* pReturn = new FontList(mpDev, mpDev2);
- return pReturn;
+ return std::unique_ptr<FontList>(new FontList(mpDev, mpDev2));
}
const OUString& FontList::GetStyleName(FontWeight eWeight, FontItalic eItalic) const