Kaydet (Commit) be999e2e authored tarafından Tomaž Vajngerl's avatar Tomaž Vajngerl Kaydeden (comit) Tomaž Vajngerl

remove code duplication in WidgetDefinitionReader

Change-Id: Iec4694344d324b4d4d7e55efdedf8520dd914d63
Reviewed-on: https://gerrit.libreoffice.org/68656
Tested-by: Jenkins
Reviewed-by: 's avatarTomaž Vajngerl <quikee@gmail.com>
üst b07a71e0
...@@ -106,6 +106,12 @@ class VCL_DLLPUBLIC WidgetDefinitionReader ...@@ -106,6 +106,12 @@ class VCL_DLLPUBLIC WidgetDefinitionReader
private: private:
OUString m_rFilePath; OUString m_rFilePath;
static void
readDefinition(tools::XmlWalker& rWalker,
std::unordered_map<OString, std::shared_ptr<WidgetDefinition>>& rDefinition);
static void readPart(tools::XmlWalker& rWalker, std::shared_ptr<WidgetDefinition> rpPart);
void readPushButton(tools::XmlWalker& rWalker); void readPushButton(tools::XmlWalker& rWalker);
void readRadioButton(tools::XmlWalker& rWalker); void readRadioButton(tools::XmlWalker& rWalker);
static void readDrawingDefinition(tools::XmlWalker& rWalker, static void readDrawingDefinition(tools::XmlWalker& rWalker,
......
...@@ -119,7 +119,9 @@ void WidgetDefinitionReader::readDrawingDefinition(tools::XmlWalker& rWalker, ...@@ -119,7 +119,9 @@ void WidgetDefinitionReader::readDrawingDefinition(tools::XmlWalker& rWalker,
rWalker.parent(); rWalker.parent();
} }
void WidgetDefinitionReader::readPushButton(tools::XmlWalker& rWalker) void WidgetDefinitionReader::readDefinition(
tools::XmlWalker& rWalker,
std::unordered_map<OString, std::shared_ptr<WidgetDefinition>>& rDefinition)
{ {
rWalker.children(); rWalker.children();
while (rWalker.isValid()) while (rWalker.isValid())
...@@ -128,75 +130,50 @@ void WidgetDefinitionReader::readPushButton(tools::XmlWalker& rWalker) ...@@ -128,75 +130,50 @@ void WidgetDefinitionReader::readPushButton(tools::XmlWalker& rWalker)
{ {
OString sPart = rWalker.attribute("value"); OString sPart = rWalker.attribute("value");
std::shared_ptr<WidgetDefinition> pPart = std::make_shared<WidgetDefinition>(); std::shared_ptr<WidgetDefinition> pPart = std::make_shared<WidgetDefinition>();
maPushButtonDefinitions.emplace(sPart, pPart); rDefinition.emplace(sPart, pPart);
rWalker.children(); readPart(rWalker, pPart);
while (rWalker.isValid())
{
if (rWalker.name() == "state")
{
OString sEnabled = rWalker.attribute("enabled");
OString sFocused = rWalker.attribute("focused");
OString sPressed = rWalker.attribute("pressed");
OString sRollover = rWalker.attribute("rollover");
OString sDefault = rWalker.attribute("default");
OString sSelected = rWalker.attribute("selected");
OString sButtonValue = rWalker.attribute("button-value");
std::shared_ptr<WidgetDefinitionState> pState
= std::make_shared<WidgetDefinitionState>(sEnabled, sFocused, sPressed,
sRollover, sDefault, sSelected,
sButtonValue);
pPart->maStates.push_back(pState);
readDrawingDefinition(rWalker, pState);
}
rWalker.next();
}
rWalker.parent();
} }
rWalker.next(); rWalker.next();
} }
rWalker.parent(); rWalker.parent();
} }
void WidgetDefinitionReader::readRadioButton(tools::XmlWalker& rWalker) void WidgetDefinitionReader::readPart(tools::XmlWalker& rWalker,
std::shared_ptr<WidgetDefinition> rpPart)
{ {
rWalker.children(); rWalker.children();
while (rWalker.isValid()) while (rWalker.isValid())
{ {
if (rWalker.name() == "part") if (rWalker.name() == "state")
{ {
OString sPart = rWalker.attribute("value"); OString sEnabled = rWalker.attribute("enabled");
std::shared_ptr<WidgetDefinition> pPart = std::make_shared<WidgetDefinition>(); OString sFocused = rWalker.attribute("focused");
maRadioButtonDefinitions.emplace(sPart, pPart); OString sPressed = rWalker.attribute("pressed");
rWalker.children(); OString sRollover = rWalker.attribute("rollover");
while (rWalker.isValid()) OString sDefault = rWalker.attribute("default");
{ OString sSelected = rWalker.attribute("selected");
if (rWalker.name() == "state") OString sButtonValue = rWalker.attribute("button-value");
{
OString sEnabled = rWalker.attribute("enabled"); std::shared_ptr<WidgetDefinitionState> pState = std::make_shared<WidgetDefinitionState>(
OString sFocused = rWalker.attribute("focused"); sEnabled, sFocused, sPressed, sRollover, sDefault, sSelected, sButtonValue);
OString sPressed = rWalker.attribute("pressed"); rpPart->maStates.push_back(pState);
OString sRollover = rWalker.attribute("rollover"); readDrawingDefinition(rWalker, pState);
OString sDefault = rWalker.attribute("default");
OString sSelected = rWalker.attribute("selected");
OString sButtonValue = rWalker.attribute("button-value");
sButtonValue = sButtonValue.isEmpty() ? "any" : sButtonValue;
std::shared_ptr<WidgetDefinitionState> pState
= std::make_shared<WidgetDefinitionState>(sEnabled, sFocused, sPressed,
sRollover, sDefault, sSelected,
sButtonValue);
pPart->maStates.push_back(pState);
readDrawingDefinition(rWalker, pState);
}
rWalker.next();
}
rWalker.parent();
} }
rWalker.next(); rWalker.next();
} }
rWalker.parent(); rWalker.parent();
} }
void WidgetDefinitionReader::readPushButton(tools::XmlWalker& rWalker)
{
readDefinition(rWalker, maPushButtonDefinitions);
}
void WidgetDefinitionReader::readRadioButton(tools::XmlWalker& rWalker)
{
readDefinition(rWalker, maRadioButtonDefinitions);
}
bool WidgetDefinitionReader::read() bool WidgetDefinitionReader::read()
{ {
if (!lcl_fileExists(m_rFilePath)) if (!lcl_fileExists(m_rFilePath))
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment