**
** \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
#include <gtk/gtkversion.h>
#include <ETL/clock>
+#include "general.h"
+
#endif
/* === U S I N G =========================================================== */
LayerTreeStore::LayerTreeStore(etl::loose_handle<synfigapp::CanvasInterface> canvas_interface_):
Gtk::TreeStore (ModelHack()),
+ queued (false),
canvas_interface_ (canvas_interface_)
{
layer_icon=Gtk::Button().render_icon(Gtk::StockID("synfig-layer"),Gtk::ICON_SIZE_SMALL_TOOLBAR);
LayerTreeStore::~LayerTreeStore()
{
- synfig::info("LayerTreeStore::~LayerTreeStore(): Deleted");
+ if (getenv("SYNFIG_DEBUG_DESTRUCTORS"))
+ synfig::info("LayerTreeStore::~LayerTreeStore(): Deleted");
}
int
Glib::Value<Glib::ustring> x;
g_value_init(x.gobj(),x.value_type());
-
- if(!layer->get_description().empty())
- x.set(layer->get_description());
- else
- x.set(layer->get_local_name());
+ x.set(layer->get_non_empty_description());
g_value_init(value.gobj(),x.value_type());
//g_value_copy(x.gobj(),value.gobj());
*/
}
}
- synfig::info("I suposidly moved %d layers",i);
+ synfig::info("I supposedly moved %d layers",i);
// Reselect the previously selected layers
canvas_interface()->get_selection_manager()->set_selected_layers(selected_layer_list);
}
void
+LayerTreeStore::queue_rebuild()
+{
+ if (queued) return;
+ queued = false;
+ queue_connection.disconnect();
+ queue_connection=Glib::signal_timeout().connect(
+ sigc::bind_return(
+ sigc::mem_fun(*this,&LayerTreeStore::rebuild),
+ false
+ )
+ ,150);
+}
+
+void
LayerTreeStore::rebuild()
{
+ if (queued) queued = false;
+
//etl::clock timer;timer.reset();
//synfig::warning("---------rebuilding layer table---------");
}
/*
- //DEBUGPOINT();
Gtk::TreeModel::Children::iterator iter;
if(find_layer_row(handle,iter))
{
- //DEBUGPOINT();
Gtk::TreeModel::Children children(iter->children());
for(iter = children.begin(); iter && iter != children.end(); ++iter)
{
if((Glib::ustring)(*iter)[model.param_name]==param_name)
{
- //DEBUGPOINT();
Gtk::TreeRow row=*iter;
refresh_row(row);
return;
}
}
}
- //DEBUGPOINT();
rebuild();
*/
}
}
iter=children().end();
- //DEBUGPOINT();
//return false;
}