summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorEike Rathke <erack@redhat.com>2015-10-06 17:59:38 +0200
committerEike Rathke <erack@redhat.com>2015-10-06 18:08:56 +0200
commitd4bb1ea98640c0cf575f8ac556b22cdc6f83ba0d (patch)
tree1b22be46b71f783db0003902f58d52b36dac1b0f
parent2ad231f9e90071ad2d83dae7a879ce1295db39ee (diff)
reintroduce initial coupling of EmptyStringAsZero to StringConversion
... as not all combinations make sense and aren't handled. For ILLEGAL and ZERO string conversions the EmptyAsZero checkbox is to be disabled. Also, remember the EmptyAsZero value again if the user toggled it. Got lost in commit e224c9cb929cd744674b5d4d265cfb4680c82a2b "Refactor OpenCL settings dialog" Change-Id: I86f9278e3d7856c70e94c2d1eb9f507359b90899
-rw-r--r--sc/source/ui/optdlg/calcoptionsdlg.cxx49
-rw-r--r--sc/source/ui/optdlg/calcoptionsdlg.hxx1
2 files changed, 29 insertions, 21 deletions
diff --git a/sc/source/ui/optdlg/calcoptionsdlg.cxx b/sc/source/ui/optdlg/calcoptionsdlg.cxx
index d9965ebf5f57..72b962ec569d 100644
--- a/sc/source/ui/optdlg/calcoptionsdlg.cxx
+++ b/sc/source/ui/optdlg/calcoptionsdlg.cxx
@@ -97,6 +97,7 @@ ScCalcOptionsDialog::ScCalcOptionsDialog(vcl::Window* pParent, const ScCalcConfi
get(mpEmptyAsZero,"checkEmptyAsZero");
mpEmptyAsZero->Check(rConfig.mbEmptyStringAsZero);
mpEmptyAsZero->SetClickHdl(LINK(this, ScCalcOptionsDialog, AsZeroModifiedHdl));
+ CoupleEmptyAsZeroToStringConversion();
get(mpSyntax,"comboSyntaxRef");
mpSyntax->SelectEntryPos( toSelectedItem(rConfig.meStringRefAddressSyntax) );
@@ -192,34 +193,40 @@ void ScCalcOptionsDialog::SelectedDeviceChanged()
#endif
}
+void ScCalcOptionsDialog::CoupleEmptyAsZeroToStringConversion()
+{
+ switch (maConfig.meStringConversion)
+ {
+ case ScCalcConfig::StringConversion::ILLEGAL:
+ maConfig.mbEmptyStringAsZero = false;
+ mpEmptyAsZero->Check(false);
+ mpEmptyAsZero->Enable(false);
+ break;
+ case ScCalcConfig::StringConversion::ZERO:
+ maConfig.mbEmptyStringAsZero = true;
+ mpEmptyAsZero->Check();
+ mpEmptyAsZero->Enable(false);
+ break;
+ case ScCalcConfig::StringConversion::UNAMBIGUOUS:
+ case ScCalcConfig::StringConversion::LOCALE:
+ // Reset to the value the user selected before.
+ maConfig.mbEmptyStringAsZero = mbSelectedEmptyStringAsZero;
+ mpEmptyAsZero->Enable(true);
+ mpEmptyAsZero->Check( mbSelectedEmptyStringAsZero);
+ break;
+ }
+}
+
IMPL_LINK_TYPED(ScCalcOptionsDialog, AsZeroModifiedHdl, Button*, pCheckBox, void )
{
- maConfig.mbEmptyStringAsZero = static_cast<CheckBox*>(pCheckBox)->IsChecked();
+ maConfig.mbEmptyStringAsZero = mbSelectedEmptyStringAsZero = static_cast<CheckBox*>(pCheckBox)->IsChecked();
}
IMPL_LINK(ScCalcOptionsDialog, ConversionModifiedHdl, ListBox*, pConv )
{
- maConfig.meStringConversion = (ScCalcConfig::StringConversion)pConv->GetSelectEntryPos();
- switch (maConfig.meStringConversion)
- {
- case ScCalcConfig::StringConversion::ILLEGAL:
- maConfig.mbEmptyStringAsZero = false;
- mpEmptyAsZero->Check(false);
- mpEmptyAsZero->Enable(false);
- break;
- case ScCalcConfig::StringConversion::ZERO:
- maConfig.mbEmptyStringAsZero = true;
- mpEmptyAsZero->Check();
- mpEmptyAsZero->Enable(false);
- break;
- case ScCalcConfig::StringConversion::UNAMBIGUOUS:
- case ScCalcConfig::StringConversion::LOCALE:
- // Reset to the value the user selected before.
- maConfig.mbEmptyStringAsZero = mbSelectedEmptyStringAsZero;
- mpEmptyAsZero->Enable(true);
- break;
- }
+ maConfig.meStringConversion = (ScCalcConfig::StringConversion)pConv->GetSelectEntryPos();
+ CoupleEmptyAsZeroToStringConversion();
return 0;
}
diff --git a/sc/source/ui/optdlg/calcoptionsdlg.hxx b/sc/source/ui/optdlg/calcoptionsdlg.hxx
index 4ee896d9007f..f7a2040d6657 100644
--- a/sc/source/ui/optdlg/calcoptionsdlg.hxx
+++ b/sc/source/ui/optdlg/calcoptionsdlg.hxx
@@ -53,6 +53,7 @@ public:
private:
void OpenCLAutomaticSelectionChanged();
void SelectedDeviceChanged();
+ void CoupleEmptyAsZeroToStringConversion();
private:
VclPtr<CheckBox> mpEmptyAsZero;