Index: Extras/MonoQuery/ChangeLog =================================================================== --- Extras/MonoQuery/ChangeLog (revision 73136) +++ Extras/MonoQuery/ChangeLog (working copy) @@ -1,3 +1,8 @@ +2007-02-20 Ankit Jain + + * MonoQuery/Commands/Commands.cs (Run): Handle empty connection string. + Destroy the dialog even if an exception is thrown. + 2007-02-16 Lluis Sanchez Gual * MonoQuery/MonoQuery.addin.xml: Change add-in versions to 0.13. Index: Extras/MonoQuery/MonoQuery/Commands/Commands.cs =================================================================== --- Extras/MonoQuery/MonoQuery/Commands/Commands.cs (revision 73136) +++ Extras/MonoQuery/MonoQuery/Commands/Commands.cs (working copy) @@ -30,6 +30,7 @@ using System.Reflection; using MonoDevelop.Core.Gui; +using MonoDevelop.Ide.Gui; using MonoDevelop.Ide.Gui.Pads; using MonoDevelop.Components.Commands; using MonoDevelop.Core; @@ -58,20 +59,29 @@ protected override void Run () { ConnectionDialog dialog = new ConnectionDialog (); - int retval = dialog.Run (); - if (retval == (int) Gtk.ResponseType.Ok) { - Assembly asm = Assembly.GetAssembly (typeof (Mono.Data.Sql.DbProviderBase)); - DbProviderBase provider = (DbProviderBase) asm.CreateInstance (dialog.ConnectionType.FullName); - if (provider == null) - return; - provider.Name = dialog.ConnectionName; - provider.ConnectionString = dialog.ConnectionString; - - MonoQueryService service = (MonoQueryService) - ServiceManager.GetService (typeof (MonoQueryService)); - service.Providers.Add ( (DbProviderBase) provider); + try { + int retval = dialog.Run (); + if (retval == (int) Gtk.ResponseType.Ok) { + if (String.IsNullOrEmpty (dialog.ConnectionString)) { + IdeApp.Services.MessageService.ShowError (GettextCatalog.GetString ( + "Connection string cannot be blank.")); + return; + } + + Assembly asm = Assembly.GetAssembly (typeof (Mono.Data.Sql.DbProviderBase)); + DbProviderBase provider = (DbProviderBase) asm.CreateInstance (dialog.ConnectionType.FullName); + if (provider == null) + return; + provider.Name = dialog.ConnectionName; + provider.ConnectionString = dialog.ConnectionString; + + MonoQueryService service = (MonoQueryService) + ServiceManager.GetService (typeof (MonoQueryService)); + service.Providers.Add ( (DbProviderBase) provider); + } + } finally { + dialog.Destroy (); } - dialog.Destroy (); } } }