Initial support for duck drags of more than 180 degrees.
[synfig.git] / synfig-studio / trunk / src / gtkmm / layertree.cpp
index 0fcaa11..09a7f26 100644 (file)
@@ -344,7 +344,7 @@ LayerTree::create_param_tree()
                cellrenderer_value->signal_edited().connect(sigc::mem_fun(*this, &studio::LayerTree::on_edited_value));
                cellrenderer_value->property_value()=synfig::ValueBase();
                column->add_attribute(cellrenderer_value->property_param_desc(), param_model.param_desc);
-               column->add_attribute(cellrenderer_value->property_inconsistant(),param_model.is_inconsistent);
+               column->add_attribute(cellrenderer_value->property_inconsistent(),param_model.is_inconsistent);
                //cellrenderer_value->property_canvas()=canvas_interface->get_canvas(); // Is this line necessary?
                cellrenderer_value->property_attributes()=attr_list;
 
@@ -356,6 +356,18 @@ LayerTree::create_param_tree()
                column->set_reorderable();
                column->set_resizable();
        }
+       {       // --- T Y P E --------------------------------------------------------
+               Gtk::TreeView::Column* column = Gtk::manage( new Gtk::TreeView::Column(_("Type")) );
+               Gtk::CellRendererText* text_cellrenderer = Gtk::manage( new Gtk::CellRendererText() );
+               column->pack_start(*text_cellrenderer,false);
+               column->add_attribute(text_cellrenderer->property_text(), param_model.type);
+               text_cellrenderer->property_attributes()=attr_list;
+               get_param_tree_view().append_column(*column);
+               column->set_reorderable();
+               column->set_resizable();
+               column->set_clickable();
+               column->set_sort_column_id(param_model.type);
+       }
        /*{     // --- T I M E   T R A C K --------------------------------------------
                Gtk::TreeView::Column* column = Gtk::manage( new Gtk::TreeView::Column(_("Time Track")) );
                column_time_track=column;
@@ -648,7 +660,7 @@ LayerTree::on_selection_changed()
        button_duplicate->set_sensitive(true);
        button_delete->set_sensitive(true);
 
-       if(layer_list.size()==1 && (*layer_list.begin())->get_param("amount").is_valid()&& (*layer_list.begin())->get_param("amount").same_as(Real()))
+       if(layer_list.size()==1 && (*layer_list.begin())->get_param("amount").is_valid()&& (*layer_list.begin())->get_param("amount").same_type_as(Real()))
        {
                quick_layer=*layer_list.begin();
        }
@@ -871,11 +883,13 @@ LayerTree::on_param_tree_event(GdkEvent *event)
                                        {
                                                synfigapp::ValueDesc value_desc(row[param_model.value_desc]);
                                                Gtk::Menu* menu(manage(new Gtk::Menu()));
+                                               menu->signal_hide().connect(sigc::bind(sigc::ptr_fun(&delete_widget), menu));
                                                App::get_instance(param_tree_store_->canvas_interface()->get_canvas())->make_param_menu(menu,param_tree_store_->canvas_interface()->get_canvas(),value_desc,0.5f);
                                                menu->popup(event->button.button,gtk_get_current_event_time());
                                                return true;
                                        }
                                        Gtk::Menu* menu(manage(new Gtk::Menu()));
+                                       menu->signal_hide().connect(sigc::bind(sigc::ptr_fun(&delete_widget), menu));
                                        std::list<synfigapp::ValueDesc> value_desc_list;
                                        ParamDesc param_desc(row[param_model.param_desc]);
                                        for(;!layer_list.empty();layer_list.pop_back())