[Libreoffice-commits] core.git: Branch 'feature/gsoc-calc-enhanced-db-range' - sc/source

Akash Shetye shetyeakash at gmail.com
Fri Jul 19 11:58:01 PDT 2013


 sc/source/filter/excel/xeroot.cxx  |    8 ++++++
 sc/source/filter/excel/xestyle.cxx |   49 +++++++++++++++++++++++++++++++++++++
 sc/source/filter/inc/xeroot.hxx    |    5 +++
 sc/source/filter/inc/xestyle.hxx   |   38 ++++++++++++++++++++++++++++
 4 files changed, 100 insertions(+)

New commits:
commit 7f2fe9e846f244447fe4e0da089034e57ea6708f
Author: Akash Shetye <shetyeakash at gmail.com>
Date:   Sat Jul 20 00:26:02 2013 +0530

    Made the skeleton for Table Formatting information export.
    
    Patch adds the classes and methods needed for exporting table style data, the methods are yet to be written.
    
    Change-Id: I499551624139bc5f7fd6b392bb7733652d8e51c6

diff --git a/sc/source/filter/excel/xeroot.cxx b/sc/source/filter/excel/xeroot.cxx
index b72503f..9df6afe 100644
--- a/sc/source/filter/excel/xeroot.cxx
+++ b/sc/source/filter/excel/xeroot.cxx
@@ -161,6 +161,12 @@ XclExpDxfs& XclExpRoot::GetDxfs() const
     return *mrExpData.mxDxfs;
 }
 
+XclExpTableStyles& XclExpRoot::GetTableStyles() const
+{
+    OSL_ENSURE( mrExpData.mxTableStyles, "XclExpRoot::GetTableStyles - missign object (wrong BIFF?)");
+    return *mrExpData.mxTableStyles;
+}
+
 XclExpPivotTableManager& XclExpRoot::GetPivotTableManager() const
 {
     OSL_ENSURE( mrExpData.mxPTableMgr, "XclExpRoot::GetPivotTableManager - missing object (wrong BIFF?)" );
@@ -206,6 +212,7 @@ void XclExpRoot::InitializeGlobals()
         // BIFF8: only one link manager for all sheets
         mrExpData.mxLocLinkMgr = mrExpData.mxGlobLinkMgr;
         mrExpData.mxDxfs.reset( new XclExpDxfs( GetRoot() ) );
+        mrExpData.mxTableStyles.reset( new XclExpTableStyles( GetRoot() ) );
     }
 
     if( GetOutput() == EXC_OUTPUT_XML_2007 )
@@ -283,6 +290,7 @@ XclExpRecordRef XclExpRoot::CreateRecord( sal_uInt16 nRecId ) const
         case EXC_ID_EXTERNSHEET:    xRec = GetLocalLinkMgrRef();    break;
         case EXC_ID_NAME:           xRec = mrExpData.mxNameMgr;     break;
         case EXC_ID_DXFS:           xRec = mrExpData.mxDxfs;        break;
+        case EXC_ID_TABLESTYLES:     xRec = mrExpData.mxTableStyles; break;
     }
     OSL_ENSURE( xRec, "XclExpRoot::CreateRecord - unknown record ID or missing object" );
     return xRec;
diff --git a/sc/source/filter/excel/xestyle.cxx b/sc/source/filter/excel/xestyle.cxx
index 368cd2d..9b52289 100644
--- a/sc/source/filter/excel/xestyle.cxx
+++ b/sc/source/filter/excel/xestyle.cxx
@@ -3130,6 +3130,55 @@ void XclExpDxf::SaveXml( XclExpXmlStream& rStrm )
 
 // ============================================================================
 
+XclExpTableStyleElement::XclExpTableStyleElement( const XclExpRoot& rRoot, OUString& rType, int iSize, int iDxfId )
+    :XclExpRoot( rRoot),
+    maType( rType ),
+    maDxfId( iDxfId ),
+    maSize( iSize )
+{
+}
+
+XclExpTableStyleElement::~XclExpTableStyleElement()
+{
+}
+
+void XclExpTableStyleElement::SaveXml( XclExpStream& rStrm )
+{
+}
+
+// ============================================================================
+
+XclExpTableStyle::XclExpTableStyle( const XclExpRoot& rRoot, OUString& rTableStyleName )
+    :XclExpRoot( rRoot ),
+    maTableStyleName( rTableStyleName )
+{
+}
+
+XclExpTableStyle::~XclExpTableStyle()
+{
+}
+
+void XclExpTableStyle::SaveXml( XclExpXmlStream& rStrm )
+{
+}
+
+// ===========================================================================
+
+XclExpTableStyles::XclExpTableStyles( const XclExpRoot& rRoot )
+    :XclExpRoot( rRoot )
+{
+}
+
+XclExpTableStyles::~XclExpTableStyles()
+{
+}
+
+void XclExpTableStyles::SaveXml( XclExpXmlStream& rStrm )
+{
+}
+
+// ============================================================================
+
 XclExpXmlStyleSheet::XclExpXmlStyleSheet( const XclExpRoot& rRoot )
     : XclExpRoot( rRoot )
 {
diff --git a/sc/source/filter/inc/xeroot.hxx b/sc/source/filter/inc/xeroot.hxx
index a0978a7..44952f0 100644
--- a/sc/source/filter/inc/xeroot.hxx
+++ b/sc/source/filter/inc/xeroot.hxx
@@ -51,6 +51,7 @@ class XclExpObjectManager;
 class XclExpFilterManager;
 class XclExpPivotTableManager;
 class XclExpDxfs;
+class XclExpTableStyles;
 
 /** Stores global buffers and data needed for Excel export filter. */
 struct XclExpRootData : public XclRootData
@@ -71,6 +72,7 @@ struct XclExpRootData : public XclRootData
     typedef boost::shared_ptr< XclExpFilterManager >       XclExpFilterMgrRef;
     typedef boost::shared_ptr< XclExpPivotTableManager >   XclExpPTableMgrRef;
     typedef boost::shared_ptr< XclExpDxfs >                XclExpDxfsRef;
+    typedef boost::shared_ptr< XclExpTableStyles >         XclExpTableStylesRef;
 
     XclExpTabInfoRef    mxTabInfo;          /// Calc->Excel sheet index conversion.
     XclExpAddrConvRef   mxAddrConv;         /// The address converter.
@@ -89,6 +91,7 @@ struct XclExpRootData : public XclRootData
     XclExpFilterMgrRef  mxFilterMgr;        /// Manager for filtered areas in all sheets.
     XclExpPTableMgrRef  mxPTableMgr;        /// All pivot tables and pivot caches.
     XclExpDxfsRef       mxDxfs;             /// All delta formatting entries
+    XclExpTableStylesRef   mxTableStyles;      /// All table styles for table formatting
 
     ScCompiler::OpCodeMapPtr  mxOpCodeMap;  /// mapping between op-codes and names
 
@@ -145,6 +148,8 @@ public:
     XclExpPivotTableManager& GetPivotTableManager() const;
     /** Returns the differential formatting list */
     XclExpDxfs&          GetDxfs() const;
+    /** Returns the Table styles list*/
+    XclExpTableStyles&  GetTableStyles() const;
     /** Returns the op-code mapping */
     ScCompiler::OpCodeMapPtr  GetOpCodeMap() const;
 
diff --git a/sc/source/filter/inc/xestyle.hxx b/sc/source/filter/inc/xestyle.hxx
index a0903bc..6f22449 100644
--- a/sc/source/filter/inc/xestyle.hxx
+++ b/sc/source/filter/inc/xestyle.hxx
@@ -42,6 +42,7 @@ const sal_uInt16 EXC_ID_FONTLIST    = 0x8031;   /// For internal use only.
 const sal_uInt16 EXC_ID_FORMATLIST  = 0x801E;   /// For internal use only.
 const sal_uInt16 EXC_ID_XFLIST      = 0x8043;   /// For internal use only.
 const sal_uInt16 EXC_ID_DXFS        = 0x9999;   /// For internal use only. TODO:moggi: find a better/correct value
+const sal_uInt16 EXC_ID_TABLESTYLES = 0x99BE;   /// Needs improvement.
 
 // PALETTE record - color information =========================================
 
@@ -766,6 +767,43 @@ private:
 
 // ============================================================================
 
+class XclExpTableStyleElement : public XclExpRecordBase, protected XclExpRoot
+{
+public:
+    XclExpTableStyleElement( const XclExpRoot& rRoot, OUString& rType, int iSize, int iDxfId );
+    virtual ~XclExpTableStyleElement();
+    virtual void SaveXml( XclExpStream& rStrm );
+private:
+    OUString maType;
+    int maSize;
+    int maDxfId;
+};
+
+class XclExpTableStyle : public XclExpRecordBase, protected XclExpRoot
+{
+public:
+    XclExpTableStyle( const XclExpRoot& rRoot, OUString& rTableStyleName );
+    virtual ~XclExpTableStyle();
+    virtual void SaveXml( XclExpXmlStream& rStrm );
+private:
+    typedef boost::ptr_vector< XclExpTableStyleElement > StyleElementContainer;
+    StyleElementContainer maStyleElementContainer;
+    OUString maTableStyleName;
+};
+
+class XclExpTableStyles : public XclExpRecordBase, protected XclExpRoot
+{
+public:
+    XclExpTableStyles( const XclExpRoot& rRoot );
+    virtual ~XclExpTableStyles();
+    virtual void SaveXml( XclExpXmlStream& rStrm );
+private:
+    typedef boost::ptr_vector< XclExpTableStyle > StyleContainer;
+    StyleContainer maStyleContainer;
+};
+
+// ============================================================================
+
 class XclExpXmlStyleSheet : public XclExpRecordBase, protected XclExpRoot
 {
 public:


More information about the Libreoffice-commits mailing list