void ProjectDb_Appended(object sender, BdbArgs args)
{
Project project = args.Value as Project;
if (project == null)
return;
if (project.ParentId == 0) {
var iter = m_projectStore.AppendValues (project);
var path = m_projectStore.GetPath (iter);
m_projectsTreeView.SetCursor (path, m_projectsTreeView.Columns [0], true);
}
else {
m_projectStore.Foreach (delegate (TreeModel model, TreePath path, TreeIter iter) {
var item = (Project)model.GetValue (iter, 0);
if (item == null || item.Id < 0)
return false;;
if (item.Id == project.ParentId) {
var child = m_projectStore.AppendValues (iter, project);
var cpath = m_projectStore.GetPath (child);
Gtk.Application.Invoke (delegate {
m_projectsTreeView.Selection.SelectPath (cpath);
m_projectsTreeView.SetCursor (cpath, m_projectsTreeView.Columns [0], true);
});
return true;
}
return false;
});
}
}