On Wednesday 24 September 2003 1:44 pm, Andre Poenitz wrote:
> On Wed, Sep 24, 2003 at 02:29:44PM +0000, Angus Leeming wrote:
> > Which doesn't help us much...
>
> What why do you need that vector?

I guess I don't ;-)
Angus

namespace {

template <typename T, typename Enum>
void clearIfNotFound(T & data, Enum value, vector<Enum> const & ids)
{
        typename vector<Enum>::const_iterator it  = ids.begin();
        typename vector<Enum>::const_iterator end = ids.end();

        it = std::find(it, end, value);
        if (it == end)
                data = T();
}

} // namespace anon


void InsetExternal::Params::settemplate(string const & name)
{
        templatename_ = name;
        ExternalTemplateManager & etm = ExternalTemplateManager::get();
        ExternalTemplate const * et = etm.getTemplateByName(name);

        if (!et)
                // Be safe. Don't lose data.
                return;

        // Ascertain which transforms the template supports.
        // Empty all those that it doesn't.
        clearIfNotFound(rotationdata, ExternalTemplate::Rotate, et->transformIds);
//      clearIfNotFound(resizedata,   ExternalTemplate::Resize, et->transformIds);
//      clearIfNotFound(clipdata,     ExternalTemplate::Clip,   et->transformIds);
        clearIfNotFound(extradata_,   ExternalTemplate::Extra,  et->transformIds);
}

Reply via email to