comphelper/Library_comphelper.mk | 1 comphelper/qa/string/test_string.cxx | 40 ++++++++ comphelper/source/misc/compareversionstrings.cxx | 70 +++++++++++++++ include/comphelper/string.hxx | 9 + officecfg/registry/schema/org/openoffice/Office/Calc.xcs | 2 sc/inc/calcconfig.hxx | 44 +++++---- sc/source/core/tool/calcconfig.cxx | 10 +- sc/source/core/tool/formulaopt.cxx | 26 +++-- sc/source/ui/optdlg/calcoptionsdlg.cxx | 40 +++++--- sc/source/ui/optdlg/calcoptionsdlg.hxx | 7 - sc/uiconfig/scalc/ui/formulacalculationoptions.ui | 40 ++++++-- 11 files changed, 223 insertions(+), 66 deletions(-)
New commits: commit 3bbaca82029419eb2cc34065b718d41c3083e826 Author: Tor Lillqvist <t...@collabora.com> Date: Tue Nov 11 18:52:55 2014 +0200 Split driver version specification into a range Change-Id: I1f26b47054e70e54ce81d3ec4cbc5ff58c1aeea3 diff --git a/officecfg/registry/schema/org/openoffice/Office/Calc.xcs b/officecfg/registry/schema/org/openoffice/Office/Calc.xcs index d3c20cf..57bb66c 100644 --- a/officecfg/registry/schema/org/openoffice/Office/Calc.xcs +++ b/officecfg/registry/schema/org/openoffice/Office/Calc.xcs @@ -1401,7 +1401,7 @@ <info> <desc>Like OpenCLWhiteList, but for combinations known to be bad.</desc> </info> - <value oor:separator=";">Windows/*/Intel(R) Corporation/*/9.17.10.2884;SuperOS/*/Big Corp, Inc./Whizz\Grafix/4.2%2Fbeta%3B3</value> + <value oor:separator=";">Windows/*/Intel(R) Corporation/*/9.17.10.2884/;SuperOS/*/Big Corp, Inc./Whizz\Grafix/4.2%2Fbeta%3B3/4.4</value> </prop> </group> <group oor:name="Syntax"> diff --git a/sc/inc/calcconfig.hxx b/sc/inc/calcconfig.hxx index 9768af8..d46fa84 100644 --- a/sc/inc/calcconfig.hxx +++ b/sc/inc/calcconfig.hxx @@ -47,7 +47,8 @@ struct SC_DLLPUBLIC ScCalcConfig OUString maOSVersion; OUString maPlatformVendor; OUString maDevice; - OUString maDriverVersion; + OUString maDriverVersionMin; + OUString maDriverVersionMax; OpenCLImplMatcher() { @@ -57,12 +58,14 @@ struct SC_DLLPUBLIC ScCalcConfig const OUString& rOSVersion, const OUString& rPlatformVendor, const OUString& rDevice, - const OUString& rDriverVersion) + const OUString& rDriverVersionMin, + const OUString& rDriverVersionMax) : maOS(rOS), maOSVersion(rOSVersion), maPlatformVendor(rPlatformVendor), maDevice(rDevice), - maDriverVersion(rDriverVersion) + maDriverVersionMin(rDriverVersionMin), + maDriverVersionMax(rDriverVersionMax) { } @@ -72,7 +75,8 @@ struct SC_DLLPUBLIC ScCalcConfig maOSVersion == r.maOSVersion && maPlatformVendor == r.maPlatformVendor && maDevice == r.maDevice && - maDriverVersion == r.maDriverVersion; + maDriverVersionMin == r.maDriverVersionMin && + maDriverVersionMax == r.maDriverVersionMax; } bool operator!=(const OpenCLImplMatcher& r) const { @@ -88,7 +92,9 @@ struct SC_DLLPUBLIC ScCalcConfig (maPlatformVendor == r.maPlatformVendor && (maDevice < r.maDevice || (maDevice == r.maDevice && - (maDriverVersion < r.maDriverVersion))))))))); + (maDriverVersionMin < r.maDriverVersionMin || + (maDriverVersionMin == r.maDriverVersionMin && + maDriverVersionMax < r.maDriverVersionMax)))))))))); } }; diff --git a/sc/source/core/tool/calcconfig.cxx b/sc/source/core/tool/calcconfig.cxx index a3197a8..36d1fa5 100644 --- a/sc/source/core/tool/calcconfig.cxx +++ b/sc/source/core/tool/calcconfig.cxx @@ -44,8 +44,8 @@ void ScCalcConfig::setOpenCLConfigToDefault() maOpenCLSubsetOpCodes.insert(ocSum); maOpenCLSubsetOpCodes.insert(ocAverage); maOpenCLSubsetOpCodes.insert(ocSumIfs); - maOpenCLBlackList.insert(OpenCLImplMatcher("Windows", "*", "Intel(R) Corporation", "*", "9.17.10.2884")); - maOpenCLBlackList.insert(OpenCLImplMatcher("SuperOS", "*", "Big Corp, Inc.", "Whizz\\Grafix", "4.2/beta;3")); + maOpenCLBlackList.insert(OpenCLImplMatcher("Windows", "*", "Intel(R) Corporation", "*", "9.17.10.2884", "")); + maOpenCLBlackList.insert(OpenCLImplMatcher("SuperOS", "*", "Big Corp, Inc.", "Whizz\\Grafix", "4.2/beta;3", "4.4")); } void ScCalcConfig::reset() @@ -89,7 +89,7 @@ std::ostream& operator<<(std::ostream& rStream, const ScCalcConfig::OpenCLImplMa "OSVersion=" << rImpl.maOSVersion << "," "PlatformVendor=" << rImpl.maPlatformVendor << "," "Device=" << rImpl.maDevice << "," - "DriverVersion=" << rImpl.maDriverVersion << + "DriverVersion=[" << rImpl.maDriverVersionMin << "," << rImpl.maDriverVersionMax << "]" "}"; return rStream; diff --git a/sc/source/core/tool/formulaopt.cxx b/sc/source/core/tool/formulaopt.cxx index f2cd325e..ae79e75 100644 --- a/sc/source/core/tool/formulaopt.cxx +++ b/sc/source/core/tool/formulaopt.cxx @@ -292,7 +292,8 @@ css::uno::Sequence<OUString> SetOfOpenCLImplMatcherToStringSequence(std::set<ScC (*i).maOSVersion.replaceAll("%", "%25").replaceAll("/", "%2F").replaceAll(";", "%3B") + "/" + (*i).maPlatformVendor.replaceAll("%", "%25").replaceAll("/", "%2F").replaceAll(";", "%3B") + "/" + (*i).maDevice.replaceAll("%", "%25").replaceAll("/", "%2F").replaceAll(";", "%3B") + "/" + - (*i).maDriverVersion.replaceAll("%", "%25").replaceAll("/", "%2F").replaceAll(";", "%3B"); + (*i).maDriverVersionMin.replaceAll("%", "%25").replaceAll("/", "%2F").replaceAll(";", "%3B") + "/" + + (*i).maDriverVersionMax.replaceAll("%", "%25").replaceAll("/", "%2F").replaceAll(";", "%3B"); } return result; @@ -335,7 +336,8 @@ std::set<ScCalcConfig::OpenCLImplMatcher> StringSequenceToSetOfOpenCLImplMatcher m.maOSVersion = getToken(*i, index); m.maPlatformVendor = getToken(*i, index); m.maDevice = getToken(*i, index); - m.maDriverVersion = getToken(*i, index); + m.maDriverVersionMin = getToken(*i, index); + m.maDriverVersionMax = getToken(*i, index); result.insert(m); } diff --git a/sc/source/ui/optdlg/calcoptionsdlg.cxx b/sc/source/ui/optdlg/calcoptionsdlg.cxx index ac55d1a..59cec36 100644 --- a/sc/source/ui/optdlg/calcoptionsdlg.cxx +++ b/sc/source/ui/optdlg/calcoptionsdlg.cxx @@ -149,7 +149,8 @@ ScCalcOptionsDialog::ScCalcOptionsDialog(vcl::Window* pParent, const ScCalcConfi get(mpOSVersion, "osversion"); get(mpPlatformVendor, "platformvendor"); get(mpDevice, "opencldevice"); - get(mpDriverVersion, "opencldriverversion"); + get(mpDriverVersionMin, "opencldriverversionmin"); + get(mpDriverVersionMax, "opencldriverversionmax"); get(mpListEditButton, "listbox-edit"); get(mpListNewButton, "listbox-new"); get(mpListDeleteButton, "listbox-delete"); @@ -166,7 +167,8 @@ ScCalcOptionsDialog::ScCalcOptionsDialog(vcl::Window* pParent, const ScCalcConfi mpOSVersion->SetModifyHdl(LINK(this, ScCalcOptionsDialog, EditModifiedHdl)); mpPlatformVendor->SetModifyHdl(LINK(this, ScCalcOptionsDialog, EditModifiedHdl)); mpDevice->SetModifyHdl(LINK(this, ScCalcOptionsDialog, EditModifiedHdl)); - mpDriverVersion->SetModifyHdl(LINK(this, ScCalcOptionsDialog, EditModifiedHdl)); + mpDriverVersionMin->SetModifyHdl(LINK(this, ScCalcOptionsDialog, EditModifiedHdl)); + mpDriverVersionMax->SetModifyHdl(LINK(this, ScCalcOptionsDialog, EditModifiedHdl)); mpOpenCLWhiteAndBlackListBox->set_height_request(4* mpOpenCLWhiteAndBlackListBox->GetTextHeight()); mpOpenCLWhiteAndBlackListBox->SetStyle(mpOpenCLWhiteAndBlackListBox->GetStyle() | WB_CLIPCHILDREN | WB_FORCE_MAKEVISIBLE); @@ -314,7 +316,10 @@ OUString format(const ScCalcConfig::OpenCLImplMatcher& rImpl) rImpl.maOSVersion + " " + rImpl.maPlatformVendor + " " + rImpl.maDevice + " " + - rImpl.maDriverVersion); + (rImpl.maDriverVersionMax != "" ? + OUString("[") + rImpl.maDriverVersionMin + "," + rImpl.maDriverVersionMax + "]" : + rImpl.maDriverVersionMin) + ); } void fillListBox(ListBox* pListBox, const ScCalcConfig::OpenCLImplMatcherSet& rSet) @@ -792,9 +797,13 @@ void ScCalcOptionsDialog::EditFieldValueChanged(Control *pCtrl) { newImpl.maDevice = sVal; } - else if (pEdit == mpDriverVersion) + else if (pEdit == mpDriverVersionMin) { - newImpl.maDriverVersion = sVal; + newImpl.maDriverVersionMin = sVal; + } + else if (pEdit == mpDriverVersionMax) + { + newImpl.maDriverVersionMax = sVal; } else assert(false && "pEdit does not match any of the Edit fields"); @@ -906,7 +915,8 @@ IMPL_LINK(ScCalcOptionsDialog, OpenCLWhiteAndBlackListSelHdl, Control*, ) mpOSVersion->SetText(impl.maOSVersion); mpPlatformVendor->SetText(impl.maPlatformVendor); mpDevice->SetText(impl.maDevice); - mpDriverVersion->SetText(impl.maDriverVersion); + mpDriverVersionMin->SetText(impl.maDriverVersionMin); + mpDriverVersionMax->SetText(impl.maDriverVersionMax); return 0; } diff --git a/sc/source/ui/optdlg/calcoptionsdlg.hxx b/sc/source/ui/optdlg/calcoptionsdlg.hxx index 2269ab1..85a47fb 100644 --- a/sc/source/ui/optdlg/calcoptionsdlg.hxx +++ b/sc/source/ui/optdlg/calcoptionsdlg.hxx @@ -81,7 +81,8 @@ private: Edit* mpOSVersion; Edit* mpPlatformVendor; Edit* mpDevice; - Edit* mpDriverVersion; + Edit* mpDriverVersionMin; + Edit* mpDriverVersionMax; PushButton* mpListEditButton; PushButton* mpListNewButton; PushButton* mpListDeleteButton; diff --git a/sc/uiconfig/scalc/ui/formulacalculationoptions.ui b/sc/uiconfig/scalc/ui/formulacalculationoptions.ui index 513106c..312f3be 100644 --- a/sc/uiconfig/scalc/ui/formulacalculationoptions.ui +++ b/sc/uiconfig/scalc/ui/formulacalculationoptions.ui @@ -214,8 +214,7 @@ <property name="visible">True</property> <property name="can_focus">False</property> <property name="xalign">0</property> - <property name="label" translatable="yes">_OS</property> - <property name="use_underline">True</property> + <property name="label" translatable="yes">OS</property> <property name="mnemonic_widget">os:border</property> </object> <packing> @@ -238,8 +237,7 @@ <property name="visible">True</property> <property name="can_focus">False</property> <property name="xalign">0</property> - <property name="label" translatable="yes">OS _Version</property> - <property name="use_underline">True</property> + <property name="label" translatable="yes">OS Version</property> <property name="mnemonic_widget">osversion:border</property> </object> <packing> @@ -263,7 +261,6 @@ <property name="can_focus">False</property> <property name="xalign">0</property> <property name="label" translatable="yes">OpenCL Platform Vendor</property> - <property name="use_underline">True</property> <property name="mnemonic_widget">openclvendor:border</property> </object> <packing> @@ -287,7 +284,6 @@ <property name="can_focus">False</property> <property name="xalign">0</property> <property name="label" translatable="yes">OpenCL Device</property> - <property name="use_underline">True</property> <property name="mnemonic_widget">opencldevice:border</property> </object> <packing> @@ -306,13 +302,12 @@ </packing> </child> <child> - <object class="GtkLabel" id="opencldriverversionlabel"> + <object class="GtkLabel" id="opencldriverversionminlabel"> <property name="visible">True</property> <property name="can_focus">False</property> <property name="xalign">0</property> - <property name="label" translatable="yes">OpenCL Driver Version</property> - <property name="use_underline">True</property> - <property name="mnemonic_widget">opencldriverversion:border</property> + <property name="label" translatable="yes">OpenCL Driver Version Lower Bound</property> + <property name="mnemonic_widget">opencldriverversionmin:border</property> </object> <packing> <property name="left_attach">0</property> @@ -320,7 +315,7 @@ </packing> </child> <child> - <object class="GtkEntry" id="opencldriverversion:border"> + <object class="GtkEntry" id="opencldriverversionmin:border"> <property name="visible">True</property> <property name="can_focus">True</property> </object> @@ -329,6 +324,29 @@ <property name="top_attach">9</property> </packing> </child> + <child> + <object class="GtkLabel" id="opencldriverversionmaxlabel"> + <property name="visible">True</property> + <property name="can_focus">False</property> + <property name="xalign">0</property> + <property name="label" translatable="yes">OpenCL Driver Version Upper Bound</property> + <property name="mnemonic_widget">opencldriverversionmax:border</property> + </object> + <packing> + <property name="left_attach">0</property> + <property name="top_attach">10</property> + </packing> + </child> + <child> + <object class="GtkEntry" id="opencldriverversionmax:border"> + <property name="visible">True</property> + <property name="can_focus">True</property> + </object> + <packing> + <property name="left_attach">0</property> + <property name="top_attach">11</property> + </packing> + </child> </object> <packing> <property name="left_attach">1</property> commit 33c542b810b32d277d94e3a3a8cb3359857350cf Author: Tor Lillqvist <t...@collabora.com> Date: Tue Nov 11 18:50:11 2014 +0200 Add a function to compare version number strings Change-Id: I88d3d9040f70e84752ade19001a699f60e9e7636 diff --git a/comphelper/Library_comphelper.mk b/comphelper/Library_comphelper.mk index 84bf698..271a95b 100644 --- a/comphelper/Library_comphelper.mk +++ b/comphelper/Library_comphelper.mk @@ -75,6 +75,7 @@ $(eval $(call gb_Library_add_exception_objects,comphelper,\ comphelper/source/misc/accimplaccess \ comphelper/source/misc/anytostring \ comphelper/source/misc/asyncnotification \ + comphelper/source/misc/compareversionstrings \ comphelper/source/misc/comphelper_module \ comphelper/source/misc/comphelper_services \ comphelper/source/misc/componentbase \ diff --git a/comphelper/qa/string/test_string.cxx b/comphelper/qa/string/test_string.cxx index 78137a1..5e9f23f 100644 --- a/comphelper/qa/string/test_string.cxx +++ b/comphelper/qa/string/test_string.cxx @@ -44,6 +44,7 @@ public: void testIsdigitAsciiString(); void testReverseString(); void testEqualsString(); + void testCompareVersionStrings(); CPPUNIT_TEST_SUITE(TestString); CPPUNIT_TEST(testNatural); @@ -57,6 +58,7 @@ public: CPPUNIT_TEST(testIsdigitAsciiString); CPPUNIT_TEST(testReverseString); CPPUNIT_TEST(testEqualsString); + CPPUNIT_TEST(testCompareVersionStrings); CPPUNIT_TEST_SUITE_END(); }; @@ -407,6 +409,44 @@ void TestString::testEqualsString() CPPUNIT_ASSERT(!::comphelper::string::equals(aIn, 'A')); } +int sign(int n) +{ + if (n == 0) + return 0; + if (n < 0) + return -1; + else + return 1; +} + +void TestString::testCompareVersionStrings() +{ +#ifdef TEST +#error TEST already defined +#endif +#define TEST(a,b,result) \ + CPPUNIT_ASSERT(sign(::comphelper::string::compareVersionStrings(a, b)) == result); \ + if ( result != 0 ) \ + CPPUNIT_ASSERT(sign(::comphelper::string::compareVersionStrings(b, a)) == -(result)) + + TEST("", "", 0); + TEST("", "0", -1); + TEST("", "a", -1); + TEST("0", "1", -1); + TEST("1", "2", -1); + TEST("2", "10", -1); + TEST("01", "1", -1); + TEST("01", "001", 1); + TEST("1.00", "1", 1); + TEST("1.2", "1", 1); + TEST("1.01", "1.1", -1); + TEST("1.001", "1.1", -1); + TEST("1.001", "1.010", -1); + TEST("1.2.a", "1.2.b", -1); + +#undef TEST +} + CPPUNIT_TEST_SUITE_REGISTRATION(TestString); } diff --git a/comphelper/source/misc/compareversionstrings.cxx b/comphelper/source/misc/compareversionstrings.cxx new file mode 100644 index 0000000..cc8cb44 --- /dev/null +++ b/comphelper/source/misc/compareversionstrings.cxx @@ -0,0 +1,70 @@ +/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */ +/* + * This file is part of the LibreOffice project. + * + * This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. + */ + +#include <ctype.h> +#include <ctype.h> +#include <string.h> + +#include <comphelper/string.hxx> +#include <rtl/ustring.hxx> + +namespace comphelper { namespace string { + +namespace { + +// BSD licensed, from http://git.musl-libc.org/cgit/musl/plain/src/string/strverscmp.c + +int strverscmp(const char *l, const char *r) +{ + int haszero=1; + while (*l==*r) { + if (!*l) return 0; + + if (*l=='0') { + if (haszero==1) { + haszero=0; + } + } else if (isdigit(*l)) { + if (haszero==1) { + haszero=2; + } + } else { + haszero=1; + } + l++; r++; + } + if (haszero==1 && (*l=='0' || *r=='0')) { + haszero=0; + } + if ((isdigit(*l) && isdigit(*r) ) && haszero) { + size_t lenl=0, lenr=0; + while (isdigit(l[lenl]) ) lenl++; + while (isdigit(r[lenr]) ) lenr++; + if (lenl==lenr) { + return (*l - *r); + } else if (lenl>lenr) { + return 1; + } else { + return -1; + } + } else { + return (*l - *r); + } +} + +} // anonymous namespace + +int compareVersionStrings(const OUString& a, const OUString& b) +{ + return strverscmp(OUStringToOString(a, RTL_TEXTENCODING_UTF8).getStr(), OUStringToOString(b, RTL_TEXTENCODING_UTF8).getStr()); +} + +} } + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/include/comphelper/string.hxx b/include/comphelper/string.hxx index 74bc6a1..b062d7c 100644 --- a/include/comphelper/string.hxx +++ b/include/comphelper/string.hxx @@ -463,6 +463,15 @@ inline bool isalnumAscii(sal_Unicode c) return isalphaAscii(c) || isdigitAscii(c); } +/** Compare two strings containing software version numbers + + Inspired by the GNU strverscmp(), but there is no guarantee that the exact + same semantics are used, or that the semantics are stable between LibreOffice versions. + + @return -1, 0 or 1 +*/ +COMPHELPER_DLLPUBLIC int compareVersionStrings(const OUString& a, const OUString& b); + } } #endif commit 9bb9d9d8feb8b27d24d00aa10ea8d780fc157d69 Author: Tor Lillqvist <t...@collabora.com> Date: Tue Nov 11 11:23:45 2014 +0200 Rename OpenCLImpl to OpenCLImplMatcher to better match its purpose Change-Id: If9b7052385a49df1403a5f652c67ca7c103a8be2 diff --git a/sc/inc/calcconfig.hxx b/sc/inc/calcconfig.hxx index 4b72dc8..9768af8 100644 --- a/sc/inc/calcconfig.hxx +++ b/sc/inc/calcconfig.hxx @@ -41,7 +41,7 @@ struct SC_DLLPUBLIC ScCalcConfig STRING_CONVERSION_LOCALE_DEPENDENT ///< =1+"1.000" may be 2 or 1001 ... =1+"x" gives #VALUE! }; - struct OpenCLImpl + struct OpenCLImplMatcher { OUString maOS; OUString maOSVersion; @@ -49,15 +49,15 @@ struct SC_DLLPUBLIC ScCalcConfig OUString maDevice; OUString maDriverVersion; - OpenCLImpl() + OpenCLImplMatcher() { } - OpenCLImpl(const OUString& rOS, - const OUString& rOSVersion, - const OUString& rPlatformVendor, - const OUString& rDevice, - const OUString& rDriverVersion) + OpenCLImplMatcher(const OUString& rOS, + const OUString& rOSVersion, + const OUString& rPlatformVendor, + const OUString& rDevice, + const OUString& rDriverVersion) : maOS(rOS), maOSVersion(rOSVersion), maPlatformVendor(rPlatformVendor), @@ -66,7 +66,7 @@ struct SC_DLLPUBLIC ScCalcConfig { } - bool operator==(const OpenCLImpl& r) const + bool operator==(const OpenCLImplMatcher& r) const { return maOS == r.maOS && maOSVersion == r.maOSVersion && @@ -74,11 +74,11 @@ struct SC_DLLPUBLIC ScCalcConfig maDevice == r.maDevice && maDriverVersion == r.maDriverVersion; } - bool operator!=(const OpenCLImpl& r) const + bool operator!=(const OpenCLImplMatcher& r) const { return !operator==(r); } - bool operator<(const OpenCLImpl& r) const + bool operator<(const OpenCLImplMatcher& r) const { return (maOS < r.maOS || (maOS == r.maOS && @@ -106,10 +106,10 @@ struct SC_DLLPUBLIC ScCalcConfig OpCodeSet maOpenCLSubsetOpCodes; - typedef std::set<OpenCLImpl> OpenCLImplSet; + typedef std::set<OpenCLImplMatcher> OpenCLImplMatcherSet; - OpenCLImplSet maOpenCLWhiteList; - OpenCLImplSet maOpenCLBlackList; + OpenCLImplMatcherSet maOpenCLWhiteList; + OpenCLImplMatcherSet maOpenCLBlackList; ScCalcConfig(); @@ -122,8 +122,8 @@ struct SC_DLLPUBLIC ScCalcConfig bool operator!= (const ScCalcConfig& r) const; }; -SC_DLLPUBLIC std::ostream& operator<<(std::ostream& rStream, const ScCalcConfig::OpenCLImpl& rImpl); -SC_DLLPUBLIC std::ostream& operator<<(std::ostream& rStream, const ScCalcConfig::OpenCLImplSet& rSet); +SC_DLLPUBLIC std::ostream& operator<<(std::ostream& rStream, const ScCalcConfig::OpenCLImplMatcher& rImpl); +SC_DLLPUBLIC std::ostream& operator<<(std::ostream& rStream, const ScCalcConfig::OpenCLImplMatcherSet& rSet); SC_DLLPUBLIC std::ostream& operator<<(std::ostream& rStream, const ScCalcConfig& rConfig); SC_DLLPUBLIC OUString ScOpCodeSetToNumberString(const ScCalcConfig::OpCodeSet& rOpCodes); diff --git a/sc/source/core/tool/calcconfig.cxx b/sc/source/core/tool/calcconfig.cxx index 583c2a3..a3197a8 100644 --- a/sc/source/core/tool/calcconfig.cxx +++ b/sc/source/core/tool/calcconfig.cxx @@ -44,8 +44,8 @@ void ScCalcConfig::setOpenCLConfigToDefault() maOpenCLSubsetOpCodes.insert(ocSum); maOpenCLSubsetOpCodes.insert(ocAverage); maOpenCLSubsetOpCodes.insert(ocSumIfs); - maOpenCLBlackList.insert(OpenCLImpl("Windows", "*", "Intel(R) Corporation", "*", "9.17.10.2884")); - maOpenCLBlackList.insert(OpenCLImpl("SuperOS", "*", "Big Corp, Inc.", "Whizz\\Grafix", "4.2/beta;3")); + maOpenCLBlackList.insert(OpenCLImplMatcher("Windows", "*", "Intel(R) Corporation", "*", "9.17.10.2884")); + maOpenCLBlackList.insert(OpenCLImplMatcher("SuperOS", "*", "Big Corp, Inc.", "Whizz\\Grafix", "4.2/beta;3")); } void ScCalcConfig::reset() @@ -82,7 +82,7 @@ bool ScCalcConfig::operator!= (const ScCalcConfig& r) const return !operator==(r); } -std::ostream& operator<<(std::ostream& rStream, const ScCalcConfig::OpenCLImpl& rImpl) +std::ostream& operator<<(std::ostream& rStream, const ScCalcConfig::OpenCLImplMatcher& rImpl) { rStream << "{" "OS=" << rImpl.maOS << "," @@ -95,7 +95,7 @@ std::ostream& operator<<(std::ostream& rStream, const ScCalcConfig::OpenCLImpl& return rStream; } -std::ostream& operator<<(std::ostream& rStream, const ScCalcConfig::OpenCLImplSet& rSet) +std::ostream& operator<<(std::ostream& rStream, const ScCalcConfig::OpenCLImplMatcherSet& rSet) { rStream << "{"; for (auto i = rSet.cbegin(); i != rSet.cend(); ++i) diff --git a/sc/source/core/tool/formulaopt.cxx b/sc/source/core/tool/formulaopt.cxx index bcf7282..f2cd325e 100644 --- a/sc/source/core/tool/formulaopt.cxx +++ b/sc/source/core/tool/formulaopt.cxx @@ -280,7 +280,7 @@ ScFormulaCfg::ScFormulaCfg() : namespace { -css::uno::Sequence<OUString> SetOfOpenCLImplToStringSequence(std::set<ScCalcConfig::OpenCLImpl>& rSet) +css::uno::Sequence<OUString> SetOfOpenCLImplMatcherToStringSequence(std::set<ScCalcConfig::OpenCLImplMatcher>& rSet) { css::uno::Sequence<OUString> result(rSet.size()); @@ -323,13 +323,13 @@ OUString getToken(const OUString& string, sal_Int32& index) return result; } -std::set<ScCalcConfig::OpenCLImpl> StringSequenceToSetOfOpenCLImpl(css::uno::Sequence<OUString>& rSequence) +std::set<ScCalcConfig::OpenCLImplMatcher> StringSequenceToSetOfOpenCLImplMatcher(css::uno::Sequence<OUString>& rSequence) { - std::set<ScCalcConfig::OpenCLImpl> result; + std::set<ScCalcConfig::OpenCLImplMatcher> result; for (auto i = rSequence.begin(); i != rSequence.end(); ++i) { - ScCalcConfig::OpenCLImpl m; + ScCalcConfig::OpenCLImplMatcher m; sal_Int32 index(0); m.maOS = getToken(*i, index); m.maOSVersion = getToken(*i, index); @@ -589,16 +589,16 @@ void ScFormulaCfg::UpdateFromProperties( const Sequence<OUString>& aNames ) break; case SCFORMULAOPT_OPENCL_WHITELIST: { - css::uno::Sequence<OUString> sVal = SetOfOpenCLImplToStringSequence(GetCalcConfig().maOpenCLWhiteList); + css::uno::Sequence<OUString> sVal = SetOfOpenCLImplMatcherToStringSequence(GetCalcConfig().maOpenCLWhiteList); pValues[nProp] >>= sVal; - GetCalcConfig().maOpenCLWhiteList = StringSequenceToSetOfOpenCLImpl(sVal); + GetCalcConfig().maOpenCLWhiteList = StringSequenceToSetOfOpenCLImplMatcher(sVal); } break; case SCFORMULAOPT_OPENCL_BLACKLIST: { - css::uno::Sequence<OUString> sVal = SetOfOpenCLImplToStringSequence(GetCalcConfig().maOpenCLBlackList); + css::uno::Sequence<OUString> sVal = SetOfOpenCLImplMatcherToStringSequence(GetCalcConfig().maOpenCLBlackList); pValues[nProp] >>= sVal; - GetCalcConfig().maOpenCLBlackList = StringSequenceToSetOfOpenCLImpl(sVal); + GetCalcConfig().maOpenCLBlackList = StringSequenceToSetOfOpenCLImplMatcher(sVal); } break; } @@ -756,13 +756,13 @@ void ScFormulaCfg::Commit() break; case SCFORMULAOPT_OPENCL_WHITELIST: { - css::uno::Sequence<OUString> sVal = SetOfOpenCLImplToStringSequence(GetCalcConfig().maOpenCLWhiteList); + css::uno::Sequence<OUString> sVal = SetOfOpenCLImplMatcherToStringSequence(GetCalcConfig().maOpenCLWhiteList); pValues[nProp] <<= sVal; } break; case SCFORMULAOPT_OPENCL_BLACKLIST: { - css::uno::Sequence<OUString> sVal = SetOfOpenCLImplToStringSequence(GetCalcConfig().maOpenCLBlackList); + css::uno::Sequence<OUString> sVal = SetOfOpenCLImplMatcherToStringSequence(GetCalcConfig().maOpenCLBlackList); pValues[nProp] <<= sVal; } break; diff --git a/sc/source/ui/optdlg/calcoptionsdlg.cxx b/sc/source/ui/optdlg/calcoptionsdlg.cxx index 051cd98..ac55d1a 100644 --- a/sc/source/ui/optdlg/calcoptionsdlg.cxx +++ b/sc/source/ui/optdlg/calcoptionsdlg.cxx @@ -308,7 +308,7 @@ void ScCalcOptionsDialog::fillOpenCLList() namespace { -OUString format(const ScCalcConfig::OpenCLImpl& rImpl) +OUString format(const ScCalcConfig::OpenCLImplMatcher& rImpl) { return (rImpl.maOS + " " + rImpl.maOSVersion + " " + @@ -317,7 +317,7 @@ OUString format(const ScCalcConfig::OpenCLImpl& rImpl) rImpl.maDriverVersion); } -void fillListBox(ListBox* pListBox, const ScCalcConfig::OpenCLImplSet& rSet) +void fillListBox(ListBox* pListBox, const ScCalcConfig::OpenCLImplMatcherSet& rSet) { pListBox->SetUpdateMode(false); pListBox->Clear(); @@ -734,14 +734,14 @@ void ScCalcOptionsDialog::SpinButtonValueChanged() maConfig.mnOpenCLMinimumFormulaGroupSize = nVal; } -ScCalcConfig::OpenCLImplSet& ScCalcOptionsDialog::CurrentWhiteOrBlackList() +ScCalcConfig::OpenCLImplMatcherSet& ScCalcOptionsDialog::CurrentWhiteOrBlackList() { return (mpLbSettings->GetSelectEntryPos() == CALC_OPTION_OPENCL_WHITELIST ? maConfig.maOpenCLWhiteList : maConfig.maOpenCLBlackList); } -const ScCalcConfig::OpenCLImpl& ScCalcOptionsDialog::CurrentWhiteOrBlackListEntry() +const ScCalcConfig::OpenCLImplMatcher& ScCalcOptionsDialog::CurrentWhiteOrBlackListEntry() { - ScCalcConfig::OpenCLImplSet& rSet(CurrentWhiteOrBlackList()); + ScCalcConfig::OpenCLImplMatcherSet& rSet(CurrentWhiteOrBlackList()); auto i = rSet.begin(); int n(mpOpenCLWhiteAndBlackListBox->GetSelectEntryPos()); @@ -773,8 +773,8 @@ void ScCalcOptionsDialog::EditFieldValueChanged(Control *pCtrl) // We know that this handler is otherwise currently used only // for the OpenCL white/blacklists - const ScCalcConfig::OpenCLImpl& impl(CurrentWhiteOrBlackListEntry()); - ScCalcConfig::OpenCLImpl newImpl(impl); + const ScCalcConfig::OpenCLImplMatcher& impl(CurrentWhiteOrBlackListEntry()); + ScCalcConfig::OpenCLImplMatcher newImpl(impl); if (pEdit == mpOS) { @@ -799,7 +799,7 @@ void ScCalcOptionsDialog::EditFieldValueChanged(Control *pCtrl) else assert(false && "pEdit does not match any of the Edit fields"); - ScCalcConfig::OpenCLImplSet& rSet(CurrentWhiteOrBlackList()); + ScCalcConfig::OpenCLImplMatcherSet& rSet(CurrentWhiteOrBlackList()); rSet.erase(impl); rSet.insert(newImpl); @@ -900,7 +900,7 @@ IMPL_LINK(ScCalcOptionsDialog, OpenCLWhiteAndBlackListSelHdl, Control*, ) { // We know this handler is used for the mpOpenCLWhiteAndBlackListBox - const ScCalcConfig::OpenCLImpl& impl(CurrentWhiteOrBlackListEntry()); + const ScCalcConfig::OpenCLImplMatcher& impl(CurrentWhiteOrBlackListEntry()); mpOS->SetText(impl.maOS); mpOSVersion->SetText(impl.maOSVersion); diff --git a/sc/source/ui/optdlg/calcoptionsdlg.hxx b/sc/source/ui/optdlg/calcoptionsdlg.hxx index d8115c2..2269ab1 100644 --- a/sc/source/ui/optdlg/calcoptionsdlg.hxx +++ b/sc/source/ui/optdlg/calcoptionsdlg.hxx @@ -64,8 +64,8 @@ private: OUString toString(sal_Int32 nVal) const; SvTreeListEntry *createItem(const OUString &rCaption, const OUString& sValue) const; void setValueAt(size_t nPos, const OUString &rString); - std::set<ScCalcConfig::OpenCLImpl>& CurrentWhiteOrBlackList(); - const ScCalcConfig::OpenCLImpl& CurrentWhiteOrBlackListEntry(); + std::set<ScCalcConfig::OpenCLImplMatcher>& CurrentWhiteOrBlackList(); + const ScCalcConfig::OpenCLImplMatcher& CurrentWhiteOrBlackListEntry(); private: SvxCheckListBox* mpLbSettings; _______________________________________________ Libreoffice-commits mailing list libreoffice-comm...@lists.freedesktop.org http://lists.freedesktop.org/mailman/listinfo/libreoffice-commits