Remove .gitignore do nothing is ignored.
[synfig.git] / synfig-studio / trunk / src / gtkmm / childrentreestore.cpp
index e50f45d..cf8798f 100644 (file)
@@ -2,10 +2,11 @@
 /*!    \file childrentreestore.cpp
 **     \brief Template File
 **
-**     $Id: childrentreestore.cpp,v 1.1.1.1 2005/01/07 03:34:36 darco Exp $
+**     $Id$
 **
 **     \legal
 **     Copyright (c) 2002-2005 Robert B. Quattlebaum Jr., Adrian Bentley
+**     Copyright (c) 2007 Chris Moore
 **
 **     This package is free software; you can redistribute it and/or
 **     modify it under the terms of the GNU General Public License as
 #endif
 
 #include "childrentreestore.h"
-#include "iconcontroler.h"
+#include "iconcontroller.h"
 #include <gtkmm/button.h>
 #include <synfig/paramdesc.h>
 #include <ETL/clock>
 
+#include "general.h"
+
 class Profiler : private etl::clock
 {
        const std::string name;
@@ -83,12 +86,13 @@ ChildrenTreeStore::ChildrenTreeStore(etl::loose_handle<synfigapp::CanvasInterfac
 
        // Connect all the signals
        canvas_interface()->signal_value_node_changed().connect(sigc::mem_fun(*this,&studio::ChildrenTreeStore::on_value_node_changed));
+       canvas_interface()->signal_value_node_renamed().connect(sigc::mem_fun(*this,&studio::ChildrenTreeStore::on_value_node_renamed));
        canvas_interface()->signal_value_node_added().connect(sigc::mem_fun(*this,&studio::ChildrenTreeStore::on_value_node_added));
        canvas_interface()->signal_value_node_deleted().connect(sigc::mem_fun(*this,&studio::ChildrenTreeStore::on_value_node_deleted));
        canvas_interface()->signal_value_node_replaced().connect(sigc::mem_fun(*this,&studio::ChildrenTreeStore::on_value_node_replaced));
        canvas_interface()->signal_canvas_added().connect(sigc::mem_fun(*this,&studio::ChildrenTreeStore::on_canvas_added));
        canvas_interface()->signal_canvas_removed().connect(sigc::mem_fun(*this,&studio::ChildrenTreeStore::on_canvas_removed));
-       
+
        rebuild();
 }
 
@@ -105,7 +109,7 @@ ChildrenTreeStore::create(etl::loose_handle<synfigapp::CanvasInterface> canvas_i
 void
 ChildrenTreeStore::rebuild()
 {
-       Profiler profiler("ChildrenTreeStore::rebuild()");
+       // Profiler profiler("ChildrenTreeStore::rebuild()");
        rebuild_value_nodes();
        rebuild_canvases();
 }
@@ -113,7 +117,7 @@ ChildrenTreeStore::rebuild()
 void
 ChildrenTreeStore::refresh()
 {
-       Profiler profiler("ChildrenTreeStore::refresh()");
+       // Profiler profiler("ChildrenTreeStore::refresh()");
        refresh_value_nodes();
        refresh_canvases();
 }
@@ -124,13 +128,13 @@ ChildrenTreeStore::rebuild_value_nodes()
        Gtk::TreeModel::Children children(value_node_row.children());
 
        while(!children.empty())erase(children.begin());
-       
+
        clear_changed_queue();
-       
+
        std::for_each(
                canvas_interface()->get_canvas()->value_node_list().rbegin(), canvas_interface()->get_canvas()->value_node_list().rend(),
                sigc::mem_fun(*this, &studio::ChildrenTreeStore::on_value_node_added)
-       );      
+       );
 }
 
 void
@@ -144,7 +148,6 @@ ChildrenTreeStore::refresh_value_nodes()
                for(iter = children.begin(); iter != children.end(); ++iter)
                {
                        Gtk::TreeRow row=*iter;
-                       //DEBUGPOINT();
                        refresh_row(row);
                }
 }
@@ -153,13 +156,13 @@ void
 ChildrenTreeStore::rebuild_canvases()
 {
        Gtk::TreeModel::Children children(canvas_row.children());
-       
+
        while(!children.empty())erase(children.begin());
-               
+
        std::for_each(
                canvas_interface()->get_canvas()->children().rbegin(), canvas_interface()->get_canvas()->children().rend(),
                sigc::mem_fun(*this, &studio::ChildrenTreeStore::on_canvas_added)
-       );      
+       );
 }
 
 void
@@ -169,10 +172,10 @@ ChildrenTreeStore::refresh_canvases()
 }
 
 void
-ChildrenTreeStore::refresh_row(Gtk::TreeModel::Row &row, bool do_children)
+ChildrenTreeStore::refresh_row(Gtk::TreeModel::Row &row, bool /*do_children*/)
 {
        CanvasTreeStore::refresh_row(row,false);
-       
+
        if((bool)row[model.is_value_node])
        {
                changed_set_.erase(row[model.value_node]);
@@ -181,22 +184,22 @@ ChildrenTreeStore::refresh_row(Gtk::TreeModel::Row &row, bool do_children)
 }
 
 void
-ChildrenTreeStore::on_canvas_added(Canvas::Handle canvas)
+ChildrenTreeStore::on_canvas_added(synfig::Canvas::Handle canvas)
 {
        Gtk::TreeRow row = *(prepend(canvas_row.children()));
 
-       row[model.icon] = Gtk::Button().render_icon(Gtk::StockID("synfig-canvas"),Gtk::ICON_SIZE_SMALL_TOOLBAR);        
+       row[model.icon] = Gtk::Button().render_icon(Gtk::StockID("synfig-canvas"),Gtk::ICON_SIZE_SMALL_TOOLBAR);
        row[model.id] = canvas->get_id();
        row[model.name] = canvas->get_name();
-       
+
        if(!canvas->get_id().empty())
                row[model.label] = canvas->get_id();
        else
        if(!canvas->get_name().empty())
-               row[model.label] = canvas->get_name();          
+               row[model.label] = canvas->get_name();
        else
-               row[model.label] = _("[Unnamed]");              
-       
+               row[model.label] = _("[Unnamed]");
+
        row[model.canvas] = canvas;
        row[model.type] = _("Canvas");
        //row[model.is_canvas] = true;
@@ -204,27 +207,27 @@ ChildrenTreeStore::on_canvas_added(Canvas::Handle canvas)
 }
 
 void
-ChildrenTreeStore::on_canvas_removed(Canvas::Handle canvas)
+ChildrenTreeStore::on_canvas_removed(synfig::Canvas::Handle /*canvas*/)
 {
        rebuild_canvases();
 }
 
 void
-ChildrenTreeStore::on_value_node_added(ValueNode::Handle value_node)
+ChildrenTreeStore::on_value_node_added(synfig::ValueNode::Handle value_node)
 {
 //     if(value_node->get_id().find("Unnamed")!=String::npos)
 //             return;
 
        Gtk::TreeRow row = *prepend(value_node_row.children());
-       
+
        set_row(row,synfigapp::ValueDesc(canvas_interface()->get_canvas(),value_node->get_id()),false);
 }
 
 void
-ChildrenTreeStore::on_value_node_deleted(etl::handle<ValueNode> value_node)
+ChildrenTreeStore::on_value_node_deleted(synfig::ValueNode::Handle value_node)
 {
        Gtk::TreeIter iter;
-       //int i(0);             
+       //int i(0);
 
        if(find_first_value_node(value_node,iter))
        {
@@ -236,25 +239,24 @@ ChildrenTreeStore::on_value_node_deleted(etl::handle<ValueNode> value_node)
 bool
 ChildrenTreeStore::execute_changed_value_nodes()
 {
-       Profiler profiler("ChildrenTreeStore::execute_changed_value_nodes()");
-       DEBUGPOINT();
+       // Profiler profiler("ChildrenTreeStore::execute_changed_value_nodes()");
        if(!replaced_set_.empty())
                rebuild_value_nodes();
 
        etl::clock timer;
        timer.reset();
-       
+
        while(!changed_set_.empty())
        {
                ValueNode::Handle value_node(*changed_set_.begin());
                changed_set_.erase(value_node);
 
                Gtk::TreeIter iter;
-               
+
                try
                {
                        Gtk::TreeIter iter;
-                       int i(0);               
+                       int i(0);
 
                        if(!value_node->is_exported() && find_first_value_node(value_node,iter))
                        {
@@ -268,13 +270,13 @@ ChildrenTreeStore::execute_changed_value_nodes()
                                i++;
                                refresh_row(row);
                        }while(find_next_value_node(value_node,iter));
-                       
+
                        if(!i)
                        {
                                refresh_value_nodes();
                                return false;
                        }
-                       
+
                }
                catch(...)
                {
@@ -289,27 +291,27 @@ ChildrenTreeStore::execute_changed_value_nodes()
                        return false;
                }
        }
-               
+
        return false;
 }
 
 void
-ChildrenTreeStore::on_value_node_changed(etl::handle<ValueNode> value_node)
+ChildrenTreeStore::on_value_node_changed(synfig::ValueNode::Handle value_node)
 {
 
-       if(value_node->get_name()=="constant" || !value_node->is_exported())
+       if(!value_node->is_exported())
                return;
        changed_connection.disconnect();
 //     if(!execute_changed_queued())
 //             changed_connection=Glib::signal_idle().connect(sigc::mem_fun(*this,&ChildrenTreeStore::execute_changed_value_nodes));
        changed_connection=Glib::signal_timeout().connect(sigc::mem_fun(*this,&ChildrenTreeStore::execute_changed_value_nodes),150);
-       
+
        changed_set_.insert(value_node);
        /*
        try
        {
                Gtk::TreeIter iter;
-               int i(0);               
+               int i(0);
                while(find_next_value_node(value_node,iter))
                {
                        Gtk::TreeRow row(*iter);
@@ -329,13 +331,19 @@ ChildrenTreeStore::on_value_node_changed(etl::handle<ValueNode> value_node)
 }
 
 void
-ChildrenTreeStore::on_value_node_replaced(synfig::ValueNode::Handle replaced_value_node,synfig::ValueNode::Handle new_value_node)
+ChildrenTreeStore::on_value_node_renamed(synfig::ValueNode::Handle value_node __attribute__ ((unused)))
+{
+       rebuild_value_nodes();
+}
+
+void
+ChildrenTreeStore::on_value_node_replaced(synfig::ValueNode::Handle replaced_value_node,synfig::ValueNode::Handle /*new_value_node*/)
 {
        changed_connection.disconnect();
        //if(!execute_changed_queued())
 //             changed_connection=Glib::signal_idle().connect(sigc::mem_fun(*this,&ChildrenTreeStore::execute_changed_value_nodes));
                changed_connection=Glib::signal_timeout().connect(sigc::mem_fun(*this,&ChildrenTreeStore::execute_changed_value_nodes),150);
-       
+
        replaced_set_.insert(replaced_value_node);
 }
 
@@ -376,6 +384,6 @@ ChildrenTreeStore::set_value_impl(const Gtk::TreeModel::iterator& iter, int colu
        }
        catch(std::exception x)
        {
-               g_warning(x.what());
-       }       
+               g_warning("%s", x.what());
+       }
 }