summary |
shortlog |
log |
commit | commitdiff |
tree
raw |
patch |
inline | side by side (from parent 1:
32c421a)
git-svn-id: https://synfig.svn.sourceforge.net/svnroot/synfig@2220
1f10aa63-cdf2-0310-b900-
c93c546f37ac
LayerTreeStore::LayerTreeStore(etl::loose_handle<synfigapp::CanvasInterface> canvas_interface_):
Gtk::TreeStore (ModelHack()),
LayerTreeStore::LayerTreeStore(etl::loose_handle<synfigapp::CanvasInterface> canvas_interface_):
Gtk::TreeStore (ModelHack()),
canvas_interface_ (canvas_interface_)
{
layer_icon=Gtk::Button().render_icon(Gtk::StockID("synfig-layer"),Gtk::ICON_SIZE_SMALL_TOOLBAR);
canvas_interface_ (canvas_interface_)
{
layer_icon=Gtk::Button().render_icon(Gtk::StockID("synfig-layer"),Gtk::ICON_SIZE_SMALL_TOOLBAR);
+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()
{
LayerTreeStore::rebuild()
{
+ if (queued) queued = false;
+
//etl::clock timer;timer.reset();
//synfig::warning("---------rebuilding layer table---------");
//etl::clock timer;timer.reset();
//synfig::warning("---------rebuilding layer table---------");
+ bool queued;
+
+ sigc::connection queue_connection;
+
etl::loose_handle<synfigapp::CanvasInterface> canvas_interface_;
Glib::RefPtr<Gdk::Pixbuf> layer_icon;
etl::loose_handle<synfigapp::CanvasInterface> canvas_interface_;
Glib::RefPtr<Gdk::Pixbuf> layer_icon;
bool find_prev_layer_row(const synfig::Layer::Handle &handle, Gtk::TreeModel::Children::iterator &iter);
bool find_prev_layer_row(const synfig::Layer::Handle &handle, Gtk::TreeModel::Children::iterator &iter);
+ void queue_rebuild();
+
void rebuild();
void refresh();
void rebuild();
void refresh();