From 4b6e00f08afb2968a1a5731729fc266b0e708ab2 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Toma=C5=BE=20Vajngerl?= Date: Tue, 19 Feb 2019 13:55:00 +0100 Subject: [PATCH] Use a unordered_map for mapping of xml element to control type MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Change-Id: Id0409f35a21307ed41a0da27c625c4b7784811d6 Reviewed-on: https://gerrit.libreoffice.org/68718 Tested-by: Jenkins Reviewed-by: Tomaž Vajngerl --- vcl/source/gdi/WidgetDefinitionReader.cxx | 45 +++++++---------------- 1 file changed, 13 insertions(+), 32 deletions(-) diff --git a/vcl/source/gdi/WidgetDefinitionReader.cxx b/vcl/source/gdi/WidgetDefinitionReader.cxx index 51b07f0ba6fe..799b3dda6187 100644 --- a/vcl/source/gdi/WidgetDefinitionReader.cxx +++ b/vcl/source/gdi/WidgetDefinitionReader.cxx @@ -132,39 +132,20 @@ ControlPart xmlStringToControlPart(OString const& sPart) bool getControlTypeForXmlString(OString const& rString, ControlType& reType) { - bool bReturn = false; - if (rString == "pushbutton") - { - reType = ControlType::Pushbutton; - bReturn = true; - } - else if (rString == "radiobutton") - { - reType = ControlType::Radiobutton; - bReturn = true; - } - else if (rString == "editbox") - { - reType = ControlType::Editbox; - bReturn = true; - } - else if (rString == "checkbox") - { - reType = ControlType::Checkbox; - bReturn = true; - } - else if (rString == "combobox") - { - reType = ControlType::Combobox; - bReturn = true; - } - else if (rString == "spinbox") - { - reType = ControlType::Spinbox; - bReturn = true; - } + static std::unordered_map aPartMap = { + { "pushbutton", ControlType::Pushbutton }, { "radiobutton", ControlType::Radiobutton }, + { "checkbox", ControlType::Checkbox }, { "combobox", ControlType::Combobox }, + { "editbox", ControlType::Editbox }, { "scrollbar", ControlType::Scrollbar }, + { "spinbox", ControlType::Spinbox }, + }; - return bReturn; + auto const& rIterator = aPartMap.find(rString); + if (rIterator != aPartMap.end()) + { + reType = rIterator->second; + return true; + } + return false; } } // end anonymous namespace