Kaydet (Commit) f47804d5 authored tarafından Noel Grandin's avatar Noel Grandin

use std::unique_ptr in lotuswordpro

Change-Id: I9f3e8de3284899376c7db55c3ea6f16023acc40f
Reviewed-on: https://gerrit.libreoffice.org/43526Tested-by: 's avatarJenkins <ci@libreoffice.org>
Reviewed-by: 's avatarNoel Grandin <noel.grandin@collabora.co.uk>
üst f9ffe96b
...@@ -64,6 +64,7 @@ ...@@ -64,6 +64,7 @@
#include "xfilter/xfstyle.hxx" #include "xfilter/xfstyle.hxx"
#include "xfilter/xfnumfmt.hxx" #include "xfilter/xfnumfmt.hxx"
#include "unicode/utypes.h" #include "unicode/utypes.h"
#include <memory>
#include <vector> #include <vector>
class IXFStream; class IXFStream;
...@@ -214,7 +215,7 @@ public: ...@@ -214,7 +215,7 @@ public:
virtual void ToXml(IXFStream *pStrm) override; virtual void ToXml(IXFStream *pStrm) override;
private: private:
XFListLevel *m_pListLevels[10]; std::unique_ptr<XFListLevel> m_pListLevels[10];
}; };
inline void XFListLevel::SetListlevelType(enumXFListLevel type) inline void XFListLevel::SetListlevelType(enumXFListLevel type)
......
...@@ -156,12 +156,12 @@ XFListStyle::XFListStyle() ...@@ -156,12 +156,12 @@ XFListStyle::XFListStyle()
for( int i=0; i<10; i++ ) for( int i=0; i<10; i++ )
{ {
m_pListLevels[i] = new XFListlevelNumber(); m_pListLevels[i].reset(new XFListlevelNumber());
m_pListLevels[i]->SetListlevelType(enumXFListLevelNumber); m_pListLevels[i]->SetListlevelType(enumXFListLevelNumber);
m_pListLevels[i]->SetMinLabelWidth(0.499); m_pListLevels[i]->SetMinLabelWidth(0.499);
m_pListLevels[i]->SetIndent(0.501*(i+1)); m_pListLevels[i]->SetIndent(0.501*(i+1));
m_pListLevels[i]->SetLevel(i+1); m_pListLevels[i]->SetLevel(i+1);
static_cast<XFListlevelNumber*>(m_pListLevels[i])->SetNumFmt(nf); static_cast<XFListlevelNumber*>(m_pListLevels[i].get())->SetNumFmt(nf);
} }
} }
...@@ -172,16 +172,16 @@ XFListStyle::XFListStyle(const XFListStyle& other):XFStyle(other) ...@@ -172,16 +172,16 @@ XFListStyle::XFListStyle(const XFListStyle& other):XFStyle(other)
const enumXFListLevel type = other.m_pListLevels[i]->m_eListType; const enumXFListLevel type = other.m_pListLevels[i]->m_eListType;
if( type == enumXFListLevelNumber ) if( type == enumXFListLevelNumber )
{ {
XFListlevelNumber *pNum = static_cast<XFListlevelNumber*>(other.m_pListLevels[i]); XFListlevelNumber *pNum = static_cast<XFListlevelNumber*>(other.m_pListLevels[i].get());
m_pListLevels[i] = new XFListlevelNumber(*pNum); m_pListLevels[i].reset(new XFListlevelNumber(*pNum));
} }
else if( type == enumXFListLevelBullet ) else if( type == enumXFListLevelBullet )
{ {
XFListLevelBullet *pBullet = static_cast<XFListLevelBullet*>(other.m_pListLevels[i]); XFListLevelBullet *pBullet = static_cast<XFListLevelBullet*>(other.m_pListLevels[i].get());
m_pListLevels[i] = new XFListLevelBullet(*pBullet); m_pListLevels[i].reset(new XFListLevelBullet(*pBullet));
} }
else else
m_pListLevels[i] = nullptr; m_pListLevels[i].reset();
} }
} }
...@@ -192,45 +192,39 @@ XFListStyle& XFListStyle::operator=(const XFListStyle& other) ...@@ -192,45 +192,39 @@ XFListStyle& XFListStyle::operator=(const XFListStyle& other)
const enumXFListLevel type = other.m_pListLevels[i]->m_eListType; const enumXFListLevel type = other.m_pListLevels[i]->m_eListType;
if( type == enumXFListLevelNumber ) if( type == enumXFListLevelNumber )
{ {
XFListlevelNumber *pNum = static_cast<XFListlevelNumber*>(m_pListLevels[i]); XFListlevelNumber *pNum = static_cast<XFListlevelNumber*>(m_pListLevels[i].get());
m_pListLevels[i] = new XFListlevelNumber(*pNum); m_pListLevels[i].reset(new XFListlevelNumber(*pNum));
} }
else if( type == enumXFListLevelBullet ) else if( type == enumXFListLevelBullet )
{ {
XFListLevelBullet *pBullet = static_cast<XFListLevelBullet*>(m_pListLevels[i]); XFListLevelBullet *pBullet = static_cast<XFListLevelBullet*>(m_pListLevels[i].get());
m_pListLevels[i] = new XFListLevelBullet(*pBullet); m_pListLevels[i].reset(new XFListLevelBullet(*pBullet));
} }
else else
m_pListLevels[i] = nullptr; m_pListLevels[i].reset();
} }
return *this; return *this;
} }
XFListStyle::~XFListStyle() XFListStyle::~XFListStyle()
{ {
for(XFListLevel* p : m_pListLevels)
{
delete p;
}
} }
void XFListStyle::SetDisplayLevel(sal_Int32 level, sal_Int16 nDisplayLevel) void XFListStyle::SetDisplayLevel(sal_Int32 level, sal_Int16 nDisplayLevel)
{ {
assert(level>=1&&level<=10); assert(level>=1&&level<=10);
XFListLevel *pLevel = m_pListLevels[level-1]; XFListLevel *pLevel = m_pListLevels[level-1].get();
if( !pLevel ) if( !pLevel )
{ {
pLevel = new XFListlevelNumber(); m_pListLevels[level-1].reset(new XFListlevelNumber());
pLevel = m_pListLevels[level-1].get();
pLevel->SetListlevelType(enumXFListLevelNumber); pLevel->SetListlevelType(enumXFListLevelNumber);
pLevel->SetLevel(level+1); pLevel->SetLevel(level+1);
pLevel->SetMinLabelWidth(0.499); pLevel->SetMinLabelWidth(0.499);
pLevel->SetIndent(0.501*(level+1)); pLevel->SetIndent(0.501*(level+1));
pLevel->SetDisplayLevel(nDisplayLevel);
m_pListLevels[level-1] = pLevel;
} }
else pLevel->SetDisplayLevel(nDisplayLevel);
pLevel->SetDisplayLevel(nDisplayLevel);
} }
void XFListStyle::SetListPosition(sal_Int32 level, void XFListStyle::SetListPosition(sal_Int32 level,
...@@ -242,25 +236,18 @@ void XFListStyle::SetListPosition(sal_Int32 level, ...@@ -242,25 +236,18 @@ void XFListStyle::SetListPosition(sal_Int32 level,
{ {
assert(level>=1&&level<=10); assert(level>=1&&level<=10);
XFListLevel *pLevel = m_pListLevels[level-1]; XFListLevel *pLevel = m_pListLevels[level-1].get();
if( !pLevel ) if( !pLevel )
{ {
pLevel = new XFListLevelBullet(); m_pListLevels[level-1].reset( new XFListLevelBullet() );
pLevel = m_pListLevels[level-1].get();
pLevel->SetListlevelType(enumXFListLevelNumber); pLevel->SetListlevelType(enumXFListLevelNumber);
pLevel->SetLevel(level+1); pLevel->SetLevel(level+1);
pLevel->SetIndent(indent);
pLevel->SetMinLabelWidth(minLabelWidth);
pLevel->SetMinLabelDistance(minLabelDistance);
pLevel->SetAlignType(align);
m_pListLevels[level-1] = pLevel;
}
else
{
pLevel->SetIndent(indent);
pLevel->SetMinLabelWidth(minLabelWidth);
pLevel->SetMinLabelDistance(minLabelDistance);
pLevel->SetAlignType(align);
} }
pLevel->SetIndent(indent);
pLevel->SetMinLabelWidth(minLabelWidth);
pLevel->SetMinLabelDistance(minLabelDistance);
pLevel->SetAlignType(align);
} }
void XFListStyle::SetListBullet(sal_Int32 level, void XFListStyle::SetListBullet(sal_Int32 level,
...@@ -272,10 +259,7 @@ void XFListStyle::SetListBullet(sal_Int32 level, ...@@ -272,10 +259,7 @@ void XFListStyle::SetListBullet(sal_Int32 level,
{ {
assert(level>=1&&level<=10); assert(level>=1&&level<=10);
if( m_pListLevels[level-1] ) std::unique_ptr<XFListLevelBullet> pLevel(new XFListLevelBullet());
delete m_pListLevels[level-1];
XFListLevelBullet *pLevel = new XFListLevelBullet();
pLevel->SetPrefix(prefix); pLevel->SetPrefix(prefix);
pLevel->SetSuffix(suffix); pLevel->SetSuffix(suffix);
pLevel->SetBulletChar(bullet); pLevel->SetBulletChar(bullet);
...@@ -285,17 +269,14 @@ void XFListStyle::SetListBullet(sal_Int32 level, ...@@ -285,17 +269,14 @@ void XFListStyle::SetListBullet(sal_Int32 level,
pLevel->SetMinLabelWidth(0.499); pLevel->SetMinLabelWidth(0.499);
pLevel->SetIndent(0.501*level); pLevel->SetIndent(0.501*level);
pLevel->SetLevel(level); pLevel->SetLevel(level);
m_pListLevels[level-1] = pLevel; m_pListLevels[level-1] = std::move(pLevel);
} }
void XFListStyle::SetListNumber(sal_Int32 level, XFNumFmt const & fmt, sal_Int16 start ) void XFListStyle::SetListNumber(sal_Int32 level, XFNumFmt const & fmt, sal_Int16 start )
{ {
assert(level>=1&&level<=10); assert(level>=1&&level<=10);
if( m_pListLevels[level-1] ) std::unique_ptr<XFListlevelNumber> pLevel(new XFListlevelNumber());
delete m_pListLevels[level-1];
XFListlevelNumber *pLevel = new XFListlevelNumber();
pLevel->SetNumFmt(fmt); pLevel->SetNumFmt(fmt);
pLevel->SetStartValue(start); pLevel->SetStartValue(start);
...@@ -303,7 +284,7 @@ void XFListStyle::SetListNumber(sal_Int32 level, XFNumFmt const & fmt, sal_In ...@@ -303,7 +284,7 @@ void XFListStyle::SetListNumber(sal_Int32 level, XFNumFmt const & fmt, sal_In
pLevel->SetMinLabelWidth(0.499); pLevel->SetMinLabelWidth(0.499);
pLevel->SetIndent(0.501*level); pLevel->SetIndent(0.501*level);
pLevel->SetLevel(level); pLevel->SetLevel(level);
m_pListLevels[level-1] = pLevel; m_pListLevels[level-1] = std::move(pLevel);
} }
void XFListStyle::ToXml(IXFStream *pStrm) void XFListStyle::ToXml(IXFStream *pStrm)
...@@ -316,7 +297,7 @@ void XFListStyle::ToXml(IXFStream *pStrm) ...@@ -316,7 +297,7 @@ void XFListStyle::ToXml(IXFStream *pStrm)
pAttrList->AddAttribute("style:parent-style-name",GetParentStyleName()); pAttrList->AddAttribute("style:parent-style-name",GetParentStyleName());
pStrm->StartElement( "text:list-style" ); pStrm->StartElement( "text:list-style" );
for(XFListLevel* pLevel : m_pListLevels) for(auto const & pLevel : m_pListLevels)
{ {
if( pLevel ) if( pLevel )
pLevel->ToXml(pStrm); pLevel->ToXml(pStrm);
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment