Don't show log messages from each panel's destructor unless environment variable...
[synfig.git] / synfig-studio / trunk / src / gtkmm / keyframetreestore.cpp
index f947077..65ad2f4 100644 (file)
@@ -61,7 +61,7 @@ using namespace studio;
 
 /* === G L O B A L S ======================================================= */
 
-KeyframeTreeStore_Class KeyframeTreeStore::keyframe_tree_store_class_;
+// KeyframeTreeStore_Class KeyframeTreeStore::keyframe_tree_store_class_;
 
 /* === C L A S S E S & S T R U C T S ======================================= */
 
@@ -198,7 +198,8 @@ KeyframeTreeStore_Class::class_init_function(gpointer /*g_class*/, gpointer /*cl
 
 KeyframeTreeStore::KeyframeTreeStore(etl::loose_handle<synfigapp::CanvasInterface> canvas_interface_):
        Glib::ObjectBase        ("KeyframeTreeStore"),
-       Glib::Object            (Glib::ConstructParams(keyframe_tree_store_class_.init(), (char*) 0)),
+       //! \todo what is going on here?  why the need for this KeyframeTreeStore_Class at all?
+       // Glib::Object         (Glib::ConstructParams(keyframe_tree_store_class_.init(), (char*) 0, (char*) 0)),
        canvas_interface_       (canvas_interface_)
 {
        reset_stamp();
@@ -211,7 +212,8 @@ KeyframeTreeStore::KeyframeTreeStore(etl::loose_handle<synfigapp::CanvasInterfac
 
 KeyframeTreeStore::~KeyframeTreeStore()
 {
-       synfig::info("KeyframeTreeStore::~KeyframeTreeStore(): Deleted");
+       if (getenv("SYNFIG_DEBUG_DESTRUCTORS"))
+               synfig::info("KeyframeTreeStore::~KeyframeTreeStore(): Deleted");
 }
 
 Glib::RefPtr<KeyframeTreeStore>
@@ -307,6 +309,20 @@ KeyframeTreeStore::time_sorter(const Gtk::TreeModel::iterator &rhs,const Gtk::Tr
        return 0;
 }
 
+int
+KeyframeTreeStore::description_sorter(const Gtk::TreeModel::iterator &rhs,const Gtk::TreeModel::iterator &lhs)
+{
+       const Model model;
+
+       _keyframe_iterator *rhs_iter(static_cast<_keyframe_iterator*>(rhs->gobj()->user_data));
+       _keyframe_iterator *lhs_iter(static_cast<_keyframe_iterator*>(lhs->gobj()->user_data));
+
+       int comp = rhs_iter->iter->get_description().compare(lhs_iter->iter->get_description());
+       if (comp > 0) return 1;
+       if (comp < 0) return -1;
+       return 0;
+}
+
 void
 KeyframeTreeStore::set_value_impl(const Gtk::TreeModel::iterator& row, int column, const Glib::ValueBase& value)
 {