Rename get_param_vocab to get_children_vocab and use a wrapper for the pure virtual...
[synfig.git] / synfig-studio / src / gui / trees / canvastreestore.cpp
index 0f89783..7c9a4b6 100644 (file)
@@ -208,16 +208,18 @@ CanvasTreeStore::get_value_vfunc(const Gtk::TreeModel::iterator& iter, int colum
                {
                        stype=ValueBase::type_local_name(value_desc.get_value_type());
                        if(value_desc.get_value_node())
-                               {
-                                       lname=value_desc.get_value_node()->get_name();
-                                       if (lname=="animated" || lname=="static")
-                                               stype+=" (" + value_desc.get_value_node()->get_local_name() + ")";
-                               }
+                       {
+                               lname=value_desc.get_value_node()->get_name();
+                               if (lname=="animated" || lname=="static" ||
+                               synfig::LinkableValueNode::Handle::cast_dynamic(value_desc.get_value_node())
+                               )
+                                       stype+=" (" + value_desc.get_value_node()->get_local_name() + ")";
+                       }
                        else if(value_desc.parent_is_layer_param())
-                               {
-                                       if(value_desc.get_value().get_static())
-                                               stype+=_(" (Static)");
-                               }
+                       {
+                               if(value_desc.get_value().get_static())
+                                       stype+=_(" (Static)");
+                       }
                }
                x.set(stype.c_str());
                g_value_init(value.gobj(),x.value_type());
@@ -425,12 +427,16 @@ CanvasTreeStore::set_row(Gtk::TreeRow row,synfigapp::ValueDesc value_desc, bool
                        if(linkable && do_children)
                        {
                                row[model.link_count] = linkable->link_count();
-                               for(int i=0;i<linkable->link_count();i++)
+                               LinkableValueNode::Vocab vocab(linkable->get_children_vocab());
+                               LinkableValueNode::Vocab::iterator iter(vocab.begin());
+                               for(int i=0;i<linkable->link_count();i++, iter++)
                                {
                                        Gtk::TreeRow child_row=*(append(row.children()));
                                        child_row[model.link_id] = i;
                                        child_row[model.canvas] = static_cast<Canvas::Handle>(row[model.canvas]);
                                        child_row[model.name] = linkable->link_local_name(i);
+                                       child_row[model.tooltip] = iter->get_description();
+                                       child_row[model.child_param_desc] = *iter;
                                        set_row(child_row,synfigapp::ValueDesc(linkable,i));
                                }
                        }