Const correctness improvements for Property::Value. 75/244975/2
authorGyörgy Straub <g.straub@partner.samsung.com>
Mon, 28 Sep 2020 12:28:53 +0000 (13:28 +0100)
committerGyörgy Straub <g.straub@partner.samsung.com>
Mon, 28 Sep 2020 12:54:01 +0000 (13:54 +0100)
- instead of using its parameter as in-out (and perhaps erroneously
  modifying the original), TextVisual returns the new map, which is then
  merged with the existing properties in ButtonImpl::SetProperty();

Change-Id: I974535fd017416dc60225a1f511e71d81a2a86de
Signed-off-by: György Straub <g.straub@partner.samsung.com>
24 files changed:
automated-tests/src/dali-toolkit/dali-toolkit-test-utils/dummy-control.cpp
automated-tests/src/dali-toolkit/dali-toolkit-test-utils/test-animation-data.cpp
automated-tests/src/dali-toolkit/dali-toolkit-test-utils/test-button.cpp
automated-tests/src/dali-toolkit/utc-Dali-Tooltip.cpp
dali-toolkit/devel-api/builder/base64-encoding.cpp
dali-toolkit/internal/controls/buttons/button-impl.cpp
dali-toolkit/internal/controls/buttons/toggle-button-impl.cpp
dali-toolkit/internal/controls/control/control-data-impl.cpp
dali-toolkit/internal/controls/image-view/image-view-impl.cpp
dali-toolkit/internal/controls/progress-bar/progress-bar-impl.cpp
dali-toolkit/internal/controls/scroll-bar/scroll-bar-impl.cpp
dali-toolkit/internal/controls/scrollable/item-view/item-view-impl.cpp
dali-toolkit/internal/controls/scrollable/scroll-view/scroll-view-impl.cpp
dali-toolkit/internal/controls/table-view/table-view-impl.cpp
dali-toolkit/internal/controls/tooltip/tooltip.cpp
dali-toolkit/internal/helpers/property-helper.cpp
dali-toolkit/internal/visuals/animated-vector-image/animated-vector-image-visual.cpp
dali-toolkit/internal/visuals/arc/arc-visual.cpp
dali-toolkit/internal/visuals/color/color-visual.cpp
dali-toolkit/internal/visuals/gradient/gradient-visual.cpp
dali-toolkit/internal/visuals/text/text-visual.cpp
dali-toolkit/internal/visuals/text/text-visual.h
dali-toolkit/internal/visuals/transition-data-impl.cpp
dali-toolkit/internal/visuals/visual-base-data-impl.cpp

index a7ccfba..7d0c661 100644 (file)
@@ -174,7 +174,7 @@ void DummyControlImpl::SetProperty( BaseObject* object, Dali::Property::Index in
     case Toolkit::DummyControl::Property::FOCUS_VISUAL:
     case Toolkit::DummyControl::Property::LABEL_VISUAL:
     {
-      Property::Map* map = value.GetMap();
+      const Property::Map* map = value.GetMap();
       if( map != NULL )
       {
         VisualFactory visualFactory = VisualFactory::Get();
index 57c1e41..6702798 100644 (file)
@@ -156,7 +156,7 @@ void NewAnimator( const Property::Map& map, TestAnimationData::AnimationDataElem
     {
       if( value.GetType() == Property::MAP )
       {
-        Property::Map* map = value.GetMap();
+        const Property::Map* map = value.GetMap();
         const Property::Map& mapref = *map;
         NewAnimator( mapref, element ); // Merge the map into element
       }
@@ -180,7 +180,7 @@ void NewAnimation( const Property::Array& array, TestAnimationData& outputAnimat
     const Property::Value& value = array.GetElementAt(i);
     if( value.GetType() == Property::MAP )
     {
-      Property::Map* map = value.GetMap();
+      const Property::Map* map = value.GetMap();
       NewAnimator( *map, *element );
       outputAnimationData.Add( element );
     }
index 3b5f451..ff5e1dc 100644 (file)
@@ -78,13 +78,13 @@ void TestButton::SetProperty( BaseObject* object, Property::Index index, const P
       {
         if( value.GetType() == Property::MAP )
         {
-          Property::Map* valueMap = value.GetMap();
+          const Property::Map* valueMap = value.GetMap();
           buttonImpl.mPressTransitionData.Clear();
           NewAnimation( *valueMap, buttonImpl.mPressTransitionData );
         }
         else if( value.GetType() == Property::ARRAY )
         {
-          Property::Array* valueArray = value.GetArray();
+          const Property::Array* valueArray = value.GetArray();
           buttonImpl.mPressTransitionData.Clear();
           NewAnimation( *valueArray, buttonImpl.mPressTransitionData );
         }
index b1cf510..3d68d5a 100644 (file)
@@ -272,7 +272,7 @@ int UtcDaliTooltipCreateWithArray(void)
 
   tet_infoline( "Ensure first value is a map and contains the right item" );
   const Property::Value mapValue1 = contentArray->GetElementAt( 0 );
-  Property::Map* map1 = mapValue1.GetMap();
+  const Property::Map* map1 = mapValue1.GetMap();
   DALI_TEST_CHECK( map1 );
   Property::Value* urlValue = map1->Find( ImageVisual::Property::URL );
   DALI_TEST_CHECK( urlValue );
@@ -280,7 +280,7 @@ int UtcDaliTooltipCreateWithArray(void)
 
   tet_infoline( "Ensure second value is a map and contains the right item" );
   const Property::Value mapValue2 = contentArray->GetElementAt( 1 );
-  Property::Map* map2 = mapValue2.GetMap();
+  const Property::Map* map2 = mapValue2.GetMap();
   DALI_TEST_CHECK( map2 );
   Property::Value* textValue = map2->Find( TextVisual::Property::TEXT );
   DALI_TEST_CHECK( textValue );
index f95dde8..024c1b5 100644 (file)
@@ -41,7 +41,7 @@ bool GetStringFromProperty(const Property::Value& value, std::string& output)
   }
   else
   {
-    Property::Array* array = value.GetArray();
+    const Property::Array* array = value.GetArray();
     if(array)
     {
       const unsigned int arraySize = array->Size();
index 6d45eed..d840e96 100644 (file)
@@ -379,7 +379,7 @@ void Button::CreateVisualsForComponent( Property::Index index, const Property::V
   else
   {
     // if its not a string then get a Property::Map from the property if possible.
-    Property::Map *map = value.GetMap();
+    const Property::Map *map = value.GetMap();
     if( map && !map->Empty()  ) // Empty map results in current visual removal.
     {
       DALI_LOG_INFO( gLogButtonFilter, Debug::Verbose, "CreateVisualsForComponent Using Map(%d)\n", index );
@@ -1151,11 +1151,11 @@ void Button::SetProperty( BaseObject* object, Property::Index index, const Prope
         else
         {
           // Get a Property::Map from the property if possible.
-          Property::Map* setPropertyMap = value.GetMap();
+          const Property::Map* setPropertyMap = value.GetMap();
           if( setPropertyMap )
           {
-            TextVisual::ConvertStringKeysToIndexKeys( *setPropertyMap );
-            GetImplementation( button ).MergeWithExistingLabelProperties( *setPropertyMap, outTextVisualProperties );
+            Property::Map indexKeys = TextVisual::ConvertStringKeysToIndexKeys( *setPropertyMap );
+            GetImplementation( button ).MergeWithExistingLabelProperties( indexKeys, outTextVisualProperties );
           }
         }
 
index e6c0ab7..b1808f5 100755 (executable)
@@ -136,7 +136,7 @@ void ToggleButton::SetProperty( BaseObject* object, Property::Index propertyInde
       }
       case Toolkit::ToggleButton::Property::TOOLTIPS:
       {
-        Property::Array* tipArray = value.GetArray();
+        const Property::Array* tipArray = value.GetArray();
         if( tipArray )
         {
           std::vector<std::string> tips;
index 46a1972..8a2dfd7 100755 (executable)
@@ -835,7 +835,7 @@ void Control::Impl::SetProperty( BaseObject* object, Property::Index index, cons
       {
         bool withTransitions=true;
         const Property::Value* valuePtr=&value;
-        Property::Map* map = value.GetMap();
+        const Property::Map* map = value.GetMap();
         if(map)
         {
           Property::Value* value2 = map->Find("withTransitions");
index 7f92138..36702a8 100755 (executable)
@@ -432,7 +432,7 @@ void ImageView::SetProperty( BaseObject* object, Property::Index index, const Pr
       case Toolkit::ImageView::Property::IMAGE:
       {
         std::string imageUrl;
-        Property::Map* map;
+        const Property::Map* map;
         if( value.Get( imageUrl ) )
         {
           impl.SetImage( imageUrl, ImageDimensions() );
index 3d18ddb..0a4a7e5 100755 (executable)
@@ -404,7 +404,7 @@ void ProgressBar::CreateVisualsForComponent( Property::Index index, const Proper
   else // Does this code make text-visual can be accepted as visual?
   {
     // if its not a string then get a Property::Map from the property if possible.
-    Property::Map *map = value.GetMap();
+    const Property::Map *map = value.GetMap();
     if( map && !map->Empty()  ) // Empty map results in current visual removal.
     {
       progressVisual = visualFactory.CreateVisual( *map );
index f002764..54dc431 100644 (file)
@@ -689,7 +689,7 @@ void ScrollBar::SetProperty( BaseObject* object, Property::Index index, const Pr
       }
       case Toolkit::ScrollBar::Property::SCROLL_POSITION_INTERVALS:
       {
-        Property::Array* array = value.GetArray();
+        const Property::Array* array = value.GetArray();
         if( array )
         {
           Dali::Vector<float> positions;
index c442fb8..12bd0c3 100644 (file)
@@ -1819,7 +1819,7 @@ void ItemView::SetLayoutArray( const Property::Array& layouts )
   {
     const Property::Value& element = layouts.GetElementAt( arrayIdx );
 
-    Property::Map* layout = element.GetMap();
+    const Property::Map* layout = element.GetMap();
     if( layout != NULL )
     {
       for( unsigned int mapIdx = 0, mapCount = (*layout).Count(); mapIdx < mapCount; ++mapIdx )
index 1273cd1..01c5731 100644 (file)
@@ -2915,7 +2915,7 @@ void ScrollView::SetProperty( BaseObject* object, Property::Index index, const P
       }
       case Toolkit::ScrollView::Property::SCROLL_MODE:
       {
-        Property::Map* map = value.GetMap();
+        const Property::Map* map = value.GetMap();
         if( map )
         {
           scrollViewImpl.SetScrollMode( *map );
index a0c1849..92cdd01 100755 (executable)
@@ -1212,7 +1212,7 @@ void TableView::SetHeightOrWidthProperty(TableView& tableViewImpl,
                                          void(TableView::*funcFit)(unsigned int),
                                          const Property::Value& value )
 {
-  Property::Map* map = value.GetMap();
+  const Property::Map* map = value.GetMap();
   if( map )
   {
     unsigned int index(0);
index 80a558e..e7f8b9f 100644 (file)
@@ -85,7 +85,7 @@ void Tooltip::SetProperties( const Property::Value& value )
   Toolkit::Control control = mControl.GetHandle();
   if( control )
   {
-    Property::Map* properties = value.GetMap();
+    const Property::Map* properties = value.GetMap();
     if( properties )
     {
       const Property::Map::SizeType count = properties->Count();
@@ -229,7 +229,7 @@ void Tooltip::SetContent( Toolkit::Control& control, const Property::Value& valu
   Property::Type type = value.GetType();
   if( type == Property::MAP )
   {
-    Property::Map* map = value.GetMap();
+    const Property::Map* map = value.GetMap();
     if( map )
     {
       mContentTextVisual.Merge( *map );
@@ -302,7 +302,7 @@ void Tooltip::SetBackground( const Property::Value& value )
   }
   else if( type == Property::MAP )
   {
-    Property::Map* map = value.GetMap();
+    const Property::Map* map = value.GetMap();
     if( map )
     {
       const Property::Map::SizeType count = map->Count();
index 94be023..db8597b 100644 (file)
@@ -39,7 +39,7 @@ bool GetStringFromProperty( const Property::Value& value, std::string& output )
   }
   else
   {
-    Property::Array* array = value.GetArray();
+    const Property::Array* array = value.GetArray();
     if( array )
     {
       const unsigned int arraySize = array->Size();
index 453f14e..ea097e1 100644 (file)
@@ -217,7 +217,7 @@ void AnimatedVectorImageVisual::DoSetProperty( Property::Index index, const Prop
     }
     case Toolkit::DevelImageVisual::Property::PLAY_RANGE:
     {
-      Property::Array* array = value.GetArray();
+      const Property::Array* array = value.GetArray();
       if( array )
       {
         mAnimationData.playRange = *array;
@@ -406,7 +406,7 @@ void AnimatedVectorImageVisual::OnDoAction( const Property::Index actionId, cons
     }
     case DevelAnimatedVectorImageVisual::Action::UPDATE_PROPERTY:
     {
-      Property::Map* map = attributes.GetMap();
+      const Property::Map* map = attributes.GetMap();
       if( map )
       {
         DoSetProperties( *map );
index a16d72c..babfc94 100644 (file)
@@ -276,7 +276,7 @@ void ArcVisual::OnDoAction( const Property::Index actionId, const Property::Valu
   {
     case DevelArcVisual::Action::UPDATE_PROPERTY:
     {
-      Property::Map* map = attributes.GetMap();
+      const Property::Map* map = attributes.GetMap();
       if( map )
       {
         DoSetProperties( *map );
index 63d02ec..4fae268 100644 (file)
@@ -289,7 +289,7 @@ void ColorVisual::OnDoAction( const Property::Index actionId, const Property::Va
   {
     case DevelColorVisual::Action::UPDATE_PROPERTY:
     {
-      Property::Map* map = attributes.GetMap();
+      const Property::Map* map = attributes.GetMap();
       if( map )
       {
         DoSetProperties( *map );
index 7a3af39..462a6c0 100644 (file)
@@ -589,7 +589,7 @@ void GradientVisual::GetStopOffsets(const Property::Value* value, Vector<float>&
       }
       case Property::ARRAY:
       {
-        Property::Array* offsetArray = value->GetArray();
+        const Property::Array* offsetArray = value->GetArray();
         if( offsetArray )
         {
           unsigned int numStop = offsetArray->Count();
index e9a32f6..f8d5f53 100755 (executable)
@@ -301,7 +301,7 @@ TextVisualPtr TextVisual::New( VisualFactoryCache& factoryCache, const Property:
   return TextVisualPtr;
 }
 
-void TextVisual::ConvertStringKeysToIndexKeys( Property::Map& propertyMap )
+Property::Map TextVisual::ConvertStringKeysToIndexKeys( const Property::Map& propertyMap )
 {
   Property::Map outMap;
 
@@ -319,7 +319,7 @@ void TextVisual::ConvertStringKeysToIndexKeys( Property::Map& propertyMap )
     outMap.Insert( indexKey, keyValue.second );
   }
 
-  propertyMap = outMap;
+  return outMap;
 }
 
 float TextVisual::GetHeightForWidth( float width )
index e6c0ab8..136a23f 100755 (executable)
@@ -81,9 +81,10 @@ public:
 
   /**
    * @brief Converts all strings keys in property map to index keys.  Property Map can then be merged correctly.
-   * @param[in,out] propertyMap containing string keys or a mix of strings and indexes. Will be changed to index keys.
+   * @param[in] propertyMap containing string keys or a mix of strings and indexes.
+   * @return Property::Map containing index keys.
    */
-  static void ConvertStringKeysToIndexKeys( Property::Map& propertyMap );
+  static Property::Map ConvertStringKeysToIndexKeys( const Property::Map& propertyMap );
 
   /**
    * @brief Retrieve the text's controller.
index a91b8ab..78dab18 100644 (file)
@@ -101,7 +101,7 @@ void TransitionData::Initialize( const Property::Array& array )
     const Property::Value& element = array.GetElementAt( arrayIdx );
     // Expect each child to be an object representing an animator:
 
-    Property::Map* map = element.GetMap();
+    const Property::Map* map = element.GetMap();
     if( map != NULL )
     {
       TransitionData::Animator* animator = ConvertMap( *map );
@@ -173,12 +173,12 @@ TransitionData::Animator* TransitionData::ConvertMap( const Property::Map& map)
           {
             bool valid = true;
             Vector4 controlPoints;
-            Property::Array *array = value.GetArray();
+            const Property::Array* array = value.GetArray();
             if( array && array->Count() >= 4 )
             {
               for( size_t vecIdx = 0; vecIdx < 4; ++vecIdx )
               {
-                Property::Value& v = array->GetElementAt(vecIdx);
+                const Property::Value& v = array->GetElementAt(vecIdx);
                 if( v.GetType() == Property::FLOAT )
                 {
                   controlPoints[vecIdx] = v.Get<float>();
index ba9f925..631f61b 100644 (file)
@@ -95,7 +95,7 @@ bool GetPolicyFromValue( const Property::Value& value, Vector2& policy )
   }
   else
   {
-    Property::Array* array = value.GetArray();
+    const Property::Array* array = value.GetArray();
     if( array && array->Size() == 2 )
     {
       Toolkit::Visual::Transform::Policy::Type xPolicy = static_cast< Toolkit::Visual::Transform::Policy::Type >( -1 ); // Assign an invalid value so definitely changes