Remove .gitignore do nothing is ignored.
[synfig.git] / synfig-studio / trunk / src / gtkmm / keyframetreestore.cpp
index 9452734..4e84001 100644 (file)
@@ -6,7 +6,7 @@
 **
 **     \legal
 **     Copyright (c) 2002-2005 Robert B. Quattlebaum Jr., Adrian Bentley
-**     Copyright (c) 2007 Chris Moore
+**     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
@@ -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)
 {
@@ -363,7 +379,7 @@ KeyframeTreeStore::set_value_impl(const Gtk::TreeModel::iterator& row, int colum
 
                        {
                                Keyframe keyframe((*row)[model.keyframe]);
-                               synfigapp::Action::Handle action(synfigapp::Action::create("keyframe_set_delta"));
+                               synfigapp::Action::Handle action(synfigapp::Action::create("KeyframeSetDelta"));
 
                                if(!action)return;
 
@@ -391,7 +407,7 @@ KeyframeTreeStore::set_value_impl(const Gtk::TreeModel::iterator& row, int colum
                        keyframe.set_time(x.get());
                        synfig::info("KeyframeTreeStore::set_value_impl():new_time=%s",keyframe.get_time().get_string().c_str());
 
-                       synfigapp::Action::Handle action(synfigapp::Action::create("keyframe_set"));
+                       synfigapp::Action::Handle action(synfigapp::Action::create("KeyframeSet"));
 
                        if(!action)
                                return;
@@ -410,7 +426,7 @@ KeyframeTreeStore::set_value_impl(const Gtk::TreeModel::iterator& row, int colum
                        synfig::Keyframe keyframe(*iter->iter);
                        keyframe.set_description(x.get());
 
-                       synfigapp::Action::Handle action(synfigapp::Action::create("keyframe_set"));
+                       synfigapp::Action::Handle action(synfigapp::Action::create("KeyframeSet"));
 
                        if(!action)
                                return;
@@ -432,7 +448,7 @@ KeyframeTreeStore::set_value_impl(const Gtk::TreeModel::iterator& row, int colum
        }
        catch(std::exception x)
        {
-               g_warning(x.what());
+               g_warning("%s", x.what());
        }
 }
 
@@ -812,7 +828,7 @@ KeyframeTreeStore::add_keyframe(synfig::Keyframe keyframe)
        }
        catch(std::exception x)
        {
-               g_warning(x.what());
+               g_warning("%s", x.what());
        }
 }
 
@@ -837,7 +853,7 @@ KeyframeTreeStore::remove_keyframe(synfig::Keyframe keyframe)
        }
        catch(std::exception x)
        {
-               g_warning(x.what());
+               g_warning("%s", x.what());
        }
 }
 
@@ -851,7 +867,8 @@ KeyframeTreeStore::change_keyframe(synfig::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)
                {
@@ -879,6 +896,6 @@ KeyframeTreeStore::change_keyframe(synfig::Keyframe keyframe)
        }
        catch(std::exception x)
        {
-               g_warning(x.what());
+               g_warning("%s", x.what());
        }
 }