Kaydet (Commit) 06aeaad3 authored tarafından Markus Mohrhard's avatar Markus Mohrhard

implement AutoMin and AutoMax, fdo#50462

Change-Id: I73b2eb069bbb06d9b366b68d0ad85728df4d6a3a
üst c6a8eb06
......@@ -49,7 +49,9 @@ enum ScColorScaleEntryType
COLORSCALE_MAX,
COLORSCALE_PERCENT,
COLORSCALE_PERCENTILE,
COLORSCALE_FORMULA
COLORSCALE_FORMULA,
COLORSCALE_AUTOMIN,
COLORSCALE_AUTOMAX
};
class SC_DLLPUBLIC ScColorScaleEntry
......
......@@ -298,7 +298,7 @@ double ScColorScaleFormat::GetMinValue() const
{
const_iterator itr = maColorScales.begin();
if(itr->GetType() != COLORSCALE_MIN)
if(itr->GetType() != COLORSCALE_MIN && itr->GetType() != COLORSCALE_AUTOMIN)
return itr->GetValue();
else
{
......@@ -310,7 +310,7 @@ double ScColorScaleFormat::GetMaxValue() const
{
ColorScaleEntries::const_reverse_iterator itr = maColorScales.rbegin();
if(itr->GetType() != COLORSCALE_MAX)
if(itr->GetType() != COLORSCALE_MAX && itr->GetType() != COLORSCALE_AUTOMAX)
return itr->GetValue();
else
{
......@@ -412,8 +412,12 @@ double ScColorScaleFormat::CalcValue(double nMin, double nMax, ScColorScaleForma
return nMin + (nMax-nMin)*(itr->GetValue()/100);
case COLORSCALE_MIN:
return nMin;
case COLORSCALE_AUTOMIN:
return std::min<double>(0, nMin);
case COLORSCALE_MAX:
return nMax;
case COLORSCALE_AUTOMAX:
return std::max<double>(0, nMax);
case COLORSCALE_PERCENTILE:
{
std::vector<double> aValues;
......@@ -510,6 +514,8 @@ bool ScColorScaleFormat::CheckEntriesForRel(const ScRange& rRange) const
{
case COLORSCALE_MIN:
case COLORSCALE_MAX:
case COLORSCALE_AUTOMIN:
case COLORSCALE_AUTOMAX:
bNeedUpdate = true;
break;
case COLORSCALE_FORMULA:
......@@ -616,6 +622,8 @@ bool NeedUpdate(ScColorScaleEntry* pEntry)
case COLORSCALE_MIN:
case COLORSCALE_MAX:
case COLORSCALE_FORMULA:
case COLORSCALE_AUTOMIN:
case COLORSCALE_AUTOMAX:
return true;
default:
return false;
......@@ -660,6 +668,9 @@ double ScDataBarFormat::getMin(double nMin, double nMax) const
case COLORSCALE_MIN:
return nMin;
case COLORSCALE_AUTOMIN:
return std::min<double>(0, nMin);
case COLORSCALE_PERCENT:
return nMin + (nMax-nMin)/100*mpFormatData->mpLowerLimit->GetValue();
......@@ -684,6 +695,8 @@ double ScDataBarFormat::getMax(double nMin, double nMax) const
{
case COLORSCALE_MAX:
return nMax;
case COLORSCALE_AUTOMAX:
return std::max<double>(0, nMax);
case COLORSCALE_PERCENT:
return nMin + (nMax-nMin)/100*mpFormatData->mpUpperLimit->GetValue();
case COLORSCALE_PERCENTILE:
......
......@@ -3800,6 +3800,10 @@ rtl::OUString getCondFormatEntryType(const ScColorScaleEntry& rEntry)
return rtl::OUString("formula");
case COLORSCALE_VALUE:
return rtl::OUString("number");
case COLORSCALE_AUTOMIN:
return rtl::OUString("auto-minimum");
case COLORSCALE_AUTOMAX:
return rtl::OUString("auto-maximum");
}
return rtl::OUString();
}
......
......@@ -80,6 +80,10 @@ void SetColorScaleEntryTypes( const ScColorScaleEntry& rEntry, ListBox& rLbType,
rEdit.SetText(rtl::OUString::valueOf(rEntry.GetValue()));
rLbType.SelectEntryPos(3);
break;
case COLORSCALE_AUTOMIN:
break;
case COLORSCALE_AUTOMAX:
break;
}
rLbCol.SelectEntry(rEntry.GetColor());
}
......@@ -109,6 +113,10 @@ void SetDataBarEntryTypes( const ScColorScaleEntry& rEntry, ListBox& rLbType, Ed
rEdit.SetText(rtl::OUString::valueOf(rEntry.GetValue()));
rLbType.SelectEntryPos(3);
break;
case COLORSCALE_AUTOMIN:
break;
case COLORSCALE_AUTOMAX:
break;
}
}
......
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