**
** \legal
** Copyright (c) 2002-2005 Robert B. Quattlebaum Jr., Adrian Bentley
+** Copyright (c) 2007 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
/* === M E T H O D S ======================================================= */
-Canvas::Canvas(const string &id):
+Canvas::Canvas(const String &id):
id_ (id),
+ version_ (CURRENT_CANVAS_VERSION),
cur_time_ (0),
is_inline_ (false),
is_dirty_ (true),
}
void
-Canvas::erase(Canvas::iterator iter)
+Canvas::erase(iterator iter)
{
if(!(*iter)->get_group().empty())
remove_group_pair((*iter)->get_group(),(*iter));
{
name=get_id()+"_CLONE";
- throw runtime_error("Cloning of non-inline canvases is not yet suported");
+ throw runtime_error("Cloning of non-inline canvases is not yet supported");
}
Handle canvas(new Canvas(name));
if(is_inline())
{
canvas->is_inline_=true;
- canvas->parent_=0;
+ // \todo this was setting parent_=0 - is there a reason for that?
+ // this was causing bug 1838132, where cloning an inline canvas that contains an imported image fails
+ // it was failing to ascertain the absolute pathname of the imported image, since it needs the pathname
+ // of the canvas to get that, which is stored in the parent canvas
+ canvas->parent_=parent();
//canvas->set_inline(parent());
}
Context iter;
std::vector< std::pair<float,Layer::Handle> > sort_list;
- int i, motion_blur_i; // motion_blur_i is for resolving which layer comes first in the event of a z_depth tie
- float motion_blur_z_depth; // the z_depth of the least deep motion blur layer in this context
+ int i, motion_blur_i=0; // motion_blur_i is for resolving which layer comes first in the event of a z_depth tie
+ float motion_blur_z_depth=0; // the z_depth of the least deep motion blur layer in this context
bool seen_motion_blur_locally = false;
- bool motion_blurred; // the final result - is this layer blurred or not?
+ bool motion_blurred; // the final result - is this layer blurred or not?
// If the parent didn't cause us to already be motion blurred,
// check whether there's a motion blur in this context,
}
void
-Canvas::add_connection(Layer::LooseHandle layer, sigc::connection connection)
+Canvas::add_connection(etl::loose_handle<Layer> layer, sigc::connection connection)
{
connections_[layer].push_back(connection);
}
void
-Canvas::disconnect_connections(Layer::LooseHandle layer)
+Canvas::disconnect_connections(etl::loose_handle<Layer> layer)
{
std::vector<sigc::connection>::iterator iter;
for(iter=connections_[layer].begin();iter!=connections_[layer].end();++iter)