summaryrefslogtreecommitdiff
path: root/sc
diff options
context:
space:
mode:
authorMarkus Mohrhard <markus.mohrhard@googlemail.com>2012-11-01 22:50:55 +0100
committerMarkus Mohrhard <markus.mohrhard@googlemail.com>2012-11-02 14:58:10 +0100
commit8b9a263a55859a46d301b7ae9574fe0bb5050c55 (patch)
tree9892a8054fbb5ce4a122c7033b5bac429a46be9c /sc
parent6a62cc8538777d75c53dcf34cc617120b5e04ada (diff)
change ooxml cond format import from API to calc core enums
Change-Id: I59b6df511ddab6cb2cb29b8b8b1c635a188594a1
Diffstat (limited to 'sc')
-rw-r--r--sc/source/filter/inc/condformatbuffer.hxx1
-rw-r--r--sc/source/filter/oox/condformatbuffer.cxx33
2 files changed, 26 insertions, 8 deletions
diff --git a/sc/source/filter/inc/condformatbuffer.hxx b/sc/source/filter/inc/condformatbuffer.hxx
index 9dfe34ecba14..568f09db4a4c 100644
--- a/sc/source/filter/inc/condformatbuffer.hxx
+++ b/sc/source/filter/inc/condformatbuffer.hxx
@@ -254,6 +254,7 @@ public:
/** Converts an OOXML condition operator token to the API constant. */
static sal_Int32 convertToApiOperator( sal_Int32 nToken );
+ static sal_Int32 convertToInternalOperator( sal_Int32 nToken );
private:
CondFormatRef createCondFormat();
diff --git a/sc/source/filter/oox/condformatbuffer.cxx b/sc/source/filter/oox/condformatbuffer.cxx
index aa93f426b104..c1452100e799 100644
--- a/sc/source/filter/oox/condformatbuffer.cxx
+++ b/sc/source/filter/oox/condformatbuffer.cxx
@@ -639,7 +639,7 @@ void CondFormatRule::importCfRule( SequenceInputStream& rStrm )
void CondFormatRule::finalizeImport()
{
- sal_Int32 eOperator = ::com::sun::star::sheet::ConditionOperator2::NONE;
+ ScConditionMode eOperator = SC_COND_NONE;
/* Replacement formula for unsupported rule types (text comparison rules,
time period rules, cell type rules). The replacement formulas below may
@@ -663,14 +663,14 @@ void CondFormatRule::finalizeImport()
switch( maModel.mnType )
{
case XML_cellIs:
- eOperator = CondFormatBuffer::convertToApiOperator( maModel.mnOperator );
+ eOperator = static_cast<ScConditionMode>(CondFormatBuffer::convertToInternalOperator( maModel.mnOperator ));
break;
case XML_duplicateValues:
- eOperator = CondFormatBuffer::convertToApiOperator( XML_duplicateValues );
+ eOperator = static_cast<ScConditionMode>(CondFormatBuffer::convertToInternalOperator( XML_duplicateValues ));
aReplaceFormula = " ";
break;
case XML_expression:
- eOperator = ::com::sun::star::sheet::ConditionOperator2::FORMULA;
+ eOperator = SC_COND_DIRECT;
break;
case XML_containsText:
OSL_ENSURE( maModel.mnOperator == XML_containsText, "CondFormatRule::finalizeImport - unexpected operator" );
@@ -803,14 +803,14 @@ void CondFormatRule::finalizeImport()
// set the replacement formula
maModel.maFormulas.clear();
appendFormula( aReplaceFormula );
- if( eOperator != ::com::sun::star::sheet::ConditionOperator2::DUPLICATE )
- eOperator = ::com::sun::star::sheet::ConditionOperator2::FORMULA;
+ if( eOperator != SC_COND_DUPLICATE )
+ eOperator = SC_COND_DIRECT;
}
CellAddress aBaseAddr = mrCondFormat.getRanges().getBaseAddress();
ScAddress aPos;
ScUnoConversion::FillScAddress( aPos, aBaseAddr );
- if( (eOperator != ::com::sun::star::sheet::ConditionOperator2::NONE) && !maModel.maFormulas.empty() )
+ if( (eOperator != SC_COND_NONE) && !maModel.maFormulas.empty() )
{
ScDocument& rDoc = getScDocument();
boost::scoped_ptr<ScTokenArray> pTokenArray2;
@@ -823,7 +823,7 @@ void CondFormatRule::finalizeImport()
ScTokenArray aTokenArray;
OUString aStyleName = getStyles().createDxfStyle( maModel.mnDxfId );
ScTokenConversion::ConvertToTokenArray( rDoc, aTokenArray, maModel.maFormulas[ 0 ] );
- ScCondFormatEntry* pNewEntry = new ScCondFormatEntry(ScCondFormatEntry::GetModeFromApi(eOperator),
+ ScCondFormatEntry* pNewEntry = new ScCondFormatEntry(eOperator,
&aTokenArray, pTokenArray2.get(), &rDoc, aPos, aStyleName);
mpFormat->AddEntry(pNewEntry);
}
@@ -995,6 +995,23 @@ sal_Int32 CondFormatBuffer::convertToApiOperator( sal_Int32 nToken )
return ConditionOperator2::NONE;
}
+sal_Int32 CondFormatBuffer::convertToInternalOperator( sal_Int32 nToken )
+{
+ switch( nToken )
+ {
+ case XML_between: return SC_COND_BETWEEN;
+ case XML_equal: return SC_COND_EQUAL;
+ case XML_greaterThan: return SC_COND_GREATER;
+ case XML_greaterThanOrEqual: return SC_COND_EQGREATER;
+ case XML_lessThan: return SC_COND_LESS;
+ case XML_lessThanOrEqual: return SC_COND_EQLESS;
+ case XML_notBetween: return SC_COND_NOTBETWEEN;
+ case XML_notEqual: return SC_COND_NOTEQUAL;
+ case XML_duplicateValues: return SC_COND_DUPLICATE;
+ }
+ return ConditionOperator2::NONE;
+}
+
// private --------------------------------------------------------------------
CondFormatRef CondFormatBuffer::createCondFormat()