summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMarkus Mohrhard <markus.mohrhard@googlemail.com>2012-12-14 10:29:48 +0100
committerMarkus Mohrhard <markus.mohrhard@googlemail.com>2012-12-15 15:15:31 +0100
commitd416f216942d1045db7fbb621f4f00aedbc933ad (patch)
tree26ea17abe0efcb3a7116d6ee51b05ed811d34b39
parent98f1295fe749100f3564c4b4ca66f106d25739c0 (diff)
use correct cond format dlg setUp for colorscales, fdo#58232
Change-Id: Ib119b09b110d6563bc0abd304f60031a8592d7f1
-rw-r--r--sc/source/ui/condformat/condformatdlg.cxx8
-rw-r--r--sc/source/ui/condformat/condformatdlgentry.cxx17
2 files changed, 14 insertions, 11 deletions
diff --git a/sc/source/ui/condformat/condformatdlg.cxx b/sc/source/ui/condformat/condformatdlg.cxx
index 3398188690cc..33ba24f3df6d 100644
--- a/sc/source/ui/condformat/condformatdlg.cxx
+++ b/sc/source/ui/condformat/condformatdlg.cxx
@@ -84,7 +84,13 @@ ScCondFormatList::ScCondFormatList(Window* pParent, const ResId& rResId, ScDocum
}
break;
case condformat::COLORSCALE:
- maEntries.push_back(new ScColorScale3FrmtEntry( this, mpDoc, maPos, static_cast<const ScColorScaleFormat*>( pEntry ) ) );
+ {
+ const ScColorScaleFormat* pColorScale = static_cast<const ScColorScaleFormat*>( pEntry );
+ if( pColorScale->size() == 2 )
+ maEntries.push_back(new ScColorScale2FrmtEntry( this, mpDoc, maPos, pColorScale ) );
+ else
+ maEntries.push_back(new ScColorScale3FrmtEntry( this, mpDoc, maPos, pColorScale ) );
+ }
break;
case condformat::DATABAR:
maEntries.push_back(new ScDataBarFrmtEntry( this, mpDoc, maPos, static_cast<const ScDataBarFormat*>( pEntry ) ) );
diff --git a/sc/source/ui/condformat/condformatdlgentry.cxx b/sc/source/ui/condformat/condformatdlgentry.cxx
index 96c9bdab6445..3c27da6e70ac 100644
--- a/sc/source/ui/condformat/condformatdlgentry.cxx
+++ b/sc/source/ui/condformat/condformatdlgentry.cxx
@@ -582,7 +582,10 @@ namespace {
void SetColorScaleEntryTypes( const ScColorScaleEntry& rEntry, ListBox& rLbType, Edit& rEdit, ColorListBox& rLbCol )
{
- rLbType.SelectEntryPos(rEntry.GetType());
+ // entry Automatic is not available for color scales
+ sal_Int32 nIndex = static_cast<sal_Int32>(rEntry.GetType());
+ assert(nIndex > 0);
+ rLbType.SelectEntryPos(nIndex - 1);
switch(rEntry.GetType())
{
case COLORSCALE_MIN:
@@ -818,17 +821,11 @@ ScColorScale3FrmtEntry::ScColorScale3FrmtEntry( Window* pParent, ScDocument* pDo
maLbType.SelectEntryPos(0);
if(pFormat)
{
- if(pFormat->size() == 2)
- maLbColorFormat.SelectEntryPos(0);
- else
- maLbColorFormat.SelectEntryPos(1);
ScColorScaleFormat::const_iterator itr = pFormat->begin();
SetColorScaleEntryTypes(*itr, maLbEntryTypeMin, maEdMin, maLbColMin);
- if(pFormat->size() == 3)
- {
- ++itr;
- SetColorScaleEntryTypes(*itr, maLbEntryTypeMiddle, maEdMiddle, maLbColMiddle);
- }
+ assert(pFormat->size() == 3);
+ ++itr;
+ SetColorScaleEntryTypes(*itr, maLbEntryTypeMiddle, maEdMiddle, maLbColMiddle);
++itr;
SetColorScaleEntryTypes(*itr, maLbEntryTypeMax, maEdMax, maLbColMax);
}