vcl/source/window/builder.cxx | 229 +++++++----------------------------------- 1 file changed, 43 insertions(+), 186 deletions(-)
New commits: commit f36de41877dc5afdfca59308331202ac1ec18959 Author: Michael Weghorn <m.wegh...@posteo.de> AuthorDate: Sat Nov 30 10:51:12 2024 +0100 Commit: Michael Weghorn <m.wegh...@posteo.de> CommitDate: Sat Nov 30 12:32:31 2024 +0100 tdf#130857 vcl: Deduplicate extract* methods returning OUString This is similar to Change-Id: Id0cd9ca29ee0cbd638f90a32434b1ce6b4200e6b Author: Michael Weghorn <m.wegh...@posteo.de> Date: Sat Nov 30 10:24:30 2024 +0100 tdf#130857 VclBuilder: Deduplicate extract* methods returning bool , but for methods extracting an OUString value instead of a bool one. Change-Id: Ic90ac0c630ee7454b8a7fa4f34383f8635d21ff3 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/177585 Tested-by: Jenkins Reviewed-by: Michael Weghorn <m.wegh...@posteo.de> diff --git a/vcl/source/window/builder.cxx b/vcl/source/window/builder.cxx index 18f41f730de4..e181acf7ed21 100644 --- a/vcl/source/window/builder.cxx +++ b/vcl/source/window/builder.cxx @@ -850,6 +850,19 @@ void VclBuilder::disposeBuilder() namespace { + inline OUString extractStringEntry(BuilderBase::stringmap& rMap, const OUString& rKey, + const OUString& rDefaultValue = OUString()) + { + BuilderBase::stringmap::iterator aFind = rMap.find(rKey); + if (aFind != rMap.end()) + { + const OUString sValue = aFind->second; + rMap.erase(aFind); + return sValue; + } + return rDefaultValue; + } + inline bool extractBoolEntry(BuilderBase::stringmap& rMap, const OUString& rKey, bool bDefaultValue) { BuilderBase::stringmap::iterator aFind = rMap.find(rKey); @@ -874,50 +887,22 @@ namespace OUString extractPopupMenu(VclBuilder::stringmap& rMap) { - OUString sRet; - VclBuilder::stringmap::iterator aFind = rMap.find(u"popup"_ustr); - if (aFind != rMap.end()) - { - sRet = aFind->second; - rMap.erase(aFind); - } - return sRet; + return extractStringEntry(rMap, u"popup"_ustr); } OUString extractWidgetName(VclBuilder::stringmap& rMap) { - OUString sRet; - VclBuilder::stringmap::iterator aFind = rMap.find(u"name"_ustr); - if (aFind != rMap.end()) - { - sRet = aFind->second; - rMap.erase(aFind); - } - return sRet; + return extractStringEntry(rMap, u"name"_ustr); } OUString extractValuePos(VclBuilder::stringmap& rMap) { - OUString sRet(u"top"_ustr); - VclBuilder::stringmap::iterator aFind = rMap.find(u"value-pos"_ustr); - if (aFind != rMap.end()) - { - sRet = aFind->second; - rMap.erase(aFind); - } - return sRet; + return extractStringEntry(rMap,u"value-pos"_ustr, u"top"_ustr); } OUString extractTypeHint(VclBuilder::stringmap &rMap) { - OUString sRet(u"normal"_ustr); - VclBuilder::stringmap::iterator aFind = rMap.find(u"type-hint"_ustr); - if (aFind != rMap.end()) - { - sRet = aFind->second; - rMap.erase(aFind); - } - return sRet; + return extractStringEntry(rMap, u"type-hint"_ustr, u"normal"_ustr); } #if HAVE_FEATURE_DESKTOP @@ -983,26 +968,12 @@ namespace OUString extractLabel(VclBuilder::stringmap &rMap) { - OUString sType; - VclBuilder::stringmap::iterator aFind = rMap.find(u"label"_ustr); - if (aFind != rMap.end()) - { - sType = aFind->second; - rMap.erase(aFind); - } - return sType; + return extractStringEntry(rMap, u"label"_ustr); } OUString extractActionName(VclBuilder::stringmap &rMap) { - OUString sActionName; - VclBuilder::stringmap::iterator aFind = rMap.find(u"action-name"_ustr); - if (aFind != rMap.end()) - { - sActionName = aFind->second; - rMap.erase(aFind); - } - return sActionName; + return extractStringEntry(rMap, u"action-name"_ustr); } Size extractSizeRequest(VclBuilder::stringmap &rMap) @@ -1038,14 +1009,7 @@ namespace OUString extractTitle(VclBuilder::stringmap &rMap) { - OUString sTitle; - VclBuilder::stringmap::iterator aFind = rMap.find(u"title"_ustr); - if (aFind != rMap.end()) - { - sTitle = aFind->second; - rMap.erase(aFind); - } - return sTitle; + return extractStringEntry(rMap, u"title"_ustr); } bool extractSortIndicator(VclBuilder::stringmap &rMap) @@ -2141,14 +2105,7 @@ namespace BuilderUtils OUString extractCustomProperty(VclBuilder::stringmap &rMap) { - OUString sCustomProperty; - VclBuilder::stringmap::iterator aFind = rMap.find(u"customproperty"_ustr); - if (aFind != rMap.end()) - { - sCustomProperty = aFind->second; - rMap.erase(aFind); - } - return sCustomProperty; + return extractStringEntry(rMap, u"customproperty"_ustr); } void ensureDefaultWidthChars(VclBuilder::stringmap &rMap) commit 1e54fbfa6b01cbeea1a497f116baa8b956bd6ace Author: Michael Weghorn <m.wegh...@posteo.de> AuthorDate: Sat Nov 30 10:24:30 2024 +0100 Commit: Michael Weghorn <m.wegh...@posteo.de> CommitDate: Sat Nov 30 12:32:25 2024 +0100 tdf#130857 vcl: Deduplicate extract* methods returning bool Add new `extractBoolEntry` helper that takes the map, key and a default value to return if the map doesn't contain the key. Use that new helper to deduplicate the various methods implementing the same logic over and over again. Change-Id: Id0cd9ca29ee0cbd638f90a32434b1ce6b4200e6b Reviewed-on: https://gerrit.libreoffice.org/c/core/+/177584 Reviewed-by: Michael Weghorn <m.wegh...@posteo.de> Tested-by: Jenkins diff --git a/vcl/source/window/builder.cxx b/vcl/source/window/builder.cxx index e638eaa21854..18f41f730de4 100644 --- a/vcl/source/window/builder.cxx +++ b/vcl/source/window/builder.cxx @@ -850,28 +850,26 @@ void VclBuilder::disposeBuilder() namespace { - bool extractHasFrame(VclBuilder::stringmap& rMap) + inline bool extractBoolEntry(BuilderBase::stringmap& rMap, const OUString& rKey, bool bDefaultValue) { - bool bHasFrame = true; - VclBuilder::stringmap::iterator aFind = rMap.find(u"has-frame"_ustr); + BuilderBase::stringmap::iterator aFind = rMap.find(rKey); if (aFind != rMap.end()) { - bHasFrame = toBool(aFind->second); + const bool bValue = toBool(aFind->second); rMap.erase(aFind); + return bValue; } - return bHasFrame; + return bDefaultValue; + } + + bool extractHasFrame(VclBuilder::stringmap& rMap) + { + return extractBoolEntry(rMap, u"has-frame"_ustr, true); } bool extractDrawValue(VclBuilder::stringmap& rMap) { - bool bDrawValue = true; - VclBuilder::stringmap::iterator aFind = rMap.find(u"draw-value"_ustr); - if (aFind != rMap.end()) - { - bDrawValue = toBool(aFind->second); - rMap.erase(aFind); - } - return bDrawValue; + return extractBoolEntry(rMap, u"draw-value"_ustr, true); } OUString extractPopupMenu(VclBuilder::stringmap& rMap) @@ -925,39 +923,18 @@ namespace #if HAVE_FEATURE_DESKTOP bool extractModal(VclBuilder::stringmap &rMap) { - bool bModal = false; - VclBuilder::stringmap::iterator aFind = rMap.find(u"modal"_ustr); - if (aFind != rMap.end()) - { - bModal = toBool(aFind->second); - rMap.erase(aFind); - } - return bModal; + return extractBoolEntry(rMap, u"modal"_ustr, false); } #endif bool extractDecorated(VclBuilder::stringmap &rMap) { - bool bDecorated = true; - VclBuilder::stringmap::iterator aFind = rMap.find(u"decorated"_ustr); - if (aFind != rMap.end()) - { - bDecorated = toBool(aFind->second); - rMap.erase(aFind); - } - return bDecorated; + return extractBoolEntry(rMap, u"decorated"_ustr, true); } bool extractCloseable(VclBuilder::stringmap &rMap) { - bool bCloseable = true; - VclBuilder::stringmap::iterator aFind = rMap.find(u"deletable"_ustr); - if (aFind != rMap.end()) - { - bCloseable = toBool(aFind->second); - rMap.erase(aFind); - } - return bCloseable; + return extractBoolEntry(rMap, u"deletable"_ustr, true); } bool extractVerticalTabPos(VclBuilder::stringmap &rMap) @@ -987,14 +964,7 @@ namespace bool extractInconsistent(VclBuilder::stringmap &rMap) { - bool bInconsistent = false; - VclBuilder::stringmap::iterator aFind = rMap.find(u"inconsistent"_ustr); - if (aFind != rMap.end()) - { - bInconsistent = toBool(aFind->second); - rMap.erase(aFind); - } - return bInconsistent; + return extractBoolEntry(rMap, u"inconsistent"_ustr, false); } WinBits extractRelief(VclBuilder::stringmap &rMap) @@ -1080,26 +1050,12 @@ namespace bool extractSortIndicator(VclBuilder::stringmap &rMap) { - bool bSortIndicator = false; - VclBuilder::stringmap::iterator aFind = rMap.find(u"sort-indicator"_ustr); - if (aFind != rMap.end()) - { - bSortIndicator = toBool(aFind->second); - rMap.erase(aFind); - } - return bSortIndicator; + return extractBoolEntry(rMap, u"sort-indicator"_ustr, false); } bool extractClickable(VclBuilder::stringmap &rMap) { - bool bClickable = false; - VclBuilder::stringmap::iterator aFind = rMap.find(u"clickable"_ustr); - if (aFind != rMap.end()) - { - bClickable = toBool(aFind->second); - rMap.erase(aFind); - } - return bClickable; + return extractBoolEntry(rMap, u"clickable"_ustr, false); } void setupFromActionName(Button *pButton, VclBuilder::stringmap &rMap, const css::uno::Reference<css::frame::XFrame>& rFrame) @@ -1223,14 +1179,7 @@ namespace { bool extractSelectable(VclBuilder::stringmap &rMap) { - bool bSelectable = false; - VclBuilder::stringmap::iterator aFind = rMap.find(u"selectable"_ustr); - if (aFind != rMap.end()) - { - bSelectable = toBool(aFind->second); - rMap.erase(aFind); - } - return bSelectable; + return extractBoolEntry(rMap, u"selectable"_ustr, false); } OUString extractAdjustment(VclBuilder::stringmap &rMap) @@ -1248,14 +1197,7 @@ namespace bool extractDrawIndicator(VclBuilder::stringmap &rMap) { - bool bDrawIndicator = false; - VclBuilder::stringmap::iterator aFind = rMap.find(u"draw-indicator"_ustr); - if (aFind != rMap.end()) - { - bDrawIndicator = toBool(aFind->second); - rMap.erase(aFind); - } - return bDrawIndicator; + return extractBoolEntry(rMap, u"draw-indicator"_ustr, false); } } @@ -2219,14 +2161,7 @@ namespace BuilderUtils bool extractDropdown(VclBuilder::stringmap &rMap) { - bool bDropdown = true; - VclBuilder::stringmap::iterator aFind = rMap.find(u"dropdown"_ustr); - if (aFind != rMap.end()) - { - bDropdown = toBool(aFind->second); - rMap.erase(aFind); - } - return bDropdown; + return extractBoolEntry(rMap, u"dropdown"_ustr, true); } void reorderWithinParent(vcl::Window &rWindow, sal_uInt16 nNewPosition) @@ -3475,26 +3410,12 @@ sal_Int32 BuilderBase::extractActive(VclBuilder::stringmap& rMap) bool BuilderBase::extractEntry(VclBuilder::stringmap &rMap) { - bool bHasEntry = false; - VclBuilder::stringmap::iterator aFind = rMap.find(u"has-entry"_ustr); - if (aFind != rMap.end()) - { - bHasEntry = toBool(aFind->second); - rMap.erase(aFind); - } - return bHasEntry; + return extractBoolEntry(rMap, u"has-entry"_ustr, false); } bool BuilderBase::extractHeadersVisible(VclBuilder::stringmap& rMap) { - bool bHeadersVisible = true; - VclBuilder::stringmap::iterator aFind = rMap.find(u"headers-visible"_ustr); - if (aFind != rMap.end()) - { - bHeadersVisible = toBool(aFind->second); - rMap.erase(aFind); - } - return bHeadersVisible; + return extractBoolEntry(rMap, u"headers-visible"_ustr, true); } OUString BuilderBase::extractIconName(VclBuilder::stringmap &rMap) @@ -3525,26 +3446,12 @@ OUString BuilderBase::extractIconName(VclBuilder::stringmap &rMap) bool BuilderBase::extractResizable(stringmap& rMap) { - bool bResizable = true; - VclBuilder::stringmap::iterator aFind = rMap.find(u"resizable"_ustr); - if (aFind != rMap.end()) - { - bResizable = toBool(aFind->second); - rMap.erase(aFind); - } - return bResizable; + return extractBoolEntry(rMap, u"resizable"_ustr, true); } bool BuilderBase::extractShowExpanders(VclBuilder::stringmap& rMap) { - bool bShowExpanders = true; - VclBuilder::stringmap::iterator aFind = rMap.find(u"show-expanders"_ustr); - if (aFind != rMap.end()) - { - bShowExpanders = toBool(aFind->second); - rMap.erase(aFind); - } - return bShowExpanders; + return extractBoolEntry(rMap, u"show-expanders"_ustr, true); } OUString BuilderBase::extractTooltipText(stringmap& rMap) @@ -3563,14 +3470,7 @@ OUString BuilderBase::extractTooltipText(stringmap& rMap) bool BuilderBase::extractVisible(VclBuilder::stringmap& rMap) { - bool bRet = false; - VclBuilder::stringmap::iterator aFind = rMap.find(u"visible"_ustr); - if (aFind != rMap.end()) - { - bRet = toBool(aFind->second); - rMap.erase(aFind); - } - return bRet; + return extractBoolEntry(rMap, u"visible"_ustr, false); } void BuilderBase::collectProperty(xmlreader::XmlReader& reader, stringmap& rMap) const