1 diff --git oox/inc/oox/xls/viewsettings.hxx oox/inc/oox/xls/viewsettings.hxx
2 index 2294475..8b9c604 100644
3 --- oox/inc/oox/xls/viewsettings.hxx
4 +++ oox/inc/oox/xls/viewsettings.hxx
5 @@ -83,6 +83,7 @@ struct OoxSheetViewData
6 bool mbShowZeros; /// True = show zero value zells.
7 bool mbShowOutline; /// True = show outlines.
8 bool mbZoomToFit; /// True = zoom chart sheet to fit window.
9 + Color maTabColor; /// Sheet tab color.
11 explicit OoxSheetViewData();
13 @@ -112,6 +113,8 @@ public:
15 /** Imports the sheetView element containing sheet view settings. */
16 void importSheetView( const AttributeList& rAttribs );
17 + /** Imports the tabcolor element containing tab color settings. */
18 + void importTabColor( const AttributeList& rAttribs );
19 /** Imports the pane element containing sheet pane settings. */
20 void importPane( const AttributeList& rAttribs );
21 /** Imports the selection element containing selection settings for a pane. */
22 @@ -121,6 +124,8 @@ public:
24 /** Imports the SHEETVIEW record containing sheet view settings. */
25 void importSheetView( RecordInputStream& rStrm );
26 + /** Imports the tabcolor element containing tab color settings. */
27 + void importTabColor( RecordInputStream& rStrm );
28 /** Imports the PANE record containing sheet pane settings. */
29 void importPane( RecordInputStream& rStrm );
30 /** Imports the SELECTION record containing selection settings for a pane. */
31 diff --git oox/inc/oox/xls/worksheetsettings.hxx oox/inc/oox/xls/worksheetsettings.hxx
32 index 083f2cc..0c0b91d 100644
33 --- oox/inc/oox/xls/worksheetsettings.hxx
34 +++ oox/inc/oox/xls/worksheetsettings.hxx
35 @@ -43,7 +43,6 @@ namespace xls {
38 ::rtl::OUString maCodeName; /// VBA module codename.
39 - Color maTabColor; /// Sheet tab color.
40 bool mbFilterMode; /// True = sheet contains active filter.
41 bool mbApplyStyles; /// True = automatic styles when creating outlines.
42 bool mbSummaryBelow; /// True = row outline symbols below group.
43 diff --git oox/source/xls/chartsheetfragment.cxx oox/source/xls/chartsheetfragment.cxx
44 index d6fd382..b0da1c2 100644
45 --- oox/source/xls/chartsheetfragment.cxx
46 +++ oox/source/xls/chartsheetfragment.cxx
47 @@ -68,6 +68,8 @@ ContextWrapper OoxChartsheetFragment::onCreateContext( sal_Int32 nElement, const
48 (nElement == XLS_TOKEN( headerFooter )) ||
49 (nElement == XLS_TOKEN( picture )) ||
50 (nElement == XLS_TOKEN( drawing ));
51 + case XLS_TOKEN( sheetPr ):
52 + return (nElement == XLS_TOKEN( tabColor ));
53 case XLS_TOKEN( sheetViews ):
54 return (nElement == XLS_TOKEN( sheetView ));
55 case XLS_TOKEN( headerFooter ):
56 @@ -86,6 +88,7 @@ void OoxChartsheetFragment::onStartElement( const AttributeList& rAttribs )
57 switch( getCurrentElement() )
59 case XLS_TOKEN( sheetPr ): getWorksheetSettings().importChartSheetPr( rAttribs ); break;
60 + case XLS_TOKEN( tabColor ): getSheetViewSettings().importTabColor( rAttribs ); break;
61 case XLS_TOKEN( sheetProtection ): getWorksheetSettings().importChartProtection( rAttribs ); break;
62 case XLS_TOKEN( sheetView ): getSheetViewSettings().importChartSheetView( rAttribs ); break;
63 case XLS_TOKEN( pageMargins ): getPageSettings().importPageMargins( rAttribs ); break;
64 diff --git oox/source/xls/viewsettings.cxx oox/source/xls/viewsettings.cxx
65 index 6126086..e19fa0d 100644
66 --- oox/source/xls/viewsettings.cxx
67 +++ oox/source/xls/viewsettings.cxx
68 @@ -183,6 +183,7 @@ const sal_Char* const sppcSheetNames[] =
76 @@ -295,6 +296,12 @@ void SheetViewSettings::importSheetView( const AttributeList& rAttribs )
77 rData.mbShowOutline = rAttribs.getBool( XML_showOutlineSymbols, true );
80 +void SheetViewSettings::importTabColor( const AttributeList& rAttribs )
82 + OoxSheetViewData& rData = maSheetDatas.empty() ? *createSheetViewData() : *maSheetDatas.back();
83 + rData.maTabColor.importColor( rAttribs );
86 void SheetViewSettings::importPane( const AttributeList& rAttribs )
88 OSL_ENSURE( !maSheetDatas.empty(), "SheetViewSettings::importPane - missing view data" );
89 @@ -362,6 +369,12 @@ void SheetViewSettings::importSheetView( RecordInputStream& rStrm )
90 rData.mbShowOutline = getFlag( nFlags, OOBIN_SHEETVIEW_SHOWOUTLINE );
93 +void SheetViewSettings::importTabColor( RecordInputStream& rStrm )
95 + OoxSheetViewData& rData = maSheetDatas.empty() ? *createSheetViewData() : *maSheetDatas.back();
96 + rData.maTabColor.importColor( rStrm );
99 void SheetViewSettings::importPane( RecordInputStream& rStrm )
101 OSL_ENSURE( !maSheetDatas.empty(), "SheetViewSettings::importPane - missing view data" );
102 @@ -632,6 +645,7 @@ void SheetViewSettings::finalizeImport()
103 << API_ZOOMTYPE_PERCENT
104 << static_cast< sal_Int16 >( xData->getNormalZoom() )
105 << static_cast< sal_Int16 >( xData->getPageBreakZoom() )
106 + << xData->maTabColor.getColor( *this )
107 << xData->maGridColor.getColor( *this )
108 << xData->isPageBreakPreview()
109 << xData->mbShowFormulas
110 diff --git oox/source/xls/worksheetfragment.cxx oox/source/xls/worksheetfragment.cxx
111 index c939804..302230f 100644
112 --- oox/source/xls/worksheetfragment.cxx
113 +++ oox/source/xls/worksheetfragment.cxx
114 @@ -122,7 +122,7 @@ ContextWrapper OoxWorksheetFragment::onCreateContext( sal_Int32 nElement, const
115 case SHEETTYPE_WORKSHEET: return (nElement == XLS_TOKEN( worksheet ));
116 case SHEETTYPE_CHARTSHEET: return false;
117 case SHEETTYPE_MACROSHEET: return (nElement == XM_TOKEN( macrosheet ));
118 - case SHEETTYPE_DIALOGSHEET: return (nElement == XM_TOKEN( dialogsheet ));
119 + case SHEETTYPE_DIALOGSHEET: return (nElement == XLS_TOKEN( dialogsheet ));
120 case SHEETTYPE_MODULESHEET: return false;
121 case SHEETTYPE_EMPTYSHEET: return false;
123 @@ -130,6 +130,7 @@ ContextWrapper OoxWorksheetFragment::onCreateContext( sal_Int32 nElement, const
125 case XLS_TOKEN( worksheet ):
126 case XM_TOKEN( macrosheet ):
127 + case XLS_TOKEN( dialogsheet ):
130 case XLS_TOKEN( sheetData ):
131 @@ -211,7 +212,7 @@ void OoxWorksheetFragment::onStartElement( const AttributeList& rAttribs )
132 switch( getCurrentElement() )
134 case XLS_TOKEN( sheetPr ): getWorksheetSettings().importSheetPr( rAttribs ); break;
135 - case XLS_TOKEN( tabColor ): getWorksheetSettings().importTabColor( rAttribs ); break;
136 + case XLS_TOKEN( tabColor ): getSheetViewSettings().importTabColor( rAttribs ); break;
137 case XLS_TOKEN( outlinePr ): getWorksheetSettings().importOutlinePr( rAttribs ); break;
138 case XLS_TOKEN( pageSetUpPr ): importPageSetUpPr( rAttribs ); break;
139 case XLS_TOKEN( dimension ): importDimension( rAttribs ); break;
140 diff --git oox/source/xls/worksheethelper.cxx oox/source/xls/worksheethelper.cxx
141 index e5590f8..89036e3 100644
142 --- oox/source/xls/worksheethelper.cxx
143 +++ oox/source/xls/worksheethelper.cxx
144 @@ -975,6 +975,7 @@ void WorksheetData::finalizeWorksheetImport()
145 finalizeMergedRanges();
146 maCondFormats.finalizeImport();
147 maPageSett.finalizeImport();
148 + maSheetSett.finalizeImport();
149 maSheetViewSett.finalizeImport();
152 diff --git oox/source/xls/worksheetsettings.cxx oox/source/xls/worksheetsettings.cxx
153 index 6ab8975..d30106a 100644
154 --- oox/source/xls/worksheetsettings.cxx
155 +++ oox/source/xls/worksheetsettings.cxx
157 #include "oox/helper/recordinputstream.hxx"
158 #include "oox/xls/biffinputstream.hxx"
159 #include "oox/xls/pagesettings.hxx"
160 +#include "oox/xls/viewsettings.hxx"
161 #include "oox/xls/workbooksettings.hxx"
163 using ::rtl::OUString;
164 @@ -138,11 +139,6 @@ void WorksheetSettings::importChartSheetPr( const AttributeList& rAttribs )
165 maOoxSheetData.maCodeName = rAttribs.getString( XML_codeName, OUString() );
168 -void WorksheetSettings::importTabColor( const AttributeList& rAttribs )
170 - maOoxSheetData.maTabColor.importColor( rAttribs );
173 void WorksheetSettings::importOutlinePr( const AttributeList& rAttribs )
175 maOoxSheetData.mbApplyStyles = rAttribs.getBool( XML_applyStyles, false );
176 @@ -187,7 +183,8 @@ void WorksheetSettings::importSheetPr( RecordInputStream& rStrm )
180 - rStrm >> nFlags1 >> nFlags2 >> maOoxSheetData.maTabColor;
181 + rStrm >> nFlags1 >> nFlags2;
182 + getSheetViewSettings().importTabColor( rStrm );
183 rStrm.skip( 8 ); // sync anchor cell
184 rStrm >> maOoxSheetData.maCodeName;
186 @@ -204,7 +201,8 @@ void WorksheetSettings::importSheetPr( RecordInputStream& rStrm )
187 void WorksheetSettings::importChartSheetPr( RecordInputStream& rStrm )
189 rStrm.skip( 2 ); // flags, contains only the 'published' flag
190 - rStrm >> maOoxSheetData.maTabColor >> maOoxSheetData.maCodeName;
191 + getSheetViewSettings().importTabColor( rStrm );
192 + rStrm >> maOoxSheetData.maCodeName;
195 void WorksheetSettings::importSheetProtection( RecordInputStream& rStrm )