X-Git-Url: http://review.tizen.org/git/?p=platform%2Fcore%2Fuifw%2Fdali-toolkit.git;a=blobdiff_plain;f=dali-toolkit%2Finternal%2Fbuilder%2Fbuilder-set-property.cpp;h=c78e19c1a884ea953e409333487c41f754cabe6d;hp=184d25313b9ccd35a4bc8a7453ffec457aa3c5a8;hb=3e39b3bd20678fc2aba9618f782a830014f2062a;hpb=cded468bd11aab522fae3f2a9818170160c74ff9 diff --git a/dali-toolkit/internal/builder/builder-set-property.cpp b/dali-toolkit/internal/builder/builder-set-property.cpp index 184d253..c78e19c 100644 --- a/dali-toolkit/internal/builder/builder-set-property.cpp +++ b/dali-toolkit/internal/builder/builder-set-property.cpp @@ -1,5 +1,5 @@ /* - * Copyright (c) 2014 Samsung Electronics Co., Ltd. + * Copyright (c) 2015 Samsung Electronics Co., Ltd. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. @@ -17,7 +17,9 @@ // EXTERNAL INCLUDES #include -#include +#include +#include +#include // INTERNAL INCLUDES #include @@ -206,18 +208,6 @@ bool SetPropertyFromNode( const TreeNode& node, Property::Type type, Property::V } break; } - case Property::UNSIGNED_INTEGER: - { - if( OptionalUnsignedInt v = replacer.IsUnsignedInteger( node) ) - { - if( *v >= 0 ) // with a loss of resolution.... - { - value = *v; - done = true; - } - } - break; - } case Property::VECTOR2: { if( OptionalVector2 v = replacer.IsVector2(node) ) @@ -352,24 +342,30 @@ bool SetPropertyFromNode( const TreeNode& node, Property::Type type, Property::V else if(node.Size()) { value = Property::Value(Property::ARRAY); + Property::Array* array = value.GetArray(); + unsigned int i = 0; TreeNode::ConstIterator iter(node.CBegin()); - for( ; i < node.Size(); ++i, ++iter) + + if( array ) { - Property::Value v; - if( SetPropertyFromNode( (*iter).second, v, replacer ) ) + for( ; i < node.Size(); ++i, ++iter) { - value.AppendItem(v); + Property::Value childValue; + if( SetPropertyFromNode( (*iter).second, childValue, replacer ) ) + { + array->PushBack( childValue ); + } } - } - if( value.GetSize() == static_cast(node.Size()) ) - { - done = true; - } - else - { - done = false; + if( array->Count() == node.Size() ) + { + done = true; + } + else + { + done = false; + } } } break; @@ -383,29 +379,34 @@ bool SetPropertyFromNode( const TreeNode& node, Property::Type type, Property::V else if(node.Size()) { value = Property::Value(Property::MAP); + Property::Map* map = value.GetMap(); + unsigned int i = 0; TreeNode::ConstIterator iter(node.CBegin()); - for( ; i < node.Size(); ++i, ++iter) + + if( map ) { - Property::Value v; - if( SetPropertyFromNode( (*iter).second, v, replacer ) ) + for( ; i < node.Size(); ++i, ++iter) { - value.SetValue( (*iter).first, v ); + Property::Value childValue; + if( SetPropertyFromNode( (*iter).second, childValue, replacer ) ) + { + map->Insert( (*iter).first, childValue ); + } } - } - if( value.GetSize() == static_cast(node.Size()) ) - { - done = true; - } - else - { - done = false; + if( map->Count() == node.Size() ) + { + done = true; + } + else + { + done = false; + } } } break; } - case Property::TYPE_COUNT: case Property::NONE: { break; @@ -490,14 +491,18 @@ bool SetPropertyFromNode( const TreeNode& node, Property::Value& value, else { value = Property::Value(Property::ARRAY); - Property::Value v; + Property::Array* array = value.GetArray(); - for(TreeConstIter iter = node.CBegin(); iter != node.CEnd(); ++iter) + if( array ) { - if( SetPropertyFromNode( (*iter).second, v, replacer ) ) + for(TreeConstIter iter = node.CBegin(); iter != node.CEnd(); ++iter) { - value.AppendItem(v); - done = true; + Property::Value childValue; + if( SetPropertyFromNode( (*iter).second, childValue, replacer ) ) + { + array->PushBack( childValue ); + done = true; + } } } } @@ -514,26 +519,36 @@ bool SetPropertyFromNode( const TreeNode& node, Property::Value& value, if( ((*iter).first) == 0 ) { value = Property::Value(Property::ARRAY); - Property::Value v; - for(unsigned int i = 0; i < node.Size(); ++i, ++iter) + Property::Array* array = value.GetArray(); + + if( array ) { - if( SetPropertyFromNode( (*iter).second, v, replacer ) ) + for(unsigned int i = 0; i < node.Size(); ++i, ++iter) { - value.AppendItem(v); - done = true; + Property::Value childValue; + if( SetPropertyFromNode( (*iter).second, childValue, replacer ) ) + { + array->PushBack( childValue ); + done = true; + } } } } else { value = Property::Value(Property::MAP); - Property::Value v; - for(unsigned int i = 0; i < node.Size(); ++i, ++iter) + Property::Map* map = value.GetMap(); + + if( map ) { - if( SetPropertyFromNode( (*iter).second, v, replacer ) ) + for(unsigned int i = 0; i < node.Size(); ++i, ++iter) { - value.SetValue((*iter).first, v); - done = true; + Property::Value childValue; + if( SetPropertyFromNode( (*iter).second, childValue, replacer ) ) + { + map->Insert( (*iter).first, childValue ); + done = true; + } } } }