X-Git-Url: https://git.pterodactylus.net/?a=blobdiff_plain;f=synfig-studio%2Ftrunk%2Fsrc%2Fgtkmm%2Fchildrentreestore.cpp;h=4561e442a6be7cf474cdb23b0e756b8a1ba556fd;hb=37600b4b217caa5e316984ec0b035c5e8f9698af;hp=73378fe1ab5bf78b15955e0de1f4c7784625dfab;hpb=3a3c4bca3a17137bec5d7960560934b91ef4146e;p=synfig.git diff --git a/synfig-studio/trunk/src/gtkmm/childrentreestore.cpp b/synfig-studio/trunk/src/gtkmm/childrentreestore.cpp index 73378fe..4561e44 100644 --- a/synfig-studio/trunk/src/gtkmm/childrentreestore.cpp +++ b/synfig-studio/trunk/src/gtkmm/childrentreestore.cpp @@ -1,20 +1,22 @@ -/* === S I N F G =========================================================== */ +/* === S Y N F I G ========================================================= */ /*! \file childrentreestore.cpp ** \brief Template File ** -** $Id: childrentreestore.cpp,v 1.1.1.1 2005/01/07 03:34:36 darco Exp $ +** $Id$ ** ** \legal -** Copyright (c) 2002 Robert B. Quattlebaum Jr. +** Copyright (c) 2002-2005 Robert B. Quattlebaum Jr., Adrian Bentley +** Copyright (c) 2007 Chris Moore ** -** This software and associated documentation -** are CONFIDENTIAL and PROPRIETARY property of -** the above-mentioned copyright holder. +** This package is free software; you can redistribute it and/or +** modify it under the terms of the GNU General Public License as +** published by the Free Software Foundation; either version 2 of +** the License, or (at your option) any later version. ** -** You may not copy, print, publish, or in any -** other way distribute this software without -** a prior written agreement with -** the copyright holder. +** This package is distributed in the hope that it will be useful, +** but WITHOUT ANY WARRANTY; without even the implied warranty of +** MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +** General Public License for more details. ** \endlegal */ /* ========================================================================= */ @@ -31,7 +33,7 @@ #include "childrentreestore.h" #include "iconcontroler.h" #include -#include +#include #include class Profiler : private etl::clock @@ -39,7 +41,7 @@ class Profiler : private etl::clock const std::string name; public: Profiler(const std::string& name):name(name) { reset(); } - ~Profiler() { float time(operator()()); sinfg::info("%s: took %f msec",name.c_str(),time*1000); } + ~Profiler() { float time(operator()()); synfig::info("%s: took %f msec",name.c_str(),time*1000); } }; #endif @@ -48,7 +50,7 @@ public: using namespace std; using namespace etl; -using namespace sinfg; +using namespace synfig; using namespace studio; /* === M A C R O S ========================================================= */ @@ -66,7 +68,7 @@ static ChildrenTreeStore::Model& ModelHack() return *model; } -ChildrenTreeStore::ChildrenTreeStore(etl::loose_handle canvas_interface_): +ChildrenTreeStore::ChildrenTreeStore(etl::loose_handle canvas_interface_): Gtk::TreeStore (ModelHack()), CanvasTreeStore (canvas_interface_) { @@ -87,7 +89,7 @@ ChildrenTreeStore::ChildrenTreeStore(etl::loose_handlesignal_value_node_replaced().connect(sigc::mem_fun(*this,&studio::ChildrenTreeStore::on_value_node_replaced)); canvas_interface()->signal_canvas_added().connect(sigc::mem_fun(*this,&studio::ChildrenTreeStore::on_canvas_added)); canvas_interface()->signal_canvas_removed().connect(sigc::mem_fun(*this,&studio::ChildrenTreeStore::on_canvas_removed)); - + rebuild(); } @@ -96,7 +98,7 @@ ChildrenTreeStore::~ChildrenTreeStore() } Glib::RefPtr -ChildrenTreeStore::create(etl::loose_handle canvas_interface_) +ChildrenTreeStore::create(etl::loose_handle canvas_interface_) { return Glib::RefPtr(new ChildrenTreeStore(canvas_interface_)); } @@ -123,13 +125,13 @@ ChildrenTreeStore::rebuild_value_nodes() Gtk::TreeModel::Children children(value_node_row.children()); while(!children.empty())erase(children.begin()); - + clear_changed_queue(); - + std::for_each( canvas_interface()->get_canvas()->value_node_list().rbegin(), canvas_interface()->get_canvas()->value_node_list().rend(), sigc::mem_fun(*this, &studio::ChildrenTreeStore::on_value_node_added) - ); + ); } void @@ -152,13 +154,13 @@ void ChildrenTreeStore::rebuild_canvases() { Gtk::TreeModel::Children children(canvas_row.children()); - + while(!children.empty())erase(children.begin()); - + std::for_each( canvas_interface()->get_canvas()->children().rbegin(), canvas_interface()->get_canvas()->children().rend(), sigc::mem_fun(*this, &studio::ChildrenTreeStore::on_canvas_added) - ); + ); } void @@ -168,10 +170,10 @@ ChildrenTreeStore::refresh_canvases() } void -ChildrenTreeStore::refresh_row(Gtk::TreeModel::Row &row, bool do_children) +ChildrenTreeStore::refresh_row(Gtk::TreeModel::Row &row, bool /*do_children*/) { CanvasTreeStore::refresh_row(row,false); - + if((bool)row[model.is_value_node]) { changed_set_.erase(row[model.value_node]); @@ -184,18 +186,18 @@ ChildrenTreeStore::on_canvas_added(Canvas::Handle canvas) { Gtk::TreeRow row = *(prepend(canvas_row.children())); - row[model.icon] = Gtk::Button().render_icon(Gtk::StockID("sinfg-canvas"),Gtk::ICON_SIZE_SMALL_TOOLBAR); + row[model.icon] = Gtk::Button().render_icon(Gtk::StockID("synfig-canvas"),Gtk::ICON_SIZE_SMALL_TOOLBAR); row[model.id] = canvas->get_id(); row[model.name] = canvas->get_name(); - + if(!canvas->get_id().empty()) row[model.label] = canvas->get_id(); else if(!canvas->get_name().empty()) - row[model.label] = canvas->get_name(); + row[model.label] = canvas->get_name(); else - row[model.label] = _("[Unnamed]"); - + row[model.label] = _("[Unnamed]"); + row[model.canvas] = canvas; row[model.type] = _("Canvas"); //row[model.is_canvas] = true; @@ -203,7 +205,7 @@ ChildrenTreeStore::on_canvas_added(Canvas::Handle canvas) } void -ChildrenTreeStore::on_canvas_removed(Canvas::Handle canvas) +ChildrenTreeStore::on_canvas_removed(Canvas::Handle /*canvas*/) { rebuild_canvases(); } @@ -215,15 +217,15 @@ ChildrenTreeStore::on_value_node_added(ValueNode::Handle value_node) // return; Gtk::TreeRow row = *prepend(value_node_row.children()); - - set_row(row,sinfgapp::ValueDesc(canvas_interface()->get_canvas(),value_node->get_id()),false); + + set_row(row,synfigapp::ValueDesc(canvas_interface()->get_canvas(),value_node->get_id()),false); } void ChildrenTreeStore::on_value_node_deleted(etl::handle value_node) { Gtk::TreeIter iter; - //int i(0); + //int i(0); if(find_first_value_node(value_node,iter)) { @@ -242,18 +244,18 @@ ChildrenTreeStore::execute_changed_value_nodes() etl::clock timer; timer.reset(); - + while(!changed_set_.empty()) { ValueNode::Handle value_node(*changed_set_.begin()); changed_set_.erase(value_node); Gtk::TreeIter iter; - + try { Gtk::TreeIter iter; - int i(0); + int i(0); if(!value_node->is_exported() && find_first_value_node(value_node,iter)) { @@ -267,13 +269,13 @@ ChildrenTreeStore::execute_changed_value_nodes() i++; refresh_row(row); }while(find_next_value_node(value_node,iter)); - + if(!i) { refresh_value_nodes(); return false; } - + } catch(...) { @@ -288,7 +290,7 @@ ChildrenTreeStore::execute_changed_value_nodes() return false; } } - + return false; } @@ -296,19 +298,19 @@ void ChildrenTreeStore::on_value_node_changed(etl::handle value_node) { - if(value_node->get_name()=="constant" || !value_node->is_exported()) + if(!value_node->is_exported()) return; changed_connection.disconnect(); // if(!execute_changed_queued()) // changed_connection=Glib::signal_idle().connect(sigc::mem_fun(*this,&ChildrenTreeStore::execute_changed_value_nodes)); changed_connection=Glib::signal_timeout().connect(sigc::mem_fun(*this,&ChildrenTreeStore::execute_changed_value_nodes),150); - + changed_set_.insert(value_node); /* try { Gtk::TreeIter iter; - int i(0); + int i(0); while(find_next_value_node(value_node,iter)) { Gtk::TreeRow row(*iter); @@ -328,13 +330,13 @@ ChildrenTreeStore::on_value_node_changed(etl::handle value_node) } void -ChildrenTreeStore::on_value_node_replaced(sinfg::ValueNode::Handle replaced_value_node,sinfg::ValueNode::Handle new_value_node) +ChildrenTreeStore::on_value_node_replaced(synfig::ValueNode::Handle replaced_value_node,synfig::ValueNode::Handle /*new_value_node*/) { changed_connection.disconnect(); //if(!execute_changed_queued()) // changed_connection=Glib::signal_idle().connect(sigc::mem_fun(*this,&ChildrenTreeStore::execute_changed_value_nodes)); changed_connection=Glib::signal_timeout().connect(sigc::mem_fun(*this,&ChildrenTreeStore::execute_changed_value_nodes),150); - + replaced_set_.insert(replaced_value_node); } @@ -357,11 +359,11 @@ ChildrenTreeStore::set_value_impl(const Gtk::TreeModel::iterator& iter, int colu { if(column==model.value.index()) { - Glib::Value x; + Glib::Value x; g_value_init(x.gobj(),model.value.type()); g_value_copy(value.gobj(),x.gobj()); - sinfgapp::ValueDesc value_desc((*iter)[model.value_desc]); + synfigapp::ValueDesc value_desc((*iter)[model.value_desc]); if(value_desc) { canvas_interface()->change_value(value_desc,x.get()); @@ -376,5 +378,5 @@ ChildrenTreeStore::set_value_impl(const Gtk::TreeModel::iterator& iter, int colu catch(std::exception x) { g_warning(x.what()); - } + } }