When linking simple values, use the value from the topmost layer.
[synfig.git] / synfig-studio / trunk / src / synfigapp / value_desc.cpp
index 96f04f6..b27e81b 100644 (file)
@@ -48,34 +48,27 @@ using namespace synfigapp;
 /* === M E T H O D S ======================================================= */
 
 String
-ValueDesc::get_description()const
+ValueDesc::get_description(bool show_exported_name)const
 {
        String description(_("ValueDesc"));
 
+       if (show_exported_name && !is_exported())
+               show_exported_name = false;
+
        if (parent_is_layer_param())
        {
-               description = strprintf("'%s' -> %s", // layer -> parameter
-                                                get_layer()->get_non_empty_description().c_str(),
-                                                get_param_name().c_str());
-               if (is_exported())
+               description = strprintf("(%s):%s", // (layer):parameter
+                                                               get_layer()->get_non_empty_description().c_str(),
+                                                               get_layer()->get_param_local_name(get_param_name()).c_str());
+               if (show_exported_name)
                        description += strprintf(" (%s)", get_value_node()->get_id().c_str());
        }
        else if (parent_is_value_node())
        {
                synfig::LinkableValueNode::Handle value_node(synfig::LinkableValueNode::Handle::cast_reinterpret(get_parent_value_node()));
-               synfig::Node* node;
-               for(node=value_node.get();!node->parent_set.empty() && !dynamic_cast<Layer*>(node);node=*node->parent_set.begin());
-               Layer::Handle parent_layer(dynamic_cast<Layer*>(node));
-               if(parent_layer)
-                       description = strprintf("'%s' => %s", // layer -> sub-parameter
-                                                        parent_layer->get_non_empty_description().c_str(),
-                                                        value_node->link_local_name(get_index()).c_str());
-               else
-                       description = value_node->link_local_name(get_index()); // sub-parameter
-               if (is_exported())
-                       description += strprintf(" (%s)", get_value_node()->get_id().c_str());
+               return value_node->get_description(get_index(), show_exported_name);
        }
-       else if (is_exported())
+       else if (show_exported_name)
                description = strprintf(_("ValueNode (%s)"), get_value_node()->get_id().c_str());
 
        return description;