[Libreoffice-commits] core.git: 2 commits - sc/inc sc/source
Noel Grandin (via logerrit)
logerrit at kemper.freedesktop.org
Fri Sep 24 08:51:15 UTC 2021
sc/inc/postit.hxx | 5 +++--
sc/source/core/data/postit.cxx | 13 ++++++-------
sc/source/filter/excel/xiescher.cxx | 2 +-
sc/source/filter/html/htmlpars.cxx | 18 +++++++++---------
sc/source/filter/inc/htmlpars.hxx | 6 +++---
sc/source/filter/xml/xmlcelli.cxx | 10 +++++-----
6 files changed, 27 insertions(+), 27 deletions(-)
New commits:
commit e1600348e49e1538459a0374fd97cd3173d4a4b9
Author: Noel Grandin <noelgrandin at gmail.com>
AuthorDate: Fri Sep 24 08:26:46 2021 +0200
Commit: Noel Grandin <noel.grandin at collabora.co.uk>
CommitDate: Fri Sep 24 10:50:56 2021 +0200
no need to allocate this SfxItemSet on the heap
Change-Id: If398e3725b691491e51e49eadeb37a7fdaad63db
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/122554
Tested-by: Jenkins
Reviewed-by: Noel Grandin <noel.grandin at collabora.co.uk>
diff --git a/sc/inc/postit.hxx b/sc/inc/postit.hxx
index 7fb61bb6ddd6..ff024e4621ea 100644
--- a/sc/inc/postit.hxx
+++ b/sc/inc/postit.hxx
@@ -20,17 +20,18 @@
#pragma once
#include <rtl/ustring.hxx>
+#include <svl/itemset.hxx>
#include "address.hxx"
#include "scdllapi.h"
#include <memory>
+#include <optional>
class EditTextObject;
class OutlinerParaObject;
class SdrCaptionObj;
class SdrPage;
-class SfxItemSet;
class ScDocument;
namespace tools { class Rectangle; }
struct ScCaptionInitData;
@@ -331,7 +332,7 @@ public:
*/
static ScPostIt* CreateNoteFromObjectData(
ScDocument& rDoc, const ScAddress& rPos,
- std::unique_ptr<SfxItemSet> pItemSet,
+ SfxItemSet&& oItemSet,
const OutlinerParaObject& rOutlinerObj,
const tools::Rectangle& rCaptionRect, bool bShown );
diff --git a/sc/source/core/data/postit.cxx b/sc/source/core/data/postit.cxx
index 42649cccf66f..12b5778aead2 100644
--- a/sc/source/core/data/postit.cxx
+++ b/sc/source/core/data/postit.cxx
@@ -820,9 +820,9 @@ void ScCaptionPtr::clear()
struct ScCaptionInitData
{
- std::unique_ptr< SfxItemSet > mxItemSet; /// Caption object formatting.
- std::optional< OutlinerParaObject > mxOutlinerObj; /// Text object with all text portion formatting.
- OUString maSimpleText; /// Simple text without formatting.
+ std::optional< SfxItemSet > moItemSet; /// Caption object formatting.
+ std::optional< OutlinerParaObject > mxOutlinerObj; /// Text object with all text portion formatting.
+ OUString maSimpleText; /// Simple text without formatting.
Point maCaptionOffset; /// Caption position relative to cell corner.
Size maCaptionSize; /// Size of the caption object.
bool mbDefaultPosSize; /// True = use default position and size for caption.
@@ -1058,7 +1058,7 @@ void ScPostIt::CreateCaptionFromInitData( const ScAddress& rPos ) const
maNoteData.mxCaption->SetText( xInitData->maSimpleText );
// copy all items or set default items; reset shadow items
- ScCaptionUtil::SetDefaultItems( *maNoteData.mxCaption, mrDoc, xInitData->mxItemSet.get() );
+ ScCaptionUtil::SetDefaultItems( *maNoteData.mxCaption, mrDoc, xInitData->moItemSet ? &*xInitData->moItemSet : nullptr );
// set position and size of the caption object
if( xInitData->mbDefaultPosSize )
@@ -1240,15 +1240,14 @@ ScPostIt* ScNoteUtil::CreateNoteFromCaption(
}
ScPostIt* ScNoteUtil::CreateNoteFromObjectData(
- ScDocument& rDoc, const ScAddress& rPos, std::unique_ptr<SfxItemSet> pItemSet,
+ ScDocument& rDoc, const ScAddress& rPos, SfxItemSet&& rItemSet,
const OutlinerParaObject& rOutlinerObj, const tools::Rectangle& rCaptionRect,
bool bShown )
{
- OSL_ENSURE( pItemSet, "ScNoteUtil::CreateNoteFromObjectData - item set expected" );
ScNoteData aNoteData( bShown );
aNoteData.mxInitData = std::make_shared<ScCaptionInitData>();
ScCaptionInitData& rInitData = *aNoteData.mxInitData;
- rInitData.mxItemSet = std::move(pItemSet);
+ rInitData.moItemSet.emplace(std::move(rItemSet));
rInitData.mxOutlinerObj = rOutlinerObj;
// convert absolute caption position to relative position
diff --git a/sc/source/filter/excel/xiescher.cxx b/sc/source/filter/excel/xiescher.cxx
index 9ccd3521c391..6677578801e4 100644
--- a/sc/source/filter/excel/xiescher.cxx
+++ b/sc/source/filter/excel/xiescher.cxx
@@ -1866,7 +1866,7 @@ void XclImpNoteObj::DoPreProcessSdrObj( XclImpDffConverter& rDffConv, SdrObject&
// create cell note with all data from drawing object
ScNoteUtil::CreateNoteFromObjectData(
GetDoc(), maScPos,
- rSdrObj.GetMergedItemSet().Clone(), // new object on heap expected
+ rSdrObj.GetMergedItemSet().CloneAsValue(), // new object on heap expected
*pOutlinerObj,
rSdrObj.GetLogicRect(),
::get_flag( mnNoteFlags, EXC_NOTE_VISIBLE ) );
diff --git a/sc/source/filter/xml/xmlcelli.cxx b/sc/source/filter/xml/xmlcelli.cxx
index 238befc186a5..46e6069268e2 100644
--- a/sc/source/filter/xml/xmlcelli.cxx
+++ b/sc/source/filter/xml/xmlcelli.cxx
@@ -860,7 +860,7 @@ void ScXMLTableRowCellContext::SetAnnotation(const ScAddress& rPos)
if( pObject )
{
// rescue settings from drawing object before the shape is removed
- ::std::unique_ptr< SfxItemSet > xItemSet( new SfxItemSet( pObject->GetMergedItemSet() ) );
+ SfxItemSet aItemSet( pObject->GetMergedItemSet() );
std::optional<OutlinerParaObject> pOutlinerObj;
if (auto p = pObject->GetOutlinerParaObject())
pOutlinerObj = *p;
@@ -881,14 +881,14 @@ void ScXMLTableRowCellContext::SetAnnotation(const ScAddress& rPos)
if(!comphelper::LibreOfficeKit::isActive())
{
pNote = ScNoteUtil::CreateNoteFromObjectData( *pDoc, rPos,
- std::move(xItemSet), *pOutlinerObj,
- aCaptionRect, mxAnnotationData->mbShown );
+ std::move(aItemSet), *pOutlinerObj,
+ aCaptionRect, mxAnnotationData->mbShown );
}
else
{
pNote = ScNoteUtil::CreateNoteFromObjectData( *pDoc, rPos,
- std::move(xItemSet), *pOutlinerObj,
- aCaptionRect, false );
+ std::move(aItemSet), *pOutlinerObj,
+ aCaptionRect, false );
}
}
commit c183a6eb292b31c7fb24f751630960f2035353c5
Author: Noel Grandin <noelgrandin at gmail.com>
AuthorDate: Thu Sep 23 20:49:28 2021 +0200
Commit: Noel Grandin <noel.grandin at collabora.co.uk>
CommitDate: Fri Sep 24 10:50:41 2021 +0200
no need to allocate this SfxItemSet on the heap
Change-Id: I083ea9ef7b04322d60ce29b7e1610332a4709493
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/122553
Tested-by: Jenkins
Reviewed-by: Noel Grandin <noel.grandin at collabora.co.uk>
diff --git a/sc/source/filter/html/htmlpars.cxx b/sc/source/filter/html/htmlpars.cxx
index 991b8c0a1960..85cdff23a885 100644
--- a/sc/source/filter/html/htmlpars.cxx
+++ b/sc/source/filter/html/htmlpars.cxx
@@ -1874,7 +1874,7 @@ ScHTMLTable::~ScHTMLTable()
const SfxItemSet& ScHTMLTable::GetCurrItemSet() const
{
// first try cell item set, then row item set, then table item set
- return mxDataItemSet ? *mxDataItemSet : (mxRowItemSet ? *mxRowItemSet : maTableItemSet);
+ return moDataItemSet ? *moDataItemSet : (moRowItemSet ? *moRowItemSet : maTableItemSet);
}
ScHTMLSize ScHTMLTable::GetSpan( const ScHTMLPos& rCellPos ) const
@@ -1992,7 +1992,7 @@ void ScHTMLTable::RowOn( const HtmlImportInfo& rInfo )
if( mpParentTable && !mbPreFormText ) // no rows allowed in global and preformatted tables
{
ImplRowOn();
- ProcessFormatOptions( *mxRowItemSet, rInfo );
+ ProcessFormatOptions( *moRowItemSet, rInfo );
}
CreateNewEntry( rInfo );
}
@@ -2110,9 +2110,9 @@ void ScHTMLTable::DataOn( const HtmlImportInfo& rInfo )
ImplDataOn( aSpanSize );
if (nNumberFormat != NUMBERFORMAT_ENTRY_NOT_FOUND)
- mxDataItemSet->Put( SfxUInt32Item(ATTR_VALUE_FORMAT, nNumberFormat) );
+ moDataItemSet->Put( SfxUInt32Item(ATTR_VALUE_FORMAT, nNumberFormat) );
- ProcessFormatOptions( *mxDataItemSet, rInfo );
+ ProcessFormatOptions( *moDataItemSet, rInfo );
CreateNewEntry( rInfo );
mxCurrEntry->pValStr = std::move(pValStr);
mxCurrEntry->pNumStr = std::move(pNumStr);
@@ -2139,7 +2139,7 @@ void ScHTMLTable::BodyOn( const HtmlImportInfo& rInfo )
ImplRowOn();
if( bPushed || !mbDataOn )
ImplDataOn( ScHTMLSize( 1, 1 ) );
- ProcessFormatOptions( *mxDataItemSet, rInfo );
+ ProcessFormatOptions( *moDataItemSet, rInfo );
}
CreateNewEntry( rInfo );
}
@@ -2440,7 +2440,7 @@ void ScHTMLTable::ImplRowOn()
{
if( mbRowOn )
ImplRowOff();
- mxRowItemSet.reset( new SfxItemSet( maTableItemSet ) );
+ moRowItemSet.emplace( maTableItemSet );
maCurrCell.mnCol = 0;
mbRowOn = true;
mbDataOn = false;
@@ -2452,7 +2452,7 @@ void ScHTMLTable::ImplRowOff()
ImplDataOff();
if( mbRowOn )
{
- mxRowItemSet.reset();
+ moRowItemSet.reset();
++maCurrCell.mnRow;
mbRowOn = mbDataOn = false;
}
@@ -2464,7 +2464,7 @@ void ScHTMLTable::ImplDataOn( const ScHTMLSize& rSpanSize )
ImplDataOff();
if( !mbRowOn )
ImplRowOn();
- mxDataItemSet.reset( new SfxItemSet( *mxRowItemSet ) );
+ moDataItemSet.emplace( *moRowItemSet );
InsertNewCell( rSpanSize );
mbDataOn = true;
mbPushEmptyLine = false;
@@ -2474,7 +2474,7 @@ void ScHTMLTable::ImplDataOff()
{
if( mbDataOn )
{
- mxDataItemSet.reset();
+ moDataItemSet.reset();
++maCurrCell.mnCol;
mpCurrEntryVector = nullptr;
mbDataOn = false;
diff --git a/sc/source/filter/inc/htmlpars.hxx b/sc/source/filter/inc/htmlpars.hxx
index e0c4dad24843..02af4857616e 100644
--- a/sc/source/filter/inc/htmlpars.hxx
+++ b/sc/source/filter/inc/htmlpars.hxx
@@ -21,6 +21,7 @@
#include <memory>
#include <map>
+#include <optional>
#include <stack>
#include <string_view>
#include <unordered_map>
@@ -446,7 +447,6 @@ protected:
private:
typedef ::std::unique_ptr< ScHTMLTableMap > ScHTMLTableMapPtr;
- typedef ::std::unique_ptr< SfxItemSet > SfxItemSetPtr;
typedef ::std::vector< SCCOLROW > ScSizeVec;
typedef ::std::vector< ScHTMLEntry* > ScHTMLEntryVector;
typedef ::std::unique_ptr< ScHTMLEntry > ScHTMLEntryPtr;
@@ -527,8 +527,8 @@ private:
OUStringBuffer maCaptionBuffer; /// Caption buffer of the table from <caption> </caption>
ScHTMLTableAutoId maTableId; /// Unique identifier of this table.
SfxItemSet maTableItemSet; /// Items for the entire table.
- SfxItemSetPtr mxRowItemSet; /// Items for the current table row.
- SfxItemSetPtr mxDataItemSet; /// Items for the current cell.
+ std::optional<SfxItemSet> moRowItemSet; /// Items for the current table row.
+ std::optional<SfxItemSet> moDataItemSet; /// Items for the current cell.
ScRangeList maHMergedCells; /// List of all horizontally merged cells.
ScRangeList maVMergedCells; /// List of all vertically merged cells.
ScRangeList maUsedCells; /// List of all used cells.
More information about the Libreoffice-commits
mailing list