[Libreoffice-commits] .: 4 commits - sc/inc sc/qa sc/source

Markus Mohrhard mmohrhard at kemper.freedesktop.org
Mon Aug 13 16:33:18 PDT 2012


 sc/inc/colorscale.hxx                  |    8 +++
 sc/inc/conditio.hxx                    |   14 +++++
 sc/qa/unit/subsequent_filters-test.cxx |    1 
 sc/source/core/data/colorscale.cxx     |   50 ++++++++++++++++++++
 sc/source/core/data/conditio.cxx       |   11 ++++
 sc/source/filter/excel/xecontent.cxx   |   81 ++++++++++++++++++++++++---------
 sc/source/filter/inc/xecontent.hxx     |   40 +++++++++-------
 sc/source/filter/inc/xerecord.hxx      |    2 
 8 files changed, 167 insertions(+), 40 deletions(-)

New commits:
commit 8a26dd3ccec190b9149b9bc64bc08fe503927c1d
Author: Markus Mohrhard <markus.mohrhard at googlemail.com>
Date:   Tue Aug 14 01:19:00 2012 +0200

    remove two obviously wrong comments
    
    Change-Id: I8b5929b2ae022c40397f70abf863e3aae63d1d54

diff --git a/sc/source/filter/inc/xerecord.hxx b/sc/source/filter/inc/xerecord.hxx
index 4bfa6db..db04749 100644
--- a/sc/source/filter/inc/xerecord.hxx
+++ b/sc/source/filter/inc/xerecord.hxx
@@ -336,9 +336,7 @@ class XclExpRecordList : public XclExpRecordBase
 public:
     typedef boost::shared_ptr< RecType > RecordRefType;
 
-    /** Returns pointer to an existing record or 0 on error. */
     inline bool         IsEmpty() const { return maRecs.empty(); }
-    /** Returns pointer to an existing record or 0 on error. */
     inline size_t       GetSize() const { return maRecs.size(); }
 
     /** Returns true, if the passed index points to an exiting record. */
commit 533a8a9efe99391b1258ea7d1481f2d07d3ae14c
Author: Markus Mohrhard <markus.mohrhard at googlemail.com>
Date:   Tue Aug 14 01:14:45 2012 +0200

    remove some auto_ptr from xecontent
    
    Change-Id: Idef77ba4ce419aec26476ed027ac1a3c3fc41eef

diff --git a/sc/source/filter/excel/xecontent.cxx b/sc/source/filter/excel/xecontent.cxx
index d7461cf..fbbfe75 100644
--- a/sc/source/filter/excel/xecontent.cxx
+++ b/sc/source/filter/excel/xecontent.cxx
@@ -677,9 +677,7 @@ XclExpCFImpl::XclExpCFImpl( const XclExpRoot& rRoot, const ScCondFormatEntry& rF
 
     XclExpFormulaCompiler& rFmlaComp = GetFormulaCompiler();
 
-    SAL_WNODEPRECATED_DECLARATIONS_PUSH
-    ::std::auto_ptr< ScTokenArray > xScTokArr( mrFormatEntry.CreateTokenArry( 0 ) );
-    SAL_WNODEPRECATED_DECLARATIONS_POP
+    boost::scoped_ptr< ScTokenArray > xScTokArr( mrFormatEntry.CreateTokenArry( 0 ) );
     mxTokArr1 = rFmlaComp.CreateFormula( EXC_FMLATYPE_CONDFMT, *xScTokArr );
 
     if( bFmla2 )
@@ -1284,9 +1282,7 @@ XclExpDV::XclExpDV( const XclExpRoot& rRoot, sal_uLong nScHandle ) :
 
         // formulas
         XclExpFormulaCompiler& rFmlaComp = GetFormulaCompiler();
-        SAL_WNODEPRECATED_DECLARATIONS_PUSH
-        ::std::auto_ptr< ScTokenArray > xScTokArr;
-        SAL_WNODEPRECATED_DECLARATIONS_POP
+        boost::scoped_ptr< ScTokenArray > xScTokArr;
 
         // first formula
         xScTokArr.reset( pValData->CreateTokenArry( 0 ) );
diff --git a/sc/source/filter/inc/xecontent.hxx b/sc/source/filter/inc/xecontent.hxx
index 498bd10..953a347 100644
--- a/sc/source/filter/inc/xecontent.hxx
+++ b/sc/source/filter/inc/xecontent.hxx
@@ -72,9 +72,7 @@ public:
     virtual void        SaveXml( XclExpXmlStream& rStrm );
 
 private:
-    SAL_WNODEPRECATED_DECLARATIONS_PUSH
-    typedef ::std::auto_ptr< XclExpSstImpl > XclExpSstImplPtr;
-    SAL_WNODEPRECATED_DECLARATIONS_POP
+    typedef boost::scoped_ptr< XclExpSstImpl > XclExpSstImplPtr;
     XclExpSstImplPtr    mxImpl;
 };
 
@@ -131,10 +129,8 @@ private:
     virtual void        WriteBody( XclExpStream& rStrm );
 
 private:
-    SAL_WNODEPRECATED_DECLARATIONS_PUSH
-    typedef ::std::auto_ptr< String >   StringPtr;
-    typedef ::std::auto_ptr< SvStream > SvStreamPtr;
-    SAL_WNODEPRECATED_DECLARATIONS_POP
+    typedef boost::scoped_ptr< String >   StringPtr;
+    typedef boost::scoped_ptr< SvStream > SvStreamPtr;
 
     ScAddress           maScPos;            /// Position of the hyperlink.
     StringPtr           mxRepr;             /// Cell representation text.
@@ -190,9 +186,7 @@ private:
     virtual void        WriteBody( XclExpStream& rStrm );
 
 private:
-    SAL_WNODEPRECATED_DECLARATIONS_PUSH
-    typedef ::std::auto_ptr< XclExpCFImpl > XclExpCFImplPtr;
-    SAL_WNODEPRECATED_DECLARATIONS_POP
+    typedef boost::scoped_ptr< XclExpCFImpl > XclExpCFImplPtr;
     XclExpCFImplPtr     mxImpl;
 };
 
commit 1885266f274575327cdeee9852945a3e91f32f15
Author: Markus Mohrhard <markus.mohrhard at googlemail.com>
Date:   Tue Aug 14 01:24:33 2012 +0200

    implement dumper for new cond format test
    
    Change-Id: I2a7f0cf20fa54cbcafcb30d8b8834fd1adf3821d

diff --git a/sc/inc/colorscale.hxx b/sc/inc/colorscale.hxx
index 8e79385..942f604 100644
--- a/sc/inc/colorscale.hxx
+++ b/sc/inc/colorscale.hxx
@@ -223,6 +223,10 @@ public:
     const_iterator end() const;
 
     size_t size() const;
+
+#if DUMP_FORMAT_INFO
+    virtual void dumpInfo() const;
+#endif
 };
 
 class SC_DLLPUBLIC ScDataBarFormat : public ScColorFormat
@@ -243,6 +247,10 @@ public:
             const ScRange& rRange, SCsCOL nDx, SCsROW nDy, SCsTAB nDz );
 
     virtual condformat::ScFormatEntryType GetType() const;
+
+#if DUMP_FORMAT_INFO
+    virtual void dumpInfo() const;
+#endif
 private:
     double getMin(double nMin, double nMax) const;
     double getMax(double nMin, double nMax) const;
diff --git a/sc/inc/conditio.hxx b/sc/inc/conditio.hxx
index d25a39f..4967e82 100644
--- a/sc/inc/conditio.hxx
+++ b/sc/inc/conditio.hxx
@@ -48,6 +48,8 @@ class ScTokenArray;
 //  nOptions Flags
 #define SC_COND_NOBLANKS    1
 
+#define DUMP_FORMAT_INFO 1
+
 
 // ordering of ScConditionMode and ScQueryOp is equal,
 // to facilitate the merging of both in the future
@@ -108,6 +110,10 @@ public:
     virtual ScFormatEntry* Clone( ScDocument* pDoc = NULL ) const = 0;
 
     virtual void SetParent( ScConditionalFormat* pNew ) = 0;
+
+#if DUMP_FORMAT_INFO
+    virtual void dumpInfo() const = 0;
+#endif
 protected:
     ScDocument* mpDoc;
 
@@ -204,6 +210,10 @@ public:
 
     static ScConditionMode GetModeFromApi(sal_Int32 nOperator);
 
+#if DUMP_FORMAT_INFO
+    virtual void dumpInfo() const {}
+#endif
+
 protected:
     virtual void    DataChanged( const ScRange* pModified ) const;
     ScDocument*     GetDocument() const     { return mpDoc; }
@@ -303,6 +313,10 @@ public:
 
     bool            MarkUsedExternalReferences() const;
 
+#if DUMP_FORMAT_INFO
+    void dumpInfo() const;
+#endif
+
     //  sorted (via PTRARR) by Index
     //  operator== only for sorting
     bool operator ==( const ScConditionalFormat& r ) const  { return nKey == r.nKey; }
diff --git a/sc/qa/unit/subsequent_filters-test.cxx b/sc/qa/unit/subsequent_filters-test.cxx
index 32cfb76..8d6a804 100644
--- a/sc/qa/unit/subsequent_filters-test.cxx
+++ b/sc/qa/unit/subsequent_filters-test.cxx
@@ -1264,6 +1264,7 @@ void ScFiltersTest::testColorScale()
     ScConditionalFormatList* pCondFormatList = pDoc->GetCondFormList(0);
     const ScConditionalFormat* pFormat = pCondFormatList->GetFormat(nIndex);
     CPPUNIT_ASSERT(pFormat);
+    pFormat->dumpInfo();
 
     pPattern = pDoc->GetPattern(1,5,0);
     nIndex = static_cast<const SfxUInt32Item&>(pPattern->GetItem(ATTR_CONDITIONAL)).GetValue();
diff --git a/sc/source/core/data/colorscale.cxx b/sc/source/core/data/colorscale.cxx
index dda1b63..ae592f4 100644
--- a/sc/source/core/data/colorscale.cxx
+++ b/sc/source/core/data/colorscale.cxx
@@ -30,6 +30,9 @@
 #include "document.hxx"
 #include "cell.hxx"
 #include "fillinfo.hxx"
+#if DUMP_FORMAT_INFO
+#include <iostream>
+#endif
 
 ScColorScaleEntry::ScColorScaleEntry():
     mnVal(0),
@@ -487,6 +490,30 @@ Color* ScColorScaleFormat::GetColor( const ScAddress& rAddr ) const
     return new Color(aColor);
 }
 
+#if DUMP_FORMAT_INFO
+void ScColorScaleFormat::dumpInfo() const
+{
+    std::cout << "Color Scale" << std::endl;
+    const ScRangeList& rRange = GetRange();
+    size_t n = rRange.size();
+    for(size_t i = 0; i < n; ++i)
+    {
+        const ScRange* pRange = rRange[i];
+        SCTAB nTab = pRange->aStart.Tab();
+        for( SCCOL nCol = pRange->aStart.Col(), nEndCol = pRange->aEnd.Col(); nCol <= nEndCol; ++nCol)
+        {
+            for( SCROW nRow = pRange->aStart.Row(), nEndRow = pRange->aEnd.Row(); nRow <= nEndRow; ++nRow)
+            {
+                boost::scoped_ptr<Color> pColor( GetColor(ScAddress(nCol, nRow, nTab)) );
+                std::cout << nCol << "," << nRow << "," << nTab << ",";
+                std::cout << ((int)pColor->GetRed()) << "," << ((int)pColor->GetGreen()) << "," << ((int)pColor->GetBlue());
+                std::cout << std::endl;
+            }
+        }
+    }
+}
+#endif
+
 void ScColorScaleFormat::UpdateMoveTab(SCTAB nOldTab, SCTAB nNewTab)
 {
     SCTAB nThisTab = GetRange().front()->aStart.Tab();
@@ -826,4 +853,27 @@ ScDataBarInfo* ScDataBarFormat::GetDataBarInfo(const ScAddress& rAddr) const
     return pInfo;
 }
 
+#if DUMP_FORMAT_INFO
+void ScDataBarFormat::dumpInfo() const
+{
+    const ScRangeList& rRange = GetRange();
+    size_t n = rRange.size();
+    for(size_t i = 0; i < n; ++i)
+    {
+        const ScRange* pRange = rRange[i];
+        SCTAB nTab = pRange->aStart.Tab();
+        for( SCCOL nCol = pRange->aStart.Col(), nEndCol = pRange->aEnd.Col(); nCol <= nEndCol; ++nCol)
+        {
+            for( SCROW nRow = pRange->aStart.Row(), nEndRow = pRange->aEnd.Row(); nRow <= nEndRow; ++nRow)
+            {
+                boost::scoped_ptr<ScDataBarInfo> pInfo( GetDataBarInfo(ScAddress(nCol, nRow, nTab)) );
+                std::cout << nCol << "," << nRow << "," << nTab << "," << pInfo->mnZero << ",";
+                std::cout << pInfo->mnLength << "," << pInfo->mbGradient << "," << pInfo->mbShowValue << std::endl;
+                std::cout << std::endl;
+            }
+        }
+    }
+}
+#endif
+
 /* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/sc/source/core/data/conditio.cxx b/sc/source/core/data/conditio.cxx
index 3d3611b..1438a78 100644
--- a/sc/source/core/data/conditio.cxx
+++ b/sc/source/core/data/conditio.cxx
@@ -1425,6 +1425,17 @@ ScCondFormatData ScConditionalFormat::GetData( ScBaseCell* pCell, const ScAddres
     return aData;
 }
 
+
+#if DUMP_FORMAT_INFO
+void ScConditionalFormat::dumpInfo() const
+{
+    for(CondFormatContainer::const_iterator itr = maEntries.begin(); itr != maEntries.end(); ++itr)
+    {
+        itr->dumpInfo();
+    }
+}
+#endif
+
 void ScConditionalFormat::DoRepaint( const ScRange* pModified )
 {
     if(pModified)
commit 65457cbaf0acbfb1925c21f2d03ffec8e20e84bd
Author: Markus Mohrhard <markus.mohrhard at googlemail.com>
Date:   Tue Aug 14 01:23:56 2012 +0200

    implement color scale and data bar export to xlsx
    
    Only 2007 versions of DataBars supported yet
    
    Change-Id: Id1d10aae2bb5221246740defa3d4a97a1cd7c908

diff --git a/sc/source/filter/excel/xecontent.cxx b/sc/source/filter/excel/xecontent.cxx
index 0c28a59..d7461cf 100644
--- a/sc/source/filter/excel/xecontent.cxx
+++ b/sc/source/filter/excel/xecontent.cxx
@@ -908,6 +908,12 @@ rtl::OString getColorScaleType( const ScColorScaleEntry& rEntry )
             return "percent";
         case COLORSCALE_FORMULA:
             return "formula";
+        case COLORSCALE_AUTOMIN:
+            return "min";
+        case COLORSCALE_AUTOMAX:
+            return "max";
+        case COLORSCALE_PERCENTILE:
+            return "percentile";
         default:
             break;
     }
@@ -940,10 +946,10 @@ void XclExpCfvo::SaveXml( XclExpXmlStream& rStrm )
     rWorksheet->endElement( XML_cfvo );
 }
 
-XclExpColScaleCol::XclExpColScaleCol( const XclExpRoot& rRoot, const ScColorScaleEntry& rEntry ):
+XclExpColScaleCol::XclExpColScaleCol( const XclExpRoot& rRoot, const Color& rColor ):
     XclExpRecord(),
     XclExpRoot( rRoot ),
-    mrEntry( rEntry )
+    mrColor( rColor )
 {
 }
 
@@ -956,11 +962,12 @@ void XclExpColScaleCol::SaveXml( XclExpXmlStream& rStrm )
     sax_fastparser::FSHelperPtr& rWorksheet = rStrm.GetCurrentStream();
 
     rWorksheet->startElement( XML_color,
-            XML_rgb, XclXmlUtils::ToOString( mrEntry.GetColor() ).getStr(),
+            XML_rgb, XclXmlUtils::ToOString( mrColor ).getStr(),
             FSEND );
 
     rWorksheet->endElement( XML_color );
 }
+
 // ----------------------------------------------------------------------------
 
 XclExpCondfmt::XclExpCondfmt( const XclExpRoot& rRoot, const ScConditionalFormat& rCondFormat ) :
@@ -977,6 +984,10 @@ XclExpCondfmt::XclExpCondfmt( const XclExpRoot& rRoot, const ScConditionalFormat
             {
                 if(pFormatEntry->GetType() == condformat::CONDITION)
                     maCFList.AppendNewRecord( new XclExpCF( GetRoot(), static_cast<const ScCondFormatEntry&>(*pFormatEntry), nIndex ) );
+                else if(pFormatEntry->GetType() == condformat::COLORSCALE)
+                    maCFList.AppendNewRecord( new XclExpColorScale( GetRoot(), static_cast<const ScColorScaleFormat&>(*pFormatEntry), nIndex ) );
+                else if(pFormatEntry->GetType() == condformat::DATABAR)
+                    maCFList.AppendNewRecord( new XclExpDataBar( GetRoot(), static_cast<const ScDataBarFormat&>(*pFormatEntry), nIndex ) );
             }
         aScRanges.Format( msSeqRef, SCA_VALID, NULL, formula::FormulaGrammar::CONV_XL_A1 );
     }
@@ -1030,10 +1041,11 @@ void XclExpCondfmt::SaveXml( XclExpXmlStream& rStrm )
 
 // ----------------------------------------------------------------------------
 
-XclExpColorScale::XclExpColorScale( const XclExpRoot& rRoot, const ScColorScaleFormat& rFormat ):
+XclExpColorScale::XclExpColorScale( const XclExpRoot& rRoot, const ScColorScaleFormat& rFormat, sal_Int32 nPriority ):
     XclExpRecord(),
     XclExpRoot( rRoot ),
-    mrFormat( rFormat )
+    mrFormat( rFormat ),
+    mnPriority( nPriority )
 {
     const ScRange* pRange = rFormat.GetRange().front();
     ScAddress aAddr = pRange->aStart;
@@ -1044,23 +1056,18 @@ XclExpColorScale::XclExpColorScale( const XclExpRoot& rRoot, const ScColorScaleF
 
         XclExpCfvoList::RecordRefType xCfvo( new XclExpCfvo( GetRoot(), *itr, aAddr ) );
         maCfvoList.AppendRecord( xCfvo );
-        XclExpColScaleColList::RecordRefType xClo( new XclExpColScaleCol( GetRoot(), *itr ) );
+        XclExpColScaleColList::RecordRefType xClo( new XclExpColScaleCol( GetRoot(), itr->GetColor() ) );
         maColList.AppendRecord( xClo );
     }
 }
 
 void XclExpColorScale::SaveXml( XclExpXmlStream& rStrm )
 {
-    const ScRangeList& rRanges = mrFormat.GetRange();
-
     sax_fastparser::FSHelperPtr& rWorksheet = rStrm.GetCurrentStream();
-    rWorksheet->startElement( XML_conditionalFormatting,
-            XML_sqref, XclXmlUtils::ToOString(rRanges).getStr(),
-            FSEND );
 
     rWorksheet->startElement( XML_cfRule,
             XML_type, "colorScale",
-            XML_priority, "1",
+            XML_priority, OString::valueOf( mnPriority + 1 ).getStr(),
             FSEND );
 
     rWorksheet->startElement( XML_colorScale, FSEND );
@@ -1073,7 +1080,44 @@ void XclExpColorScale::SaveXml( XclExpXmlStream& rStrm )
     rWorksheet->endElement( XML_cfRule );
 
     // OOXTODO: XML_extLst
-    rWorksheet->endElement( XML_conditionalFormatting );
+}
+
+XclExpDataBar::XclExpDataBar( const XclExpRoot& rRoot, const ScDataBarFormat& rFormat, sal_Int32 nPriority ):
+    XclExpRecord(),
+    XclExpRoot( rRoot ),
+    mrFormat( rFormat ),
+    mnPriority( nPriority )
+{
+    const ScRange* pRange = rFormat.GetRange().front();
+    ScAddress aAddr = pRange->aStart;
+    // exact position is not important, we allow only absolute refs
+    mpCfvoLowerLimit.reset( new XclExpCfvo( GetRoot(), *mrFormat.GetDataBarData()->mpLowerLimit.get(), aAddr ) );
+    mpCfvoUpperLimit.reset( new XclExpCfvo( GetRoot(), *mrFormat.GetDataBarData()->mpUpperLimit.get(), aAddr ) );
+
+    mpCol.reset( new XclExpColScaleCol( GetRoot(), mrFormat.GetDataBarData()->maPositiveColor ) );
+}
+
+void XclExpDataBar::SaveXml( XclExpXmlStream& rStrm )
+{
+    sax_fastparser::FSHelperPtr& rWorksheet = rStrm.GetCurrentStream();
+
+    rWorksheet->startElement( XML_cfRule,
+            XML_type, "dataBar",
+            XML_priority, OString::valueOf( mnPriority + 1 ).getStr(),
+            FSEND );
+
+    rWorksheet->startElement( XML_dataBar, FSEND );
+
+    mpCfvoLowerLimit->SaveXml(rStrm);
+    mpCfvoUpperLimit->SaveXml(rStrm);
+    mpCol->SaveXml(rStrm);
+
+    rWorksheet->endElement( XML_dataBar );
+
+    rWorksheet->endElement( XML_cfRule );
+
+    // OOXTODO: XML_extLst
+
 }
 
 // ----------------------------------------------------------------------------
@@ -1100,10 +1144,7 @@ void XclExpCondFormatBuffer::Save( XclExpStream& rStrm )
 
 void XclExpCondFormatBuffer::SaveXml( XclExpXmlStream& rStrm )
 {
-
     maCondfmtList.SaveXml( rStrm );
-    maColorScaleList.SaveXml( rStrm );
-
 }
 
 // Validation =================================================================
diff --git a/sc/source/filter/inc/xecontent.hxx b/sc/source/filter/inc/xecontent.hxx
index cf246e7..498bd10 100644
--- a/sc/source/filter/inc/xecontent.hxx
+++ b/sc/source/filter/inc/xecontent.hxx
@@ -211,12 +211,12 @@ private:
 class XclExpColScaleCol : public XclExpRecord, protected XclExpRoot
 {
 public:
-    explicit XclExpColScaleCol( const XclExpRoot& rRoot, const ScColorScaleEntry& rFormatEntry);
+    explicit XclExpColScaleCol( const XclExpRoot& rRoot, const Color& rColor);
     virtual ~XclExpColScaleCol();
 
     virtual void SaveXml( XclExpXmlStream& rStrm );
 private:
-    const ScColorScaleEntry& mrEntry;
+    const Color& mrColor;
 };
 
 // ----------------------------------------------------------------------------
@@ -243,7 +243,7 @@ private:
     virtual void        WriteBody( XclExpStream& rStrm );
 
 private:
-    typedef XclExpRecordList< XclExpCF > XclExpCFList;
+    typedef XclExpRecordList< XclExpRecord > XclExpCFList;
 
     XclExpCFList        maCFList;       /// List of CF records.
     XclRangeList        maXclRanges;    /// Cell ranges for this conditional format.
@@ -253,7 +253,7 @@ private:
 class XclExpColorScale: public XclExpRecord, protected XclExpRoot
 {
 public:
-    explicit XclExpColorScale( const XclExpRoot& rRoot, const ScColorScaleFormat& rFormat );
+    explicit XclExpColorScale( const XclExpRoot& rRoot, const ScColorScaleFormat& rFormat, sal_Int32 nPriority );
 
     virtual void SaveXml( XclExpXmlStream& rStrm );
 private:
@@ -263,6 +263,22 @@ private:
     XclExpCfvoList maCfvoList;
     XclExpColScaleColList maColList;
     const ScColorScaleFormat& mrFormat;
+    sal_Int32 mnPriority;
+};
+
+class XclExpDataBar : public XclExpRecord, protected XclExpRoot
+{
+public:
+    explicit XclExpDataBar( const XclExpRoot& rRoot, const ScDataBarFormat& rFormat, sal_Int32 nPriority );
+
+    virtual void SaveXml( XclExpXmlStream& rStrm );
+private:
+    boost::scoped_ptr<XclExpCfvo> mpCfvoLowerLimit;
+    boost::scoped_ptr<XclExpCfvo> mpCfvoUpperLimit;
+    boost::scoped_ptr<XclExpColScaleCol> mpCol;
+
+    const ScDataBarFormat& mrFormat;
+    sal_Int32 mnPriority;
 };
 
 // ----------------------------------------------------------------------------
@@ -280,9 +296,7 @@ public:
 
 private:
     typedef XclExpRecordList< XclExpCondfmt > XclExpCondfmtList;
-    typedef XclExpRecordList< XclExpColorScale > XclExpColorScaleList;
     XclExpCondfmtList   maCondfmtList;  /// List of CONDFMT records.
-    XclExpColorScaleList maColorScaleList; // Color scale entries
 };
 
 // Data Validation ============================================================


More information about the Libreoffice-commits mailing list