projects
/
synfig.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
The recent changes to allow dragging of BLineCalcVertex ducks along the BLines they...
[synfig.git]
/
synfig-studio
/
trunk
/
src
/
gtkmm
/
layerparamtreestore.cpp
diff --git
a/synfig-studio/trunk/src/gtkmm/layerparamtreestore.cpp
b/synfig-studio/trunk/src/gtkmm/layerparamtreestore.cpp
index
fd9d191
..
90a88c0
100644
(file)
--- a/
synfig-studio/trunk/src/gtkmm/layerparamtreestore.cpp
+++ b/
synfig-studio/trunk/src/gtkmm/layerparamtreestore.cpp
@@
-6,6
+6,7
@@
**
** \legal
** Copyright (c) 2002-2005 Robert B. Quattlebaum Jr., Adrian Bentley
**
** \legal
** Copyright (c) 2002-2005 Robert B. Quattlebaum Jr., Adrian Bentley
+** Copyright (c) 2007, 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
**
** This package is free software; you can redistribute it and/or
** modify it under the terms of the GNU General Public License as
@@
-104,7
+105,9
@@
LayerParamTreeStore::~LayerParamTreeStore()
changed_connection_list.back().disconnect();
changed_connection_list.pop_back();
}
changed_connection_list.back().disconnect();
changed_connection_list.pop_back();
}
- synfig::info("LayerParamTreeStore::~LayerParamTreeStore(): Deleted");
+
+ if (getenv("SYNFIG_DEBUG_DESTRUCTORS"))
+ synfig::info("LayerParamTreeStore::~LayerParamTreeStore(): Deleted");
}
Glib::RefPtr<LayerParamTreeStore>
}
Glib::RefPtr<LayerParamTreeStore>
@@
-133,11
+136,7
@@
LayerParamTreeStore::get_value_vfunc (const Gtk::TreeModel::iterator& iter, int
Glib::Value<Glib::ustring> x;
g_value_init(x.gobj(),x.value_type());
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());
g_value_init(value.gobj(),x.value_type());
g_value_copy(x.gobj(),value.gobj());
@@
-303,7
+302,7
@@
LayerParamTreeStore::set_value_impl(const Gtk::TreeModel::iterator& iter, int co
void
LayerParamTreeStore::rebuild()
{
void
LayerParamTreeStore::rebuild()
{
- Profiler profiler("LayerParamTreeStore::rebuild()");
+
//
Profiler profiler("LayerParamTreeStore::rebuild()");
if(queued)queued=false;
clear();
layer_list=layer_tree->get_selected_layers();
if(queued)queued=false;
clear();
layer_list=layer_tree->get_selected_layers();
@@
-323,6
+322,7
@@
LayerParamTreeStore::rebuild()
struct REBUILD_HELPER
{
ParamVocab vocab;
struct REBUILD_HELPER
{
ParamVocab vocab;
+ Layer::Handle layer_0;
static ParamVocab::iterator find_param_desc(ParamVocab& vocab, const synfig::String& x)
{
static ParamVocab::iterator find_param_desc(ParamVocab& vocab, const synfig::String& x)
{
@@
-334,14
+334,17
@@
LayerParamTreeStore::rebuild()
return iter;
}
return iter;
}
- void process_vocab(
ParamVocab x
)
+ void process_vocab(
synfig::Layer::Handle layer_n
)
{
{
+ ParamVocab x = layer_n->get_param_vocab();
ParamVocab::iterator iter;
for(iter=vocab.begin();iter!=vocab.end();++iter)
{
ParamVocab::iterator iter;
for(iter=vocab.begin();iter!=vocab.end();++iter)
{
- ParamVocab::iterator iter2(find_param_desc(x,iter->get_name()));
- if(iter2==x.end())
+ String name(iter->get_name());
+ ParamVocab::iterator iter2(find_param_desc(x,name));
+ if(iter2==x.end() ||
+ layer_0->get_param(name).get_type() != layer_n->get_param(name).get_type())
{
// remove it and start over
vocab.erase(iter);
{
// remove it and start over
vocab.erase(iter);
@@
-358,10
+361,11
@@
LayerParamTreeStore::rebuild()
{
LayerList::iterator iter(layer_list.begin());
rebuild_helper.vocab=(*iter)->get_param_vocab();
{
LayerList::iterator iter(layer_list.begin());
rebuild_helper.vocab=(*iter)->get_param_vocab();
+ rebuild_helper.layer_0=*iter;
for(++iter;iter!=layer_list.end();++iter)
{
for(++iter;iter!=layer_list.end();++iter)
{
- rebuild_helper.process_vocab(
(*iter)->get_param_vocab()
);
+ rebuild_helper.process_vocab(
*iter
);
changed_connection_list.push_back(
(*iter)->signal_changed().connect(
sigc::mem_fun(
changed_connection_list.push_back(
(*iter)->signal_changed().connect(
sigc::mem_fun(
@@
-427,7
+431,8
@@
LayerParamTreeStore::rebuild()
if(value!=((*iter2)->get_param(iter->get_name())))
{
row[model.is_inconsistent] = true;
if(value!=((*iter2)->get_param(iter->get_name())))
{
row[model.is_inconsistent] = true;
- while(!row.children().empty() && erase(row.children().begin()));
+ while(!row.children().empty() && erase(row.children().begin()))
+ ;
break;
}
}
break;
}
}
@@
-498,7
+503,8
@@
LayerParamTreeStore::refresh_row(Gtk::TreeModel::Row &row)
if(value!=((*iter2)->get_param(param_desc.get_name())))
{
row[model.is_inconsistent] = true;
if(value!=((*iter2)->get_param(param_desc.get_name())))
{
row[model.is_inconsistent] = true;
- while(!row.children().empty() && erase(row.children().begin()));
+ while(!row.children().empty() && erase(row.children().begin()))
+ ;
return;
}
}
return;
}
}
@@
-516,19
+522,20
@@
void
LayerParamTreeStore::set_row(Gtk::TreeRow row,synfigapp::ValueDesc value_desc)
{
Gtk::TreeModel::Children children = row.children();
LayerParamTreeStore::set_row(Gtk::TreeRow row,synfigapp::ValueDesc value_desc)
{
Gtk::TreeModel::Children children = row.children();
- while(!children.empty() && erase(children.begin()));
+ while(!children.empty() && erase(children.begin()))
+ ;
CanvasTreeStore::set_row(row,value_desc);
}
void
CanvasTreeStore::set_row(row,value_desc);
}
void
-LayerParamTreeStore::on_value_node_added(ValueNode::Handle /*value_node*/)
+LayerParamTreeStore::on_value_node_added(
synfig::
ValueNode::Handle /*value_node*/)
{
// queue_refresh();
}
void
{
// queue_refresh();
}
void
-LayerParamTreeStore::on_value_node_deleted(
etl::handle<ValueNode>
/*value_node*/)
+LayerParamTreeStore::on_value_node_deleted(
synfig::ValueNode::Handle
/*value_node*/)
{
// queue_refresh();
}
{
// queue_refresh();
}
@@
-546,7
+553,7
@@
LayerParamTreeStore::on_value_node_child_removed(synfig::ValueNode::Handle /*val
}
void
}
void
-LayerParamTreeStore::on_value_node_changed(
etl::handle<ValueNode>
/*value_node*/)
+LayerParamTreeStore::on_value_node_changed(
synfig::ValueNode::Handle
/*value_node*/)
{
queue_refresh();
}
{
queue_refresh();
}