Kaydet (Commit) 2194105a authored tarafından Markus Mohrhard's avatar Markus Mohrhard

tdf#113621: don't write whole column refs for conditional format ranges

Change-Id: I6b21345fb08cc7b7cf0cdc40532d480a8d5f72ae
Reviewed-on: https://gerrit.libreoffice.org/46493Tested-by: 's avatarJenkins <ci@libreoffice.org>
Reviewed-by: 's avatarMarkus Mohrhard <markus.mohrhard@googlemail.com>
üst acc24edf
...@@ -45,7 +45,7 @@ public: ...@@ -45,7 +45,7 @@ public:
void Format( OUString&, ScRefFlags nFlags, ScDocument*, void Format( OUString&, ScRefFlags nFlags, ScDocument*,
formula::FormulaGrammar::AddressConvention eConv = formula::FormulaGrammar::CONV_OOO, formula::FormulaGrammar::AddressConvention eConv = formula::FormulaGrammar::CONV_OOO,
sal_Unicode cDelimiter = 0 ) const; sal_Unicode cDelimiter = 0, bool bFullAddressNotation = false ) const;
void Join( const ScRange&, bool bIsInList = false ); void Join( const ScRange&, bool bIsInList = false );
......
...@@ -110,17 +110,18 @@ private: ...@@ -110,17 +110,18 @@ private:
class FormatString class FormatString
{ {
public: public:
FormatString(OUString& rStr, ScRefFlags nFlags, ScDocument* pDoc, FormulaGrammar::AddressConvention eConv, sal_Unicode cDelim) : FormatString(OUString& rStr, ScRefFlags nFlags, ScDocument* pDoc, FormulaGrammar::AddressConvention eConv, sal_Unicode cDelim, bool bFullAddressNotation) :
mrStr(rStr), mrStr(rStr),
mnFlags(nFlags), mnFlags(nFlags),
mpDoc(pDoc), mpDoc(pDoc),
meConv(eConv), meConv(eConv),
mcDelim(cDelim), mcDelim(cDelim),
mbFirst(true) {} mbFirst(true),
mbFullAddressNotation(bFullAddressNotation) {}
void operator() (const ScRange* p) void operator() (const ScRange* p)
{ {
OUString aStr(p->Format(mnFlags, mpDoc, meConv)); OUString aStr(p->Format(mnFlags, mpDoc, meConv, mbFullAddressNotation));
if (mbFirst) if (mbFirst)
mbFirst = false; mbFirst = false;
else else
...@@ -134,6 +135,7 @@ private: ...@@ -134,6 +135,7 @@ private:
FormulaGrammar::AddressConvention meConv; FormulaGrammar::AddressConvention meConv;
sal_Unicode mcDelim; sal_Unicode mcDelim;
bool mbFirst; bool mbFirst;
bool mbFullAddressNotation;
}; };
} }
...@@ -186,14 +188,14 @@ ScRefFlags ScRangeList::Parse( const OUString& rStr, const ScDocument* pDoc, ...@@ -186,14 +188,14 @@ ScRefFlags ScRangeList::Parse( const OUString& rStr, const ScDocument* pDoc,
void ScRangeList::Format( OUString& rStr, ScRefFlags nFlags, ScDocument* pDoc, void ScRangeList::Format( OUString& rStr, ScRefFlags nFlags, ScDocument* pDoc,
formula::FormulaGrammar::AddressConvention eConv, formula::FormulaGrammar::AddressConvention eConv,
sal_Unicode cDelimiter ) const sal_Unicode cDelimiter, bool bFullAddressNotation ) const
{ {
if (!cDelimiter) if (!cDelimiter)
cDelimiter = ScCompiler::GetNativeSymbolChar(ocSep); cDelimiter = ScCompiler::GetNativeSymbolChar(ocSep);
OUString aStr; OUString aStr;
FormatString func(aStr, nFlags, pDoc, eConv, cDelimiter); FormatString func(aStr, nFlags, pDoc, eConv, cDelimiter, bFullAddressNotation);
for_each(maRanges.begin(), maRanges.end(), func); for_each(maRanges.begin(), maRanges.end(), func);
rStr = aStr; rStr = aStr;
} }
......
...@@ -1269,7 +1269,7 @@ XclExpCondfmt::XclExpCondfmt( const XclExpRoot& rRoot, const ScConditionalFormat ...@@ -1269,7 +1269,7 @@ XclExpCondfmt::XclExpCondfmt( const XclExpRoot& rRoot, const ScConditionalFormat
else if(pFormatEntry->GetType() == ScFormatEntry::Type::Date) else if(pFormatEntry->GetType() == ScFormatEntry::Type::Date)
maCFList.AppendNewRecord( new XclExpDateFormat( GetRoot(), static_cast<const ScCondDateFormatEntry&>(*pFormatEntry), ++rIndex ) ); maCFList.AppendNewRecord( new XclExpDateFormat( GetRoot(), static_cast<const ScCondDateFormatEntry&>(*pFormatEntry), ++rIndex ) );
} }
aScRanges.Format( msSeqRef, ScRefFlags::VALID, nullptr, formula::FormulaGrammar::CONV_XL_OOX, ' ' ); aScRanges.Format( msSeqRef, ScRefFlags::VALID, nullptr, formula::FormulaGrammar::CONV_XL_OOX, ' ', true );
if(!aExtEntries.empty() && xExtLst.get()) if(!aExtEntries.empty() && xExtLst.get())
{ {
......
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