Added copyright lines for files I've edited this year.
[synfig.git] / synfig-studio / trunk / src / gtkmm / keyframetreestore.cpp
index 345fec5..596f078 100644 (file)
@@ -6,6 +6,7 @@
 **
 **     \legal
 **     Copyright (c) 2002-2005 Robert B. Quattlebaum Jr., Adrian Bentley
+**     Copyright (c) 2007, 2008 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
@@ -31,7 +32,7 @@
 
 #include "keyframetreestore.h"
 #include <synfig/valuenode.h>
-#include "iconcontroler.h"
+#include "iconcontroller.h"
 #include <synfig/valuenode_timedswap.h>
 #include <gtkmm/button.h>
 #include <gtkmm/treerowreference.h>
@@ -45,6 +46,8 @@
 #include "onemoment.h"
 #include <synfig/exception.h>
 
+#include "general.h"
+
 #endif
 
 /* === U S I N G =========================================================== */
@@ -58,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 ======================================= */
 
@@ -195,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();
@@ -208,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>
@@ -304,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)
 {
@@ -345,7 +364,7 @@ KeyframeTreeStore::set_value_impl(const Gtk::TreeModel::iterator& row, int colum
                                // Bad old delta
                                return;
                        }
-                       // row(row) on the next line is bad - don't use it, because it leaves 'row' uninitialised
+                       // row(row) on the next line is bad - don't use it, because it leaves 'row' uninitialized
                        //Gtk::TreeModel::iterator row(row);
                        //row++;
                        //if(!row)return;
@@ -663,7 +682,7 @@ KeyframeTreeStore::unref_node_vfunc (iterator& xiter)const
 }
 
 Gtk::TreeModel::Path
-KeyframeTreeStore::get_path_vfunc (const TreeModel::iterator& gtk_iter)const
+KeyframeTreeStore::get_path_vfunc (const iterator& gtk_iter)const
 {
        Gtk::TreeModel::Path path;
 
@@ -793,7 +812,7 @@ KeyframeTreeStore::find_row(const synfig::Keyframe &keyframe)
 }
 
 void
-KeyframeTreeStore::add_keyframe(Keyframe keyframe)
+KeyframeTreeStore::add_keyframe(synfig::Keyframe keyframe)
 {
        try
        {
@@ -814,7 +833,7 @@ KeyframeTreeStore::add_keyframe(Keyframe keyframe)
 }
 
 void
-KeyframeTreeStore::remove_keyframe(Keyframe keyframe)
+KeyframeTreeStore::remove_keyframe(synfig::Keyframe keyframe)
 {
        try
        {
@@ -834,13 +853,12 @@ KeyframeTreeStore::remove_keyframe(Keyframe keyframe)
        }
        catch(std::exception x)
        {
-               DEBUGPOINT();
                g_warning(x.what());
        }
 }
 
 void
-KeyframeTreeStore::change_keyframe(Keyframe keyframe)
+KeyframeTreeStore::change_keyframe(synfig::Keyframe keyframe)
 {
        try
        {
@@ -849,11 +867,11 @@ KeyframeTreeStore::change_keyframe(Keyframe keyframe)
                unsigned int new_index(get_index_from_model_iter(row));
                unsigned int old_index(0);
                synfig::KeyframeList::iterator iter;
-               for(old_index=0,iter=old_keyframe_list.begin();iter!=old_keyframe_list.end() && (UniqueID)*iter!=(UniqueID)keyframe;++iter,old_index++);
+               for(old_index=0,iter=old_keyframe_list.begin();iter!=old_keyframe_list.end() && (UniqueID)*iter!=(UniqueID)keyframe;++iter,old_index++)
+                       ;
 
                if(iter!=old_keyframe_list.end() && new_index!=old_index)
                {
-                       DEBUGPOINT();
                        std::vector<int> new_order;
                        for(unsigned int i=0;i<old_keyframe_list.size();i++)
                        {
@@ -878,7 +896,6 @@ KeyframeTreeStore::change_keyframe(Keyframe keyframe)
        }
        catch(std::exception x)
        {
-               DEBUGPOINT();
                g_warning(x.what());
        }
 }