X-Git-Url: https://git.pterodactylus.net/?a=blobdiff_plain;f=synfig-studio%2Ftrunk%2Fsrc%2Fgtkmm%2Fkeyframetreestore.cpp;h=4e840015dc9a222c1061afa90bf8febbe9b51c9b;hb=9459638ad6797b8139f1e9f0715c96076dbf0890;hp=945273438d823429beabbb52565991acad1b1dc5;hpb=63e709f66d50c124cc0ece2325f4773ac4ae7b20;p=synfig.git diff --git a/synfig-studio/trunk/src/gtkmm/keyframetreestore.cpp b/synfig-studio/trunk/src/gtkmm/keyframetreestore.cpp index 9452734..4e84001 100644 --- a/synfig-studio/trunk/src/gtkmm/keyframetreestore.cpp +++ b/synfig-studio/trunk/src/gtkmm/keyframetreestore.cpp @@ -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 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 @@ -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()); } }