Fix bugs in previous commit that caused FTBFS in synfig and ETL FTBFS with older...
[synfig.git] / synfig-studio / tags / stable / src / gtkmm / widget_curves.cpp
index 08a8a14..c5ff451 100644 (file)
@@ -6,6 +6,7 @@
 **
 **     \legal
 **     Copyright (c) 2002-2005 Robert B. Quattlebaum Jr., Adrian Bentley
+**  Copyright (c) 2008 Gerco Ballintijn
 **
 **     This package is free software; you can redistribute it and/or
 **     modify it under the terms of the GNU General Public License as
@@ -38,6 +39,8 @@
 #include <ETL/misc>
 #include <sigc++/object.h>
 
+#include "general.h"
+
 #endif
 
 /* === U S I N G =========================================================== */
@@ -223,7 +226,6 @@ struct studio::Widget_Curves::CurveStruct : sigc::trackable
 
        void clear_all_values()
        {
-               DEBUGPOINT();
                std::vector<Channel>::iterator iter;
                for(iter=channels.begin();iter!=channels.end();++iter)
                        iter->values.clear();
@@ -288,6 +290,12 @@ struct studio::Widget_Curves::CurveStruct : sigc::trackable
 
                return -channels[chan].values[time];
        }
+
+       static bool is_not_supported(const synfigapp::ValueDesc& x)
+       {
+               return x.get_value_type() == ValueBase::TYPE_STRING
+                       || x.get_value_type() == ValueBase::TYPE_CANVAS;
+       }
 };
 
 /* === M E T H O D S ======================================================= */
@@ -364,11 +372,13 @@ Widget_Curves::set_value_descs(std::list<synfigapp::ValueDesc> value_descs)
        std::list<synfigapp::ValueDesc>::iterator iter;
        for(iter=value_descs.begin();iter!=value_descs.end();++iter)
        {
+               if (CurveStruct::is_not_supported(*iter))
+                       continue;
+
                try {
                        curve_list_.push_back(*iter);
                        if(iter->is_value_node())
                        {
-                               DEBUGPOINT();
                                iter->get_value_node()->signal_changed().connect(
                                        sigc::mem_fun(
                                                *this,
@@ -378,7 +388,6 @@ Widget_Curves::set_value_descs(std::list<synfigapp::ValueDesc> value_descs)
                        }
                        if(iter->parent_is_value_node())
                        {
-                               DEBUGPOINT();
                                iter->get_parent_value_node()->signal_changed().connect(
                                        sigc::mem_fun(
                                                *this,
@@ -388,7 +397,6 @@ Widget_Curves::set_value_descs(std::list<synfigapp::ValueDesc> value_descs)
                        }
                        if(iter->parent_is_layer_param())
                        {
-                               DEBUGPOINT();
                                iter->get_layer()->signal_changed().connect(
                                        sigc::mem_fun(
                                                *this,