X-Git-Url: https://git.pterodactylus.net/?a=blobdiff_plain;f=synfig-studio%2Ftrunk%2Fsrc%2Fgtkmm%2Fkeyframetreestore.cpp;h=4e840015dc9a222c1061afa90bf8febbe9b51c9b;hb=9459638ad6797b8139f1e9f0715c96076dbf0890;hp=6bcf1db461b21896ea8dc66afb12b0413baabc86;hpb=c34eaa5441242b3e9a7b7645e9ee4983d14eae85;p=synfig.git diff --git a/synfig-studio/trunk/src/gtkmm/keyframetreestore.cpp b/synfig-studio/trunk/src/gtkmm/keyframetreestore.cpp index 6bcf1db..4e84001 100644 --- a/synfig-studio/trunk/src/gtkmm/keyframetreestore.cpp +++ b/synfig-studio/trunk/src/gtkmm/keyframetreestore.cpp @@ -2,10 +2,11 @@ /*! \file keyframetreestore.cpp ** \brief Template File ** -** $Id: keyframetreestore.cpp,v 1.1.1.1 2005/01/07 03:34:36 darco Exp $ +** $Id$ ** ** \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 -#include "iconcontroler.h" +#include "iconcontroller.h" #include #include #include @@ -45,6 +46,8 @@ #include "onemoment.h" #include +#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 ======================================= */ @@ -188,14 +191,15 @@ KeyframeTreeStore_Class::init() } void -KeyframeTreeStore_Class::class_init_function(gpointer g_class, gpointer class_data) +KeyframeTreeStore_Class::class_init_function(gpointer /*g_class*/, gpointer /*class_data*/) { // ??? } KeyframeTreeStore::KeyframeTreeStore(etl::loose_handle 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 @@ -258,7 +263,7 @@ KeyframeTreeStore::iterator_sane(const Gtk::TreeModel::iterator& iter)const } inline void -KeyframeTreeStore::dump_iterator(const GtkTreeIter* gtk_iter, const Glib::ustring &name)const +KeyframeTreeStore::dump_iterator(const GtkTreeIter* /*gtk_iter*/, const Glib::ustring &/*name*/)const { #if 0 if(!gtk_iter) @@ -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,6 +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' uninitialized //Gtk::TreeModel::iterator row(row); //row++; //if(!row)return; @@ -359,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; @@ -387,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; @@ -406,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; @@ -428,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()); } } @@ -662,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; @@ -792,7 +812,7 @@ KeyframeTreeStore::find_row(const synfig::Keyframe &keyframe) } void -KeyframeTreeStore::add_keyframe(Keyframe keyframe) +KeyframeTreeStore::add_keyframe(synfig::Keyframe keyframe) { try { @@ -808,12 +828,12 @@ KeyframeTreeStore::add_keyframe(Keyframe keyframe) } catch(std::exception x) { - g_warning(x.what()); + g_warning("%s", x.what()); } } void -KeyframeTreeStore::remove_keyframe(Keyframe keyframe) +KeyframeTreeStore::remove_keyframe(synfig::Keyframe keyframe) { try { @@ -833,13 +853,12 @@ KeyframeTreeStore::remove_keyframe(Keyframe keyframe) } catch(std::exception x) { - DEBUGPOINT(); - g_warning(x.what()); + g_warning("%s", x.what()); } } void -KeyframeTreeStore::change_keyframe(Keyframe keyframe) +KeyframeTreeStore::change_keyframe(synfig::Keyframe keyframe) { try { @@ -848,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 new_order; for(unsigned int i=0;i