# HG changeset patch # User hegyi # Date 1118768197 0 # Node ID 39945305a572091f30729fff42145d4a66911d6e # Parent 0b2281cc1e32b4b0d19c76be73a326642bb7815f Sorry, the previous commit was uncorrect. Erasing is now possible on edges, but on nodes not. diff -r 0b2281cc1e32 -r 39945305a572 graph_displayer_canvas.cc --- a/graph_displayer_canvas.cc Tue Jun 14 15:58:12 2005 +0000 +++ b/graph_displayer_canvas.cc Tue Jun 14 16:56:37 2005 +0000 @@ -622,24 +622,33 @@ { if(active_node!=INVALID) { - EdgeIt e; - g.firstOut(e,active_node); - for(;e!=INVALID;g.nextOut(e)) +// EdgeIt e; +// g.firstOut(e,active_node); +// for(;e!=INVALID;g.nextOut(e)) +// { +// if(e!=INVALID)delete_item(e); +// } + +// g.firstIn(e,active_node); +// for(;e!=INVALID;g.nextIn(e)) +// { +// if(e!=INVALID)delete_item(e); +// } + for (EdgeIt i(g); i!=INVALID; ++i) { - delete_item(edgesmap[e]); - //edgesmap[e]->property_points().set_value(coos); - //edgetextmap[e]->property_y().set_value((y1+y2)/2); + //std::cout << g.source(i).id << "-" << g.target(i).id << " " << active_node.id << std::endl; + if((g.source(i)==active_node)||(g.target(i)==active_node)) + { + delete_item(i); + } } + delete_item(active_node); + } + else + { + delete_item(active_edge); + } - g.firstIn(e,active_node); - for(;e!=INVALID;g.nextIn(e)) - { - delete_item(edgesmap[e]); - //edgesmap[e]->get_bounds(x1, y1, x2, y2); - //edgetextmap[e]->property_y().set_value((y1+y2)/2); - } - } - delete_item(active_item); } else @@ -667,9 +676,15 @@ return true; } -void GraphDisplayerCanvas::delete_item(Gnome::Canvas::Item * item_to_delete) +void GraphDisplayerCanvas::delete_item(NodeIt node_to_delete) { - //item_to_delete->hide(); - delete(item_to_delete); + delete(nodesmap[node_to_delete]); + g.erase(node_to_delete); } +void GraphDisplayerCanvas::delete_item(EdgeIt edge_to_delete) +{ + delete(edgesmap[edge_to_delete]); + g.erase(edge_to_delete); +} + diff -r 0b2281cc1e32 -r 39945305a572 graph_displayer_canvas.h --- a/graph_displayer_canvas.h Tue Jun 14 15:58:12 2005 +0000 +++ b/graph_displayer_canvas.h Tue Jun 14 16:56:37 2005 +0000 @@ -69,8 +69,10 @@ ///event handler for the case when eraser-tool is active bool eraser_event_handler(GdkEvent*); - ///Deletes the given item. - void delete_item(Gnome::Canvas::Item *); + ///Deletes the given element. + void delete_item(NodeIt); + ///Deletes the given element. + void delete_item(EdgeIt); ///The graph, on which we work Graph g;