X-Git-Url: https://git.pterodactylus.net/?a=blobdiff_plain;f=synfig-studio%2Ftrunk%2Fsrc%2Fsynfigapp%2Faction.cpp;h=7a982524d00e1f29d4c73070c95a5463afc28778;hb=9459638ad6797b8139f1e9f0715c96076dbf0890;hp=a1fdd69621ea895a689c149d263c1c3cb9e23e9c;hpb=8ef042c40521681cea99944097c4f90a5ac6cf74;p=synfig.git diff --git a/synfig-studio/trunk/src/synfigapp/action.cpp b/synfig-studio/trunk/src/synfigapp/action.cpp index a1fdd69..7a98252 100644 --- a/synfig-studio/trunk/src/synfigapp/action.cpp +++ b/synfig-studio/trunk/src/synfigapp/action.cpp @@ -6,6 +6,7 @@ ** ** \legal ** Copyright (c) 2002-2005 Robert B. Quattlebaum Jr., Adrian Bentley +** Copyright (c) 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 @@ -67,11 +68,15 @@ #include "actions/valuedescconnect.h" #include "actions/valuedescdisconnect.h" #include "actions/valuedesclink.h" +#include "actions/valuedescblinelink.h" #include "actions/waypointadd.h" #include "actions/waypointset.h" #include "actions/waypointsetsmart.h" #include "actions/waypointremove.h" +#include "actions/waypointconnect.h" +#include "actions/waypointdisconnect.h" +// #include "actions/waypointsimpleadd.h" #include "actions/activepointadd.h" #include "actions/activepointset.h" @@ -79,6 +84,7 @@ #include "actions/activepointsetoff.h" #include "actions/activepointseton.h" #include "actions/activepointremove.h" +// #include "actions/activepointsimpleadd.h" #include "actions/keyframeadd.h" #include "actions/keyframeset.h" @@ -91,6 +97,9 @@ #include "actions/timepointscopy.h" #include "actions/timepointsdelete.h" +#include "actions/canvasdescriptionset.h" +#include "actions/canvasidset.h" +#include "actions/canvasnameset.h" #include "actions/canvasrenddescset.h" #include "actions/canvasadd.h" #include "actions/canvasremove.h" @@ -130,7 +139,7 @@ synfigapp::Action::Book *book_; #define ADD_ACTION(x) { BookEntry &be(book()[x::name__]); \ be.name=x::name__; \ - be.local_name=gettext(x::local_name__); \ + be.local_name=dgettext("synfigstudio",x::local_name__); \ be.version=x::version__; \ be.task=x::task__; \ be.priority=x::priority__; \ @@ -179,11 +188,15 @@ Action::Main::Main() ADD_ACTION(Action::ValueDescConnect); ADD_ACTION(Action::ValueDescDisconnect); ADD_ACTION(Action::ValueDescLink); + ADD_ACTION(Action::ValueDescBLineLink); ADD_ACTION(Action::WaypointAdd); ADD_ACTION(Action::WaypointSet); ADD_ACTION(Action::WaypointSetSmart); ADD_ACTION(Action::WaypointRemove); + ADD_ACTION(Action::WaypointConnect); + ADD_ACTION(Action::WaypointDisconnect); +// ADD_ACTION(Action::WaypointSimpleAdd); ADD_ACTION(Action::ActivepointAdd); ADD_ACTION(Action::ActivepointSet); @@ -191,6 +204,7 @@ Action::Main::Main() ADD_ACTION(Action::ActivepointSetOn); ADD_ACTION(Action::ActivepointSetOff); ADD_ACTION(Action::ActivepointRemove); +// ADD_ACTION(Action::ActivepointSimpleAdd); ADD_ACTION(Action::KeyframeAdd); ADD_ACTION(Action::KeyframeSet); @@ -199,6 +213,9 @@ Action::Main::Main() ADD_ACTION(Action::KeyframeWaypointSet); ADD_ACTION(Action::KeyframeSetDelta); + ADD_ACTION(Action::CanvasDescriptionSet); + ADD_ACTION(Action::CanvasIdSet); + ADD_ACTION(Action::CanvasNameSet); ADD_ACTION(Action::CanvasRendDescSet); ADD_ACTION(Action::CanvasAdd); ADD_ACTION(Action::CanvasRemove); @@ -209,7 +226,8 @@ Action::Main::Main() ADD_ACTION(Action::BLinePointTangentSplit); ADD_ACTION(Action::GradientSet); - ADD_ACTION(Action::ColorSet); + ADD_ACTION(Action::ColorSetFromOC); + ADD_ACTION(Action::ColorSetFromFC); ADD_ACTION(Action::TimepointsMove); ADD_ACTION(Action::TimepointsCopy); @@ -232,7 +250,7 @@ Action::Book& Action::book() { return *book_; } Action::Handle -Action::create(const String &name) +Action::create(const synfig::String &name) { if(!book().count(name)) return 0; //! \todo perhaps we should throw something instead? @@ -254,19 +272,26 @@ Action::compile_candidate_list(const ParamList& param_list, Category category) if((iter->second.category&category)) { if(iter->second.is_candidate(param_list)) + { + //synfig::info("Action \"%s\" is in",iter->second.name.c_str()); ret.push_back(iter->second); + } else { //synfig::info("Action \"%s\" is not a candidate",iter->second.name.c_str()); } } + else + { + //synfig::info("Action \"%s\" has unsuitable category",iter->second.name.c_str()); + } } return ret; } Action::CandidateList::iterator -Action::CandidateList::find(const String& x) +Action::CandidateList::find(const synfig::String& x) { iterator iter; for(iter=begin();iter!=end();++iter) @@ -284,6 +309,72 @@ Action::Base::set_param_list(const ParamList ¶m_list) set_param(iter->first,iter->second); } +synfig::String +Action::Base::get_layer_descriptions(const std::list layers, synfig::String singular_prefix, synfig::String plural_prefix) +{ + String ret; + bool first = true; + + if (plural_prefix.empty()) + plural_prefix = singular_prefix; + + if (layers.empty()) + return plural_prefix; + + if (layers.size() == 1) + ret = singular_prefix; + else + ret = plural_prefix; + + if (!ret.empty()) + ret.push_back(' '); + + for(std::list::const_iterator iter=layers.begin(); iter!=layers.end(); ++iter) + { + if (first) + first = false; + else + ret += ", "; + + ret += strprintf("'%s'", (*iter)->get_non_empty_description().c_str()); + } + + return ret; +} + +synfig::String +Action::Base::get_layer_descriptions(const std::list > layers, synfig::String singular_prefix, synfig::String plural_prefix) +{ + String ret; + bool first = true; + + if (plural_prefix.empty()) + plural_prefix = singular_prefix; + + if (layers.empty()) + return plural_prefix; + + if (layers.size() == 1) + ret = singular_prefix; + else + ret = plural_prefix; + + if (!ret.empty()) + ret.push_back(' '); + + for(std::list >::const_iterator iter=layers.begin(); iter!=layers.end(); ++iter) + { + if (first) + first = false; + else + ret += ", "; + + ret += strprintf("'%s'", iter->first->get_non_empty_description().c_str()); + } + + return ret; +} + void Super::perform() { @@ -294,6 +385,8 @@ Super::perform() ActionList::const_iterator iter; for(iter=action_list_.begin();iter!=action_list_.end();++iter) { + //// debug actions + // synfig::info("%s:%d action: '%s'", __FILE__, __LINE__, (*iter)->get_name().c_str()); try { try @@ -316,8 +409,10 @@ Super::perform() } catch(Error x) { - throw Error(x.get_type(),((*iter)->get_name()+": "+x.get_desc()).c_str()); + //synfig::info("%s:%d caught exception", __FILE__, __LINE__); + throw Error(x.get_type(),((*iter)->get_local_name()+": "+x.get_desc()).c_str()); } + //synfig::info("%s:%d finished action: '%s'", __FILE__, __LINE__, (*iter)->get_name().c_str()); } } @@ -367,7 +462,7 @@ Super::add_action_front(etl::handle action) } -Group::Group(const std::string &str): +Group::Group(const synfig::String &str): name_(str), ready_(true) {