X-Git-Url: https://git.pterodactylus.net/?a=blobdiff_plain;f=synfig-studio%2Ftrunk%2Fsrc%2Fgtkmm%2Fkeyframetreestore.cpp;h=24d980d9ee5503c943e0d564f9390f11793adcfb;hb=e7e1794959f6b4af0d60d69b5501adcd305f2207;hp=346aa9fbc5857cdd40c7a5ed9290e129027d21e1;hpb=3a3c4bca3a17137bec5d7960560934b91ef4146e;p=synfig.git diff --git a/synfig-studio/trunk/src/gtkmm/keyframetreestore.cpp b/synfig-studio/trunk/src/gtkmm/keyframetreestore.cpp index 346aa9f..24d980d 100644 --- a/synfig-studio/trunk/src/gtkmm/keyframetreestore.cpp +++ b/synfig-studio/trunk/src/gtkmm/keyframetreestore.cpp @@ -1,20 +1,21 @@ -/* === S I N F G =========================================================== */ +/* === S Y N F I G ========================================================= */ /*! \file keyframetreestore.cpp ** \brief Template File ** ** $Id: keyframetreestore.cpp,v 1.1.1.1 2005/01/07 03:34:36 darco Exp $ ** ** \legal -** Copyright (c) 2002 Robert B. Quattlebaum Jr. +** Copyright (c) 2002-2005 Robert B. Quattlebaum Jr., Adrian Bentley ** -** This software and associated documentation -** are CONFIDENTIAL and PROPRIETARY property of -** the above-mentioned copyright holder. +** This package is free software; you can redistribute it and/or +** modify it under the terms of the GNU General Public License as +** published by the Free Software Foundation; either version 2 of +** the License, or (at your option) any later version. ** -** You may not copy, print, publish, or in any -** other way distribute this software without -** a prior written agreement with -** the copyright holder. +** This package is distributed in the hope that it will be useful, +** but WITHOUT ANY WARRANTY; without even the implied warranty of +** MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +** General Public License for more details. ** \endlegal */ /* ========================================================================= */ @@ -29,20 +30,20 @@ #endif #include "keyframetreestore.h" -#include +#include #include "iconcontroler.h" -#include +#include #include #include -#include -#include +#include +#include #include #include #include -#include -#include +#include +#include #include "onemoment.h" -#include +#include #endif @@ -50,7 +51,7 @@ using namespace std; using namespace etl; -using namespace sinfg; +using namespace synfig; using namespace studio; /* === M A C R O S ========================================================= */ @@ -63,13 +64,13 @@ KeyframeTreeStore_Class KeyframeTreeStore::keyframe_tree_store_class_; struct _keyframe_iterator { - sinfg::KeyframeList::iterator iter; + synfig::KeyframeList::iterator iter; int ref_count; int index; }; /* -Gtk::TreeModel::iterator keyframe_iter_2_model_iter(sinfg::KeyframeList::iterator iter,int index) +Gtk::TreeModel::iterator keyframe_iter_2_model_iter(synfig::KeyframeList::iterator iter,int index) { Gtk::TreeModel::iterator ret; @@ -83,7 +84,7 @@ Gtk::TreeModel::iterator keyframe_iter_2_model_iter(sinfg::KeyframeList::iterato } */ -sinfg::KeyframeList::iterator model_iter_2_keyframe_iter(Gtk::TreeModel::iterator iter) +synfig::KeyframeList::iterator model_iter_2_keyframe_iter(Gtk::TreeModel::iterator iter) { _keyframe_iterator* data(static_cast<_keyframe_iterator*>(iter->gobj()->user_data)); if(!data) @@ -192,7 +193,7 @@ KeyframeTreeStore_Class::class_init_function(gpointer g_class, gpointer class_da // ??? } -KeyframeTreeStore::KeyframeTreeStore(etl::loose_handle canvas_interface_): +KeyframeTreeStore::KeyframeTreeStore(etl::loose_handle canvas_interface_): Glib::ObjectBase ("KeyframeTreeStore"), Glib::Object (Glib::ConstructParams(keyframe_tree_store_class_.init(), (char*) 0)), canvas_interface_ (canvas_interface_) @@ -207,11 +208,11 @@ KeyframeTreeStore::KeyframeTreeStore(etl::loose_handle -KeyframeTreeStore::create(etl::loose_handle canvas_interface_) +KeyframeTreeStore::create(etl::loose_handle canvas_interface_) { KeyframeTreeStore *store(new KeyframeTreeStore(canvas_interface_)); Glib::RefPtr ret(store); @@ -222,7 +223,7 @@ KeyframeTreeStore::create(etl::loose_handle canvas_in void KeyframeTreeStore::reset_stamp() { - stamp_=time(0)+reinterpret_cast(this); + stamp_=time(0)+reinterpret_cast(this); } /* @@ -327,7 +328,7 @@ KeyframeTreeStore::set_value_impl(const Gtk::TreeModel::iterator& row, int colum { if(column==model.time_delta.index()) { - Glib::Value x; + Glib::Value x; g_value_init(x.gobj(),model.time.type()); g_value_copy(value.gobj(),x.gobj()); @@ -356,10 +357,9 @@ KeyframeTreeStore::set_value_impl(const Gtk::TreeModel::iterator& row, int colum return; } - // New Method { Keyframe keyframe((*row)[model.keyframe]); - sinfgapp::Action::Handle action(sinfgapp::Action::create("keyframe_set_delta")); + synfigapp::Action::Handle action(synfigapp::Action::create("keyframe_set_delta")); if(!action)return; @@ -371,68 +371,6 @@ KeyframeTreeStore::set_value_impl(const Gtk::TreeModel::iterator& row, int colum canvas_interface()->get_instance()->perform_action(action); } - - if(0) - { // Old Method The slowest method EVER!!! - OneMoment one_moment; - - // Create the action group - sinfgapp::Action::PassiveGrouper group(canvas_interface()->get_instance().get(),_("Adjust Time")); - sinfgapp::PushMode push_mode(canvas_interface(), sinfgapp::MODE_NORMAL); - - Gtk::TreeModel::iterator iter(row); - if(change_delta<0) - { - //DEBUGPOINT(); - KeyframeList keyframe_list(get_canvas()->keyframe_list()); - sinfg::KeyframeList::iterator iter(keyframe_list.find((*row)[model.keyframe])); - //DEBUGPOINT(); - for(;iter!=keyframe_list.end();++iter) - { - //DEBUGPOINT(); - sinfg::Keyframe keyframe(*iter); - - keyframe.set_time(keyframe.get_time()+change_delta); - - sinfgapp::Action::Handle action(sinfgapp::Action::create("keyframe_set")); - - if(!action)return; - - action->set_param("canvas",canvas_interface()->get_canvas()); - action->set_param("canvas_interface",canvas_interface()); - action->set_param("keyframe",keyframe); - - canvas_interface()->get_instance()->perform_action(action); - } - } - else - { - //DEBUGPOINT(); - KeyframeList keyframe_list(get_canvas()->keyframe_list()); - sinfg::KeyframeList::reverse_iterator end(keyframe_list.find((*row)[model.keyframe])); - sinfg::KeyframeList::reverse_iterator iter(keyframe_list.rbegin()); - //end++; - //DEBUGPOINT(); - for(;iter!=end;++iter) - { - //DEBUGPOINT(); - sinfg::Keyframe keyframe(*iter); - - keyframe.set_time(keyframe.get_time()+change_delta); - - sinfgapp::Action::Handle action(sinfgapp::Action::create("keyframe_set")); - - if(!action)return; - - action->set_param("canvas",canvas_interface()->get_canvas()); - action->set_param("canvas_interface",canvas_interface()); - action->set_param("keyframe",keyframe); - - canvas_interface()->get_instance()->perform_action(action); - } - } - } - return; } else @@ -440,16 +378,16 @@ KeyframeTreeStore::set_value_impl(const Gtk::TreeModel::iterator& row, int colum { OneMoment one_moment; - Glib::Value x; + Glib::Value x; g_value_init(x.gobj(),model.time.type()); g_value_copy(value.gobj(),x.gobj()); - sinfg::Keyframe keyframe(*iter->iter); + synfig::Keyframe keyframe(*iter->iter); - sinfg::info("KeyframeTreeStore::set_value_impl():old_time=%s",keyframe.get_time().get_string().c_str()); + synfig::info("KeyframeTreeStore::set_value_impl():old_time=%s",keyframe.get_time().get_string().c_str()); keyframe.set_time(x.get()); - sinfg::info("KeyframeTreeStore::set_value_impl():new_time=%s",keyframe.get_time().get_string().c_str()); + synfig::info("KeyframeTreeStore::set_value_impl():new_time=%s",keyframe.get_time().get_string().c_str()); - sinfgapp::Action::Handle action(sinfgapp::Action::create("keyframe_set")); + synfigapp::Action::Handle action(synfigapp::Action::create("keyframe_set")); if(!action) return; @@ -465,10 +403,10 @@ KeyframeTreeStore::set_value_impl(const Gtk::TreeModel::iterator& row, int colum Glib::Value x; g_value_init(x.gobj(),model.description.type()); g_value_copy(value.gobj(),x.gobj()); - sinfg::Keyframe keyframe(*iter->iter); + synfig::Keyframe keyframe(*iter->iter); keyframe.set_description(x.get()); - sinfgapp::Action::Handle action(sinfgapp::Action::create("keyframe_set")); + synfigapp::Action::Handle action(synfigapp::Action::create("keyframe_set")); if(!action) return; @@ -771,7 +709,7 @@ KeyframeTreeStore::get_value_vfunc (const Gtk::TreeModel::iterator& gtk_iter, in { case 0: // Time { - Glib::Value x; + Glib::Value x; g_value_init(x.gobj(),x.value_type()); x.set(iter->iter->get_time()); g_value_init(value.gobj(),x.value_type()); @@ -780,11 +718,11 @@ KeyframeTreeStore::get_value_vfunc (const Gtk::TreeModel::iterator& gtk_iter, in } case 3: // Time Delta { - Glib::Value x; + Glib::Value x; g_value_init(x.gobj(),x.value_type()); - sinfg::Keyframe prev_keyframe(*iter->iter); - sinfg::Keyframe keyframe; + synfig::Keyframe prev_keyframe(*iter->iter); + synfig::Keyframe keyframe; { KeyframeList::iterator tmp(iter->iter); tmp++; @@ -815,7 +753,7 @@ KeyframeTreeStore::get_value_vfunc (const Gtk::TreeModel::iterator& gtk_iter, in } case 2: // Keyframe { - Glib::Value x; + Glib::Value x; g_value_init(x.gobj(),x.value_type()); x.set(*iter->iter); g_value_init(value.gobj(),x.value_type()); @@ -828,7 +766,7 @@ KeyframeTreeStore::get_value_vfunc (const Gtk::TreeModel::iterator& gtk_iter, in } Gtk::TreeModel::Row -KeyframeTreeStore::find_row(const sinfg::Keyframe &keyframe) +KeyframeTreeStore::find_row(const synfig::Keyframe &keyframe) { Gtk::TreeModel::Row row(*(children().begin())); dump_iterator(row,"find_row,begin"); @@ -838,7 +776,7 @@ KeyframeTreeStore::find_row(const sinfg::Keyframe &keyframe) _keyframe_iterator *iter(static_cast<_keyframe_iterator*>(gtk_iter->user_data)); - sinfg::KeyframeList &keyframe_list(canvas_interface()->get_canvas()->keyframe_list()); + synfig::KeyframeList &keyframe_list(canvas_interface()->get_canvas()->keyframe_list()); if(keyframe_list.empty()) throw std::runtime_error(_("There are no keyframes n this canvas")); @@ -909,7 +847,7 @@ KeyframeTreeStore::change_keyframe(Keyframe keyframe) unsigned int new_index(get_index_from_model_iter(row)); unsigned int old_index(0); - sinfg::KeyframeList::iterator iter; + 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++); if(iter!=old_keyframe_list.end() && new_index!=old_index)