X-Git-Url: https://git.pterodactylus.net/?a=blobdiff_plain;f=synfig-studio%2Ftrunk%2Fsrc%2Fsynfigapp%2Faction.cpp;h=05c5be8801b36f127ce7f769a31a144e57894192;hb=d15c4522466bedfbe61620c401becae0931854f5;hp=b5533a23bfc5dfaa98f07f3c2691740f7a03b71a;hpb=c34eaa5441242b3e9a7b7645e9ee4983d14eae85;p=synfig.git diff --git a/synfig-studio/trunk/src/synfigapp/action.cpp b/synfig-studio/trunk/src/synfigapp/action.cpp index b5533a2..05c5be8 100644 --- a/synfig-studio/trunk/src/synfigapp/action.cpp +++ b/synfig-studio/trunk/src/synfigapp/action.cpp @@ -2,10 +2,11 @@ /*! \file action.cpp ** \brief Template File ** -** $Id: action.cpp,v 1.1.1.1 2005/01/07 03:34:37 darco Exp $ +** $Id$ ** ** \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 @@ -110,6 +111,8 @@ #include "canvasinterface.h" +#include "general.h" + #endif using namespace std; @@ -128,7 +131,7 @@ synfigapp::Action::Book *book_; #define ADD_ACTION(x) { BookEntry &be(book()[x::name__]); \ be.name=x::name__; \ - be.local_name=x::local_name__; \ + be.local_name=dgettext("synfigstudio",x::local_name__); \ be.version=x::version__; \ be.task=x::task__; \ be.priority=x::priority__; \ @@ -230,7 +233,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? @@ -264,7 +267,7 @@ Action::compile_candidate_list(const ParamList& param_list, Category category) } Action::CandidateList::iterator -Action::CandidateList::find(const String& x) +Action::CandidateList::find(const synfig::String& x) { iterator iter; for(iter=begin();iter!=end();++iter) @@ -282,6 +285,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() { @@ -365,7 +434,7 @@ Super::add_action_front(etl::handle action) } -Group::Group(const std::string &str): +Group::Group(const synfig::String &str): name_(str), ready_(true) {