editeng: prefix members of ContentNode, CharAttribList, ContentAttribs
Change-Id: I2af96b6525ee0d4410200775ce4daf71bcc80db4 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/161354 Tested-by: Jenkins Reviewed-by: Tomaž Vajngerl <quikee@gmail.com>
This commit is contained in:
committed by
Tomaž Vajngerl
parent
ea526b0af7
commit
beb2b1d6b1
+20
-20
@@ -37,8 +37,8 @@ class SvxTabStop;
|
||||
class ContentAttribs
|
||||
{
|
||||
private:
|
||||
SfxStyleSheet* pStyle;
|
||||
SfxItemSetFixed<EE_PARA_START, EE_CHAR_END> aAttribSet;
|
||||
SfxStyleSheet* mpStyle;
|
||||
SfxItemSetFixed<EE_PARA_START, EE_CHAR_END> maAttribSet;
|
||||
|
||||
public:
|
||||
ContentAttribs(SfxItemPool& rItemPool);
|
||||
@@ -46,10 +46,10 @@ public:
|
||||
void dumpAsXml(xmlTextWriterPtr pWriter) const;
|
||||
|
||||
SvxTabStop FindTabStop(sal_Int32 nCurPos, sal_uInt16 nDefTab);
|
||||
SfxItemSet& GetItems() { return aAttribSet; }
|
||||
const SfxItemSet& GetItems() const { return aAttribSet; }
|
||||
const SfxStyleSheet* GetStyleSheet() const { return pStyle; }
|
||||
SfxStyleSheet* GetStyleSheet() { return pStyle; }
|
||||
SfxItemSet& GetItems() { return maAttribSet; }
|
||||
const SfxItemSet& GetItems() const { return maAttribSet; }
|
||||
const SfxStyleSheet* GetStyleSheet() const { return mpStyle; }
|
||||
SfxStyleSheet* GetStyleSheet() { return mpStyle; }
|
||||
void SetStyleSheet(SfxStyleSheet* pS);
|
||||
|
||||
const SfxPoolItem& GetItem(sal_uInt16 nWhich) const;
|
||||
@@ -66,9 +66,9 @@ public:
|
||||
typedef std::vector<std::unique_ptr<EditCharAttrib>> AttribsType;
|
||||
|
||||
private:
|
||||
AttribsType aAttribs;
|
||||
SvxFont aDefFont; // faster than ever from the pool!
|
||||
bool bHasEmptyAttribs;
|
||||
AttribsType maAttribs;
|
||||
SvxFont maDefFont; // faster than ever from the pool!
|
||||
bool mbHasEmptyAttribs;
|
||||
|
||||
public:
|
||||
CharAttribList();
|
||||
@@ -91,15 +91,15 @@ public:
|
||||
|
||||
void InsertAttrib(EditCharAttrib* pAttrib);
|
||||
|
||||
SvxFont& GetDefFont() { return aDefFont; }
|
||||
SvxFont& GetDefFont() { return maDefFont; }
|
||||
|
||||
bool HasEmptyAttribs() const { return bHasEmptyAttribs; }
|
||||
bool HasEmptyAttribs() const { return mbHasEmptyAttribs; }
|
||||
void SetHasEmptyAttribs(bool b);
|
||||
bool HasBoundingAttrib(sal_Int32 nBound) const;
|
||||
bool HasAttrib(sal_Int32 nStartPos, sal_Int32 nEndPos) const;
|
||||
|
||||
AttribsType& GetAttribs() { return aAttribs; }
|
||||
const AttribsType& GetAttribs() const { return aAttribs; }
|
||||
AttribsType& GetAttribs() { return maAttribs; }
|
||||
const AttribsType& GetAttribs() const { return maAttribs; }
|
||||
|
||||
void Remove(const EditCharAttrib* p);
|
||||
void Remove(sal_Int32 nPos);
|
||||
@@ -113,8 +113,8 @@ class ContentNode
|
||||
{
|
||||
private:
|
||||
OUString maString;
|
||||
ContentAttribs aContentAttribs;
|
||||
CharAttribList aCharAttribList;
|
||||
ContentAttribs maContentAttribs;
|
||||
CharAttribList maCharAttribList;
|
||||
std::unique_ptr<WrongList> mpWrongList;
|
||||
|
||||
void UnExpandPosition(sal_Int32& rStartPos, bool bBiasStart);
|
||||
@@ -128,10 +128,10 @@ public:
|
||||
|
||||
void dumpAsXml(xmlTextWriterPtr pWriter) const;
|
||||
|
||||
ContentAttribs& GetContentAttribs() { return aContentAttribs; }
|
||||
const ContentAttribs& GetContentAttribs() const { return aContentAttribs; }
|
||||
CharAttribList& GetCharAttribs() { return aCharAttribList; }
|
||||
const CharAttribList& GetCharAttribs() const { return aCharAttribList; }
|
||||
ContentAttribs& GetContentAttribs() { return maContentAttribs; }
|
||||
const ContentAttribs& GetContentAttribs() const { return maContentAttribs; }
|
||||
CharAttribList& GetCharAttribs() { return maCharAttribList; }
|
||||
const CharAttribList& GetCharAttribs() const { return maCharAttribList; }
|
||||
|
||||
void ExpandAttribs(sal_Int32 nIndex, sal_Int32 nNewChars);
|
||||
void CollapseAttribs(sal_Int32 nIndex, sal_Int32 nDelChars);
|
||||
@@ -140,7 +140,7 @@ public:
|
||||
|
||||
void SetStyleSheet(SfxStyleSheet* pS, bool bRecalcFont = true);
|
||||
void SetStyleSheet(SfxStyleSheet* pS, const SvxFont& rFontFromStyle);
|
||||
SfxStyleSheet* GetStyleSheet() { return aContentAttribs.GetStyleSheet(); }
|
||||
SfxStyleSheet* GetStyleSheet() { return maContentAttribs.GetStyleSheet(); }
|
||||
|
||||
void CreateDefFont();
|
||||
|
||||
|
||||
@@ -1164,12 +1164,14 @@ bool operator != ( const EditPaM& r1, const EditPaM& r2 )
|
||||
return !( r1 == r2 );
|
||||
}
|
||||
|
||||
ContentNode::ContentNode( SfxItemPool& rPool ) : aContentAttribs( rPool )
|
||||
ContentNode::ContentNode( SfxItemPool& rPool )
|
||||
: maContentAttribs( rPool )
|
||||
{
|
||||
}
|
||||
|
||||
ContentNode::ContentNode( const OUString& rStr, const ContentAttribs& rContentAttribs ) :
|
||||
maString(rStr), aContentAttribs(rContentAttribs)
|
||||
ContentNode::ContentNode( const OUString& rStr, const ContentAttribs& rContentAttribs )
|
||||
: maString(rStr)
|
||||
, maContentAttribs(rContentAttribs)
|
||||
{
|
||||
}
|
||||
|
||||
@@ -1183,7 +1185,7 @@ void ContentNode::ExpandAttribs( sal_Int32 nIndex, sal_Int32 nNew )
|
||||
return;
|
||||
|
||||
#if OSL_DEBUG_LEVEL > 0 && !defined NDEBUG
|
||||
CharAttribList::DbgCheckAttribs(aCharAttribList);
|
||||
CharAttribList::DbgCheckAttribs(maCharAttribList);
|
||||
#endif
|
||||
|
||||
// Since features are treated differently than normal character attributes,
|
||||
@@ -1195,7 +1197,7 @@ void ContentNode::ExpandAttribs( sal_Int32 nIndex, sal_Int32 nNew )
|
||||
bool bExpandedEmptyAtIndexNull = false;
|
||||
|
||||
std::size_t nAttr = 0;
|
||||
CharAttribList::AttribsType& rAttribs = aCharAttribList.GetAttribs();
|
||||
CharAttribList::AttribsType& rAttribs = maCharAttribList.GetAttribs();
|
||||
EditCharAttrib* pAttrib = GetAttrib(rAttribs, nAttr);
|
||||
while ( pAttrib )
|
||||
{
|
||||
@@ -1227,7 +1229,7 @@ void ContentNode::ExpandAttribs( sal_Int32 nIndex, sal_Int32 nNew )
|
||||
// and if not in exclude list!
|
||||
// Otherwise, a UL will go on until a new ULDB, expanding both
|
||||
// if ( !pAttrib->IsFeature() && !rExclList.FindAttrib( pAttrib->Which() ) )
|
||||
if ( !pAttrib->IsFeature() && !aCharAttribList.FindEmptyAttrib( pAttrib->Which(), nIndex ) )
|
||||
if ( !pAttrib->IsFeature() && !maCharAttribList.FindEmptyAttrib( pAttrib->Which(), nIndex ) )
|
||||
{
|
||||
if ( !pAttrib->IsEdge() )
|
||||
pAttrib->Expand( nNew );
|
||||
@@ -1261,7 +1263,7 @@ void ContentNode::ExpandAttribs( sal_Int32 nIndex, sal_Int32 nNew )
|
||||
sal_uInt16 nW = pAttrib->GetItem()->Which();
|
||||
for ( std::size_t nA = 0; nA < nAttr; nA++ )
|
||||
{
|
||||
const EditCharAttrib& r = *aCharAttribList.GetAttribs()[nA];
|
||||
const EditCharAttrib& r = *maCharAttribList.GetAttribs()[nA];
|
||||
if ( ( r.GetStart() == 0 ) && ( r.GetItem()->Which() == nW ) )
|
||||
{
|
||||
bExpand = false;
|
||||
@@ -1305,7 +1307,7 @@ void ContentNode::ExpandAttribs( sal_Int32 nIndex, sal_Int32 nNew )
|
||||
}
|
||||
|
||||
if ( bResort )
|
||||
aCharAttribList.ResortAttribs();
|
||||
maCharAttribList.ResortAttribs();
|
||||
|
||||
if (mpWrongList)
|
||||
{
|
||||
@@ -1314,7 +1316,7 @@ void ContentNode::ExpandAttribs( sal_Int32 nIndex, sal_Int32 nNew )
|
||||
}
|
||||
|
||||
#if OSL_DEBUG_LEVEL > 0 && !defined NDEBUG
|
||||
CharAttribList::DbgCheckAttribs(aCharAttribList);
|
||||
CharAttribList::DbgCheckAttribs(maCharAttribList);
|
||||
#endif
|
||||
}
|
||||
|
||||
@@ -1324,7 +1326,7 @@ void ContentNode::CollapseAttribs( sal_Int32 nIndex, sal_Int32 nDeleted )
|
||||
return;
|
||||
|
||||
#if OSL_DEBUG_LEVEL > 0 && !defined NDEBUG
|
||||
CharAttribList::DbgCheckAttribs(aCharAttribList);
|
||||
CharAttribList::DbgCheckAttribs(maCharAttribList);
|
||||
#endif
|
||||
|
||||
// Since features are treated differently than normal character attributes,
|
||||
@@ -1333,7 +1335,7 @@ void ContentNode::CollapseAttribs( sal_Int32 nIndex, sal_Int32 nDeleted )
|
||||
sal_Int32 nEndChanges = nIndex+nDeleted;
|
||||
|
||||
std::size_t nAttr = 0;
|
||||
CharAttribList::AttribsType& rAttribs = aCharAttribList.GetAttribs();
|
||||
CharAttribList::AttribsType& rAttribs = maCharAttribList.GetAttribs();
|
||||
EditCharAttrib* pAttrib = GetAttrib(rAttribs, nAttr);
|
||||
while ( pAttrib )
|
||||
{
|
||||
@@ -1395,7 +1397,7 @@ void ContentNode::CollapseAttribs( sal_Int32 nIndex, sal_Int32 nDeleted )
|
||||
else
|
||||
{
|
||||
if ( pAttrib->IsEmpty() )
|
||||
aCharAttribList.SetHasEmptyAttribs(true);
|
||||
maCharAttribList.SetHasEmptyAttribs(true);
|
||||
nAttr++;
|
||||
}
|
||||
|
||||
@@ -1403,13 +1405,13 @@ void ContentNode::CollapseAttribs( sal_Int32 nIndex, sal_Int32 nDeleted )
|
||||
}
|
||||
|
||||
if ( bResort )
|
||||
aCharAttribList.ResortAttribs();
|
||||
maCharAttribList.ResortAttribs();
|
||||
|
||||
if (mpWrongList)
|
||||
mpWrongList->TextDeleted(nIndex, nDeleted);
|
||||
|
||||
#if OSL_DEBUG_LEVEL > 0 && !defined NDEBUG
|
||||
CharAttribList::DbgCheckAttribs(aCharAttribList);
|
||||
CharAttribList::DbgCheckAttribs(maCharAttribList);
|
||||
#endif
|
||||
}
|
||||
|
||||
@@ -1418,8 +1420,8 @@ void ContentNode::CopyAndCutAttribs( ContentNode* pPrevNode, SfxItemPool& rPool,
|
||||
assert(pPrevNode);
|
||||
|
||||
#if OSL_DEBUG_LEVEL > 0 && !defined NDEBUG
|
||||
CharAttribList::DbgCheckAttribs(aCharAttribList);
|
||||
CharAttribList::DbgCheckAttribs(pPrevNode->aCharAttribList);
|
||||
CharAttribList::DbgCheckAttribs(maCharAttribList);
|
||||
CharAttribList::DbgCheckAttribs(pPrevNode->maCharAttribList);
|
||||
#endif
|
||||
|
||||
sal_Int32 nCut = pPrevNode->Len();
|
||||
@@ -1437,11 +1439,11 @@ void ContentNode::CopyAndCutAttribs( ContentNode* pPrevNode, SfxItemPool& rPool,
|
||||
else if ( pAttrib->GetEnd() == nCut )
|
||||
{
|
||||
// must be copied as an empty attributes.
|
||||
if ( bKeepEndingAttribs && !pAttrib->IsFeature() && !aCharAttribList.FindAttrib( pAttrib->GetItem()->Which(), 0 ) )
|
||||
if ( bKeepEndingAttribs && !pAttrib->IsFeature() && !maCharAttribList.FindAttrib( pAttrib->GetItem()->Which(), 0 ) )
|
||||
{
|
||||
EditCharAttrib* pNewAttrib = MakeCharAttrib( rPool, *(pAttrib->GetItem()), 0, 0 );
|
||||
assert(pNewAttrib);
|
||||
aCharAttribList.InsertAttrib( pNewAttrib );
|
||||
maCharAttribList.InsertAttrib( pNewAttrib );
|
||||
}
|
||||
nAttr++;
|
||||
}
|
||||
@@ -1451,7 +1453,7 @@ void ContentNode::CopyAndCutAttribs( ContentNode* pPrevNode, SfxItemPool& rPool,
|
||||
// kept! Has to be copied and changed.
|
||||
EditCharAttrib* pNewAttrib = MakeCharAttrib( rPool, *(pAttrib->GetItem()), 0, pAttrib->GetEnd()-nCut );
|
||||
assert(pNewAttrib);
|
||||
aCharAttribList.InsertAttrib( pNewAttrib );
|
||||
maCharAttribList.InsertAttrib( pNewAttrib );
|
||||
pAttrib->GetEnd() = nCut;
|
||||
nAttr++;
|
||||
}
|
||||
@@ -1459,7 +1461,7 @@ void ContentNode::CopyAndCutAttribs( ContentNode* pPrevNode, SfxItemPool& rPool,
|
||||
{
|
||||
// Move all attributes in the current node (this)
|
||||
CharAttribList::AttribsType::iterator it = rPrevAttribs.begin() + nAttr;
|
||||
aCharAttribList.InsertAttrib(it->release());
|
||||
maCharAttribList.InsertAttrib(it->release());
|
||||
rPrevAttribs.erase(it);
|
||||
pAttrib->MoveBackward( nCut );
|
||||
}
|
||||
@@ -1467,8 +1469,8 @@ void ContentNode::CopyAndCutAttribs( ContentNode* pPrevNode, SfxItemPool& rPool,
|
||||
}
|
||||
|
||||
#if OSL_DEBUG_LEVEL > 0 && !defined NDEBUG
|
||||
CharAttribList::DbgCheckAttribs(aCharAttribList);
|
||||
CharAttribList::DbgCheckAttribs(pPrevNode->aCharAttribList);
|
||||
CharAttribList::DbgCheckAttribs(maCharAttribList);
|
||||
CharAttribList::DbgCheckAttribs(pPrevNode->maCharAttribList);
|
||||
#endif
|
||||
}
|
||||
|
||||
@@ -1479,8 +1481,8 @@ void ContentNode::AppendAttribs( ContentNode* pNextNode )
|
||||
sal_Int32 nNewStart = maString.getLength();
|
||||
|
||||
#if OSL_DEBUG_LEVEL > 0 && !defined NDEBUG
|
||||
CharAttribList::DbgCheckAttribs(aCharAttribList);
|
||||
CharAttribList::DbgCheckAttribs(pNextNode->aCharAttribList);
|
||||
CharAttribList::DbgCheckAttribs(maCharAttribList);
|
||||
CharAttribList::DbgCheckAttribs(pNextNode->maCharAttribList);
|
||||
#endif
|
||||
|
||||
std::size_t nAttr = 0;
|
||||
@@ -1494,7 +1496,7 @@ void ContentNode::AppendAttribs( ContentNode* pNextNode )
|
||||
{
|
||||
// Attributes can possibly be summarized as:
|
||||
std::size_t nTmpAttr = 0;
|
||||
EditCharAttrib* pTmpAttrib = GetAttrib( aCharAttribList.GetAttribs(), nTmpAttr );
|
||||
EditCharAttrib* pTmpAttrib = GetAttrib( maCharAttribList.GetAttribs(), nTmpAttr );
|
||||
while ( !bMelted && pTmpAttrib )
|
||||
{
|
||||
++nTmpAttr;
|
||||
@@ -1515,11 +1517,11 @@ void ContentNode::AppendAttribs( ContentNode* pNextNode )
|
||||
else if (0 == pTmpAttrib->GetLen())
|
||||
{
|
||||
--nTmpAttr; // to cancel earlier increment...
|
||||
aCharAttribList.Remove(nTmpAttr);
|
||||
maCharAttribList.Remove(nTmpAttr);
|
||||
}
|
||||
}
|
||||
}
|
||||
pTmpAttrib = GetAttrib( aCharAttribList.GetAttribs(), nTmpAttr );
|
||||
pTmpAttrib = GetAttrib( maCharAttribList.GetAttribs(), nTmpAttr );
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1528,7 +1530,7 @@ void ContentNode::AppendAttribs( ContentNode* pNextNode )
|
||||
pAttrib->GetStart() = pAttrib->GetStart() + nNewStart;
|
||||
pAttrib->GetEnd() = pAttrib->GetEnd() + nNewStart;
|
||||
CharAttribList::AttribsType::iterator it = rNextAttribs.begin() + nAttr;
|
||||
aCharAttribList.InsertAttrib(it->release());
|
||||
maCharAttribList.InsertAttrib(it->release());
|
||||
rNextAttribs.erase(it);
|
||||
}
|
||||
pAttrib = GetAttrib(rNextAttribs, nAttr);
|
||||
@@ -1537,15 +1539,15 @@ void ContentNode::AppendAttribs( ContentNode* pNextNode )
|
||||
rNextAttribs.clear();
|
||||
|
||||
#if OSL_DEBUG_LEVEL > 0 && !defined NDEBUG
|
||||
CharAttribList::DbgCheckAttribs(aCharAttribList);
|
||||
CharAttribList::DbgCheckAttribs(pNextNode->aCharAttribList);
|
||||
CharAttribList::DbgCheckAttribs(maCharAttribList);
|
||||
CharAttribList::DbgCheckAttribs(pNextNode->maCharAttribList);
|
||||
#endif
|
||||
}
|
||||
|
||||
void ContentNode::CreateDefFont()
|
||||
{
|
||||
// First use the information from the style ...
|
||||
SfxStyleSheet* pS = aContentAttribs.GetStyleSheet();
|
||||
SfxStyleSheet* pS = maContentAttribs.GetStyleSheet();
|
||||
if ( pS )
|
||||
CreateFont( GetCharAttribs().GetDefFont(), pS->GetItemSet() );
|
||||
|
||||
@@ -1556,7 +1558,7 @@ void ContentNode::CreateDefFont()
|
||||
|
||||
void ContentNode::SetStyleSheet( SfxStyleSheet* pS, const SvxFont& rFontFromStyle )
|
||||
{
|
||||
aContentAttribs.SetStyleSheet( pS );
|
||||
maContentAttribs.SetStyleSheet( pS );
|
||||
|
||||
|
||||
// First use the information from the style ...
|
||||
@@ -1568,7 +1570,7 @@ void ContentNode::SetStyleSheet( SfxStyleSheet* pS, const SvxFont& rFontFromStyl
|
||||
|
||||
void ContentNode::SetStyleSheet( SfxStyleSheet* pS, bool bRecalcFont )
|
||||
{
|
||||
aContentAttribs.SetStyleSheet( pS );
|
||||
maContentAttribs.SetStyleSheet( pS );
|
||||
if ( bRecalcFont )
|
||||
CreateDefFont();
|
||||
}
|
||||
@@ -1771,8 +1773,8 @@ void ContentNode::dumpAsXml(xmlTextWriterPtr pWriter) const
|
||||
{
|
||||
(void)xmlTextWriterStartElement(pWriter, BAD_CAST("ContentNode"));
|
||||
(void)xmlTextWriterWriteAttribute(pWriter, BAD_CAST("maString"), BAD_CAST(maString.toUtf8().getStr()));
|
||||
aContentAttribs.dumpAsXml(pWriter);
|
||||
aCharAttribList.dumpAsXml(pWriter);
|
||||
maContentAttribs.dumpAsXml(pWriter);
|
||||
maCharAttribList.dumpAsXml(pWriter);
|
||||
(void)xmlTextWriterEndElement(pWriter);
|
||||
}
|
||||
|
||||
@@ -1786,8 +1788,8 @@ void ContentNode::checkAndDeleteEmptyAttribs() const
|
||||
}
|
||||
|
||||
ContentAttribs::ContentAttribs( SfxItemPool& rPool )
|
||||
: pStyle(nullptr)
|
||||
, aAttribSet( rPool )
|
||||
: mpStyle(nullptr)
|
||||
, maAttribSet( rPool )
|
||||
{
|
||||
}
|
||||
|
||||
@@ -1815,30 +1817,30 @@ SvxTabStop ContentAttribs::FindTabStop( sal_Int32 nCurPos, sal_uInt16 nDefTab )
|
||||
|
||||
void ContentAttribs::SetStyleSheet( SfxStyleSheet* pS )
|
||||
{
|
||||
bool bStyleChanged = ( pStyle != pS );
|
||||
pStyle = pS;
|
||||
bool bStyleChanged = ( mpStyle != pS );
|
||||
mpStyle = pS;
|
||||
// Only when other style sheet, not when current style sheet modified
|
||||
if ( !(pStyle && bStyleChanged) )
|
||||
if ( !(mpStyle && bStyleChanged) )
|
||||
return;
|
||||
|
||||
// Selectively remove the attributes from the paragraph formatting
|
||||
// which are specified in the style, so that the attributes of the
|
||||
// style can have an affect.
|
||||
const SfxItemSet& rStyleAttribs = pStyle->GetItemSet();
|
||||
const SfxItemSet& rStyleAttribs = mpStyle->GetItemSet();
|
||||
for ( sal_uInt16 nWhich = EE_PARA_START; nWhich <= EE_CHAR_END; nWhich++ )
|
||||
{
|
||||
// Don't change bullet on/off
|
||||
if ( ( nWhich != EE_PARA_BULLETSTATE ) && ( rStyleAttribs.GetItemState( nWhich ) == SfxItemState::SET ) )
|
||||
aAttribSet.ClearItem( nWhich );
|
||||
maAttribSet.ClearItem( nWhich );
|
||||
}
|
||||
}
|
||||
|
||||
const SfxPoolItem& ContentAttribs::GetItem( sal_uInt16 nWhich ) const
|
||||
{
|
||||
// Hard paragraph attributes take precedence!
|
||||
const SfxItemSet* pTakeFrom = &aAttribSet;
|
||||
if ( pStyle && ( aAttribSet.GetItemState( nWhich, false ) != SfxItemState::SET ) )
|
||||
pTakeFrom = &pStyle->GetItemSet();
|
||||
const SfxItemSet* pTakeFrom = &maAttribSet;
|
||||
if ( mpStyle && ( maAttribSet.GetItemState( nWhich, false ) != SfxItemState::SET ) )
|
||||
pTakeFrom = &mpStyle->GetItemSet();
|
||||
|
||||
return pTakeFrom->Get( nWhich );
|
||||
}
|
||||
@@ -1846,9 +1848,9 @@ const SfxPoolItem& ContentAttribs::GetItem( sal_uInt16 nWhich ) const
|
||||
bool ContentAttribs::HasItem( sal_uInt16 nWhich ) const
|
||||
{
|
||||
bool bHasItem = false;
|
||||
if ( aAttribSet.GetItemState( nWhich, false ) == SfxItemState::SET )
|
||||
if ( maAttribSet.GetItemState( nWhich, false ) == SfxItemState::SET )
|
||||
bHasItem = true;
|
||||
else if ( pStyle && pStyle->GetItemSet().GetItemState( nWhich ) == SfxItemState::SET )
|
||||
else if ( mpStyle && mpStyle->GetItemSet().GetItemState( nWhich ) == SfxItemState::SET )
|
||||
bHasItem = true;
|
||||
|
||||
return bHasItem;
|
||||
@@ -1857,8 +1859,8 @@ bool ContentAttribs::HasItem( sal_uInt16 nWhich ) const
|
||||
void ContentAttribs::dumpAsXml(xmlTextWriterPtr pWriter) const
|
||||
{
|
||||
(void)xmlTextWriterStartElement(pWriter, BAD_CAST("ContentAttribs"));
|
||||
(void)xmlTextWriterWriteFormatAttribute(pWriter, BAD_CAST("style"), "%s", pStyle->GetName().toUtf8().getStr());
|
||||
aAttribSet.dumpAsXml(pWriter);
|
||||
(void)xmlTextWriterWriteFormatAttribute(pWriter, BAD_CAST("style"), "%s", mpStyle->GetName().toUtf8().getStr());
|
||||
maAttribSet.dumpAsXml(pWriter);
|
||||
(void)xmlTextWriterEndElement(pWriter);
|
||||
}
|
||||
|
||||
@@ -2665,7 +2667,7 @@ struct LessByStart
|
||||
}
|
||||
|
||||
CharAttribList::CharAttribList()
|
||||
: bHasEmptyAttribs(false)
|
||||
: mbHasEmptyAttribs(false)
|
||||
{
|
||||
}
|
||||
|
||||
@@ -2691,21 +2693,21 @@ void CharAttribList::InsertAttrib( EditCharAttrib* pAttrib )
|
||||
#endif
|
||||
|
||||
if ( pAttrib->IsEmpty() )
|
||||
bHasEmptyAttribs = true;
|
||||
mbHasEmptyAttribs = true;
|
||||
|
||||
bool bInsert(true);
|
||||
for (sal_Int32 i = 0, n = aAttribs.size(); i < n; ++i)
|
||||
for (sal_Int32 i = 0, n = maAttribs.size(); i < n; ++i)
|
||||
{
|
||||
const EditCharAttrib& rCurAttrib = *aAttribs[i];
|
||||
const EditCharAttrib& rCurAttrib = *maAttribs[i];
|
||||
if (rCurAttrib.GetStart() > nStart)
|
||||
{
|
||||
aAttribs.insert(aAttribs.begin()+i, std::unique_ptr<EditCharAttrib>(pAttrib));
|
||||
maAttribs.insert(maAttribs.begin()+i, std::unique_ptr<EditCharAttrib>(pAttrib));
|
||||
bInsert = false;
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
if (bInsert) aAttribs.push_back(std::unique_ptr<EditCharAttrib>(pAttrib));
|
||||
if (bInsert) maAttribs.push_back(std::unique_ptr<EditCharAttrib>(pAttrib));
|
||||
|
||||
#if OSL_DEBUG_LEVEL > 0 && !defined NDEBUG
|
||||
CharAttribList::DbgCheckAttribs(*this);
|
||||
@@ -2714,7 +2716,7 @@ void CharAttribList::InsertAttrib( EditCharAttrib* pAttrib )
|
||||
|
||||
void CharAttribList::ResortAttribs()
|
||||
{
|
||||
std::sort(aAttribs.begin(), aAttribs.end(), LessByStart());
|
||||
std::sort(maAttribs.begin(), maAttribs.end(), LessByStart());
|
||||
|
||||
#if OSL_DEBUG_LEVEL > 0 && !defined NDEBUG
|
||||
CharAttribList::DbgCheckAttribs(*this);
|
||||
@@ -2726,18 +2728,18 @@ void CharAttribList::OptimizeRanges()
|
||||
#if OSL_DEBUG_LEVEL > 0 && !defined NDEBUG
|
||||
CharAttribList::DbgCheckAttribs(*this);
|
||||
#endif
|
||||
for (sal_Int32 i = 0; i < static_cast<sal_Int32>(aAttribs.size()); ++i)
|
||||
for (sal_Int32 i = 0; i < static_cast<sal_Int32>(maAttribs.size()); ++i)
|
||||
{
|
||||
EditCharAttrib& rAttr = *aAttribs[i];
|
||||
for (sal_Int32 nNext = i+1; nNext < static_cast<sal_Int32>(aAttribs.size()); ++nNext)
|
||||
EditCharAttrib& rAttr = *maAttribs[i];
|
||||
for (sal_Int32 nNext = i+1; nNext < static_cast<sal_Int32>(maAttribs.size()); ++nNext)
|
||||
{
|
||||
EditCharAttrib& rNext = *aAttribs[nNext];
|
||||
EditCharAttrib& rNext = *maAttribs[nNext];
|
||||
if (!rAttr.IsFeature() && rNext.GetStart() == rAttr.GetEnd() && rNext.Which() == rAttr.Which())
|
||||
{
|
||||
if (*rNext.GetItem() == *rAttr.GetItem())
|
||||
{
|
||||
rAttr.GetEnd() = rNext.GetEnd();
|
||||
aAttribs.erase(aAttribs.begin()+nNext);
|
||||
maAttribs.erase(maAttribs.begin()+nNext);
|
||||
}
|
||||
break; // only 1 attr with same which can start here.
|
||||
}
|
||||
@@ -2754,17 +2756,17 @@ void CharAttribList::OptimizeRanges()
|
||||
|
||||
sal_Int32 CharAttribList::Count() const
|
||||
{
|
||||
return aAttribs.size();
|
||||
return maAttribs.size();
|
||||
}
|
||||
|
||||
const EditCharAttrib* CharAttribList::FindAttrib( sal_uInt16 nWhich, sal_Int32 nPos ) const
|
||||
{
|
||||
// Backwards, if one ends where the next starts.
|
||||
// => The starting one is the valid one ...
|
||||
AttribsType::const_reverse_iterator it = std::find_if(aAttribs.rbegin(), aAttribs.rend(),
|
||||
AttribsType::const_reverse_iterator it = std::find_if(maAttribs.rbegin(), maAttribs.rend(),
|
||||
[&nWhich, &nPos](const AttribsType::value_type& rxAttr) {
|
||||
return rxAttr->Which() == nWhich && rxAttr->IsIn(nPos); });
|
||||
if (it != aAttribs.rend())
|
||||
if (it != maAttribs.rend())
|
||||
{
|
||||
const EditCharAttrib& rAttr = **it;
|
||||
return &rAttr;
|
||||
@@ -2776,10 +2778,10 @@ EditCharAttrib* CharAttribList::FindAttrib( sal_uInt16 nWhich, sal_Int32 nPos )
|
||||
{
|
||||
// Backwards, if one ends where the next starts.
|
||||
// => The starting one is the valid one ...
|
||||
AttribsType::reverse_iterator it = std::find_if(aAttribs.rbegin(), aAttribs.rend(),
|
||||
AttribsType::reverse_iterator it = std::find_if(maAttribs.rbegin(), maAttribs.rend(),
|
||||
[&nWhich, &nPos](AttribsType::value_type& rxAttr) {
|
||||
return rxAttr->Which() == nWhich && rxAttr->IsIn(nPos); });
|
||||
if (it != aAttribs.rend())
|
||||
if (it != maAttribs.rend())
|
||||
{
|
||||
EditCharAttrib& rAttr = **it;
|
||||
return &rAttr;
|
||||
@@ -2790,7 +2792,7 @@ EditCharAttrib* CharAttribList::FindAttrib( sal_uInt16 nWhich, sal_Int32 nPos )
|
||||
const EditCharAttrib* CharAttribList::FindNextAttrib( sal_uInt16 nWhich, sal_Int32 nFromPos ) const
|
||||
{
|
||||
assert(nWhich);
|
||||
for (auto const& attrib : aAttribs)
|
||||
for (auto const& attrib : maAttribs)
|
||||
{
|
||||
const EditCharAttrib& rAttr = *attrib;
|
||||
if (rAttr.GetStart() >= nFromPos && rAttr.Which() == nWhich)
|
||||
@@ -2801,7 +2803,7 @@ const EditCharAttrib* CharAttribList::FindNextAttrib( sal_uInt16 nWhich, sal_Int
|
||||
|
||||
bool CharAttribList::HasAttrib( sal_Int32 nStartPos, sal_Int32 nEndPos ) const
|
||||
{
|
||||
return std::any_of(aAttribs.rbegin(), aAttribs.rend(),
|
||||
return std::any_of(maAttribs.rbegin(), maAttribs.rend(),
|
||||
[&nStartPos, &nEndPos](const AttribsType::value_type& rxAttr) {
|
||||
return rxAttr->GetStart() < nEndPos && rxAttr->GetEnd() > nStartPos; });
|
||||
}
|
||||
@@ -2824,29 +2826,29 @@ public:
|
||||
|
||||
void CharAttribList::Remove(const EditCharAttrib* p)
|
||||
{
|
||||
AttribsType::iterator it = std::find_if(aAttribs.begin(), aAttribs.end(), FindByAddress(p));
|
||||
if (it != aAttribs.end())
|
||||
aAttribs.erase(it);
|
||||
AttribsType::iterator it = std::find_if(maAttribs.begin(), maAttribs.end(), FindByAddress(p));
|
||||
if (it != maAttribs.end())
|
||||
maAttribs.erase(it);
|
||||
}
|
||||
|
||||
void CharAttribList::Remove(sal_Int32 nPos)
|
||||
{
|
||||
if (nPos >= static_cast<sal_Int32>(aAttribs.size()))
|
||||
if (nPos >= static_cast<sal_Int32>(maAttribs.size()))
|
||||
return;
|
||||
|
||||
aAttribs.erase(aAttribs.begin()+nPos);
|
||||
maAttribs.erase(maAttribs.begin()+nPos);
|
||||
}
|
||||
|
||||
void CharAttribList::SetHasEmptyAttribs(bool b)
|
||||
{
|
||||
bHasEmptyAttribs = b;
|
||||
mbHasEmptyAttribs = b;
|
||||
}
|
||||
|
||||
bool CharAttribList::HasBoundingAttrib( sal_Int32 nBound ) const
|
||||
{
|
||||
// Backwards, if one ends where the next starts.
|
||||
// => The starting one is the valid one ...
|
||||
AttribsType::const_reverse_iterator it = aAttribs.rbegin(), itEnd = aAttribs.rend();
|
||||
AttribsType::const_reverse_iterator it = maAttribs.rbegin(), itEnd = maAttribs.rend();
|
||||
for (; it != itEnd; ++it)
|
||||
{
|
||||
const EditCharAttrib& rAttr = **it;
|
||||
@@ -2861,10 +2863,10 @@ bool CharAttribList::HasBoundingAttrib( sal_Int32 nBound ) const
|
||||
|
||||
EditCharAttrib* CharAttribList::FindEmptyAttrib( sal_uInt16 nWhich, sal_Int32 nPos )
|
||||
{
|
||||
if ( !bHasEmptyAttribs )
|
||||
if ( !mbHasEmptyAttribs )
|
||||
return nullptr;
|
||||
|
||||
for (const std::unique_ptr<EditCharAttrib>& rAttr : aAttribs)
|
||||
for (const std::unique_ptr<EditCharAttrib>& rAttr : maAttribs)
|
||||
{
|
||||
if (rAttr->GetStart() == nPos && rAttr->GetEnd() == nPos && rAttr->Which() == nWhich)
|
||||
return rAttr.get();
|
||||
@@ -2891,28 +2893,28 @@ const EditCharAttrib* CharAttribList::FindFeature( sal_Int32 nPos ) const
|
||||
{
|
||||
// First, find the first attribute that starts at or after specified position.
|
||||
AttribsType::const_iterator it =
|
||||
std::find_if(aAttribs.begin(), aAttribs.end(), FindByStartPos(nPos));
|
||||
std::find_if(maAttribs.begin(), maAttribs.end(), FindByStartPos(nPos));
|
||||
|
||||
if (it == aAttribs.end())
|
||||
if (it == maAttribs.end())
|
||||
// All attributes are before the specified position.
|
||||
return nullptr;
|
||||
|
||||
// And find the first attribute with feature.
|
||||
it = std::find_if(it, aAttribs.end(), [](const std::unique_ptr<EditCharAttrib>& aAttrib) { return aAttrib->IsFeature(); } );
|
||||
return it == aAttribs.end() ? nullptr : it->get();
|
||||
it = std::find_if(it, maAttribs.end(), [](const std::unique_ptr<EditCharAttrib>& aAttrib) { return aAttrib->IsFeature(); } );
|
||||
return it == maAttribs.end() ? nullptr : it->get();
|
||||
}
|
||||
|
||||
void CharAttribList::DeleteEmptyAttribs()
|
||||
{
|
||||
std::erase_if(aAttribs, [](const std::unique_ptr<EditCharAttrib>& aAttrib) { return aAttrib->IsEmpty(); } );
|
||||
bHasEmptyAttribs = false;
|
||||
std::erase_if(maAttribs, [](const std::unique_ptr<EditCharAttrib>& aAttrib) { return aAttrib->IsEmpty(); } );
|
||||
mbHasEmptyAttribs = false;
|
||||
}
|
||||
|
||||
#if OSL_DEBUG_LEVEL > 0 && !defined NDEBUG
|
||||
void CharAttribList::DbgCheckAttribs(CharAttribList const& rAttribs)
|
||||
{
|
||||
std::set<std::pair<sal_Int32, sal_uInt16>> zero_set;
|
||||
for (const std::unique_ptr<EditCharAttrib>& rAttr : rAttribs.aAttribs)
|
||||
for (const std::unique_ptr<EditCharAttrib>& rAttr : rAttribs.maAttribs)
|
||||
{
|
||||
assert(rAttr->GetStart() <= rAttr->GetEnd());
|
||||
assert(!rAttr->IsFeature() || rAttr->GetLen() == 1);
|
||||
@@ -2929,7 +2931,7 @@ void CharAttribList::DbgCheckAttribs(CharAttribList const& rAttribs)
|
||||
void CharAttribList::dumpAsXml(xmlTextWriterPtr pWriter) const
|
||||
{
|
||||
(void)xmlTextWriterStartElement(pWriter, BAD_CAST("CharAttribList"));
|
||||
for (auto const & i : aAttribs) {
|
||||
for (auto const & i : maAttribs) {
|
||||
i->dumpAsXml(pWriter);
|
||||
}
|
||||
(void)xmlTextWriterEndElement(pWriter);
|
||||
|
||||
Reference in New Issue
Block a user