//-------------------------------------------------------------------------------- void DbMySQLTableEditorIndexPage::set_value(const Gtk::TreeModel::iterator& iter, int column, GType type, const Glib::ValueBase& value) { bec::IndexColumnsListBE *columns_be = _be->get_indexes()->get_columns(); bec::NodeId node(_indexes_columns_model->node_for_iter(iter)); if ( node.is_valid() ) { switch ( column ) { case -2: { Glib::Value<std::string> v; v.init(value.gobj()); columns_be->set_field(node, ::bec::IndexColumnsListBE::Descending, v.get() == "ASC" ? 0 : 1); break; } case -8: { Glib::Value<bool> v; v.init(value.gobj()); columns_be->set_column_enabled(node, v.get()); recreate_order_model(); break; } } } }
//------------------------------------------------------------------------------ void ListModelWrapper::set_value_impl(const iterator& row, int column, const Glib::ValueBase& value) { if (!*_tm) return; bec::NodeId node(node_for_iter(row)); if ( node.is_valid() ) { const GType type = *(_columns.types() + column); column = _columns.ui2bec(column); if ( column < 0 ) { if ( !_fake_column_value_setter.empty() ) _fake_column_value_setter(row, column, type, value); } else { switch ( type ) { case G_TYPE_BOOLEAN: { Glib::Value<bool> v; v.init(value.gobj()); lmwdprint("LMW::set_value_impl:%s node %s, column %i, value %i\n", _name.c_str(), node.repr().c_str(), column, v.get()); (*_tm)->set_field(node, column, (ssize_t)v.get()); break; } case G_TYPE_INT: case G_TYPE_UINT: { Glib::Value<ssize_t> v; v.init(value.gobj()); lmwdprint("LMW::set_value_impl: node %s, column %i, value %i\n", node.repr().c_str(), column, v.get()); (*_tm)->set_field(node, column, v.get()); break; } case G_TYPE_FLOAT: case G_TYPE_DOUBLE: { Glib::Value<double> v; v.init(value.gobj()); (*_tm)->set_field(node, column, v.get()); break; } case G_TYPE_STRING: { Glib::Value<std::string> v; v.init(value.gobj()); (*_tm)->set_field(node, column, v.get()); lmwdprint("LMW::set_value: %s '%s'\n", _name.c_str(), v.get().c_str()); break; } default: break; } } } }
void MetaDataTreeStore::set_value_impl(const Gtk::TreeModel::iterator& iter, int column, const Glib::ValueBase& value) { if(column>=get_n_columns_vfunc()) { g_warning("MetaDataTreeStore::set_value_impl: Bad column (%d)",column); return; } if(!g_value_type_compatible(G_VALUE_TYPE(value.gobj()),get_column_type_vfunc(column))) { g_warning("MetaDataTreeStore::set_value_impl: Bad value type"); return; } if(column==model.data.index()) { Glib::Value<Glib::ustring> x; g_value_init(x.gobj(),model.data.type()); g_value_copy(value.gobj(),x.gobj()); synfig::String key((Glib::ustring)(*iter)[model.key]); synfig::String new_data(x.get()); get_canvas_interface()->set_meta_data(key,new_data); } else Gtk::TreeStore::set_value_impl(iter,column, value); }
void ChildrenTreeStore::set_value_impl(const Gtk::TreeModel::iterator& iter, int column, const Glib::ValueBase& value) { if(column>=get_n_columns_vfunc()) { g_warning("LayerTreeStore::set_value_impl: Bad column (%d)",column); return; } if(!g_value_type_compatible(G_VALUE_TYPE(value.gobj()),get_column_type_vfunc(column))) { g_warning("LayerTreeStore::set_value_impl: Bad value type"); return; } try { if(column==model.value.index()) { Glib::Value<synfig::ValueBase> x; g_value_init(x.gobj(),model.value.type()); g_value_copy(value.gobj(),x.gobj()); synfigapp::ValueDesc value_desc((*iter)[model.value_desc]); if(value_desc) { canvas_interface()->change_value(value_desc,x.get()); row_changed(get_path(*iter),*iter); } return; } else CanvasTreeStore::set_value_impl(iter,column, value); } catch(std::exception x) { g_warning("%s", x.what()); } }