summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--cui/source/options/optgdlg.cxx10
-rw-r--r--cui/source/options/optgdlg.hxx2
-rw-r--r--cui/uiconfig/ui/optgeneralpage.ui41
-rw-r--r--officecfg/registry/schema/org/openoffice/Office/Calc.xcs7
-rw-r--r--officecfg/registry/schema/org/openoffice/Office/Common.xcs7
-rw-r--r--sc/inc/calcconfig.hxx1
-rw-r--r--sc/source/core/data/formulacell.cxx7
-rw-r--r--sc/source/core/tool/calcconfig.cxx3
-rw-r--r--sc/source/core/tool/formulagroup.cxx14
-rw-r--r--sc/source/core/tool/formulaopt.cxx37
-rw-r--r--sc/source/core/tool/interpr5.cxx3
-rw-r--r--sc/source/ui/optdlg/calcoptionsdlg.cxx28
-rw-r--r--sc/source/ui/optdlg/calcoptionsdlg.hxx3
-rw-r--r--sc/source/ui/unoobj/docuno.cxx8
-rw-r--r--sc/uiconfig/scalc/ui/formulacalculationoptions.ui49
15 files changed, 98 insertions, 122 deletions
diff --git a/cui/source/options/optgdlg.cxx b/cui/source/options/optgdlg.cxx
index 29e1387354c6..1f5c32e8144e 100644
--- a/cui/source/options/optgdlg.cxx
+++ b/cui/source/options/optgdlg.cxx
@@ -208,6 +208,7 @@ OfaMiscTabPage::OfaMiscTabPage(vcl::Window* pParent, const SfxItemSet& rSet)
get(m_pYearValueField, "year");
get(m_pToYearFT, "toyear");
get(m_pCollectUsageInfo, "collectusageinfo");
+ get(m_pUseOpenCL, "useopencl");
if (m_pFileDlgCB->IsVisible() && SvtMiscOptions().IsUseSystemFileDialogReadOnly())
{
@@ -300,6 +301,12 @@ bool OfaMiscTabPage::FillItemSet( SfxItemSet* rSet )
bModified = true;
}
+ if (m_pUseOpenCL->IsValueChangedFromSaved())
+ {
+ officecfg::Office::Common::Misc::UseOpenCL::set(m_pUseOpenCL->IsChecked(), batch);
+ bModified = true;
+ }
+
batch->commit();
return bModified;
@@ -341,6 +348,9 @@ void OfaMiscTabPage::Reset( const SfxItemSet* rSet )
m_pCollectUsageInfo->Check(officecfg::Office::Common::Misc::CollectUsageInformation::get());
m_pCollectUsageInfo->SaveValue();
+
+ m_pUseOpenCL->Check(officecfg::Office::Common::Misc::UseOpenCL::get());
+ m_pUseOpenCL->SaveValue();
}
diff --git a/cui/source/options/optgdlg.hxx b/cui/source/options/optgdlg.hxx
index 33534573502d..a6a7dac8df83 100644
--- a/cui/source/options/optgdlg.hxx
+++ b/cui/source/options/optgdlg.hxx
@@ -57,6 +57,8 @@ private:
CheckBox* m_pCollectUsageInfo;
+ CheckBox* m_pUseOpenCL;
+
DECL_LINK( TwoFigureHdl, NumericField* );
DECL_LINK( TwoFigureConfigHdl, NumericField* );
DECL_LINK(HelpCheckHdl_Impl, void *);
diff --git a/cui/uiconfig/ui/optgeneralpage.ui b/cui/uiconfig/ui/optgeneralpage.ui
index b1447c59cecd..d3e801593ff0 100644
--- a/cui/uiconfig/ui/optgeneralpage.ui
+++ b/cui/uiconfig/ui/optgeneralpage.ui
@@ -370,5 +370,46 @@
<property name="top_attach">5</property>
</packing>
</child>
+ <child>
+ <object class="GtkFrame" id="openclframe">
+ <property name="visible">True</property>
+ <property name="can_focus">False</property>
+ <property name="label_xalign">0</property>
+ <property name="shadow_type">none</property>
+ <child>
+ <object class="GtkAlignment" id="alignment7">
+ <property name="visible">True</property>
+ <property name="can_focus">False</property>
+ <property name="top_padding">6</property>
+ <property name="left_padding">12</property>
+ <child>
+ <object class="GtkCheckButton" id="useopencl">
+ <property name="label" translatable="yes">Allow use of OpenCL</property>
+ <property name="visible">True</property>
+ <property name="can_focus">True</property>
+ <property name="receives_default">False</property>
+ <property name="use_underline">True</property>
+ <property name="xalign">0</property>
+ <property name="draw_indicator">True</property>
+ </object>
+ </child>
+ </object>
+ </child>
+ <child type="label">
+ <object class="GtkLabel" id="label8">
+ <property name="visible">True</property>
+ <property name="can_focus">False</property>
+ <property name="label" translatable="yes">OpenCL</property>
+ <attributes>
+ <attribute name="weight" value="bold"/>
+ </attributes>
+ </object>
+ </child>
+ </object>
+ <packing>
+ <property name="left_attach">0</property>
+ <property name="top_attach">6</property>
+ </packing>
+ </child>
</object>
</interface>
diff --git a/officecfg/registry/schema/org/openoffice/Office/Calc.xcs b/officecfg/registry/schema/org/openoffice/Office/Calc.xcs
index c7aac17a05ed..001654a5e30d 100644
--- a/officecfg/registry/schema/org/openoffice/Office/Calc.xcs
+++ b/officecfg/registry/schema/org/openoffice/Office/Calc.xcs
@@ -1344,13 +1344,6 @@
to those assigned in setOpenCLConfigToDefault() in
sc/source/core/tool/calcconfig.cxx
-->
- <prop oor:name="OpenCL" oor:type="xs:boolean" oor:nillable="false">
- <!-- UIHints: Tools - Options Spreadsheet Formula -->
- <info>
- <desc>Whether to use OpenCL for formula computation, if available.</desc>
- </info>
- <value>true</value>
- </prop>
<prop oor:name="OpenCLSubsetOnly" oor:type="xs:boolean" oor:nillable="false">
<!-- UIHints: Tools - Options Spreadsheet Formula -->
<info>
diff --git a/officecfg/registry/schema/org/openoffice/Office/Common.xcs b/officecfg/registry/schema/org/openoffice/Office/Common.xcs
index fec8d259cbe0..fe39b085a580 100644
--- a/officecfg/registry/schema/org/openoffice/Office/Common.xcs
+++ b/officecfg/registry/schema/org/openoffice/Office/Common.xcs
@@ -5553,6 +5553,13 @@
</info>
<value>false</value>
</prop>
+ <prop oor:name="UseOpenCL" oor:type="xs:boolean" oor:nillable="false">
+ <info>
+ <desc>Determines whether OpenCL can be used, when available, to speed up
+ some operations.</desc>
+ </info>
+ <value>true</value>
+ </prop>
<prop oor:name="MacroRecorderMode" oor:type="xs:boolean" oor:nillable="false">
<info>
<desc>Determines if the limited, and awkward code producing
diff --git a/sc/inc/calcconfig.hxx b/sc/inc/calcconfig.hxx
index 2b93fa3bb171..0a27d1b3be1a 100644
--- a/sc/inc/calcconfig.hxx
+++ b/sc/inc/calcconfig.hxx
@@ -96,7 +96,6 @@ struct SC_DLLPUBLIC ScCalcConfig
StringConversion meStringConversion;
bool mbEmptyStringAsZero:1;
- bool mbOpenCLEnabled:1;
bool mbOpenCLSubsetOnly:1;
bool mbOpenCLAutoSelect:1;
OUString maOpenCLDevice;
diff --git a/sc/source/core/data/formulacell.cxx b/sc/source/core/data/formulacell.cxx
index b0a39da71521..e364a6e029ce 100644
--- a/sc/source/core/data/formulacell.cxx
+++ b/sc/source/core/data/formulacell.cxx
@@ -59,6 +59,7 @@
#include <listenerquery.hxx>
#include <listenerqueryids.hxx>
#include <grouparealistener.hxx>
+#include <officecfg/Office/Common.hxx>
#include <boost/scoped_ptr.hpp>
#include <boost/ptr_container/ptr_map.hpp>
@@ -460,7 +461,7 @@ ScFormulaCellGroup::ScFormulaCellGroup() :
meKernelState(sc::OpenCLKernelNone)
{
#if ENABLE_THREADED_OPENCL_KERNEL_COMPILATION
- if (ScInterpreter::GetGlobalConfig().mbOpenCLEnabled)
+ if (officecfg::Office::Common::Misc::UseOpenCL::get())
{
osl::MutexGuard aGuard(getOpenCLCompilationThreadMutex());
if (snCount++ == 0)
@@ -476,7 +477,7 @@ ScFormulaCellGroup::ScFormulaCellGroup() :
ScFormulaCellGroup::~ScFormulaCellGroup()
{
#if ENABLE_THREADED_OPENCL_KERNEL_COMPILATION
- if (ScInterpreter::GetGlobalConfig().mbOpenCLEnabled)
+ if (officecfg::Office::Common::Misc::UseOpenCL::get())
{
osl::MutexGuard aGuard(getOpenCLCompilationThreadMutex());
if (--snCount == 0 && sxCompilationThread.is())
@@ -3719,7 +3720,7 @@ ScFormulaCell::CompareState ScFormulaCell::CompareByTokenArray( ScFormulaCell& r
bool ScFormulaCell::InterpretFormulaGroup()
{
- if (!ScInterpreter::GetGlobalConfig().mbOpenCLEnabled)
+ if (!officecfg::Office::Common::Misc::UseOpenCL::get())
return false;
if (!mxGroup || !pCode)
diff --git a/sc/source/core/tool/calcconfig.cxx b/sc/source/core/tool/calcconfig.cxx
index 7c9ace9bb868..ede5570dee02 100644
--- a/sc/source/core/tool/calcconfig.cxx
+++ b/sc/source/core/tool/calcconfig.cxx
@@ -35,7 +35,6 @@ void ScCalcConfig::setOpenCLConfigToDefault()
// Note that these defaults better be kept in sync with those in
// officecfg/registry/schema/org/openoffice/Office/Calc.xcs.
// Crazy.
- mbOpenCLEnabled = true;
mbOpenCLSubsetOnly = true;
mbOpenCLAutoSelect = true;
mnOpenCLMinimumFormulaGroupSize = 100;
@@ -99,7 +98,6 @@ bool ScCalcConfig::operator== (const ScCalcConfig& r) const
return meStringRefAddressSyntax == r.meStringRefAddressSyntax &&
meStringConversion == r.meStringConversion &&
mbEmptyStringAsZero == r.mbEmptyStringAsZero &&
- mbOpenCLEnabled == r.mbOpenCLEnabled &&
mbOpenCLSubsetOnly == r.mbOpenCLSubsetOnly &&
mbOpenCLAutoSelect == r.mbOpenCLAutoSelect &&
maOpenCLDevice == r.maOpenCLDevice &&
@@ -147,7 +145,6 @@ std::ostream& operator<<(std::ostream& rStream, const ScCalcConfig& rConfig)
"StringRefAddressSyntax=" << rConfig.meStringRefAddressSyntax << ","
"StringConversion=" << rConfig.meStringConversion << ","
"EmptyStringAsZero=" << (rConfig.mbEmptyStringAsZero?"Y":"N") << ","
- "OpenCLEnabled=" << (rConfig.mbOpenCLEnabled?"Y":"N") << ","
"OpenCLSubsetOnly=" << (rConfig.mbOpenCLSubsetOnly?"Y":"N") << ","
"OpenCLAutoSelect=" << (rConfig.mbOpenCLAutoSelect?"Y":"N") << ","
"OpenCLDevice='" << rConfig.maOpenCLDevice << "',"
diff --git a/sc/source/core/tool/formulagroup.cxx b/sc/source/core/tool/formulagroup.cxx
index ab84aa7d82c4..e7a61259fd18 100644
--- a/sc/source/core/tool/formulagroup.cxx
+++ b/sc/source/core/tool/formulagroup.cxx
@@ -20,6 +20,7 @@
#include "globalnames.hxx"
#include <formula/vectortoken.hxx>
+#include <officecfg/Office/Common.hxx>
#include <rtl/bootstrap.hxx>
#include <vector>
@@ -522,7 +523,7 @@ FormulaGroupInterpreter *FormulaGroupInterpreter::getStatic()
if ( !msInstance )
{
const ScCalcConfig& rConfig = ScInterpreter::GetGlobalConfig();
- if (rConfig.mbOpenCLEnabled)
+ if (officecfg::Office::Common::Misc::UseOpenCL::get())
switchOpenCLDevice(rConfig.maOpenCLDevice, rConfig.mbOpenCLAutoSelect, false);
if ( !msInstance ) // software fallback
@@ -549,7 +550,7 @@ void FormulaGroupInterpreter::fillOpenCLInfo(std::vector<OpenCLPlatformInfo>& rP
bool FormulaGroupInterpreter::switchOpenCLDevice(const OUString& rDeviceId, bool bAutoSelect, bool bForceEvaluation)
{
- bool bOpenCLEnabled = ScInterpreter::GetGlobalConfig().mbOpenCLEnabled;
+ bool bOpenCLEnabled = officecfg::Office::Common::Misc::UseOpenCL::get();
if (!bOpenCLEnabled || rDeviceId == OPENCL_SOFTWARE_DEVICE_CONFIG_NAME)
{
if(msInstance)
@@ -576,7 +577,7 @@ bool FormulaGroupInterpreter::switchOpenCLDevice(const OUString& rDeviceId, bool
msInstance = NULL;
#if HAVE_FEATURE_OPENCL
- if ( ScInterpreter::GetGlobalConfig().mbOpenCLEnabled )
+ if ( officecfg::Office::Common::Misc::UseOpenCL::get() )
{
msInstance = new sc::opencl::FormulaGroupInterpreterOpenCL();
return msInstance != NULL;
@@ -591,7 +592,7 @@ void FormulaGroupInterpreter::getOpenCLDeviceInfo(sal_Int32& rDeviceId, sal_Int3
{
rDeviceId = -1;
rPlatformId = -1;
- bool bOpenCLEnabled = ScInterpreter::GetGlobalConfig().mbOpenCLEnabled;
+ bool bOpenCLEnabled = officecfg::Office::Common::Misc::UseOpenCL::get();
if(!bOpenCLEnabled)
return;
@@ -608,8 +609,11 @@ void FormulaGroupInterpreter::getOpenCLDeviceInfo(sal_Int32& rDeviceId, sal_Int3
void FormulaGroupInterpreter::enableOpenCL(bool bEnable, bool bEnableCompletely, const std::set<OpCodeEnum>& rSubsetToEnable)
{
+ boost::shared_ptr<comphelper::ConfigurationChanges> batch(comphelper::ConfigurationChanges::create());
+ officecfg::Office::Common::Misc::UseOpenCL::set(bEnable, batch);
+ batch->commit();
+
ScCalcConfig aConfig = ScInterpreter::GetGlobalConfig();
- aConfig.mbOpenCLEnabled = bEnable;
aConfig.mbOpenCLSubsetOnly = !bEnableCompletely;
aConfig.maOpenCLSubsetOpCodes = rSubsetToEnable;
ScInterpreter::SetGlobalConfig(aConfig);
diff --git a/sc/source/core/tool/formulaopt.cxx b/sc/source/core/tool/formulaopt.cxx
index 9f05a01ec2d5..85966530a4dc 100644
--- a/sc/source/core/tool/formulaopt.cxx
+++ b/sc/source/core/tool/formulaopt.cxx
@@ -200,15 +200,14 @@ SfxPoolItem* ScTpFormulaItem::Clone( SfxItemPool * ) const
#define SCFORMULAOPT_EMPTY_OUSTRING_AS_ZERO 7
#define SCFORMULAOPT_OOXML_RECALC 8
#define SCFORMULAOPT_ODF_RECALC 9
-#define SCFORMULAOPT_OPENCL_ENABLED 10
-#define SCFORMULAOPT_OPENCL_AUTOSELECT 11
-#define SCFORMULAOPT_OPENCL_DEVICE 12
-#define SCFORMULAOPT_OPENCL_SUBSET_ONLY 13
-#define SCFORMULAOPT_OPENCL_MIN_SIZE 14
-#define SCFORMULAOPT_OPENCL_SUBSET_OPS 15
-#define SCFORMULAOPT_OPENCL_BLACKLIST 16
-#define SCFORMULAOPT_OPENCL_WHITELIST 17
-#define SCFORMULAOPT_COUNT 18
+#define SCFORMULAOPT_OPENCL_AUTOSELECT 10
+#define SCFORMULAOPT_OPENCL_DEVICE 11
+#define SCFORMULAOPT_OPENCL_SUBSET_ONLY 12
+#define SCFORMULAOPT_OPENCL_MIN_SIZE 13
+#define SCFORMULAOPT_OPENCL_SUBSET_OPS 14
+#define SCFORMULAOPT_OPENCL_BLACKLIST 15
+#define SCFORMULAOPT_OPENCL_WHITELIST 16
+#define SCFORMULAOPT_COUNT 17
Sequence<OUString> ScFormulaCfg::GetPropertyNames()
{
@@ -224,7 +223,6 @@ Sequence<OUString> ScFormulaCfg::GetPropertyNames()
"Syntax/EmptyStringAsZero", // SCFORMULAOPT_EMPTY_OUSTRING_AS_ZERO
"Load/OOXMLRecalcMode", // SCFORMULAOPT_OOXML_RECALC
"Load/ODFRecalcMode", // SCFORMULAOPT_ODF_RECALC
- "Calculation/OpenCL", // SCFORMULAOPT_OPENCL_ENABLED
"Calculation/OpenCLAutoSelect", // SCFORMULAOPT_OPENCL_AUTOSELECT
"Calculation/OpenCLDevice", // SCFORMULAOPT_OPENCL_DEVICE
"Calculation/OpenCLSubsetOnly", // SCFORMULAOPT_OPENCL_SUBSET_ONLY
@@ -255,7 +253,6 @@ ScFormulaCfg::PropsToIds ScFormulaCfg::GetPropNamesToId()
SCFORMULAOPT_EMPTY_OUSTRING_AS_ZERO,
SCFORMULAOPT_OOXML_RECALC,
SCFORMULAOPT_ODF_RECALC,
- SCFORMULAOPT_OPENCL_ENABLED,
SCFORMULAOPT_OPENCL_AUTOSELECT,
SCFORMULAOPT_OPENCL_DEVICE,
SCFORMULAOPT_OPENCL_SUBSET_ONLY,
@@ -542,17 +539,6 @@ void ScFormulaCfg::UpdateFromProperties( const Sequence<OUString>& aNames )
SetODFRecalcOptions(eOpt);
}
break;
- case SCFORMULAOPT_OPENCL_ENABLED:
- {
- bool bVal = GetCalcConfig().mbOpenCLEnabled;
- pValues[nProp] >>= bVal;
-#if 0 // Don't remove please.
- // The intent here is that tml when running CppunitTest_sc_opencl_test turns this on.
- bVal = sal_True;
-#endif
- GetCalcConfig().mbOpenCLEnabled = bVal;
- }
- break;
case SCFORMULAOPT_OPENCL_AUTOSELECT:
{
bool bVal = GetCalcConfig().mbOpenCLAutoSelect;
@@ -716,13 +702,6 @@ void ScFormulaCfg::Commit()
pValues[nProp] <<= nVal;
}
break;
- case SCFORMULAOPT_OPENCL_ENABLED:
- {
- bool bVal = GetCalcConfig().mbOpenCLEnabled;
- pValues[nProp] <<= bVal;
- bSetOpenCL = bVal;
- }
- break;
case SCFORMULAOPT_OPENCL_AUTOSELECT:
{
bool bVal = GetCalcConfig().mbOpenCLAutoSelect;
diff --git a/sc/source/core/tool/interpr5.cxx b/sc/source/core/tool/interpr5.cxx
index 1f2e4a165e0e..05936fa29696 100644
--- a/sc/source/core/tool/interpr5.cxx
+++ b/sc/source/core/tool/interpr5.cxx
@@ -23,6 +23,7 @@
#include <stdio.h>
#include <unotools/bootstrap.hxx>
+#include <officecfg/Office/Common.hxx>
#include <svl/zforlist.hxx>
#include "interpre.hxx"
@@ -908,7 +909,7 @@ void ScInterpreter::ScMatInv()
SCSIZE nC, nR;
pMat->GetDimensions(nC, nR);
- if (maCalcConfig.mbOpenCLEnabled)
+ if (officecfg::Office::Common::Misc::UseOpenCL::get())
{
ScMatrixRef xResMat = sc::FormulaGroupInterpreter::getStatic()->inverseMatrix(*pMat);
if (xResMat)
diff --git a/sc/source/ui/optdlg/calcoptionsdlg.cxx b/sc/source/ui/optdlg/calcoptionsdlg.cxx
index 0b0d160d05dd..2a19a76d5797 100644
--- a/sc/source/ui/optdlg/calcoptionsdlg.cxx
+++ b/sc/source/ui/optdlg/calcoptionsdlg.cxx
@@ -39,7 +39,6 @@ typedef enum {
CALC_OPTION_STRING_CONVERSION,
CALC_OPTION_EMPTY_AS_ZERO,
CALC_OPTION_REF_SYNTAX,
- CALC_OPTION_ENABLE_OPENCL,
CALC_OPTION_ENABLE_OPENCL_SUBSET,
CALC_OPTION_OPENCL_MIN_SIZE,
CALC_OPTION_OPENCL_SUBSET_OPS,
@@ -206,9 +205,6 @@ ScCalcOptionsDialog::ScCalcOptionsDialog(vcl::Window* pParent, const ScCalcConfi
maCaptionEmptyStringAsZero = get<vcl::Window>("empty_str_as_zero_caption")->GetText();
maDescEmptyStringAsZero = get<vcl::Window>("empty_str_as_zero_desc")->GetText();
- maCaptionOpenCLEnabled = get<vcl::Window>("opencl_enabled")->GetText();
- maDescOpenCLEnabled = get<vcl::Window>("opencl_enabled_desc")->GetText();
-
maCaptionOpenCLSubsetEnabled = get<vcl::Window>("opencl_subset_enabled")->GetText();
maDescOpenCLSubsetEnabled = get<vcl::Window>("opencl_subset_enabled_desc")->GetText();
@@ -387,7 +383,6 @@ void ScCalcOptionsDialog::FillOptionsList()
}
#if HAVE_FEATURE_OPENCL
- pModel->Insert(createItem(maCaptionOpenCLEnabled,toString(maConfig.mbOpenCLEnabled)));
pModel->Insert(createItem(maCaptionOpenCLSubsetEnabled,toString(maConfig.mbOpenCLSubsetOnly)));
pModel->Insert(createItem(maCaptionOpenCLMinimumFormulaSize,toString(maConfig.mnOpenCLMinimumFormulaGroupSize)));
pModel->Insert(createItem(maCaptionOpenCLSubsetOpCodes,ScOpCodeSetToSymbolicString(maConfig.maOpenCLSubsetOpCodes)));
@@ -480,7 +475,6 @@ void ScCalcOptionsDialog::SelectionChanged()
// booleans
case CALC_OPTION_EMPTY_AS_ZERO:
- case CALC_OPTION_ENABLE_OPENCL:
case CALC_OPTION_ENABLE_OPENCL_SUBSET:
{
mpLbOptionEdit->Hide();
@@ -508,19 +502,6 @@ void ScCalcOptionsDialog::SelectionChanged()
break; // nothing
}
}
- else if ( nSelectedPos == CALC_OPTION_ENABLE_OPENCL )
- {
- bValue = maConfig.mbOpenCLEnabled;
- mpFtAnnotation->SetText(maDescOpenCLEnabled);
- mpOpenclInfoList->GetParent()->Show();
- setOptimalLayoutSize();
- if(bValue)
- mpOpenclInfoList->GetParent()->Enable();
- else
- mpOpenclInfoList->GetParent()->Disable();
-
- OpenCLAutomaticSelectionChanged();
- }
else if ( nSelectedPos == CALC_OPTION_ENABLE_OPENCL_SUBSET )
{
bValue = maConfig.mbOpenCLSubsetOnly;
@@ -663,7 +644,6 @@ void ScCalcOptionsDialog::ListOptionValueChanged()
break;
case CALC_OPTION_EMPTY_AS_ZERO:
- case CALC_OPTION_ENABLE_OPENCL:
case CALC_OPTION_ENABLE_OPENCL_SUBSET:
case CALC_OPTION_OPENCL_MIN_SIZE:
case CALC_OPTION_OPENCL_SUBSET_OPS:
@@ -730,14 +710,6 @@ void ScCalcOptionsDialog::RadioValueChanged()
case CALC_OPTION_EMPTY_AS_ZERO:
maConfig.mbEmptyStringAsZero = mbSelectedEmptyStringAsZero = bValue;
break;
- case CALC_OPTION_ENABLE_OPENCL:
- maConfig.mbOpenCLEnabled = bValue;
- if(bValue)
- mpOpenclInfoList->GetParent()->Enable();
- else
- mpOpenclInfoList->GetParent()->Disable();
- OpenCLAutomaticSelectionChanged();
- break;
case CALC_OPTION_ENABLE_OPENCL_SUBSET:
maConfig.mbOpenCLSubsetOnly = bValue;
break;
diff --git a/sc/source/ui/optdlg/calcoptionsdlg.hxx b/sc/source/ui/optdlg/calcoptionsdlg.hxx
index 705873cde91c..5c483b02976f 100644
--- a/sc/source/ui/optdlg/calcoptionsdlg.hxx
+++ b/sc/source/ui/optdlg/calcoptionsdlg.hxx
@@ -119,9 +119,6 @@ private:
OUString maCaptionEmptyStringAsZero;
OUString maDescEmptyStringAsZero;
- OUString maCaptionOpenCLEnabled;
- OUString maDescOpenCLEnabled;
-
OUString maCaptionOpenCLSubsetEnabled;
OUString maDescOpenCLSubsetEnabled;
diff --git a/sc/source/ui/unoobj/docuno.cxx b/sc/source/ui/unoobj/docuno.cxx
index aa555196f025..94a06f050073 100644
--- a/sc/source/ui/unoobj/docuno.cxx
+++ b/sc/source/ui/unoobj/docuno.cxx
@@ -2324,17 +2324,19 @@ void ScModelObj::HandleCalculateEvents()
sal_Bool ScModelObj::isOpenCLEnabled()
throw (uno::RuntimeException, std::exception)
{
- return ScInterpreter::GetGlobalConfig().mbOpenCLEnabled;
+ return officecfg::Office::Common::Misc::UseOpenCL::get();
}
void ScModelObj::enableOpenCL(sal_Bool bEnable)
throw (uno::RuntimeException, std::exception)
{
+ boost::shared_ptr<comphelper::ConfigurationChanges> batch(comphelper::ConfigurationChanges::create());
+ officecfg::Office::Common::Misc::UseOpenCL::set(bEnable, batch);
+ batch->commit();
+
ScCalcConfig aConfig = ScInterpreter::GetGlobalConfig();
if (bEnable)
aConfig.setOpenCLConfigToDefault();
- else
- aConfig.mbOpenCLEnabled = false;
ScInterpreter::SetGlobalConfig(aConfig);
}
diff --git a/sc/uiconfig/scalc/ui/formulacalculationoptions.ui b/sc/uiconfig/scalc/ui/formulacalculationoptions.ui
index decce435cc0e..0cdaaabc0270 100644
--- a/sc/uiconfig/scalc/ui/formulacalculationoptions.ui
+++ b/sc/uiconfig/scalc/ui/formulacalculationoptions.ui
@@ -570,34 +570,6 @@
</packing>
</child>
<child>
- <object class="GtkLabel" id="opencl_enabled">
- <property name="can_focus">False</property>
- <property name="no_show_all">True</property>
- <property name="label" translatable="yes">Enable OpenCL for some formula computation</property>
- </object>
- <packing>
- <property name="left_attach">0</property>
- <property name="top_attach">15</property>
- <property name="width">1</property>
- <property name="height">1</property>
- </packing>
- </child>
- <child>
- <object class="GtkLabel" id="opencl_enabled_desc">
- <property name="can_focus">False</property>
- <property name="no_show_all">True</property>
- <property name="label" translatable="yes">This option enables some sorts of simple formula expressions to be executed using OpenCL if it is available on your system.</property>
- <property name="wrap">True</property>
- <property name="max_width_chars">56</property>
- </object>
- <packing>
- <property name="left_attach">0</property>
- <property name="top_attach">16</property>
- <property name="width">1</property>
- <property name="height">1</property>
- </packing>
- </child>
- <child>
<object class="GtkLabel" id="opencl_subset_enabled">
<property name="can_focus">False</property>
<property name="no_show_all">True</property>
@@ -605,7 +577,7 @@
</object>
<packing>
<property name="left_attach">0</property>
- <property name="top_attach">17</property>
+ <property name="top_attach">15</property>
<property name="width">1</property>
<property name="height">1</property>
</packing>
@@ -620,7 +592,7 @@
</object>
<packing>
<property name="left_attach">0</property>
- <property name="top_attach">18</property>
+ <property name="top_attach">16</property>
<property name="width">1</property>
<property name="height">1</property>
</packing>
@@ -633,7 +605,7 @@
</object>
<packing>
<property name="left_attach">0</property>
- <property name="top_attach">19</property>
+ <property name="top_attach">17</property>
<property name="width">1</property>
<property name="height">1</property>
</packing>
@@ -648,7 +620,7 @@
</object>
<packing>
<property name="left_attach">0</property>
- <property name="top_attach">20</property>
+ <property name="top_attach">18</property>
<property name="width">1</property>
<property name="height">1</property>
</packing>
@@ -661,7 +633,7 @@
</object>
<packing>
<property name="left_attach">0</property>
- <property name="top_attach">21</property>
+ <property name="top_attach">19</property>
<property name="width">1</property>
<property name="height">1</property>
</packing>
@@ -676,7 +648,7 @@
</object>
<packing>
<property name="left_attach">0</property>
- <property name="top_attach">22</property>
+ <property name="top_attach">20</property>
<property name="width">1</property>
<property name="height">1</property>
</packing>
@@ -689,7 +661,7 @@
</object>
<packing>
<property name="left_attach">0</property>
- <property name="top_attach">23</property>
+ <property name="top_attach">21</property>
<property name="width">1</property>
<property name="height">1</property>
</packing>
@@ -704,7 +676,7 @@
</object>
<packing>
<property name="left_attach">0</property>
- <property name="top_attach">24</property>
+ <property name="top_attach">22</property>
<property name="width">1</property>
<property name="height">1</property>
</packing>
@@ -717,7 +689,7 @@
</object>
<packing>
<property name="left_attach">0</property>
- <property name="top_attach">25</property>
+ <property name="top_attach">23</property>
<property name="width">1</property>
<property name="height">1</property>
</packing>
@@ -732,7 +704,7 @@
</object>
<packing>
<property name="left_attach">0</property>
- <property name="top_attach">26</property>
+ <property name="top_attach">25</property>
<property name="width">1</property>
<property name="height">1</property>
</packing>
@@ -954,7 +926,6 @@
<widget name="annotation"/>
<widget name="ref_syntax_desc"/>
<widget name="empty_str_as_zero_desc"/>
- <widget name="opencl_enabled_desc"/>
</widgets>
</object>
<object class="GtkSizeGroup" id="sizegroup2">