diff options
author | Tomaž Vajngerl <tomaz.vajngerl@collabora.co.uk> | 2019-11-18 22:50:46 +0100 |
---|---|---|
committer | Tomaž Vajngerl <quikee@gmail.com> | 2019-11-19 08:57:05 +0100 |
commit | f8ca5fb82db18a22f077a01fb1daf8056ab15ef4 (patch) | |
tree | cd488bb98fbab76ceb286e9d26b0f15347bdae5b /vcl/source/gdi/WidgetDefinitionReader.cxx | |
parent | d5036b0e2bc50c991858e85760a8580cdf08629e (diff) |
widget theme: add centeredTabs setting to theme definition file
Change-Id: I714a44d40a99e0bb5ff48e3d36ded73db60af5a0
Reviewed-on: https://gerrit.libreoffice.org/83133
Tested-by: Jenkins
Reviewed-by: Tomaž Vajngerl <quikee@gmail.com>
(cherry picked from commit b234743dd26e0be4be272d2d2c82f90c67e192b7)
Reviewed-on: https://gerrit.libreoffice.org/83155
Tested-by: Jenkins CollaboraOffice <jenkinscollaboraoffice@gmail.com>
Diffstat (limited to 'vcl/source/gdi/WidgetDefinitionReader.cxx')
-rw-r--r-- | vcl/source/gdi/WidgetDefinitionReader.cxx | 30 |
1 files changed, 30 insertions, 0 deletions
diff --git a/vcl/source/gdi/WidgetDefinitionReader.cxx b/vcl/source/gdi/WidgetDefinitionReader.cxx index 50c6d7b3de98..c9c38aefc1b5 100644 --- a/vcl/source/gdi/WidgetDefinitionReader.cxx +++ b/vcl/source/gdi/WidgetDefinitionReader.cxx @@ -55,6 +55,13 @@ bool readColor(OString const& rString, Color& rColor) return true; } +bool readSetting(OString const& rInputString, OString& rOutputString) +{ + if (!rInputString.isEmpty()) + rOutputString = rInputString; + return true; +} + OString getValueOrAny(OString const& rInputString) { if (rInputString.isEmpty()) @@ -412,8 +419,17 @@ bool WidgetDefinitionReader::read(WidgetDefinition& rWidgetDefinition) { "toolTextColor", &pStyle->maToolTextColor }, { "fontColor", &pStyle->maFontColor }, }; + rWidgetDefinition.mpStyle = pStyle; + auto pSettings = std::make_shared<WidgetDefinitionSettings>(); + + std::unordered_map<OString, OString*> aSettingMap = { + { "centeredTabs", &pSettings->msCenteredTabs }, + }; + + rWidgetDefinition.mpSettings = pSettings; + SvFileStream aFileStream(m_rDefinitionFile, StreamMode::READ); tools::XmlWalker aWalker; @@ -441,6 +457,20 @@ bool WidgetDefinitionReader::read(WidgetDefinition& rWidgetDefinition) } aWalker.parent(); } + if (aWalker.name() == "settings") + { + aWalker.children(); + while (aWalker.isValid()) + { + auto pair = aSettingMap.find(aWalker.name()); + if (pair != aSettingMap.end()) + { + readSetting(aWalker.attribute("value"), *pair->second); + } + aWalker.next(); + } + aWalker.parent(); + } else if (getControlTypeForXmlString(aWalker.name(), eType)) { readDefinition(aWalker, rWidgetDefinition, eType); |