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

separate WidgetDefinitionReader from the actual WidgetDefinition

This separates the functionallity to read the definition from the
definition itself. This is needed to have both responisibilities
separated so it's easier to work with and test.

Change-Id: Id0dd9c17852a8b7479e9d01d4c1726e915d3dc6e
Reviewed-on: https://gerrit.libreoffice.org/68681
Tested-by: Jenkins
Reviewed-by: 's avatarTomaž Vajngerl <quikee@gmail.com>
üst 8a1c1882
...@@ -22,7 +22,7 @@ class FileDefinitionWidgetDraw : public vcl::WidgetDrawInterface ...@@ -22,7 +22,7 @@ class FileDefinitionWidgetDraw : public vcl::WidgetDrawInterface
{ {
private: private:
SalGraphics& m_rGraphics; SalGraphics& m_rGraphics;
WidgetDefinitionReader m_WidgetDefinitionReader; WidgetDefinition m_aWidgetDefinition;
public: public:
FileDefinitionWidgetDraw(SalGraphics& rGraphics); FileDefinitionWidgetDraw(SalGraphics& rGraphics);
......
...@@ -109,7 +109,7 @@ public: ...@@ -109,7 +109,7 @@ public:
float fY2); float fY2);
}; };
class VCL_DLLPUBLIC WidgetDefinition class VCL_DLLPUBLIC WidgetDefinitionPart
{ {
public: public:
std::vector<std::shared_ptr<WidgetDefinitionState>> getStates(ControlState eState, std::vector<std::shared_ptr<WidgetDefinitionState>> getStates(ControlState eState,
...@@ -118,24 +118,8 @@ public: ...@@ -118,24 +118,8 @@ public:
std::vector<std::shared_ptr<WidgetDefinitionState>> maStates; std::vector<std::shared_ptr<WidgetDefinitionState>> maStates;
}; };
class VCL_DLLPUBLIC WidgetDefinitionReader class VCL_DLLPUBLIC WidgetDefinition
{ {
private:
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 readRadioButton(tools::XmlWalker& rWalker);
void readEditbox(tools::XmlWalker& rWalker);
static void readDrawingDefinition(tools::XmlWalker& rWalker,
std::shared_ptr<WidgetDefinitionState>& rStates);
public: public:
Color maFaceColor; Color maFaceColor;
Color maCheckedColor; Color maCheckedColor;
...@@ -188,16 +172,32 @@ public: ...@@ -188,16 +172,32 @@ public:
Color maToolTextColor; Color maToolTextColor;
Color maFontColor; Color maFontColor;
std::unordered_map<OString, std::shared_ptr<WidgetDefinition>> maPushButtonDefinitions; std::unordered_map<OString, std::shared_ptr<WidgetDefinitionPart>> maPushButtonDefinitions;
std::unordered_map<OString, std::shared_ptr<WidgetDefinition>> maRadioButtonDefinitions; std::unordered_map<OString, std::shared_ptr<WidgetDefinitionPart>> maRadioButtonDefinitions;
std::unordered_map<OString, std::shared_ptr<WidgetDefinition>> maEditboxDefinitions; std::unordered_map<OString, std::shared_ptr<WidgetDefinitionPart>> maEditboxDefinitions;
std::shared_ptr<WidgetDefinition> getPushButtonDefinition(ControlPart ePart); std::shared_ptr<WidgetDefinitionPart> getPushButtonDefinition(ControlPart ePart);
std::shared_ptr<WidgetDefinition> getRadioButtonDefinition(ControlPart ePart); std::shared_ptr<WidgetDefinitionPart> getRadioButtonDefinition(ControlPart ePart);
std::shared_ptr<WidgetDefinition> getEditboxDefinition(ControlPart ePart); std::shared_ptr<WidgetDefinitionPart> getEditboxDefinition(ControlPart ePart);
};
class VCL_DLLPUBLIC WidgetDefinitionReader
{
private:
OUString m_rFilePath;
static void
readDefinition(tools::XmlWalker& rWalker,
std::unordered_map<OString, std::shared_ptr<WidgetDefinitionPart>>& rDefinition);
static void readPart(tools::XmlWalker& rWalker, std::shared_ptr<WidgetDefinitionPart> rpPart);
static void readDrawingDefinition(tools::XmlWalker& rWalker,
std::shared_ptr<WidgetDefinitionState>& rStates);
public:
WidgetDefinitionReader(OUString const& rFilePath); WidgetDefinitionReader(OUString const& rFilePath);
bool read(); bool read(WidgetDefinition& rWidgetDefinition);
}; };
} // end vcl namespace } // end vcl namespace
......
...@@ -37,25 +37,26 @@ public: ...@@ -37,25 +37,26 @@ public:
void WidgetDefinitionReaderTest::testRead() void WidgetDefinitionReaderTest::testRead()
{ {
vcl::WidgetDefinitionReader aReader(getFullUrl("definition1.xml")); vcl::WidgetDefinition aDefinition;
CPPUNIT_ASSERT_EQUAL(OUString("000000"), aReader.maFaceColor.AsRGBHexString()); CPPUNIT_ASSERT_EQUAL(OUString("000000"), aDefinition.maFaceColor.AsRGBHexString());
CPPUNIT_ASSERT_EQUAL(OUString("000000"), aReader.maCheckedColor.AsRGBHexString()); CPPUNIT_ASSERT_EQUAL(OUString("000000"), aDefinition.maCheckedColor.AsRGBHexString());
CPPUNIT_ASSERT_EQUAL(OUString("000000"), aReader.maLightColor.AsRGBHexString()); CPPUNIT_ASSERT_EQUAL(OUString("000000"), aDefinition.maLightColor.AsRGBHexString());
aReader.read(); vcl::WidgetDefinitionReader aReader(getFullUrl("definition1.xml"));
aReader.read(aDefinition);
CPPUNIT_ASSERT_EQUAL(OUString("123456"), aReader.maFaceColor.AsRGBHexString()); CPPUNIT_ASSERT_EQUAL(OUString("123456"), aDefinition.maFaceColor.AsRGBHexString());
CPPUNIT_ASSERT_EQUAL(OUString("234567"), aReader.maCheckedColor.AsRGBHexString()); CPPUNIT_ASSERT_EQUAL(OUString("234567"), aDefinition.maCheckedColor.AsRGBHexString());
CPPUNIT_ASSERT_EQUAL(OUString("345678"), aReader.maLightColor.AsRGBHexString()); CPPUNIT_ASSERT_EQUAL(OUString("345678"), aDefinition.maLightColor.AsRGBHexString());
CPPUNIT_ASSERT_EQUAL(OUString("ffffff"), aReader.maVisitedLinkColor.AsRGBHexString()); CPPUNIT_ASSERT_EQUAL(OUString("ffffff"), aDefinition.maVisitedLinkColor.AsRGBHexString());
CPPUNIT_ASSERT_EQUAL(OUString("ffffff"), aReader.maToolTextColor.AsRGBHexString()); CPPUNIT_ASSERT_EQUAL(OUString("ffffff"), aDefinition.maToolTextColor.AsRGBHexString());
CPPUNIT_ASSERT_EQUAL(OUString("ffffff"), aReader.maFontColor.AsRGBHexString()); CPPUNIT_ASSERT_EQUAL(OUString("ffffff"), aDefinition.maFontColor.AsRGBHexString());
{ {
std::vector<std::shared_ptr<vcl::WidgetDefinitionState>> aStates std::vector<std::shared_ptr<vcl::WidgetDefinitionState>> aStates
= aReader.getPushButtonDefinition(ControlPart::Entire) = aDefinition.getPushButtonDefinition(ControlPart::Entire)
->getStates(ControlState::DEFAULT | ControlState::ENABLED ->getStates(ControlState::DEFAULT | ControlState::ENABLED
| ControlState::ROLLOVER, | ControlState::ROLLOVER,
ImplControlValue()); ImplControlValue());
...@@ -70,7 +71,7 @@ void WidgetDefinitionReaderTest::testRead() ...@@ -70,7 +71,7 @@ void WidgetDefinitionReaderTest::testRead()
{ {
std::vector<std::shared_ptr<vcl::WidgetDefinitionState>> aStates std::vector<std::shared_ptr<vcl::WidgetDefinitionState>> aStates
= aReader.getRadioButtonDefinition(ControlPart::Entire) = aDefinition.getRadioButtonDefinition(ControlPart::Entire)
->getStates(ControlState::NONE, ImplControlValue(ButtonValue::On)); ->getStates(ControlState::NONE, ImplControlValue(ButtonValue::On));
CPPUNIT_ASSERT_EQUAL(size_t(1), aStates.size()); CPPUNIT_ASSERT_EQUAL(size_t(1), aStates.size());
CPPUNIT_ASSERT_EQUAL(size_t(2), aStates[0]->mpDrawCommands.size()); CPPUNIT_ASSERT_EQUAL(size_t(2), aStates[0]->mpDrawCommands.size());
...@@ -78,7 +79,7 @@ void WidgetDefinitionReaderTest::testRead() ...@@ -78,7 +79,7 @@ void WidgetDefinitionReaderTest::testRead()
{ {
std::vector<std::shared_ptr<vcl::WidgetDefinitionState>> aStates std::vector<std::shared_ptr<vcl::WidgetDefinitionState>> aStates
= aReader.getRadioButtonDefinition(ControlPart::Entire) = aDefinition.getRadioButtonDefinition(ControlPart::Entire)
->getStates(ControlState::NONE, ImplControlValue(ButtonValue::Off)); ->getStates(ControlState::NONE, ImplControlValue(ButtonValue::Off));
CPPUNIT_ASSERT_EQUAL(size_t(1), aStates.size()); CPPUNIT_ASSERT_EQUAL(size_t(1), aStates.size());
CPPUNIT_ASSERT_EQUAL(size_t(1), aStates[0]->mpDrawCommands.size()); CPPUNIT_ASSERT_EQUAL(size_t(1), aStates[0]->mpDrawCommands.size());
......
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