summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorNoel Grandin <noelgrandin@gmail.com>2021-09-18 21:56:40 +0200
committerNoel Grandin <noel.grandin@collabora.co.uk>2021-09-19 12:57:07 +0200
commitd3fbfa4a4b3ef80575ec5f27ca13d937d6f52bf6 (patch)
tree937045c38231d2a4067dd55944d2161e68f80dd5
parentvcl: test PhysicalFontFamily and move to vcl::font namespace (diff)
downloadcore-d3fbfa4a4b3ef80575ec5f27ca13d937d6f52bf6.tar.gz
core-d3fbfa4a4b3ef80575ec5f27ca13d937d6f52bf6.zip
no need to allocate SfxItemSet separately in SdrUndoAttrObj
Change-Id: I32c9d79262c711a4f28c910e1b8f8ca9c1f011e9 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/122305 Tested-by: Jenkins Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
-rw-r--r--include/svx/svdundo.hxx5
-rw-r--r--svx/source/svdraw/svdundo.cxx24
2 files changed, 15 insertions, 14 deletions
diff --git a/include/svx/svdundo.hxx b/include/svx/svdundo.hxx
index 0064aa85c6c5..67ca464b5b4c 100644
--- a/include/svx/svdundo.hxx
+++ b/include/svx/svdundo.hxx
@@ -26,6 +26,7 @@
#include <vector>
#include <editeng/outlobj.hxx>
+#include <svl/itemset.hxx>
#include <svl/undo.hxx>
#include <svl/style.hxx>
#include <tools/gen.hxx>
@@ -144,8 +145,8 @@ protected:
class SVXCORE_DLLPUBLIC SdrUndoAttrObj : public SdrUndoObj
{
protected:
- std::unique_ptr<SfxItemSet> pUndoSet;
- std::unique_ptr<SfxItemSet> pRedoSet;
+ std::optional<SfxItemSet> moUndoSet;
+ std::optional<SfxItemSet> moRedoSet;
// FIXME: Or should we better remember the StyleSheetNames?
rtl::Reference< SfxStyleSheetBase > mxUndoStyleSheet;
diff --git a/svx/source/svdraw/svdundo.cxx b/svx/source/svdraw/svdundo.cxx
index 9cc06ee19a81..116c5e479a13 100644
--- a/svx/source/svdraw/svdundo.cxx
+++ b/svx/source/svdraw/svdundo.cxx
@@ -268,7 +268,7 @@ SdrUndoAttrObj::SdrUndoAttrObj(SdrObject& rNewObj, bool bStyleSheet1, bool bSave
if(bIsGroup && !bIs3DScene)
return;
- pUndoSet.reset( new SfxItemSet(pObj->GetMergedItemSet()) );
+ moUndoSet.emplace( pObj->GetMergedItemSet() );
if(bStyleSheet)
mxUndoStyleSheet = pObj->GetStyleSheet();
@@ -283,8 +283,8 @@ SdrUndoAttrObj::SdrUndoAttrObj(SdrObject& rNewObj, bool bStyleSheet1, bool bSave
SdrUndoAttrObj::~SdrUndoAttrObj()
{
- pUndoSet.reset();
- pRedoSet.reset();
+ moUndoSet.reset();
+ moRedoSet.reset();
pUndoGroup.reset();
pTextUndo.reset();
pTextRedo.reset();
@@ -304,7 +304,7 @@ void SdrUndoAttrObj::Undo()
{
bHaveToTakeRedoSet = false;
- pRedoSet.reset( new SfxItemSet(pObj->GetMergedItemSet()) );
+ moRedoSet.emplace( pObj->GetMergedItemSet() );
if(bStyleSheet)
mxRedoStyleSheet = pObj->GetStyleSheet();
@@ -346,7 +346,7 @@ void SdrUndoAttrObj::Undo()
// SdrObjCustomShape::NbcSetSnapRect needs logic instead of snap rect
const tools::Rectangle aLogicRect = pObj->GetLogicRect();
- if(pUndoSet)
+ if(moUndoSet)
{
if(dynamic_cast<const SdrCaptionObj*>( pObj) != nullptr)
{
@@ -355,12 +355,12 @@ void SdrUndoAttrObj::Undo()
// vertical text is changed. When clearing only set items it's
// slower, but safer regarding such information (it's not changed
// usually)
- SfxWhichIter aIter(*pUndoSet);
+ SfxWhichIter aIter(*moUndoSet);
sal_uInt16 nWhich(aIter.FirstWhich());
while(nWhich)
{
- if(SfxItemState::SET != pUndoSet->GetItemState(nWhich, false))
+ if(SfxItemState::SET != moUndoSet->GetItemState(nWhich, false))
{
pObj->ClearMergedItem(nWhich);
}
@@ -373,7 +373,7 @@ void SdrUndoAttrObj::Undo()
pObj->ClearMergedItem();
}
- pObj->SetMergedItemSet(*pUndoSet);
+ pObj->SetMergedItemSet(*moUndoSet);
}
// Restore previous size here when it was changed.
@@ -427,7 +427,7 @@ void SdrUndoAttrObj::Redo()
const tools::Rectangle aSnapRect = pObj->GetSnapRect();
const tools::Rectangle aLogicRect = pObj->GetLogicRect();
- if(pRedoSet)
+ if(moRedoSet)
{
if(dynamic_cast<const SdrCaptionObj*>( pObj) != nullptr)
{
@@ -436,12 +436,12 @@ void SdrUndoAttrObj::Redo()
// vertical text is changed. When clearing only set items it's
// slower, but safer regarding such information (it's not changed
// usually)
- SfxWhichIter aIter(*pRedoSet);
+ SfxWhichIter aIter(*moRedoSet);
sal_uInt16 nWhich(aIter.FirstWhich());
while(nWhich)
{
- if(SfxItemState::SET != pRedoSet->GetItemState(nWhich, false))
+ if(SfxItemState::SET != moRedoSet->GetItemState(nWhich, false))
{
pObj->ClearMergedItem(nWhich);
}
@@ -454,7 +454,7 @@ void SdrUndoAttrObj::Redo()
pObj->ClearMergedItem();
}
- pObj->SetMergedItemSet(*pRedoSet);
+ pObj->SetMergedItemSet(*moRedoSet);
}
// Restore previous size here when it was changed.