Author: mhutch
Date: 2007-09-12 06:48:34 -0400 (Wed, 12 Sep 2007)
New Revision: 85676

Modified:
   trunk/monodevelop/Extras/AspNetAddIn/ChangeLog
   trunk/monodevelop/Extras/AspNetAddIn/Gui/XspOptionsPanelWidget.cs
   trunk/monodevelop/Extras/AspNetAddIn/Project/AspNetAppProject.cs
   
trunk/monodevelop/Extras/AspNetAddIn/gtk-gui/AspNetAddIn.XspOptionsPanelWidget.cs
   trunk/monodevelop/Extras/AspNetAddIn/gtk-gui/gui.stetic
Log:
* Gui/XspOptionsPanelWidget.cs,
  gtk-gui/AspNetAddIn.XspOptionsPanelWidget.cs, gtk-gui/gui.stetic:
  Fix bugs from stetic conversion: panel status update handler and
  permissible port range setting.
* Project/AspNetAppProject.cs: Restructure execution code to handle
  errors better and make it possible to set MONO_OPTIONS="--debug"
  when calling xsp.

Modified: trunk/monodevelop/Extras/AspNetAddIn/ChangeLog
===================================================================
--- trunk/monodevelop/Extras/AspNetAddIn/ChangeLog      2007-09-12 10:42:31 UTC 
(rev 85675)
+++ trunk/monodevelop/Extras/AspNetAddIn/ChangeLog      2007-09-12 10:48:34 UTC 
(rev 85676)
@@ -1,3 +1,13 @@
+2007-09-12  Michael Hutchinson <[EMAIL PROTECTED]> 
+
+       * Gui/XspOptionsPanelWidget.cs,
+         gtk-gui/AspNetAddIn.XspOptionsPanelWidget.cs, gtk-gui/gui.stetic: Fix
+         bugs from stetic conversion: panel status update handler and 
permissible
+         port range setting.
+       * Project/AspNetAppProject.cs: Restructure execution code to handle 
errors
+         better and make it possible to set MONO_OPTIONS="--debug" when calling
+         xsp.
+
 2007-09-11  Michael Hutchinson <[EMAIL PROTECTED]> 
 
        * Gui/XspOptionsPanel.cs, Gui/XspOptionsPanelWidget.cs, 
AspNetAddIn.glade,

Modified: trunk/monodevelop/Extras/AspNetAddIn/Gui/XspOptionsPanelWidget.cs
===================================================================
--- trunk/monodevelop/Extras/AspNetAddIn/Gui/XspOptionsPanelWidget.cs   
2007-09-12 10:42:31 UTC (rev 85675)
+++ trunk/monodevelop/Extras/AspNetAddIn/Gui/XspOptionsPanelWidget.cs   
2007-09-12 10:48:34 UTC (rev 85676)
@@ -67,6 +67,9 @@
                        passwordOptions.AppendText (GettextCatalog.GetString 
("Ask"));
                        passwordOptions.AppendText (GettextCatalog.GetString 
("Store (insecure)"));
                        
+                       //set to valid port range
+                       portNumber.SetRange (0, UInt16.MaxValue);
+                       
                        //load all options
                        ipAddress.Text = xPar.Address;
                        portNumber.Value = xPar.Port;
@@ -86,7 +89,7 @@
                        XspParameters xPar = project.XspParameters;
                        
                        xPar.Address = ipAddress.Text;
-                       xPar.Port = System.Convert.ToInt16 (portNumber.Value);
+                       xPar.Port = System.Convert.ToUInt16 (portNumber.Value);
                        xPar.Verbose = verboseCheck.Active;
                        xPar.SslMode = (XspSslMode) sslMode.Active;
                        xPar.SslProtocol = (XspSslProtocol) sslProtocol.Active;

Modified: trunk/monodevelop/Extras/AspNetAddIn/Project/AspNetAppProject.cs
===================================================================
--- trunk/monodevelop/Extras/AspNetAddIn/Project/AspNetAppProject.cs    
2007-09-12 10:42:31 UTC (rev 85675)
+++ trunk/monodevelop/Extras/AspNetAddIn/Project/AspNetAppProject.cs    
2007-09-12 10:48:34 UTC (rev 85676)
@@ -174,46 +174,69 @@
                
                #region build/prebuild/execute
                
-               protected override void DoExecute (IProgressMonitor monitor, 
ExecutionContext context)
+               IProcessAsyncOperation StartXsp (IProgressMonitor monitor, 
ExecutionContext context, IConsole console)
                {
-                       CopyReferencesToOutputPath (true);
-                       
                        AspNetAppProjectConfiguration configuration = 
(AspNetAppProjectConfiguration) ActiveConfiguration;
-                       monitor.Log.WriteLine ("Running " + 
configuration.CompiledOutputName + " ...");
                        
-                       IConsole console;
-                       if (configuration.ExternalConsole)
-                               console = 
context.ExternalConsoleFactory.CreateConsole 
(!configuration.PauseConsoleOutput);
-                       else
-                               console = context.ConsoleFactory.CreateConsole 
(!configuration.PauseConsoleOutput);
+                       string xsp = (configuration.ClrVersion == 
ClrVersion.Net_1_1)? "xsp" : "xsp2";
+                       string xspOptions = XspParameters.GetXspParameters ();
                        
-                       AggregatedOperationMonitor operationMonitor = new 
AggregatedOperationMonitor (monitor);
+                       IExecutionHandler handler = 
context.ExecutionHandlerFactory.CreateExecutionHandler ("Native");
+                       if (handler == null)
+                               throw new Exception ("Could not obtain platform 
handler.");
                        
-                       string xsp = (configuration.ClrVersion == 
ClrVersion.Net_1_1)? "xsp" : "xsp2";
-                       string xspOptions = this.XspParameters.GetXspParameters 
();
-                       string url = String.Format ("http://{0}:{1}";, 
this.XspParameters.Address, this.XspParameters.Port);
+                       string exports = string.Empty;
+                       if (configuration.DebugMode)
+                               exports = string.Format ("export 
MONO_OPTIONS=\"--debug\"");
                        
+                       //construct a sh command so that we can do things like 
environment variables
+                       exports = exports.Replace ("\"", "\\\"");
+                       xspOptions = xspOptions.Replace ("\"", "\\\"");
+                       string shOptions = string.Format ("-c \"{0}; '{1}' 
{2}\"", exports, xsp, xspOptions);
+                       
                        try {
-                               IExecutionHandler handler = 
context.ExecutionHandlerFactory.CreateExecutionHandler ("Native");
-                               if (handler == null) {
-                                       monitor.ReportError ("Error launching 
web server: cannot obtain platform handler.", null);
-                                       return;
-                               }
+                               return handler.Execute ("sh", shOptions, 
configuration.SourceDirectory, console);
+                       } catch (Exception ex) {
+                               throw new Exception ("Could not execute 'sh " + 
shOptions + "'.", ex);
+                       }
+               }
+               
+               protected override void DoExecute (IProgressMonitor monitor, 
ExecutionContext context)
+               {
+                       CopyReferencesToOutputPath (true);
+                       
+                       IConsole console = null;
+                       AggregatedOperationMonitor operationMonitor = new 
AggregatedOperationMonitor (monitor);
+                       AspNetAppProjectConfiguration configuration = 
(AspNetAppProjectConfiguration) ActiveConfiguration;
+                       
+                       try {
                                
-                               IProcessAsyncOperation op = handler.Execute 
(xsp, xspOptions, configuration.SourceDirectory, console);
+                               if (configuration.ExternalConsole)
+                                       console = 
context.ExternalConsoleFactory.CreateConsole 
(!configuration.PauseConsoleOutput);
+                               else
+                                       console = 
context.ConsoleFactory.CreateConsole (!configuration.PauseConsoleOutput);
+                       
+                               monitor.Log.WriteLine ("Running web server...");
+                               
+                               IProcessAsyncOperation op = StartXsp (monitor, 
context, console);
                                monitor.CancelRequested += delegate {op.Cancel 
();};
                                operationMonitor.AddOperation (op);
                                
+                               //launch a separate thread to detect te running 
server and launch a web browser
                                System.Threading.Thread t = new 
System.Threading.Thread (new System.Threading.ParameterizedThreadStart 
(LaunchWebBrowser));
-                               t.Start (url);
+                               op.Completed += delegate (IAsyncOperation 
dummy) {t.Abort ();};
+                               string url = String.Format ("http://{0}:{1}";, 
this.XspParameters.Address, this.XspParameters.Port);
+                               if (!op.IsCompleted)
+                                       t.Start (url);
                                
                                op.WaitForCompleted ();
                                monitor.Log.WriteLine ("The web server exited 
with code: {0}", op.ExitCode);
                        } catch (Exception ex) {
-                               monitor.ReportError ("Error launching web 
server: cannot execute \"" + xsp + "\".", ex);
+                               monitor.ReportError ("Could not launch web 
server.", ex);
                        } finally {
                                operationMonitor.Dispose ();
-                               console.Dispose ();
+                               if (console != null)
+                                       console.Dispose ();
                        }
                }
                
@@ -299,49 +322,51 @@
                //confirm we can connect to server before opening browser; wait 
up to ten seconds
                private static void LaunchWebBrowser (object o)
                {
-                       string url = (string) o;
-                       
-                       //wait a bit for server to start
-                       System.Threading.Thread.Sleep (2000);
-                       
-                       //try to contact web server several times, because 
server may take a while to start
-                       int noOfRequests = 5;
-                       int timeout = 8000; //ms
-                       int wait = 1000; //ms
-                       
-                       for (int i = 0; i < noOfRequests; i++) {
-                               System.Net.WebRequest req = null;
-                               System.Net.WebResponse resp = null;
+                       try {
+                               string url = (string) o;
                                
-                               try {
-                                       req = System.Net.HttpWebRequest.Create 
(url);
-                                       req.Timeout = timeout;
-                                       resp = req.GetResponse ();
-                               } catch (System.Net.WebException exp) {
+                               //wait a bit for server to start
+                               System.Threading.Thread.Sleep (2000);
+                               
+                               //try to contact web server several times, 
because server may take a while to start
+                               int noOfRequests = 5;
+                               int timeout = 8000; //ms
+                               int wait = 1000; //ms
+                               
+                               for (int i = 0; i < noOfRequests; i++) {
+                                       System.Net.WebRequest req = null;
+                                       System.Net.WebResponse resp = null;
                                        
-                                       // server has returned 404, 500 etc, 
which user will still want to see
-                                       if (exp.Status == 
System.Net.WebExceptionStatus.ProtocolError) {
-                                               resp = exp.Response;
+                                       try {
+                                               req = 
System.Net.HttpWebRequest.Create (url);
+                                               req.Timeout = timeout;
+                                               resp = req.GetResponse ();
+                                       } catch (System.Net.WebException exp) {
                                                
-                                       //last request has failed so show user 
the error
-                                       } else if (i >= (noOfRequests - 1)) {
-                                               string message = 
GettextCatalog.GetString ("Could not connect to webserver {0}", url);
-                                               
MonoDevelop.Ide.Gui.IdeApp.Services.MessageService.ShowError (exp, message);
-                                               
-                                       //we still have requests to go, so 
cancel the current one and sleep for a bit
-                                       } else {
-                                               req.Abort ();
-                                               System.Threading.Thread.Sleep 
(wait);
-                                               continue;
+                                               // server has returned 404, 500 
etc, which user will still want to see
+                                               if (exp.Status == 
System.Net.WebExceptionStatus.ProtocolError) {
+                                                       resp = exp.Response;
+                                                       
+                                               //last request has failed so 
show user the error
+                                               } else if (i >= (noOfRequests - 
1)) {
+                                                       string message = 
GettextCatalog.GetString ("Could not connect to webserver {0}", url);
+                                                       
MonoDevelop.Ide.Gui.IdeApp.Services.MessageService.ShowError (exp, message);
+                                                       
+                                               //we still have requests to go, 
so cancel the current one and sleep for a bit
+                                               } else {
+                                                       req.Abort ();
+                                                       
System.Threading.Thread.Sleep (wait);
+                                                       continue;
+                                               }
                                        }
+                               
+                                       if (resp != null) {
+                                               //TODO: a choice of browsers
+                                               Gnome.Url.Show (url);
+                                               break;
+                                       }
                                }
-                       
-                               if (resp != null) {
-                                       //TODO: a choice of browsers
-                                       Gnome.Url.Show (url);
-                                       break;
-                               }
-                       }
+                       } catch (System.Threading.ThreadAbortException) {}
                }
                
                #endregion

Modified: 
trunk/monodevelop/Extras/AspNetAddIn/gtk-gui/AspNetAddIn.XspOptionsPanelWidget.cs
===================================================================
--- 
trunk/monodevelop/Extras/AspNetAddIn/gtk-gui/AspNetAddIn.XspOptionsPanelWidget.cs
   2007-09-12 10:42:31 UTC (rev 85675)
+++ 
trunk/monodevelop/Extras/AspNetAddIn/gtk-gui/AspNetAddIn.XspOptionsPanelWidget.cs
   2007-09-12 10:48:34 UTC (rev 85676)
@@ -428,6 +428,9 @@
                 this.Child.ShowAll();
             }
             this.Show();
+            this.sslProtocol.Changed += new 
System.EventHandler(this.updateSensitivity);
+            this.sslMode.Changed += new 
System.EventHandler(this.updateSensitivity);
+            this.passwordOptions.Changed += new 
System.EventHandler(this.updateSensitivity);
             this.keyType.Changed += new 
System.EventHandler(this.updateSensitivity);
         }
     }

Modified: trunk/monodevelop/Extras/AspNetAddIn/gtk-gui/gui.stetic
===================================================================
--- trunk/monodevelop/Extras/AspNetAddIn/gtk-gui/gui.stetic     2007-09-12 
10:42:31 UTC (rev 85675)
+++ trunk/monodevelop/Extras/AspNetAddIn/gtk-gui/gui.stetic     2007-09-12 
10:48:34 UTC (rev 85676)
@@ -9,14 +9,14 @@
     <widget-library name="../../../build/bin/MonoDevelop.Ide.dll" />
     <widget-library name="../../../build/AddIns/MonoDevelop.Deployment.dll" />
   </import>
-  <widget class="Gtk.Bin" id="AspNetAddIn.AspNetConfigurationPanelWidget" 
design-size="436 300">
+  <widget class="Gtk.Bin" id="AspNetAddIn.AspNetConfigurationPanelWidget" 
undoId="70" design-size="436 300">
     <property name="MemberName" />
-    <child>
-      <widget class="Gtk.VBox" id="vbox1">
+    <child undoId="86">
+      <widget class="Gtk.VBox" id="vbox1" undoId="71">
         <property name="MemberName" />
         <property name="Spacing">6</property>
-        <child>
-          <widget class="Gtk.Label" id="label1">
+        <child undoId="73">
+          <widget class="Gtk.Label" id="label1" undoId="72">
             <property name="MemberName" />
             <property name="Xalign">0</property>
             <property name="LabelProp" translatable="yes">Code 
Generation</property>
@@ -28,12 +28,12 @@
             <property name="Fill">False</property>
           </packing>
         </child>
-        <child>
-          <widget class="Gtk.HBox" id="hbox1">
+        <child undoId="84">
+          <widget class="Gtk.HBox" id="hbox1" undoId="74">
             <property name="MemberName" />
             <property name="Spacing">6</property>
-            <child>
-              <widget class="Gtk.Label" id="label2">
+            <child undoId="76">
+              <widget class="Gtk.Label" id="label2" undoId="75">
                 <property name="MemberName" />
                 <property name="WidthRequest">18</property>
                 <property name="LabelProp" translatable="yes" />
@@ -45,12 +45,12 @@
                 <property name="Fill">False</property>
               </packing>
             </child>
-            <child>
-              <widget class="Gtk.VBox" id="vbox2">
+            <child undoId="82">
+              <widget class="Gtk.VBox" id="vbox2" undoId="77">
                 <property name="MemberName" />
                 <property name="Spacing">6</property>
-                <child>
-                  <widget class="Gtk.CheckButton" 
id="autoGenerateNonPartialCodeBehind">
+                <child undoId="79">
+                  <widget class="Gtk.CheckButton" 
id="autoGenerateNonPartialCodeBehind" undoId="78">
                     <property name="MemberName" />
                     <property name="CanFocus">True</property>
                     <property name="Label" translatable="yes">Autogenerate 
CodeBehind members for non-partial classes</property>
@@ -65,10 +65,10 @@
                     <property name="Fill">False</property>
                   </packing>
                 </child>
-                <child>
+                <child undoId="80">
                   <placeholder />
                 </child>
-                <child>
+                <child undoId="81">
                   <placeholder />
                 </child>
               </widget>
@@ -77,7 +77,7 @@
                 <property name="AutoSize">False</property>
               </packing>
             </child>
-            <child>
+            <child undoId="83">
               <placeholder />
             </child>
           </widget>
@@ -88,20 +88,20 @@
             <property name="Fill">False</property>
           </packing>
         </child>
-        <child>
+        <child undoId="85">
           <placeholder />
         </child>
       </widget>
     </child>
   </widget>
-  <widget class="Gtk.Bin" id="AspNetAddIn.XspOptionsPanelWidget" undoId="17" 
design-size="358 387">
+  <widget class="Gtk.Bin" id="AspNetAddIn.XspOptionsPanelWidget" 
design-size="358 387">
     <property name="MemberName" />
-    <child undoId="86">
-      <widget class="Gtk.VBox" id="vbox1" undoId="18">
+    <child>
+      <widget class="Gtk.VBox" id="vbox1">
         <property name="MemberName" />
         <property name="Spacing">12</property>
-        <child undoId="20">
-          <widget class="Gtk.Label" id="label1" undoId="19">
+        <child>
+          <widget class="Gtk.Label" id="label1">
             <property name="MemberName" />
             <property name="Xalign">0.01</property>
             <property name="LabelProp" translatable="yes">&lt;b&gt;General 
Options&lt;/b&gt;</property>
@@ -114,11 +114,11 @@
             <property name="Fill">False</property>
           </packing>
         </child>
-        <child undoId="38">
-          <widget class="Gtk.HBox" id="hbox2" undoId="21">
+        <child>
+          <widget class="Gtk.HBox" id="hbox2">
             <property name="MemberName" />
-            <child undoId="23">
-              <widget class="Gtk.Label" id="label4" undoId="22">
+            <child>
+              <widget class="Gtk.Label" id="label4">
                 <property name="MemberName" />
                 <property name="WidthRequest">18</property>
                 <property name="LabelProp" translatable="yes" />
@@ -130,19 +130,19 @@
                 <property name="Fill">False</property>
               </packing>
             </child>
-            <child undoId="37">
-              <widget class="Gtk.VBox" id="vbox2" undoId="24">
+            <child>
+              <widget class="Gtk.VBox" id="vbox2">
                 <property name="MemberName" />
                 <property name="Spacing">6</property>
-                <child undoId="34">
-                  <widget class="Gtk.Table" id="table2" undoId="25">
+                <child>
+                  <widget class="Gtk.Table" id="table2">
                     <property name="MemberName" />
                     <property name="NRows">2</property>
                     <property name="NColumns">2</property>
                     <property name="RowSpacing">6</property>
                     <property name="ColumnSpacing">6</property>
-                    <child undoId="27">
-                      <widget class="Gtk.Entry" id="ipAddress" undoId="26">
+                    <child>
+                      <widget class="Gtk.Entry" id="ipAddress">
                         <property name="MemberName" />
                         <property name="CanFocus">True</property>
                         <property name="IsEditable">True</property>
@@ -162,8 +162,8 @@
                         <property name="YShrink">False</property>
                       </packing>
                     </child>
-                    <child undoId="29">
-                      <widget class="Gtk.Label" id="label7" undoId="28">
+                    <child>
+                      <widget class="Gtk.Label" id="label7">
                         <property name="MemberName" />
                         <property name="Xalign">0</property>
                         <property name="LabelProp" translatable="yes">Port 
number:</property>
@@ -182,8 +182,8 @@
                         <property name="YShrink">False</property>
                       </packing>
                     </child>
-                    <child undoId="31">
-                      <widget class="Gtk.Label" id="label8" undoId="30">
+                    <child>
+                      <widget class="Gtk.Label" id="label8">
                         <property name="MemberName" />
                         <property name="Xalign">0</property>
                         <property name="LabelProp" translatable="yes">IP 
address:</property>
@@ -200,11 +200,11 @@
                         <property name="YShrink">False</property>
                       </packing>
                     </child>
-                    <child undoId="33">
-                      <widget class="Gtk.SpinButton" id="portNumber" 
undoId="32">
+                    <child>
+                      <widget class="Gtk.SpinButton" id="portNumber">
                         <property name="MemberName" />
                         <property name="CanFocus">True</property>
-                        <property name="Upper">100</property>
+                        <property name="Upper">32767</property>
                         <property name="PageIncrement">10</property>
                         <property name="StepIncrement">1</property>
                         <property name="ClimbRate">1</property>
@@ -234,8 +234,8 @@
                     <property name="Fill">False</property>
                   </packing>
                 </child>
-                <child undoId="36">
-                  <widget class="Gtk.CheckButton" id="verboseCheck" 
undoId="35">
+                <child>
+                  <widget class="Gtk.CheckButton" id="verboseCheck">
                     <property name="MemberName" />
                     <property name="CanFocus">True</property>
                     <property name="Label" translatable="yes">Verbose console 
output</property>
@@ -266,8 +266,8 @@
             <property name="Fill">False</property>
           </packing>
         </child>
-        <child undoId="40">
-          <widget class="Gtk.Label" id="label2" undoId="39">
+        <child>
+          <widget class="Gtk.Label" id="label2">
             <property name="MemberName" />
             <property name="Xalign">0.01</property>
             <property name="LabelProp" 
translatable="yes">&lt;b&gt;Security&lt;/b&gt;</property>
@@ -280,11 +280,11 @@
             <property name="Fill">False</property>
           </packing>
         </child>
-        <child undoId="54">
-          <widget class="Gtk.HBox" id="hbox3" undoId="41">
+        <child>
+          <widget class="Gtk.HBox" id="hbox3">
             <property name="MemberName" />
-            <child undoId="43">
-              <widget class="Gtk.Label" id="label5" undoId="42">
+            <child>
+              <widget class="Gtk.Label" id="label5">
                 <property name="MemberName" />
                 <property name="WidthRequest">18</property>
                 <property name="LabelProp" translatable="yes" />
@@ -296,15 +296,15 @@
                 <property name="Fill">False</property>
               </packing>
             </child>
-            <child undoId="53">
-              <widget class="Gtk.Table" id="table3" undoId="44">
+            <child>
+              <widget class="Gtk.Table" id="table3">
                 <property name="MemberName" />
                 <property name="NRows">2</property>
                 <property name="NColumns">2</property>
                 <property name="RowSpacing">6</property>
                 <property name="ColumnSpacing">6</property>
-                <child undoId="46">
-                  <widget class="Gtk.Label" id="label10" undoId="45">
+                <child>
+                  <widget class="Gtk.Label" id="label10">
                     <property name="MemberName" />
                     <property name="Xalign">0</property>
                     <property name="LabelProp" translatable="yes">SSL 
mode:</property>
@@ -321,8 +321,8 @@
                     <property name="YShrink">False</property>
                   </packing>
                 </child>
-                <child undoId="48">
-                  <widget class="Gtk.Label" id="label9" undoId="47">
+                <child>
+                  <widget class="Gtk.Label" id="label9">
                     <property name="MemberName" />
                     <property name="Xalign">0</property>
                     <property name="LabelProp" translatable="yes">SSL 
protocol:</property>
@@ -341,11 +341,12 @@
                     <property name="YShrink">False</property>
                   </packing>
                 </child>
-                <child undoId="50">
-                  <widget class="Gtk.ComboBox" id="sslMode" undoId="49">
+                <child>
+                  <widget class="Gtk.ComboBox" id="sslMode">
                     <property name="MemberName" />
                     <property name="IsTextCombo">True</property>
                     <property name="Items" translatable="yes" />
+                    <signal name="Changed" handler="updateSensitivity" />
                   </widget>
                   <packing>
                     <property name="LeftAttach">1</property>
@@ -361,11 +362,12 @@
                     <property name="YShrink">False</property>
                   </packing>
                 </child>
-                <child undoId="52">
-                  <widget class="Gtk.ComboBox" id="sslProtocol" undoId="51">
+                <child>
+                  <widget class="Gtk.ComboBox" id="sslProtocol">
                     <property name="MemberName" />
                     <property name="IsTextCombo">True</property>
                     <property name="Items" translatable="yes" />
+                    <signal name="Changed" handler="updateSensitivity" />
                   </widget>
                   <packing>
                     <property name="TopAttach">1</property>
@@ -399,8 +401,8 @@
             <property name="Fill">False</property>
           </packing>
         </child>
-        <child undoId="56">
-          <widget class="Gtk.Label" id="label3" undoId="55">
+        <child>
+          <widget class="Gtk.Label" id="label3">
             <property name="MemberName" />
             <property name="Xalign">0.01</property>
             <property name="LabelProp" translatable="yes">&lt;b&gt;SSL 
Key&lt;/b&gt;</property>
@@ -413,11 +415,11 @@
             <property name="Fill">False</property>
           </packing>
         </child>
-        <child undoId="85">
-          <widget class="Gtk.HBox" id="hbox4" undoId="57">
+        <child>
+          <widget class="Gtk.HBox" id="hbox4">
             <property name="MemberName" />
-            <child undoId="59">
-              <widget class="Gtk.Label" id="label6" undoId="58">
+            <child>
+              <widget class="Gtk.Label" id="label6">
                 <property name="MemberName" />
                 <property name="WidthRequest">18</property>
                 <property name="LabelProp" translatable="yes" />
@@ -429,15 +431,15 @@
                 <property name="Fill">False</property>
               </packing>
             </child>
-            <child undoId="84">
-              <widget class="Gtk.Table" id="table4" undoId="60">
+            <child>
+              <widget class="Gtk.Table" id="table4">
                 <property name="MemberName" />
                 <property name="NRows">4</property>
                 <property name="NColumns">2</property>
                 <property name="RowSpacing">6</property>
                 <property name="ColumnSpacing">6</property>
-                <child undoId="62">
-                  <widget class="MonoDevelop.Components.FileEntry" 
id="certLocation" undoId="61">
+                <child>
+                  <widget class="MonoDevelop.Components.FileEntry" 
id="certLocation">
                     <property name="MemberName" />
                   </widget>
                   <packing>
@@ -456,12 +458,12 @@
                     <property name="YShrink">False</property>
                   </packing>
                 </child>
-                <child undoId="67">
-                  <widget class="Gtk.HBox" id="hbox5" undoId="63">
+                <child>
+                  <widget class="Gtk.HBox" id="hbox5">
                     <property name="MemberName" />
                     <property name="Spacing">6</property>
-                    <child undoId="65">
-                      <widget class="Gtk.ComboBox" id="keyType" undoId="64">
+                    <child>
+                      <widget class="Gtk.ComboBox" id="keyType">
                         <property name="MemberName" />
                         <property name="IsTextCombo">True</property>
                         <property name="Items" translatable="yes" />
@@ -474,7 +476,7 @@
                         <property name="Fill">False</property>
                       </packing>
                     </child>
-                    <child undoId="66">
+                    <child>
                       <placeholder />
                     </child>
                   </widget>
@@ -492,15 +494,16 @@
                     <property name="YShrink">False</property>
                   </packing>
                 </child>
-                <child undoId="73">
-                  <widget class="Gtk.HBox" id="hbox6" undoId="68">
+                <child>
+                  <widget class="Gtk.HBox" id="hbox6">
                     <property name="MemberName" />
                     <property name="Spacing">6</property>
-                    <child undoId="70">
-                      <widget class="Gtk.ComboBox" id="passwordOptions" 
undoId="69">
+                    <child>
+                      <widget class="Gtk.ComboBox" id="passwordOptions">
                         <property name="MemberName" />
                         <property name="IsTextCombo">True</property>
                         <property name="Items" translatable="yes" />
+                        <signal name="Changed" handler="updateSensitivity" />
                       </widget>
                       <packing>
                         <property name="Position">0</property>
@@ -509,8 +512,8 @@
                         <property name="Fill">False</property>
                       </packing>
                     </child>
-                    <child undoId="72">
-                      <widget class="Gtk.Entry" id="passwordEntry" undoId="71">
+                    <child>
+                      <widget class="Gtk.Entry" id="passwordEntry">
                         <property name="MemberName" />
                         <property name="CanFocus">True</property>
                         <property name="IsEditable">True</property>
@@ -537,8 +540,8 @@
                     <property name="YShrink">False</property>
                   </packing>
                 </child>
-                <child undoId="75">
-                  <widget class="MonoDevelop.Components.FileEntry" 
id="keyLocation" undoId="74">
+                <child>
+                  <widget class="MonoDevelop.Components.FileEntry" 
id="keyLocation">
                     <property name="MemberName" />
                   </widget>
                   <packing>
@@ -557,8 +560,8 @@
                     <property name="YShrink">False</property>
                   </packing>
                 </child>
-                <child undoId="77">
-                  <widget class="Gtk.Label" id="label11" undoId="76">
+                <child>
+                  <widget class="Gtk.Label" id="label11">
                     <property name="MemberName" />
                     <property name="Xalign">0.01</property>
                     <property name="LabelProp" translatable="yes">Key 
type:</property>
@@ -575,8 +578,8 @@
                     <property name="YShrink">False</property>
                   </packing>
                 </child>
-                <child undoId="79">
-                  <widget class="Gtk.Label" id="label12" undoId="78">
+                <child>
+                  <widget class="Gtk.Label" id="label12">
                     <property name="MemberName" />
                     <property name="Xalign">0</property>
                     <property name="LabelProp" translatable="yes">Key 
location:</property>
@@ -595,8 +598,8 @@
                     <property name="YShrink">False</property>
                   </packing>
                 </child>
-                <child undoId="81">
-                  <widget class="Gtk.Label" id="label13" undoId="80">
+                <child>
+                  <widget class="Gtk.Label" id="label13">
                     <property name="MemberName" />
                     <property name="Xalign">0</property>
                     <property name="LabelProp" translatable="yes">Certificate 
location:</property>
@@ -615,8 +618,8 @@
                     <property name="YShrink">False</property>
                   </packing>
                 </child>
-                <child undoId="83">
-                  <widget class="Gtk.Label" id="label14" undoId="82">
+                <child>
+                  <widget class="Gtk.Label" id="label14">
                     <property name="MemberName" />
                     <property name="Xalign">0</property>
                     <property name="LabelProp" 
translatable="yes">Password:</property>

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

Reply via email to