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"><b>General
Options</b></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"><b>Security</b></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"><b>SSL
Key</b></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