Author: lluis
Date: 2007-05-23 05:48:19 -0400 (Wed, 23 May 2007)
New Revision: 77825

Modified:
   trunk/monodevelop/Core/src/MonoDevelop.Ide/ChangeLog
   
trunk/monodevelop/Core/src/MonoDevelop.Ide/MonoDevelop.Ide.Gui.Pads/TreeViewPad.cs
Log:
* MonoDevelop.Ide.Gui.Pads/TreeViewPad.cs: Handle exceptions thrown
  when renaming items. Fixes bug #81716.

Modified: trunk/monodevelop/Core/src/MonoDevelop.Ide/ChangeLog
===================================================================
--- trunk/monodevelop/Core/src/MonoDevelop.Ide/ChangeLog        2007-05-23 
08:44:10 UTC (rev 77824)
+++ trunk/monodevelop/Core/src/MonoDevelop.Ide/ChangeLog        2007-05-23 
09:48:19 UTC (rev 77825)
@@ -1,3 +1,8 @@
+2007-05-23  Lluis Sanchez Gual <[EMAIL PROTECTED]> 
+
+       * MonoDevelop.Ide.Gui.Pads/TreeViewPad.cs: Handle exceptions thrown
+         when renaming items. Fixes bug #81716.
+
 2007-05-22  David Makovský (Yakeen) <[EMAIL PROTECTED]> 
 
        * MonoDevelop.Ide.addin.xml: Register new stock icons.

Modified: 
trunk/monodevelop/Core/src/MonoDevelop.Ide/MonoDevelop.Ide.Gui.Pads/TreeViewPad.cs
===================================================================
--- 
trunk/monodevelop/Core/src/MonoDevelop.Ide/MonoDevelop.Ide.Gui.Pads/TreeViewPad.cs
  2007-05-23 08:44:10 UTC (rev 77824)
+++ 
trunk/monodevelop/Core/src/MonoDevelop.Ide/MonoDevelop.Ide.Gui.Pads/TreeViewPad.cs
  2007-05-23 09:48:19 UTC (rev 77825)
@@ -718,32 +718,37 @@
 
                void HandleOnEdit (object o, Gtk.EditedArgs e)
                {
-                       editingText = false;
-                       text_render.Editable = false;
-                       
-                       Gtk.TreeIter iter;
-                       if (!store.GetIterFromString (out iter, e.Path))
-                               throw new Exception("Error calculating iter for 
path " + e.Path);
+                       try {
+                               editingText = false;
+                               text_render.Editable = false;
+                               
+                               Gtk.TreeIter iter;
+                               if (!store.GetIterFromString (out iter, e.Path))
+                                       throw new Exception("Error calculating 
iter for path " + e.Path);
 
-                       if (e.NewText != null && e.NewText.Length > 0) {
-                               ITreeNavigator nav = new TreeNodeNavigator 
(this, iter);
-                               NodePosition pos = nav.CurrentPosition;
+                               if (e.NewText != null && e.NewText.Length > 0) {
+                                       ITreeNavigator nav = new 
TreeNodeNavigator (this, iter);
+                                       NodePosition pos = nav.CurrentPosition;
 
-                               NodeBuilder[] chain = (NodeBuilder[]) 
store.GetValue (iter, BuilderChainColumn);
-                               foreach (NodeBuilder b in chain) {
-                                       NodeCommandHandler handler = 
b.CommandHandler;
-                                       handler.SetCurrentNode (nav);
-                                       handler.RenameItem (e.NewText);
-                                       nav.MoveToPosition (pos);
+                                       NodeBuilder[] chain = (NodeBuilder[]) 
store.GetValue (iter, BuilderChainColumn);
+                                       foreach (NodeBuilder b in chain) {
+                                               NodeCommandHandler handler = 
b.CommandHandler;
+                                               handler.SetCurrentNode (nav);
+                                               handler.RenameItem (e.NewText);
+                                               nav.MoveToPosition (pos);
+                                       }
                                }
+                               
+                               // Get the iter again since the tree node may 
have been replaced.
+                               if (!store.GetIterFromString (out iter, e.Path))
+                                       return;
+
+                               ITreeBuilder builder = new TreeBuilder (this, 
iter);
+                               builder.Update ();
                        }
-                       
-                       // Get the iter again since the tree node may have been 
replaced.
-                       if (!store.GetIterFromString (out iter, e.Path))
-                               return;
-
-                       ITreeBuilder builder = new TreeBuilder (this, iter);
-                       builder.Update ();
+                       catch (Exception ex) {
+                               IdeApp.Services.MessageService.ShowError (ex, 
"The item could not be renamed");
+                       }
                }
                
                void HandleOnEditCancelled (object s, EventArgs args)

_______________________________________________
Mono-patches maillist  -  [email protected]
http://lists.ximian.com/mailman/listinfo/mono-patches

Reply via email to