**
** \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
/* === 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 ======================================= */
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();
KeyframeTreeStore::~KeyframeTreeStore()
{
- synfig::info("KeyframeTreeStore::~KeyframeTreeStore(): Deleted");
+ if (getenv("SYNFIG_DEBUG_DESTRUCTORS"))
+ synfig::info("KeyframeTreeStore::~KeyframeTreeStore(): Deleted");
}
Glib::RefPtr<KeyframeTreeStore>
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)
{
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)
{