Kaydet (Commit) 72d3539e authored tarafından Noel Power's avatar Noel Power

fix parent style import xlsx fdo#55198

Change-Id: I77d38eba69ad7aa89b0f9b692e40fd365d002071
üst f79641a6
......@@ -1230,7 +1230,7 @@ public:
SCCOL nEndCol, SCROW nEndRow, SCTAB nTab,
const ScStyleSheet& rStyle);
void ApplySelectionStyle( const ScStyleSheet& rStyle, const ScMarkData& rMark );
SC_DLLPUBLIC void ApplySelectionStyle( const ScStyleSheet& rStyle, const ScMarkData& rMark );
void ApplySelectionLineStyle( const ScMarkData& rMark,
const ::editeng::SvxBorderLine* pLine, bool bColorOnly );
......
......@@ -831,7 +831,7 @@ public:
inline const CellStyleModel& getModel() const { return maModel; }
/** Returns the final style name used in the document. */
inline const ::rtl::OUString& getFinalStyleName() const { return maFinalName; }
inline ::ScStyleSheet* getStyleSheet() { return mpStyleSheet; }
private:
CellStyleModel maModel;
::rtl::OUString maFinalName; /// Final style name used in API.
......@@ -863,12 +863,14 @@ public:
::rtl::OUString getDefaultStyleName() const;
/** Creates the style sheet described by the style XF with the passed identifier. */
::rtl::OUString createCellStyle( sal_Int32 nXfId ) const;
::ScStyleSheet* getCellStyleSheet( sal_Int32 nXfId ) const;
private:
/** Inserts the passed cell style object into the internal maps. */
void insertCellStyle( CellStyleRef xCellStyle );
/** Creates the style sheet described by the passed cell style object. */
::rtl::OUString createCellStyle( const CellStyleRef& rxCellStyle ) const;
::ScStyleSheet* getCellStyleSheet( const CellStyleRef& rxCellStyle ) const;
private:
typedef RefVector< CellStyle > CellStyleVector;
......@@ -967,6 +969,7 @@ public:
::rtl::OUString getDefaultStyleName() const;
/** Creates the style sheet described by the style XF with the passed identifier. */
::rtl::OUString createCellStyle( sal_Int32 nXfId ) const;
::ScStyleSheet* getCellStyleSheet( sal_Int32 nXfId ) const;
/** Creates the style sheet described by the DXF with the passed identifier. */
::rtl::OUString createDxfStyle( sal_Int32 nDxfId ) const;
......
......@@ -2260,10 +2260,13 @@ void Xf::writeToMarkData( ::ScMarkData& rMarkData, sal_Int32 nNumFmtId )
ScDocument& rDoc = getScDocument();
if ( isCellXf() )
{
StylesBuffer& rStyles = getStyles();
rStyles.createCellStyle( maModel.mnStyleXfId );
mpStyleSheet = rStyles.getCellStyleSheet( maModel.mnStyleXfId );
if ( mpStyleSheet )
{
// Apply style sheet. Don't clear the direct formats.
rPat.SetStyleSheet(mpStyleSheet, false);
rDoc.ApplySelectionStyle( static_cast<ScStyleSheet&>(*mpStyleSheet), rMarkData );
}
else
{
......@@ -2275,7 +2278,7 @@ void Xf::writeToMarkData( ::ScMarkData& rMarkData, sal_Int32 nNumFmtId )
ScGlobal::GetRscString(STR_STYLENAME_STANDARD), SFX_STYLE_FAMILY_PARA));
if (pStyleSheet)
rPat.SetStyleSheet(pStyleSheet, false);
rDoc.ApplySelectionStyle( static_cast<ScStyleSheet&>(*pStyleSheet), rMarkData );
}
}
}
......@@ -2329,7 +2332,6 @@ Xf::createPattern( bool bSkipPoolDefs )
{
if( mpPattern.get() )
return *mpPattern;
// create new pattern attribute set
mpPattern.reset( new ::ScPatternAttr( getScDocument().GetPool() ) );
SfxItemSet& rItemSet = mpPattern->GetItemSet();
/* Enables the used flags, if the formatting attributes differ from the
......@@ -2858,6 +2860,11 @@ OUString CellStyleBuffer::createCellStyle( sal_Int32 nXfId ) const
return createCellStyle( maStylesByXf.get( nXfId ) );
}
::ScStyleSheet* CellStyleBuffer::getCellStyleSheet( sal_Int32 nXfId ) const
{
return getCellStyleSheet( maStylesByXf.get( nXfId ) );
}
// private --------------------------------------------------------------------
void CellStyleBuffer::insertCellStyle( CellStyleRef xCellStyle )
......@@ -2878,6 +2885,14 @@ void CellStyleBuffer::insertCellStyle( CellStyleRef xCellStyle )
}
}
::ScStyleSheet* CellStyleBuffer::getCellStyleSheet( const CellStyleRef& rxCellStyle ) const
{
::ScStyleSheet* pStyleSheet = NULL;
if ( rxCellStyle.get() )
pStyleSheet = rxCellStyle->getStyleSheet();
return pStyleSheet;
}
OUString CellStyleBuffer::createCellStyle( const CellStyleRef& rxCellStyle ) const
{
if( rxCellStyle.get() )
......@@ -3128,6 +3143,11 @@ OUString StylesBuffer::createCellStyle( sal_Int32 nXfId ) const
return maCellStyles.createCellStyle( nXfId );
}
::ScStyleSheet* StylesBuffer::getCellStyleSheet( sal_Int32 nXfId ) const
{
return maCellStyles.getCellStyleSheet( nXfId );
}
OUString StylesBuffer::createDxfStyle( sal_Int32 nDxfId ) const
{
OUString& rStyleName = maDxfStyles[ nDxfId ];
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment