officecfg/registry/schema/org/openoffice/Office/Calc.xcs | 7 ++ sc/inc/calcconfig.hxx | 1 sc/source/core/tool/calcconfig.cxx | 6 +- sc/source/core/tool/formulaopt.cxx | 21 ++++++-- sc/source/ui/optdlg/calcoptionsdlg.cxx | 39 +++++++++++---- sc/source/ui/optdlg/calcoptionsdlg.hxx | 2 6 files changed, 62 insertions(+), 14 deletions(-)
New commits: commit d92548c8621e11a59a77fc1bb9466715fc067c40 Author: Markus Mohrhard <[email protected]> Date: Fri Sep 13 17:39:19 2013 +0200 fix some updating problems in the opencl auto select dialog Change-Id: I2ddddbd694a0fe4971a1ef40ee6e15e6b3f07b3f diff --git a/sc/source/ui/optdlg/calcoptionsdlg.cxx b/sc/source/ui/optdlg/calcoptionsdlg.cxx index 43a0410..f2b91f8 100644 --- a/sc/source/ui/optdlg/calcoptionsdlg.cxx +++ b/sc/source/ui/optdlg/calcoptionsdlg.cxx @@ -233,6 +233,9 @@ void ScCalcOptionsDialog::FillOptionsList() #if HAVE_FEATURE_OPENCL pModel->Insert(createBoolItem(maCaptionOpenCLEnabled,maConfig.mbOpenCLEnabled)); fillOpenclList(); + + mpBtnAutomaticSelectionFalse->Check(!maConfig.mbOpenCLAutoSelect); + mpBtnAutomaticSelectionTrue->Check(maConfig.mbOpenCLAutoSelect); #endif mpLbSettings->SetUpdateMode(true); @@ -367,9 +370,10 @@ void ScCalcOptionsDialog::RadioValueChanged() case CALC_OPTION_ENABLE_OPENCL: maConfig.mbOpenCLEnabled = bValue; if(bValue) - mpOpenclInfoList->GetParent()->Disable(); - else mpOpenclInfoList->GetParent()->Enable(); + else + mpOpenclInfoList->GetParent()->Disable(); + OpenclAutomaticSelectionChanged(); break; } commit 2914f05f7900c876e9120ac204eee7c3eff9b5ac Author: Markus Mohrhard <[email protected]> Date: Fri Sep 13 17:18:52 2013 +0200 enable the opencl device selection also after enabling opencl again Change-Id: If898125c55794ea542643d0299b02b6183b79ef9 diff --git a/sc/source/ui/optdlg/calcoptionsdlg.cxx b/sc/source/ui/optdlg/calcoptionsdlg.cxx index 76871cb..43a0410 100644 --- a/sc/source/ui/optdlg/calcoptionsdlg.cxx +++ b/sc/source/ui/optdlg/calcoptionsdlg.cxx @@ -366,6 +366,10 @@ void ScCalcOptionsDialog::RadioValueChanged() break; case CALC_OPTION_ENABLE_OPENCL: maConfig.mbOpenCLEnabled = bValue; + if(bValue) + mpOpenclInfoList->GetParent()->Disable(); + else + mpOpenclInfoList->GetParent()->Enable(); break; } commit 13936f50924c66e2b013bf0326a6d181afa9cf67 Author: Markus Mohrhard <[email protected]> Date: Fri Sep 13 16:57:56 2013 +0200 store opencl auto select setting in configuration Change-Id: I687b31959b2932cc1b5f7ce6daea8d7bbbe85ee5 diff --git a/officecfg/registry/schema/org/openoffice/Office/Calc.xcs b/officecfg/registry/schema/org/openoffice/Office/Calc.xcs index ada4416..5950597 100644 --- a/officecfg/registry/schema/org/openoffice/Office/Calc.xcs +++ b/officecfg/registry/schema/org/openoffice/Office/Calc.xcs @@ -1337,6 +1337,13 @@ </info> <value>false</value> </prop> + <prop oor:name="OpenCLAutoSelect" oor:type="xs:boolean" oor:nillable="false"> + <!-- UIHints: Tools - Options Spreadsheet Formula --> + <info> + <desc>Whether to automatically select the OpenCL device</desc> + </info> + <value>true</value> + </prop> </group> <group oor:name="Syntax"> <info> diff --git a/sc/inc/calcconfig.hxx b/sc/inc/calcconfig.hxx index aace08d..1477874 100644 --- a/sc/inc/calcconfig.hxx +++ b/sc/inc/calcconfig.hxx @@ -29,6 +29,7 @@ struct SC_DLLPUBLIC ScCalcConfig formula::FormulaGrammar::AddressConvention meStringRefAddressSyntax; bool mbEmptyStringAsZero:1; bool mbOpenCLEnabled:1; + bool mbOpenCLAutoSelect:1; ScCalcConfig(); diff --git a/sc/source/core/tool/calcconfig.cxx b/sc/source/core/tool/calcconfig.cxx index 896e009..1278402 100644 --- a/sc/source/core/tool/calcconfig.cxx +++ b/sc/source/core/tool/calcconfig.cxx @@ -12,7 +12,8 @@ ScCalcConfig::ScCalcConfig() : meStringRefAddressSyntax(formula::FormulaGrammar::CONV_UNSPECIFIED), mbEmptyStringAsZero(false), - mbOpenCLEnabled(false) + mbOpenCLEnabled(false), + mbOpenCLAutoSelect(true) { } @@ -25,7 +26,8 @@ bool ScCalcConfig::operator== (const ScCalcConfig& r) const { return meStringRefAddressSyntax == r.meStringRefAddressSyntax && mbEmptyStringAsZero == r.mbEmptyStringAsZero && - mbOpenCLEnabled == r.mbOpenCLEnabled; + mbOpenCLEnabled == r.mbOpenCLEnabled && + mbOpenCLAutoSelect == r.mbOpenCLAutoSelect; } bool ScCalcConfig::operator!= (const ScCalcConfig& r) const diff --git a/sc/source/core/tool/formulaopt.cxx b/sc/source/core/tool/formulaopt.cxx index 0868fd2..bf6b385 100644 --- a/sc/source/core/tool/formulaopt.cxx +++ b/sc/source/core/tool/formulaopt.cxx @@ -196,7 +196,8 @@ SfxPoolItem* ScTpFormulaItem::Clone( SfxItemPool * ) const #define SCFORMULAOPT_OOXML_RECALC 7 #define SCFORMULAOPT_ODF_RECALC 8 #define SCFORMULAOPT_OPENCL_ENABLED 9 -#define SCFORMULAOPT_COUNT 10 +#define SCFORMULAOPT_OPENCL_AUTOSELECT 10 +#define SCFORMULAOPT_COUNT 11 Sequence<OUString> ScFormulaCfg::GetPropertyNames() { @@ -211,7 +212,8 @@ Sequence<OUString> ScFormulaCfg::GetPropertyNames() "Syntax/EmptyStringAsZero", // SCFORMULAOPT_EMPTY_STRING_AS_ZERO "Load/OOXMLRecalcMode", // SCFORMULAOPT_OOXML_RECALC "Load/ODFRecalcMode", // SCFORMULAOPT_ODF_RECALC - "Calculation/OpenCL" // SCFORMULAOPT_OPENCL_ENABLED + "Calculation/OpenCL", // SCFORMULAOPT_OPENCL_ENABLED + "Calculation/OpenCLAutoSelect" // SCFORMULAOPT_OPENCL_AUTOSELECT }; Sequence<OUString> aNames(SCFORMULAOPT_COUNT); OUString* pNames = aNames.getArray(); @@ -224,7 +226,7 @@ Sequence<OUString> ScFormulaCfg::GetPropertyNames() ScFormulaCfg::PropsToIds ScFormulaCfg::GetPropNamesToId() { Sequence<OUString> aPropNames = GetPropertyNames(); - static sal_uInt16 aVals[] = { SCFORMULAOPT_GRAMMAR, SCFORMULAOPT_ENGLISH_FUNCNAME, SCFORMULAOPT_SEP_ARG, SCFORMULAOPT_SEP_ARRAY_ROW, SCFORMULAOPT_SEP_ARRAY_COL, SCFORMULAOPT_STRING_REF_SYNTAX, SCFORMULAOPT_EMPTY_STRING_AS_ZERO, SCFORMULAOPT_OOXML_RECALC, SCFORMULAOPT_ODF_RECALC, SCFORMULAOPT_OPENCL_ENABLED }; + static sal_uInt16 aVals[] = { SCFORMULAOPT_GRAMMAR, SCFORMULAOPT_ENGLISH_FUNCNAME, SCFORMULAOPT_SEP_ARG, SCFORMULAOPT_SEP_ARRAY_ROW, SCFORMULAOPT_SEP_ARRAY_COL, SCFORMULAOPT_STRING_REF_SYNTAX, SCFORMULAOPT_EMPTY_STRING_AS_ZERO, SCFORMULAOPT_OOXML_RECALC, SCFORMULAOPT_ODF_RECALC, SCFORMULAOPT_OPENCL_ENABLED, SCFORMULAOPT_OPENCL_AUTOSELECT }; OSL_ENSURE( SAL_N_ELEMENTS(aVals) == aPropNames.getLength(), "Properties and ids are out of Sync"); PropsToIds aPropIdMap; for ( sal_uInt16 i=0; i<aPropNames.getLength(); ++i ) @@ -409,6 +411,13 @@ void ScFormulaCfg::UpdateFromProperties( const Sequence<OUString>& aNames ) pValues[nProp] >>= bVal; GetCalcConfig().mbOpenCLEnabled = bVal; } + break; + case SCFORMULAOPT_OPENCL_AUTOSELECT: + { + sal_Bool bVal = GetCalcConfig().mbOpenCLAutoSelect; + pValues[nProp] >>= bVal; + GetCalcConfig().mbOpenCLAutoSelect = bVal; + } default: ; } @@ -517,6 +526,12 @@ void ScFormulaCfg::Commit() pValues[nProp] <<= bVal; } break; + case SCFORMULAOPT_OPENCL_AUTOSELECT: + { + sal_Bool bVal = GetCalcConfig().mbOpenCLAutoSelect; + pValues[nProp] <<= bVal; + } + break; default: ; } diff --git a/sc/source/ui/optdlg/calcoptionsdlg.cxx b/sc/source/ui/optdlg/calcoptionsdlg.cxx index 4ac8b91..76871cb 100644 --- a/sc/source/ui/optdlg/calcoptionsdlg.cxx +++ b/sc/source/ui/optdlg/calcoptionsdlg.cxx @@ -349,6 +349,8 @@ void ScCalcOptionsDialog::OpenclAutomaticSelectionChanged() mpOpenclInfoList->Disable(); else mpOpenclInfoList->Enable(); + + maConfig.mbOpenCLAutoSelect = bValue; } void ScCalcOptionsDialog::RadioValueChanged() commit ea8ef8b47eeb018a9dea051bd8dba7f9b9db18b4 Author: Markus Mohrhard <[email protected]> Date: Fri Sep 13 14:41:51 2013 +0200 display platform and device together Change-Id: Iebe13dae8ede0696913597116904af8e720ffc65 diff --git a/sc/source/ui/optdlg/calcoptionsdlg.cxx b/sc/source/ui/optdlg/calcoptionsdlg.cxx index f13c578..4ac8b91 100644 --- a/sc/source/ui/optdlg/calcoptionsdlg.cxx +++ b/sc/source/ui/optdlg/calcoptionsdlg.cxx @@ -199,18 +199,10 @@ void ScCalcOptionsDialog::fillOpenclList() for(std::vector<sc::OpenclPlatformInfo>::const_iterator it = aPlatformInfo.begin(), itEnd = aPlatformInfo.end(); it != itEnd; ++it) { - SvTreeListEntry* pEntry = new SvTreeListEntry; - pEntry->AddItem(new SvLBoxContextBmp(pEntry, 0, Image(), Image(), 0)); - pEntry->AddItem(new SvLBoxString(pEntry, 0, it->maVendor)); - mpOpenclInfoList->GetModel()->Insert(pEntry); - for(std::vector<sc::OpenclDeviceInfo>::const_iterator itr = it->maDevices.begin(), itrEnd = it->maDevices.end(); itr != itrEnd; ++itr) { - SvTreeListEntry* pDeviceEntry = new SvTreeListEntry; -pDeviceEntry->AddItem(new SvLBoxContextBmp(pDeviceEntry, 0, Image(), Image(), 0)); -pDeviceEntry->AddItem(new SvLBoxString(pDeviceEntry, 0, itr->maName)); -mpOpenclInfoList->GetModel()->Insert(pDeviceEntry, pEntry); + mpOpenclInfoList->InsertEntry(it->maVendor + " " + itr->maName); } } commit 20144d518600d40db91b6cf42902d56ddfcc6d2f Author: Markus Mohrhard <[email protected]> Date: Fri Sep 13 14:29:24 2013 +0200 disable the opencl device selection while auto selection is enabled Change-Id: Ie2f10e9e863bfcb6a34380049bd63e480aab76d2 diff --git a/sc/source/ui/optdlg/calcoptionsdlg.cxx b/sc/source/ui/optdlg/calcoptionsdlg.cxx index 8167736..f13c578 100644 --- a/sc/source/ui/optdlg/calcoptionsdlg.cxx +++ b/sc/source/ui/optdlg/calcoptionsdlg.cxx @@ -124,6 +124,8 @@ ScCalcOptionsDialog::ScCalcOptionsDialog(Window* pParent, const ScCalcConfig& rC mpOpenclInfoList->SetHighlightRange(); mpOpenclInfoList->GetParent()->Hide(); + mpBtnAutomaticSelectionTrue->SetToggleHdl(LINK(this, ScCalcOptionsDialog, BtnAutomaticSelectHdl)); + maCaptionStringRefSyntax = get<Window>("ref_syntax_caption")->GetText(); maDescStringRefSyntax = get<Window>("ref_syntax_desc")->GetText(); maUseFormulaSyntax = get<Window>("use_formula_syntax")->GetText(); @@ -306,6 +308,8 @@ void ScCalcOptionsDialog::SelectionChanged() mpOpenclInfoList->GetParent()->Enable(); else mpOpenclInfoList->GetParent()->Disable(); + + OpenclAutomaticSelectionChanged(); } if ( bValue ) @@ -346,6 +350,15 @@ void ScCalcOptionsDialog::ListOptionValueChanged() } } +void ScCalcOptionsDialog::OpenclAutomaticSelectionChanged() +{ + bool bValue = mpBtnAutomaticSelectionTrue->IsChecked(); + if(bValue) + mpOpenclInfoList->Disable(); + else + mpOpenclInfoList->Enable(); +} + void ScCalcOptionsDialog::RadioValueChanged() { sal_uInt16 nSelected = mpLbSettings->GetSelectEntryPos(); @@ -403,5 +416,11 @@ IMPL_LINK_NOARG(ScCalcOptionsDialog, BtnToggleHdl) return 0; } +IMPL_LINK_NOARG(ScCalcOptionsDialog, BtnAutomaticSelectHdl) +{ + OpenclAutomaticSelectionChanged(); + return 0; +} + /* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/sc/source/ui/optdlg/calcoptionsdlg.hxx b/sc/source/ui/optdlg/calcoptionsdlg.hxx index b52b46f..8fade8d 100644 --- a/sc/source/ui/optdlg/calcoptionsdlg.hxx +++ b/sc/source/ui/optdlg/calcoptionsdlg.hxx @@ -28,6 +28,7 @@ public: DECL_LINK( SettingsSelHdl, Control* ); DECL_LINK( BtnToggleHdl, void* ); + DECL_LINK( BtnAutomaticSelectHdl, void* ); const ScCalcConfig& GetConfig() const; @@ -36,6 +37,7 @@ private: void SelectionChanged(); void ListOptionValueChanged(); void RadioValueChanged(); + void OpenclAutomaticSelectionChanged(); #if HAVE_FEATURE_OPENCL void fillOpenclList(); #endif _______________________________________________ Libreoffice-commits mailing list [email protected] http://lists.freedesktop.org/mailman/listinfo/libreoffice-commits
