[Lemon-commits] [lemon_svn] hegyi: r1967 - hugo/trunk/gui

Lemon SVN svn at lemon.cs.elte.hu
Mon Nov 6 20:49:08 CET 2006


Author: hegyi
Date: Tue Jun 14 18:56:37 2005
New Revision: 1967

Modified:
   hugo/trunk/gui/graph_displayer_canvas.cc
   hugo/trunk/gui/graph_displayer_canvas.h

Log:
Sorry, the previous commit was uncorrect. Erasing is now possible on edges, but on nodes not.

Modified: hugo/trunk/gui/graph_displayer_canvas.cc
==============================================================================
--- hugo/trunk/gui/graph_displayer_canvas.cc	(original)
+++ hugo/trunk/gui/graph_displayer_canvas.cc	Tue Jun 14 18:56:37 2005
@@ -622,24 +622,33 @@
 	{
 	  if(active_node!=INVALID)
 	    {
-	      EdgeIt e;
-	      g.firstOut(e,active_node);
-	      for(;e!=INVALID;g.nextOut(e))
-		{
-		  delete_item(edgesmap[e]);
-		  //edgesmap[e]->property_points().set_value(coos);
-		  //edgetextmap[e]->property_y().set_value((y1+y2)/2);
-		}
+//	      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))
+// 	      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]->get_bounds(x1, y1, x2, y2);
-		  //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);
 	    }
-	  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)
+{
+  delete(nodesmap[node_to_delete]);
+  g.erase(node_to_delete);
+}
+
+void GraphDisplayerCanvas::delete_item(EdgeIt edge_to_delete)
 {
-  //item_to_delete->hide();
-  delete(item_to_delete);
+  delete(edgesmap[edge_to_delete]);
+  g.erase(edge_to_delete);
 }
 

Modified: hugo/trunk/gui/graph_displayer_canvas.h
==============================================================================
--- hugo/trunk/gui/graph_displayer_canvas.h	(original)
+++ hugo/trunk/gui/graph_displayer_canvas.h	Tue Jun 14 18:56:37 2005
@@ -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;



More information about the Lemon-commits mailing list