[Libreoffice-commits] core.git: 2 commits - editeng/source

Noel Grandin noel at peralex.com
Tue Sep 13 14:15:32 UTC 2016


 editeng/source/editeng/editobj.cxx      |   74 +++++++++++++++++++-------------
 editeng/source/editeng/editobj2.hxx     |   22 +++++----
 editeng/source/editeng/fieldupdater.cxx |    2 
 editeng/source/editeng/impedit4.cxx     |    6 +-
 4 files changed, 63 insertions(+), 41 deletions(-)

New commits:
commit df89e038095bbd834aae355f52cf1176bdf67e5f
Author: Noel Grandin <noel at peralex.com>
Date:   Tue Sep 13 15:57:09 2016 +0200

    rename ContentInfo attribs field and methods to charAttribs
    
    to match naming higher up the call stack
    
    Change-Id: I8a89625de5d834b32fd6ea863ebc4152956a21fe

diff --git a/editeng/source/editeng/editobj.cxx b/editeng/source/editeng/editobj.cxx
index 7b8f00b..18dd3a4 100644
--- a/editeng/source/editeng/editobj.cxx
+++ b/editeng/source/editeng/editobj.cxx
@@ -127,12 +127,12 @@ ContentInfo::ContentInfo( const ContentInfo& rCopyFrom, SfxItemPool& rPoolToUse
     // this should ensure that the Items end up in the correct Pool!
     aParaAttribs.Set( rCopyFrom.GetParaAttribs() );
 
-    for (const auto & aAttrib : rCopyFrom.aAttribs)
+    for (const auto & aAttrib : rCopyFrom.maCharAttribs)
     {
         const XEditAttribute& rAttr = *aAttrib.get();
         XEditAttribute* pMyAttr = MakeXEditAttribute(
             rPoolToUse, *rAttr.GetItem(), rAttr.GetStart(), rAttr.GetEnd());
-        aAttribs.push_back(std::unique_ptr<XEditAttribute>(pMyAttr));
+        maCharAttribs.push_back(std::unique_ptr<XEditAttribute>(pMyAttr));
     }
 
     if ( rCopyFrom.GetWrongList() )
@@ -141,10 +141,10 @@ ContentInfo::ContentInfo( const ContentInfo& rCopyFrom, SfxItemPool& rPoolToUse
 
 ContentInfo::~ContentInfo()
 {
-    XEditAttributesType::iterator it = aAttribs.begin(), itEnd = aAttribs.end();
+    XEditAttributesType::iterator it = maCharAttribs.begin(), itEnd = maCharAttribs.end();
     for (; it != itEnd; ++it)
         aParaAttribs.GetPool()->Remove(*(*it)->GetItem());
-    aAttribs.clear();
+    maCharAttribs.clear();
 }
 
 void ContentInfo::NormalizeString( svl::SharedStringPool& rPool )
@@ -172,12 +172,12 @@ void ContentInfo::dumpAsXml(xmlTextWriterPtr pWriter) const
     xmlTextWriterWriteString(pWriter, BAD_CAST(GetText().toUtf8().getStr()));
     xmlTextWriterEndElement(pWriter);
     aParaAttribs.dumpAsXml(pWriter);
-    for (size_t i=0; i<aAttribs.size(); ++i)
+    for (size_t i=0; i<maCharAttribs.size(); ++i)
     {
         xmlTextWriterStartElement(pWriter, BAD_CAST("attribs"));
-        xmlTextWriterWriteFormatAttribute(pWriter, BAD_CAST("start"), "%d", aAttribs[i]->GetStart());
-        xmlTextWriterWriteFormatAttribute(pWriter, BAD_CAST("end"), "%d", aAttribs[i]->GetEnd());
-        aAttribs[i]->GetItem()->dumpAsXml(pWriter);
+        xmlTextWriterWriteFormatAttribute(pWriter, BAD_CAST("start"), "%d", maCharAttribs[i]->GetStart());
+        xmlTextWriterWriteFormatAttribute(pWriter, BAD_CAST("end"), "%d", maCharAttribs[i]->GetEnd());
+        maCharAttribs[i]->GetItem()->dumpAsXml(pWriter);
         xmlTextWriterEndElement(pWriter);
     }
     xmlTextWriterEndElement(pWriter);
@@ -731,7 +731,7 @@ void EditTextObjectImpl::GetCharAttribs( sal_Int32 nPara, std::vector<EECharAttr
 
     rLst.clear();
     const ContentInfo& rC = *aContents[nPara].get();
-    for (const auto & aAttrib : rC.aAttribs)
+    for (const auto & aAttrib : rC.maCharAttribs)
     {
         const XEditAttribute& rAttr = *aAttrib.get();
         EECharAttrib aEEAttr;
@@ -755,10 +755,10 @@ const SvxFieldItem* EditTextObjectImpl::GetField() const
         const ContentInfo& rC = *aContents[0].get();
         if (rC.GetText().getLength() == 1)
         {
-            size_t nAttribs = rC.aAttribs.size();
+            size_t nAttribs = rC.maCharAttribs.size();
             for (size_t nAttr = nAttribs; nAttr; )
             {
-                const XEditAttribute& rX = *rC.aAttribs[--nAttr].get();
+                const XEditAttribute& rX = *rC.maCharAttribs[--nAttr].get();
                 if (rX.GetItem()->Which() == EE_FEATURE_FIELD)
                     return static_cast<const SvxFieldItem*>(rX.GetItem());
             }
@@ -773,11 +773,11 @@ const SvxFieldData* EditTextObjectImpl::GetFieldData(sal_Int32 nPara, size_t nPo
         return nullptr;
 
     const ContentInfo& rC = *aContents[nPara].get();
-    if (nPos >= rC.aAttribs.size())
+    if (nPos >= rC.maCharAttribs.size())
         // URL position is out-of-bound.
         return nullptr;
 
-    ContentInfo::XEditAttributesType::const_iterator it = rC.aAttribs.begin(), itEnd = rC.aAttribs.end();
+    ContentInfo::XEditAttributesType::const_iterator it = rC.maCharAttribs.begin(), itEnd = rC.maCharAttribs.end();
     size_t nCurPos = 0;
     for (; it != itEnd; ++it)
     {
@@ -808,10 +808,10 @@ bool EditTextObjectImpl::HasField( sal_Int32 nType ) const
     for (size_t nPara = 0; nPara < nParagraphs; ++nPara)
     {
         const ContentInfo& rC = *aContents[nPara].get();
-        size_t nAttrs = rC.aAttribs.size();
+        size_t nAttrs = rC.maCharAttribs.size();
         for (size_t nAttr = 0; nAttr < nAttrs; ++nAttr)
         {
-            const XEditAttribute& rAttr = *rC.aAttribs[nAttr].get();
+            const XEditAttribute& rAttr = *rC.maCharAttribs[nAttr].get();
             if (rAttr.GetItem()->Which() != EE_FEATURE_FIELD)
                 continue;
 
@@ -841,13 +841,13 @@ bool EditTextObjectImpl::RemoveCharAttribs( sal_uInt16 _nWhich )
     {
         ContentInfo& rC = *aContents[--nPara].get();
 
-        for (size_t nAttr = rC.aAttribs.size(); nAttr; )
+        for (size_t nAttr = rC.maCharAttribs.size(); nAttr; )
         {
-            XEditAttribute& rAttr = *rC.aAttribs[--nAttr].get();
+            XEditAttribute& rAttr = *rC.maCharAttribs[--nAttr].get();
             if ( !_nWhich || (rAttr.GetItem()->Which() == _nWhich) )
             {
                 pPool->Remove(*rAttr.GetItem());
-                rC.aAttribs.erase(rC.aAttribs.begin()+nAttr);
+                rC.maCharAttribs.erase(rC.maCharAttribs.begin()+nAttr);
                 bChanged = true;
             }
         }
@@ -899,7 +899,7 @@ void EditTextObjectImpl::GetAllSections( std::vector<editeng::Section>& rAttrs )
         SectionBordersType& rBorders = aParaBorders[nPara];
         rBorders.push_back(0);
         rBorders.push_back(rC.GetText().getLength());
-        for (const auto & aAttrib : rC.aAttribs)
+        for (const auto & aAttrib : rC.maCharAttribs)
         {
             const XEditAttribute& rAttr = *aAttrib.get();
             const SfxPoolItem* pItem = rAttr.GetItem();
@@ -965,7 +965,7 @@ void EditTextObjectImpl::GetAllSections( std::vector<editeng::Section>& rAttrs )
             return;
         }
 
-        for (const auto & aAttrib : rC.aAttribs)
+        for (const auto & aAttrib : rC.maCharAttribs)
         {
             const XEditAttribute& rXAttr = *aAttrib.get();
             const SfxPoolItem* pItem = rXAttr.GetItem();
@@ -1131,9 +1131,9 @@ void EditTextObjectImpl::StoreData( SvStream& rOStream ) const
                 bSymbolPara = true;
             }
         }
-        for (size_t nA = 0; nA < rC.aAttribs.size(); ++nA)
+        for (size_t nA = 0; nA < rC.maCharAttribs.size(); ++nA)
         {
-            const XEditAttribute& rAttr = *rC.aAttribs[nA].get();
+            const XEditAttribute& rAttr = *rC.maCharAttribs[nA].get();
 
             if (rAttr.GetItem()->Which() == EE_CHAR_FONTINFO)
             {
@@ -1179,7 +1179,7 @@ void EditTextObjectImpl::StoreData( SvStream& rOStream ) const
         {
             for ( sal_uInt16 nChar = 0; nChar < rC.GetText().getLength(); nChar++ )
             {
-                const ContentInfo::XEditAttributesType& rAttribs = rC.aAttribs;
+                const ContentInfo::XEditAttributesType& rAttribs = rC.maCharAttribs;
                 if ( std::none_of(rAttribs.begin(), rAttribs.end(),
                                   FindAttribByChar(EE_CHAR_FONTINFO, nChar)) )
                 {
@@ -1207,7 +1207,7 @@ void EditTextObjectImpl::StoreData( SvStream& rOStream ) const
         rC.GetParaAttribs().Store( rOStream );
 
         // The number of attributes ...
-        size_t nAttribs = rC.aAttribs.size();
+        size_t nAttribs = rC.maCharAttribs.size();
         rOStream.WriteUInt16( nAttribs );
 
         // And the individual attributes
@@ -1215,7 +1215,7 @@ void EditTextObjectImpl::StoreData( SvStream& rOStream ) const
         // Which = 2; Surregat = 2; Start = 2; End = 2;
         for (size_t nAttr = 0; nAttr < nAttribs; ++nAttr)
         {
-            const XEditAttribute& rX = *rC.aAttribs[nAttr].get();
+            const XEditAttribute& rX = *rC.maCharAttribs[nAttr].get();
 
             rOStream.WriteUInt16( rX.GetItem()->Which() );
             GetPool()->StoreSurrogate(rOStream, rX.GetItem());
@@ -1355,7 +1355,7 @@ void EditTextObjectImpl::CreateData( SvStream& rIStream )
                 else
                 {
                     XEditAttribute* pAttr = new XEditAttribute( *pItem, nStart, nEnd );
-                    pC->aAttribs.push_back(std::unique_ptr<XEditAttribute>(pAttr));
+                    pC->maCharAttribs.push_back(std::unique_ptr<XEditAttribute>(pAttr));
 
                     if ( ( _nWhich >= EE_FEATURE_START ) && ( _nWhich <= EE_FEATURE_END ) )
                     {
@@ -1382,9 +1382,9 @@ void EditTextObjectImpl::CreateData( SvStream& rIStream )
             }
         }
 
-        for (size_t nAttr = pC->aAttribs.size(); nAttr; )
+        for (size_t nAttr = pC->maCharAttribs.size(); nAttr; )
         {
-            const XEditAttribute& rAttr = *pC->aAttribs[--nAttr].get();
+            const XEditAttribute& rAttr = *pC->maCharAttribs[--nAttr].get();
             if ( rAttr.GetItem()->Which() == EE_CHAR_FONTINFO )
             {
                 const SvxFontItem& rFontItem = static_cast<const SvxFontItem&>(*rAttr.GetItem());
@@ -1408,8 +1408,7 @@ void EditTextObjectImpl::CreateData( SvStream& rIStream )
                     XEditAttribute* pNewAttr = CreateAttrib(aNewFontItem, rAttr.GetStart(), rAttr.GetEnd());
 
                     pPool->Remove(*rAttr.GetItem());
-                    pC->aAttribs.erase(pC->aAttribs.begin()+nAttr);
-                    pC->aAttribs.insert(pC->aAttribs.begin()+nAttr, std::unique_ptr<XEditAttribute>(pNewAttr));
+                    pC->maCharAttribs[nAttr] = std::unique_ptr<XEditAttribute>(pNewAttr);
 
                     for ( sal_uInt16 nChar = pNewAttr->GetStart(); nChar < pNewAttr->GetEnd(); nChar++ )
                     {
@@ -1440,7 +1439,7 @@ void EditTextObjectImpl::CreateData( SvStream& rIStream )
 
                 for ( sal_uInt16 nChar = 0; nChar < pC->GetText().getLength(); nChar++ )
                 {
-                    const ContentInfo::XEditAttributesType& rAttribs = pC->aAttribs;
+                    const ContentInfo::XEditAttributesType& rAttribs = pC->maCharAttribs;
                     if ( std::none_of(rAttribs.begin(), rAttribs.end(),
                                       FindAttribByChar(EE_CHAR_FONTINFO, nChar)) )
                     {
diff --git a/editeng/source/editeng/editobj2.hxx b/editeng/source/editeng/editobj2.hxx
index 20558a1..736e7cd7 100644
--- a/editeng/source/editeng/editobj2.hxx
+++ b/editeng/source/editeng/editobj2.hxx
@@ -48,8 +48,8 @@ class XEditAttribute
 {
 private:
     const SfxPoolItem*  pItem;
-    sal_uInt16              nStart;
-    sal_uInt16              nEnd;
+    sal_uInt16          nStart;
+    sal_uInt16          nEnd;
 
                         XEditAttribute( const XEditAttribute& rCopyFrom ) = delete;
 
@@ -57,7 +57,7 @@ public:
     XEditAttribute( const SfxPoolItem& rAttr, sal_uInt16 nStart, sal_uInt16 nEnd );
     ~XEditAttribute();
 
-    const SfxPoolItem*  GetItem() const             { return pItem; }
+    const SfxPoolItem*      GetItem() const             { return pItem; }
 
     sal_uInt16&             GetStart()                  { return nStart; }
     sal_uInt16&             GetEnd()                    { return nEnd; }
@@ -74,7 +74,7 @@ public:
 struct XParaPortion
 {
     long                nHeight;
-    sal_uInt16              nFirstLineOffset;
+    sal_uInt16          nFirstLineOffset;
 
     EditLineList        aLines;
     TextPortionList     aTextPortions;
@@ -117,7 +117,7 @@ private:
     svl::SharedString   maText;
     OUString            aStyle;
 
-    XEditAttributesType aAttribs;
+    XEditAttributesType maCharAttribs;
     SfxStyleFamily      eFamily;
     SfxItemSet          aParaAttribs;
     std::unique_ptr<WrongList>
@@ -138,8 +138,8 @@ public:
 
     void dumpAsXml(struct _xmlTextWriter* pWriter) const;
 
-    const XEditAttributesType& GetAttribs() const { return aAttribs; }
-    XEditAttributesType& GetAttribs() { return aAttribs; }
+    const XEditAttributesType& GetCharAttribs() const { return maCharAttribs; }
+    XEditAttributesType& GetCharAttribs() { return maCharAttribs; }
 
     const OUString&     GetStyle()          const   { return aStyle; }
     const SfxItemSet&   GetParaAttribs()    const   { return aParaAttribs; }
diff --git a/editeng/source/editeng/fieldupdater.cxx b/editeng/source/editeng/fieldupdater.cxx
index 5a2e937..022d008 100644
--- a/editeng/source/editeng/fieldupdater.cxx
+++ b/editeng/source/editeng/fieldupdater.cxx
@@ -32,7 +32,7 @@ public:
         for (std::unique_ptr<ContentInfo> & i : rContents)
         {
             ContentInfo& rContent = *i.get();
-            ContentInfo::XEditAttributesType& rAttribs = rContent.GetAttribs();
+            ContentInfo::XEditAttributesType& rAttribs = rContent.GetCharAttribs();
             for (std::unique_ptr<XEditAttribute> & rAttrib : rAttribs)
             {
                 XEditAttribute& rAttr = *rAttrib.get();
diff --git a/editeng/source/editeng/impedit4.cxx b/editeng/source/editeng/impedit4.cxx
index c231c84..d30d025 100644
--- a/editeng/source/editeng/impedit4.cxx
+++ b/editeng/source/editeng/impedit4.cxx
@@ -1111,7 +1111,7 @@ EditTextObject* ImpEditEngine::CreateTextObject( EditSelection aSel, SfxItemPool
                 if ( !pX->GetLen() && !bEmptyPara )
                     pTxtObj->mpImpl->DestroyAttrib(pX);
                 else
-                    pC->GetAttribs().push_back(std::unique_ptr<XEditAttribute>(pX));
+                    pC->GetCharAttribs().push_back(std::unique_ptr<XEditAttribute>(pX));
             }
             nAttr++;
             pAttr = GetAttrib( pNode->GetCharAttribs().GetAttribs(), nAttr );
@@ -1253,13 +1253,13 @@ EditSelection ImpEditEngine::InsertTextObject( const EditTextObject& rTextObject
 
         // Character attributes ...
         bool bAllreadyHasAttribs = aPaM.GetNode()->GetCharAttribs().Count() != 0;
-        size_t nNewAttribs = pC->GetAttribs().size();
+        size_t nNewAttribs = pC->GetCharAttribs().size();
         if ( nNewAttribs )
         {
             bool bUpdateFields = false;
             for (size_t nAttr = 0; nAttr < nNewAttribs; ++nAttr)
             {
-                const XEditAttribute& rX = *pC->GetAttribs()[nAttr].get();
+                const XEditAttribute& rX = *pC->GetCharAttribs()[nAttr].get();
                 // Can happen when paragraphs > 16K, it is simply wrapped.
                 if ( rX.GetEnd() <= aPaM.GetNode()->Len() )
                 {
commit c010ed6ba4302534ac712efc923a8a8bf1d0896b
Author: Noel Grandin <noel at peralex.com>
Date:   Tue Sep 13 10:28:14 2016 +0200

    impress: extend dumpAsXml to style information in ContentInfo nodes
    
    Change-Id: I783f6ad9b71f18c070537e4806381a103960b6eb

diff --git a/editeng/source/editeng/editobj.cxx b/editeng/source/editeng/editobj.cxx
index 6637a34..7b8f00b 100644
--- a/editeng/source/editeng/editobj.cxx
+++ b/editeng/source/editeng/editobj.cxx
@@ -164,6 +164,25 @@ void ContentInfo::SetText( const OUString& rStr )
     maText = svl::SharedString(rStr.pData, nullptr);
 }
 
+void ContentInfo::dumpAsXml(xmlTextWriterPtr pWriter) const
+{
+    xmlTextWriterStartElement(pWriter, BAD_CAST("contentInfo"));
+    xmlTextWriterWriteAttribute(pWriter, BAD_CAST("style"), BAD_CAST(aStyle.toUtf8().getStr()));
+    xmlTextWriterStartElement(pWriter, BAD_CAST("text"));
+    xmlTextWriterWriteString(pWriter, BAD_CAST(GetText().toUtf8().getStr()));
+    xmlTextWriterEndElement(pWriter);
+    aParaAttribs.dumpAsXml(pWriter);
+    for (size_t i=0; i<aAttribs.size(); ++i)
+    {
+        xmlTextWriterStartElement(pWriter, BAD_CAST("attribs"));
+        xmlTextWriterWriteFormatAttribute(pWriter, BAD_CAST("start"), "%d", aAttribs[i]->GetStart());
+        xmlTextWriterWriteFormatAttribute(pWriter, BAD_CAST("end"), "%d", aAttribs[i]->GetEnd());
+        aAttribs[i]->GetItem()->dumpAsXml(pWriter);
+        xmlTextWriterEndElement(pWriter);
+    }
+    xmlTextWriterEndElement(pWriter);
+}
+
 const WrongList* ContentInfo::GetWrongList() const
 {
     return mpWrongs.get();
@@ -444,7 +463,7 @@ void EditTextObject::dumpAsXml(xmlTextWriterPtr pWriter) const
     for (sal_Int32 i = 0; i < nCount; ++i)
     {
         xmlTextWriterStartElement(pWriter, BAD_CAST("paragraph"));
-        xmlTextWriterWriteString(pWriter, BAD_CAST(GetText(i).toUtf8().getStr()));
+        mpImpl->aContents[i]->dumpAsXml(pWriter);
         xmlTextWriterEndElement(pWriter);
     }
     xmlTextWriterEndElement(pWriter);
diff --git a/editeng/source/editeng/editobj2.hxx b/editeng/source/editeng/editobj2.hxx
index cd5d53a..20558a1 100644
--- a/editeng/source/editeng/editobj2.hxx
+++ b/editeng/source/editeng/editobj2.hxx
@@ -114,13 +114,14 @@ public:
     typedef std::vector<std::unique_ptr<XEditAttribute> > XEditAttributesType;
 
 private:
-    svl::SharedString maText;
+    svl::SharedString   maText;
     OUString            aStyle;
 
     XEditAttributesType aAttribs;
     SfxStyleFamily      eFamily;
     SfxItemSet          aParaAttribs;
-    std::unique_ptr<WrongList> mpWrongs;
+    std::unique_ptr<WrongList>
+                        mpWrongs;
 
                         ContentInfo( SfxItemPool& rPool );
                         ContentInfo( const ContentInfo& rCopyFrom, SfxItemPool& rPoolToUse  );
@@ -135,6 +136,8 @@ public:
     OUString GetText() const;
     void SetText( const OUString& rStr );
 
+    void dumpAsXml(struct _xmlTextWriter* pWriter) const;
+
     const XEditAttributesType& GetAttribs() const { return aAttribs; }
     XEditAttributesType& GetAttribs() { return aAttribs; }
 
@@ -159,6 +162,7 @@ public:
 
 class EditTextObjectImpl
 {
+friend class EditTextObject;
 public:
     typedef std::vector<std::unique_ptr<ContentInfo> > ContentInfosType;
 


More information about the Libreoffice-commits mailing list