modify "auto reconnect" to really auto-reconnect

The auto-reconnect does not automatically reconnect but instead displays a reconnect dialog. A second Options checkbox is added to allow true auto-reconnect.
This commit is contained in:
BlueBlock
2023-02-09 13:41:31 -05:00
parent fc757b236f
commit 0ac39af404
14 changed files with 244 additions and 269 deletions

View File

@@ -41,7 +41,6 @@ namespace mRemoteNG.Config.Settings
Properties.App.Default.FirstStart = false;
Properties.App.Default.ResetPanels = false;
Properties.App.Default.ResetToolbars = false;
Properties.Settings.Default.NoReconnect = false;
SaveExternalAppsToolbarLocation(externalToolsToolStrip);
SaveQuickConnectToolbarLocation(quickConnectToolStrip);

View File

@@ -247,7 +247,7 @@
<value>Check failed!</value>
</data>
<data name="CheckboxAutomaticReconnect" xml:space="preserve">
<value>Automatically try to reconnect when disconnected from server (RDP &amp;&amp; ICA only)</value>
<value>Display reconnection dialog when disconnected from server (RDP &amp;&amp; ICA only)</value>
</data>
<data name="CheckboxDoNotShowThisMessageAgain" xml:space="preserve">
<value>Do not show this message again.</value>
@@ -1367,7 +1367,7 @@ If you run into such an error, please create a new connection file!</value>
<value>Couldn't create RDP control, please check mRemoteNG requirements.</value>
</data>
<data name="DisableCursorBlinking" xml:space="preserve">
<value>Disable Cursor blinking</value>
<value>Disable Cursor Blinking</value>
</data>
<data name="DisableCursorShadow" xml:space="preserve">
<value>Disable Cursor Shadow</value>
@@ -2313,4 +2313,7 @@ Nightly Channel includes Alphas, Betas &amp; Release Candidates.</value>
<data name="UseExternalCredentialProvider" xml:space="preserve">
<value>Use External Credential Provider</value>
</data>
<data name="CheckboxNoReconnect" xml:space="preserve">
<value>Automatically try to reconnect when disconnected from server (RDP &amp;&amp; ICA only)</value>
</data>
</root>

View File

@@ -12,7 +12,7 @@ namespace mRemoteNG.Properties {
[global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()]
[global::System.CodeDom.Compiler.GeneratedCodeAttribute("Microsoft.VisualStudio.Editors.SettingsDesigner.SettingsSingleFileGenerator", "17.1.0.0")]
[global::System.CodeDom.Compiler.GeneratedCodeAttribute("Microsoft.VisualStudio.Editors.SettingsDesigner.SettingsSingleFileGenerator", "17.4.0.0")]
internal sealed partial class App : global::System.Configuration.ApplicationSettingsBase {
private static App defaultInstance = ((App)(global::System.Configuration.ApplicationSettingsBase.Synchronized(new App())));
@@ -143,18 +143,6 @@ namespace mRemoteNG.Properties {
}
}
[global::System.Configuration.UserScopedSettingAttribute()]
[global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
[global::System.Configuration.DefaultSettingValueAttribute("False")]
public bool NoReconnect {
get {
return ((bool)(this["NoReconnect"]));
}
set {
this["NoReconnect"] = value;
}
}
[global::System.Configuration.UserScopedSettingAttribute()]
[global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
[global::System.Configuration.DefaultSettingValueAttribute("True")]

View File

@@ -32,9 +32,6 @@
<Setting Name="ResetToolbars" Type="System.Boolean" Scope="User">
<Value Profile="(Default)">False</Value>
</Setting>
<Setting Name="NoReconnect" Type="System.Boolean" Scope="User">
<Value Profile="(Default)">False</Value>
</Setting>
<Setting Name="DoUpgrade" Type="System.Boolean" Scope="User">
<Value Profile="(Default)">True</Value>
</Setting>

View File

@@ -12,7 +12,7 @@ namespace mRemoteNG.Properties {
[global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()]
[global::System.CodeDom.Compiler.GeneratedCodeAttribute("Microsoft.VisualStudio.Editors.SettingsDesigner.SettingsSingleFileGenerator", "17.1.0.0")]
[global::System.CodeDom.Compiler.GeneratedCodeAttribute("Microsoft.VisualStudio.Editors.SettingsDesigner.SettingsSingleFileGenerator", "17.4.0.0")]
internal sealed partial class OptionsAdvancedPage : global::System.Configuration.ApplicationSettingsBase {
private static OptionsAdvancedPage defaultInstance = ((OptionsAdvancedPage)(global::System.Configuration.ApplicationSettingsBase.Synchronized(new OptionsAdvancedPage())));
@@ -106,5 +106,17 @@ namespace mRemoteNG.Properties {
this["cbAdvancedPageInOptionMenu"] = value;
}
}
[global::System.Configuration.UserScopedSettingAttribute()]
[global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
[global::System.Configuration.DefaultSettingValueAttribute("False")]
public bool NoReconnect {
get {
return ((bool)(this["NoReconnect"]));
}
set {
this["NoReconnect"] = value;
}
}
}
}

View File

@@ -23,5 +23,8 @@
<Setting Name="cbAdvancedPageInOptionMenu" Type="System.Boolean" Scope="User">
<Value Profile="(Default)">True</Value>
</Setting>
<Setting Name="NoReconnect" Type="System.Boolean" Scope="User">
<Value Profile="(Default)">False</Value>
</Setting>
</Settings>
</SettingsFile>

View File

@@ -251,18 +251,6 @@ namespace mRemoteNG.Properties {
}
}
[global::System.Configuration.UserScopedSettingAttribute()]
[global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
[global::System.Configuration.DefaultSettingValueAttribute("False")]
public bool NoReconnect {
get {
return ((bool)(this["NoReconnect"]));
}
set {
this["NoReconnect"] = value;
}
}
[global::System.Configuration.UserScopedSettingAttribute()]
[global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
[global::System.Configuration.DefaultSettingValueAttribute("False")]

View File

@@ -59,9 +59,6 @@
<Setting Name="ConDefaultRedirectAudioCapture" Type="System.Boolean" Scope="User">
<Value Profile="(Default)">False</Value>
</Setting>
<Setting Name="NoReconnect" Type="System.Boolean" Scope="User">
<Value Profile="(Default)">False</Value>
</Setting>
<Setting Name="ExtAppsTBVisible" Type="System.Boolean" Scope="User">
<Value Profile="(Default)">False</Value>
</Setting>

View File

@@ -77,7 +77,7 @@ namespace mRemoteNG.Tools.Cmdline
if (args["noreconnect"] == null && args["norc"] == null) return;
_messageCollector.AddMessage(MessageClass.DebugMsg,
"Cmdline arg: Disabling reconnection to previously connected hosts");
Properties.App.Default.NoReconnect = true;
Properties.OptionsAdvancedPage.Default.NoReconnect = true;
}
private void ParseCustomConnectionPathArg(CmdArgumentsInterpreter args)

View File

@@ -1,5 +1,6 @@
using System;
using System.Drawing;
using Google.Protobuf;
using mRemoteNG.Resources.Language;
namespace mRemoteNG.Tools
@@ -9,6 +10,7 @@ namespace mRemoteNG.Tools
public ReconnectGroup()
{
InitializeComponent();
chkReconnectWhenReady.Checked = !Properties.OptionsAdvancedPage.Default.NoReconnect;
}
private bool _ServerReady;

View File

@@ -32,193 +32,222 @@ namespace mRemoteNG.UI.Forms.OptionsPages
[System.Diagnostics.DebuggerStepThrough()]
private void InitializeComponent()
{
this.lblMaximumPuttyWaitTime = new mRemoteNG.UI.Controls.MrngLabel();
this.chkAutomaticReconnect = new MrngCheckBox();
this.numPuttyWaitTime = new mRemoteNG.UI.Controls.MrngNumericUpDown();
this.chkUseCustomPuttyPath = new MrngCheckBox();
this.lblConfigurePuttySessions = new mRemoteNG.UI.Controls.MrngLabel();
this.numUVNCSCPort = new mRemoteNG.UI.Controls.MrngNumericUpDown();
this.txtCustomPuttyPath = new mRemoteNG.UI.Controls.MrngTextBox();
this.btnLaunchPutty = new MrngButton();
this.lblUVNCSCPort = new mRemoteNG.UI.Controls.MrngLabel();
this.lblSeconds = new mRemoteNG.UI.Controls.MrngLabel();
this.btnBrowseCustomPuttyPath = new MrngButton();
this.chkLoadBalanceInfoUseUtf8 = new MrngCheckBox();
((System.ComponentModel.ISupportInitialize)(this.numPuttyWaitTime)).BeginInit();
((System.ComponentModel.ISupportInitialize)(this.numUVNCSCPort)).BeginInit();
this.SuspendLayout();
//
// lblMaximumPuttyWaitTime
//
this.lblMaximumPuttyWaitTime.Location = new System.Drawing.Point(3, 145);
this.lblMaximumPuttyWaitTime.Name = "lblMaximumPuttyWaitTime";
this.lblMaximumPuttyWaitTime.Size = new System.Drawing.Size(364, 20);
this.lblMaximumPuttyWaitTime.TabIndex = 7;
this.lblMaximumPuttyWaitTime.Text = "Maximum PuTTY wait time:";
this.lblMaximumPuttyWaitTime.TextAlign = System.Drawing.ContentAlignment.MiddleRight;
//
// chkAutomaticReconnect
//
this.chkAutomaticReconnect._mice = MrngCheckBox.MouseState.OUT;
this.chkAutomaticReconnect.AutoSize = true;
this.chkAutomaticReconnect.Font = new System.Drawing.Font("Segoe UI", 8.25F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
this.chkAutomaticReconnect.Location = new System.Drawing.Point(3, 3);
this.chkAutomaticReconnect.Name = "chkAutomaticReconnect";
this.chkAutomaticReconnect.Size = new System.Drawing.Size(430, 17);
this.chkAutomaticReconnect.TabIndex = 1;
this.chkAutomaticReconnect.Text = "Automatically try to reconnect when disconnected from server (RDP && ICA only)";
this.chkAutomaticReconnect.UseVisualStyleBackColor = true;
//
// numPuttyWaitTime
//
this.numPuttyWaitTime.BorderStyle = System.Windows.Forms.BorderStyle.FixedSingle;
this.numPuttyWaitTime.Location = new System.Drawing.Point(373, 143);
this.numPuttyWaitTime.Maximum = new decimal(new int[] {
this.lblMaximumPuttyWaitTime = new mRemoteNG.UI.Controls.MrngLabel();
this.chkAutomaticReconnect = new mRemoteNG.UI.Controls.MrngCheckBox();
this.numPuttyWaitTime = new mRemoteNG.UI.Controls.MrngNumericUpDown();
this.chkUseCustomPuttyPath = new mRemoteNG.UI.Controls.MrngCheckBox();
this.lblConfigurePuttySessions = new mRemoteNG.UI.Controls.MrngLabel();
this.numUVNCSCPort = new mRemoteNG.UI.Controls.MrngNumericUpDown();
this.txtCustomPuttyPath = new mRemoteNG.UI.Controls.MrngTextBox();
this.btnLaunchPutty = new mRemoteNG.UI.Controls.MrngButton();
this.lblUVNCSCPort = new mRemoteNG.UI.Controls.MrngLabel();
this.lblSeconds = new mRemoteNG.UI.Controls.MrngLabel();
this.btnBrowseCustomPuttyPath = new mRemoteNG.UI.Controls.MrngButton();
this.chkLoadBalanceInfoUseUtf8 = new mRemoteNG.UI.Controls.MrngCheckBox();
this.chkNoReconnect = new mRemoteNG.UI.Controls.MrngCheckBox();
((System.ComponentModel.ISupportInitialize)(this.numPuttyWaitTime)).BeginInit();
((System.ComponentModel.ISupportInitialize)(this.numUVNCSCPort)).BeginInit();
this.SuspendLayout();
//
// lblMaximumPuttyWaitTime
//
this.lblMaximumPuttyWaitTime.Location = new System.Drawing.Point(4, 253);
this.lblMaximumPuttyWaitTime.Margin = new System.Windows.Forms.Padding(4, 0, 4, 0);
this.lblMaximumPuttyWaitTime.Name = "lblMaximumPuttyWaitTime";
this.lblMaximumPuttyWaitTime.Size = new System.Drawing.Size(546, 30);
this.lblMaximumPuttyWaitTime.TabIndex = 7;
this.lblMaximumPuttyWaitTime.Text = "Maximum PuTTY wait time:";
this.lblMaximumPuttyWaitTime.TextAlign = System.Drawing.ContentAlignment.MiddleRight;
//
// chkAutomaticReconnect
//
this.chkAutomaticReconnect._mice = mRemoteNG.UI.Controls.MrngCheckBox.MouseState.OUT;
this.chkAutomaticReconnect.AutoSize = true;
this.chkAutomaticReconnect.Font = new System.Drawing.Font("Segoe UI", 8.25F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point);
this.chkAutomaticReconnect.Location = new System.Drawing.Point(4, 4);
this.chkAutomaticReconnect.Margin = new System.Windows.Forms.Padding(4, 4, 4, 4);
this.chkAutomaticReconnect.Name = "chkAutomaticReconnect";
this.chkAutomaticReconnect.Size = new System.Drawing.Size(625, 27);
this.chkAutomaticReconnect.TabIndex = 1;
this.chkAutomaticReconnect.Text = "Display reconnection dialog when disconnected from server (RDP && ICA only)";
this.chkAutomaticReconnect.UseVisualStyleBackColor = true;
this.chkAutomaticReconnect.CheckedChanged += new System.EventHandler(this.chkAutomaticReconnect_CheckedChanged);
//
// chkNoReconnect
//
this.chkNoReconnect._mice = mRemoteNG.UI.Controls.MrngCheckBox.MouseState.OUT;
this.chkNoReconnect.AutoSize = true;
this.chkNoReconnect.Font = new System.Drawing.Font("Segoe UI", 8.25F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point);
this.chkNoReconnect.Location = new System.Drawing.Point(32, 39);
this.chkNoReconnect.Margin = new System.Windows.Forms.Padding(4);
this.chkNoReconnect.Name = "chkNoReconnect";
this.chkNoReconnect.Size = new System.Drawing.Size(645, 27);
this.chkNoReconnect.TabIndex = 11;
this.chkNoReconnect.Text = "Automatically try to reconnect when disconnected from server (RDP && ICA only)";
this.chkNoReconnect.UseVisualStyleBackColor = true;
this.chkNoReconnect.CheckedChanged += new System.EventHandler(this.chkNoReconnect_CheckedChanged);
//
// numPuttyWaitTime
//
this.numPuttyWaitTime.BorderStyle = System.Windows.Forms.BorderStyle.FixedSingle;
this.numPuttyWaitTime.Location = new System.Drawing.Point(1260, 482);
this.numPuttyWaitTime.Margin = new System.Windows.Forms.Padding(9, 9, 9, 9);
this.numPuttyWaitTime.Maximum = new decimal(new int[] {
999,
0,
0,
0});
this.numPuttyWaitTime.Name = "numPuttyWaitTime";
this.numPuttyWaitTime.Size = new System.Drawing.Size(60, 22);
this.numPuttyWaitTime.TabIndex = 7;
this.numPuttyWaitTime.Value = new decimal(new int[] {
this.numPuttyWaitTime.Name = "numPuttyWaitTime";
this.numPuttyWaitTime.Size = new System.Drawing.Size(202, 29);
this.numPuttyWaitTime.TabIndex = 7;
this.numPuttyWaitTime.Value = new decimal(new int[] {
5,
0,
0,
0});
//
// chkUseCustomPuttyPath
//
this.chkUseCustomPuttyPath._mice = MrngCheckBox.MouseState.OUT;
this.chkUseCustomPuttyPath.AutoSize = true;
this.chkUseCustomPuttyPath.Font = new System.Drawing.Font("Segoe UI", 8.25F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
this.chkUseCustomPuttyPath.Location = new System.Drawing.Point(3, 49);
this.chkUseCustomPuttyPath.Name = "chkUseCustomPuttyPath";
this.chkUseCustomPuttyPath.Size = new System.Drawing.Size(146, 17);
this.chkUseCustomPuttyPath.TabIndex = 3;
this.chkUseCustomPuttyPath.Text = "Use custom PuTTY path:";
this.chkUseCustomPuttyPath.UseVisualStyleBackColor = true;
this.chkUseCustomPuttyPath.CheckedChanged += new System.EventHandler(this.chkUseCustomPuttyPath_CheckedChanged);
//
// lblConfigurePuttySessions
//
this.lblConfigurePuttySessions.Location = new System.Drawing.Point(3, 109);
this.lblConfigurePuttySessions.Name = "lblConfigurePuttySessions";
this.lblConfigurePuttySessions.Size = new System.Drawing.Size(364, 25);
this.lblConfigurePuttySessions.TabIndex = 5;
this.lblConfigurePuttySessions.Text = "To configure PuTTY sessions click this button:";
this.lblConfigurePuttySessions.TextAlign = System.Drawing.ContentAlignment.MiddleRight;
//
// numUVNCSCPort
//
this.numUVNCSCPort.BorderStyle = System.Windows.Forms.BorderStyle.FixedSingle;
this.numUVNCSCPort.Location = new System.Drawing.Point(373, 171);
this.numUVNCSCPort.Maximum = new decimal(new int[] {
//
// chkUseCustomPuttyPath
//
this.chkUseCustomPuttyPath._mice = mRemoteNG.UI.Controls.MrngCheckBox.MouseState.OUT;
this.chkUseCustomPuttyPath.AutoSize = true;
this.chkUseCustomPuttyPath.Font = new System.Drawing.Font("Segoe UI", 8.25F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point);
this.chkUseCustomPuttyPath.Location = new System.Drawing.Point(4, 109);
this.chkUseCustomPuttyPath.Margin = new System.Windows.Forms.Padding(4, 4, 4, 4);
this.chkUseCustomPuttyPath.Name = "chkUseCustomPuttyPath";
this.chkUseCustomPuttyPath.Size = new System.Drawing.Size(221, 27);
this.chkUseCustomPuttyPath.TabIndex = 3;
this.chkUseCustomPuttyPath.Text = "Use custom PuTTY path:";
this.chkUseCustomPuttyPath.UseVisualStyleBackColor = true;
this.chkUseCustomPuttyPath.CheckedChanged += new System.EventHandler(this.chkUseCustomPuttyPath_CheckedChanged);
//
// lblConfigurePuttySessions
//
this.lblConfigurePuttySessions.Location = new System.Drawing.Point(4, 199);
this.lblConfigurePuttySessions.Margin = new System.Windows.Forms.Padding(4, 0, 4, 0);
this.lblConfigurePuttySessions.Name = "lblConfigurePuttySessions";
this.lblConfigurePuttySessions.Size = new System.Drawing.Size(546, 38);
this.lblConfigurePuttySessions.TabIndex = 5;
this.lblConfigurePuttySessions.Text = "To configure PuTTY sessions click this button:";
this.lblConfigurePuttySessions.TextAlign = System.Drawing.ContentAlignment.MiddleRight;
//
// numUVNCSCPort
//
this.numUVNCSCPort.BorderStyle = System.Windows.Forms.BorderStyle.FixedSingle;
this.numUVNCSCPort.Location = new System.Drawing.Point(1260, 576);
this.numUVNCSCPort.Margin = new System.Windows.Forms.Padding(9, 9, 9, 9);
this.numUVNCSCPort.Maximum = new decimal(new int[] {
65535,
0,
0,
0});
this.numUVNCSCPort.Name = "numUVNCSCPort";
this.numUVNCSCPort.Size = new System.Drawing.Size(60, 22);
this.numUVNCSCPort.TabIndex = 8;
this.numUVNCSCPort.Value = new decimal(new int[] {
this.numUVNCSCPort.Name = "numUVNCSCPort";
this.numUVNCSCPort.Size = new System.Drawing.Size(202, 29);
this.numUVNCSCPort.TabIndex = 8;
this.numUVNCSCPort.Value = new decimal(new int[] {
5500,
0,
0,
0});
this.numUVNCSCPort.Visible = false;
//
// txtCustomPuttyPath
//
this.txtCustomPuttyPath.BorderStyle = System.Windows.Forms.BorderStyle.FixedSingle;
this.txtCustomPuttyPath.Enabled = false;
this.txtCustomPuttyPath.Font = new System.Drawing.Font("Segoe UI", 8.25F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
this.txtCustomPuttyPath.Location = new System.Drawing.Point(21, 72);
this.txtCustomPuttyPath.Name = "txtCustomPuttyPath";
this.txtCustomPuttyPath.Size = new System.Drawing.Size(346, 22);
this.txtCustomPuttyPath.TabIndex = 4;
this.txtCustomPuttyPath.TextChanged += new System.EventHandler(this.txtCustomPuttyPath_TextChanged);
//
// btnLaunchPutty
//
this.btnLaunchPutty._mice = MrngButton.MouseState.OUT;
this.btnLaunchPutty.Image = global::mRemoteNG.Properties.Resources.PuttyConfig;
this.btnLaunchPutty.ImageAlign = System.Drawing.ContentAlignment.MiddleLeft;
this.btnLaunchPutty.Location = new System.Drawing.Point(373, 109);
this.btnLaunchPutty.Name = "btnLaunchPutty";
this.btnLaunchPutty.Size = new System.Drawing.Size(122, 25);
this.btnLaunchPutty.TabIndex = 6;
this.btnLaunchPutty.Text = "Launch PuTTY";
this.btnLaunchPutty.TextAlign = System.Drawing.ContentAlignment.MiddleRight;
this.btnLaunchPutty.UseVisualStyleBackColor = true;
this.btnLaunchPutty.Click += new System.EventHandler(this.btnLaunchPutty_Click);
//
// lblUVNCSCPort
//
this.lblUVNCSCPort.Location = new System.Drawing.Point(3, 174);
this.lblUVNCSCPort.Name = "lblUVNCSCPort";
this.lblUVNCSCPort.Size = new System.Drawing.Size(364, 19);
this.lblUVNCSCPort.TabIndex = 10;
this.lblUVNCSCPort.Text = "UltraVNC SingleClick Listening Port:";
this.lblUVNCSCPort.TextAlign = System.Drawing.ContentAlignment.MiddleRight;
this.lblUVNCSCPort.Visible = false;
//
// lblSeconds
//
this.lblSeconds.AutoSize = true;
this.lblSeconds.Location = new System.Drawing.Point(439, 149);
this.lblSeconds.Name = "lblSeconds";
this.lblSeconds.Size = new System.Drawing.Size(49, 13);
this.lblSeconds.TabIndex = 9;
this.lblSeconds.Text = "seconds";
//
// btnBrowseCustomPuttyPath
//
this.btnBrowseCustomPuttyPath._mice = MrngButton.MouseState.OUT;
this.btnBrowseCustomPuttyPath.Enabled = false;
this.btnBrowseCustomPuttyPath.Location = new System.Drawing.Point(373, 71);
this.btnBrowseCustomPuttyPath.Name = "btnBrowseCustomPuttyPath";
this.btnBrowseCustomPuttyPath.Size = new System.Drawing.Size(122, 25);
this.btnBrowseCustomPuttyPath.TabIndex = 5;
this.btnBrowseCustomPuttyPath.Text = "Browse...";
this.btnBrowseCustomPuttyPath.UseVisualStyleBackColor = true;
this.btnBrowseCustomPuttyPath.Click += new System.EventHandler(this.btnBrowseCustomPuttyPath_Click);
//
// chkLoadBalanceInfoUseUtf8
//
this.chkLoadBalanceInfoUseUtf8._mice = MrngCheckBox.MouseState.OUT;
this.chkLoadBalanceInfoUseUtf8.AutoSize = true;
this.chkLoadBalanceInfoUseUtf8.Font = new System.Drawing.Font("Segoe UI", 8.25F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
this.chkLoadBalanceInfoUseUtf8.Location = new System.Drawing.Point(3, 26);
this.chkLoadBalanceInfoUseUtf8.Name = "chkLoadBalanceInfoUseUtf8";
this.chkLoadBalanceInfoUseUtf8.Size = new System.Drawing.Size(317, 17);
this.chkLoadBalanceInfoUseUtf8.TabIndex = 2;
this.chkLoadBalanceInfoUseUtf8.Text = "Use UTF8 encoding for RDP \"Load Balance Info\" property";
this.chkLoadBalanceInfoUseUtf8.UseVisualStyleBackColor = true;
//
// AdvancedPage
//
this.AutoScaleDimensions = new System.Drawing.SizeF(96F, 96F);
this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Dpi;
this.Controls.Add(this.chkLoadBalanceInfoUseUtf8);
this.Controls.Add(this.lblMaximumPuttyWaitTime);
this.Controls.Add(this.chkAutomaticReconnect);
this.Controls.Add(this.numPuttyWaitTime);
this.Controls.Add(this.chkUseCustomPuttyPath);
this.Controls.Add(this.lblConfigurePuttySessions);
this.Controls.Add(this.numUVNCSCPort);
this.Controls.Add(this.txtCustomPuttyPath);
this.Controls.Add(this.btnLaunchPutty);
this.Controls.Add(this.lblUVNCSCPort);
this.Controls.Add(this.lblSeconds);
this.Controls.Add(this.btnBrowseCustomPuttyPath);
this.Margin = new System.Windows.Forms.Padding(4);
this.Name = "AdvancedPage";
this.Size = new System.Drawing.Size(610, 490);
((System.ComponentModel.ISupportInitialize)(this.numPuttyWaitTime)).EndInit();
((System.ComponentModel.ISupportInitialize)(this.numUVNCSCPort)).EndInit();
this.ResumeLayout(false);
this.PerformLayout();
this.numUVNCSCPort.Visible = false;
//
// txtCustomPuttyPath
//
this.txtCustomPuttyPath.BorderStyle = System.Windows.Forms.BorderStyle.FixedSingle;
this.txtCustomPuttyPath.Enabled = false;
this.txtCustomPuttyPath.Font = new System.Drawing.Font("Segoe UI", 8.25F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point);
this.txtCustomPuttyPath.Location = new System.Drawing.Point(32, 143);
this.txtCustomPuttyPath.Margin = new System.Windows.Forms.Padding(4, 4, 4, 4);
this.txtCustomPuttyPath.Name = "txtCustomPuttyPath";
this.txtCustomPuttyPath.Size = new System.Drawing.Size(518, 29);
this.txtCustomPuttyPath.TabIndex = 4;
this.txtCustomPuttyPath.TextChanged += new System.EventHandler(this.txtCustomPuttyPath_TextChanged);
//
// btnLaunchPutty
//
this.btnLaunchPutty._mice = mRemoteNG.UI.Controls.MrngButton.MouseState.OUT;
this.btnLaunchPutty.Image = global::mRemoteNG.Properties.Resources.PuttyConfig;
this.btnLaunchPutty.ImageAlign = System.Drawing.ContentAlignment.MiddleLeft;
this.btnLaunchPutty.Location = new System.Drawing.Point(560, 199);
this.btnLaunchPutty.Margin = new System.Windows.Forms.Padding(4, 4, 4, 4);
this.btnLaunchPutty.Name = "btnLaunchPutty";
this.btnLaunchPutty.Size = new System.Drawing.Size(183, 38);
this.btnLaunchPutty.TabIndex = 6;
this.btnLaunchPutty.Text = "Launch PuTTY";
this.btnLaunchPutty.TextAlign = System.Drawing.ContentAlignment.MiddleRight;
this.btnLaunchPutty.UseVisualStyleBackColor = true;
this.btnLaunchPutty.Click += new System.EventHandler(this.btnLaunchPutty_Click);
//
// lblUVNCSCPort
//
this.lblUVNCSCPort.Location = new System.Drawing.Point(4, 296);
this.lblUVNCSCPort.Margin = new System.Windows.Forms.Padding(4, 0, 4, 0);
this.lblUVNCSCPort.Name = "lblUVNCSCPort";
this.lblUVNCSCPort.Size = new System.Drawing.Size(546, 28);
this.lblUVNCSCPort.TabIndex = 10;
this.lblUVNCSCPort.Text = "UltraVNC SingleClick Listening Port:";
this.lblUVNCSCPort.TextAlign = System.Drawing.ContentAlignment.MiddleRight;
this.lblUVNCSCPort.Visible = false;
//
// lblSeconds
//
this.lblSeconds.AutoSize = true;
this.lblSeconds.Location = new System.Drawing.Point(658, 259);
this.lblSeconds.Margin = new System.Windows.Forms.Padding(4, 0, 4, 0);
this.lblSeconds.Name = "lblSeconds";
this.lblSeconds.Size = new System.Drawing.Size(71, 23);
this.lblSeconds.TabIndex = 9;
this.lblSeconds.Text = "seconds";
//
// btnBrowseCustomPuttyPath
//
this.btnBrowseCustomPuttyPath._mice = mRemoteNG.UI.Controls.MrngButton.MouseState.OUT;
this.btnBrowseCustomPuttyPath.Enabled = false;
this.btnBrowseCustomPuttyPath.Location = new System.Drawing.Point(560, 141);
this.btnBrowseCustomPuttyPath.Margin = new System.Windows.Forms.Padding(4, 4, 4, 4);
this.btnBrowseCustomPuttyPath.Name = "btnBrowseCustomPuttyPath";
this.btnBrowseCustomPuttyPath.Size = new System.Drawing.Size(183, 38);
this.btnBrowseCustomPuttyPath.TabIndex = 5;
this.btnBrowseCustomPuttyPath.Text = "Browse...";
this.btnBrowseCustomPuttyPath.UseVisualStyleBackColor = true;
this.btnBrowseCustomPuttyPath.Click += new System.EventHandler(this.btnBrowseCustomPuttyPath_Click);
//
// chkLoadBalanceInfoUseUtf8
//
this.chkLoadBalanceInfoUseUtf8._mice = mRemoteNG.UI.Controls.MrngCheckBox.MouseState.OUT;
this.chkLoadBalanceInfoUseUtf8.AutoSize = true;
this.chkLoadBalanceInfoUseUtf8.Font = new System.Drawing.Font("Segoe UI", 8.25F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point);
this.chkLoadBalanceInfoUseUtf8.Location = new System.Drawing.Point(4, 74);
this.chkLoadBalanceInfoUseUtf8.Margin = new System.Windows.Forms.Padding(4, 4, 4, 4);
this.chkLoadBalanceInfoUseUtf8.Name = "chkLoadBalanceInfoUseUtf8";
this.chkLoadBalanceInfoUseUtf8.Size = new System.Drawing.Size(471, 27);
this.chkLoadBalanceInfoUseUtf8.TabIndex = 2;
this.chkLoadBalanceInfoUseUtf8.Text = "Use UTF8 encoding for RDP \"Load Balance Info\" property";
this.chkLoadBalanceInfoUseUtf8.UseVisualStyleBackColor = true;
//
// AdvancedPage
//
this.AutoScaleDimensions = new System.Drawing.SizeF(144F, 144F);
this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Dpi;
this.Controls.Add(this.chkNoReconnect);
this.Controls.Add(this.chkLoadBalanceInfoUseUtf8);
this.Controls.Add(this.lblMaximumPuttyWaitTime);
this.Controls.Add(this.chkAutomaticReconnect);
this.Controls.Add(this.numPuttyWaitTime);
this.Controls.Add(this.chkUseCustomPuttyPath);
this.Controls.Add(this.lblConfigurePuttySessions);
this.Controls.Add(this.numUVNCSCPort);
this.Controls.Add(this.txtCustomPuttyPath);
this.Controls.Add(this.btnLaunchPutty);
this.Controls.Add(this.lblUVNCSCPort);
this.Controls.Add(this.lblSeconds);
this.Controls.Add(this.btnBrowseCustomPuttyPath);
this.Margin = new System.Windows.Forms.Padding(6, 6, 6, 6);
this.Name = "AdvancedPage";
this.Size = new System.Drawing.Size(915, 735);
((System.ComponentModel.ISupportInitialize)(this.numPuttyWaitTime)).EndInit();
((System.ComponentModel.ISupportInitialize)(this.numUVNCSCPort)).EndInit();
this.ResumeLayout(false);
this.PerformLayout();
}
internal Controls.MrngLabel lblMaximumPuttyWaitTime;
@@ -233,5 +262,6 @@ namespace mRemoteNG.UI.Forms.OptionsPages
internal Controls.MrngLabel lblSeconds;
internal MrngButton btnBrowseCustomPuttyPath;
private MrngCheckBox chkLoadBalanceInfoUseUtf8;
internal MrngCheckBox chkNoReconnect;
}
}

View File

@@ -38,6 +38,7 @@ namespace mRemoteNG.UI.Forms.OptionsPages
lblSeconds.Text = Language.Seconds;
lblMaximumPuttyWaitTime.Text = Language.PuttyTimeout;
chkAutomaticReconnect.Text = Language.CheckboxAutomaticReconnect;
//chkNoReconnect.Text = Language.;
chkLoadBalanceInfoUseUtf8.Text = Language.LoadBalanceInfoUseUtf8;
lblConfigurePuttySessions.Text = Language.PuttySessionsConfig;
btnLaunchPutty.Text = Language.ButtonLaunchPutty;
@@ -49,6 +50,9 @@ namespace mRemoteNG.UI.Forms.OptionsPages
public override void LoadSettings()
{
chkAutomaticReconnect.Checked = Properties.OptionsAdvancedPage.Default.ReconnectOnDisconnect;
chkNoReconnect.Checked = Properties.OptionsAdvancedPage.Default.NoReconnect;
chkNoReconnect.Enabled = Properties.OptionsAdvancedPage.Default.ReconnectOnDisconnect;
chkLoadBalanceInfoUseUtf8.Checked = Properties.OptionsAdvancedPage.Default.RdpLoadBalanceInfoUseUtf8;
numPuttyWaitTime.Value = Properties.OptionsAdvancedPage.Default.MaxPuttyWaitTime;
@@ -62,6 +66,7 @@ namespace mRemoteNG.UI.Forms.OptionsPages
public override void SaveSettings()
{
Properties.OptionsAdvancedPage.Default.ReconnectOnDisconnect = chkAutomaticReconnect.Checked;
Properties.OptionsAdvancedPage.Default.NoReconnect= chkNoReconnect.Checked;
Properties.OptionsAdvancedPage.Default.RdpLoadBalanceInfoUseUtf8 = chkLoadBalanceInfoUseUtf8.Checked;
var puttyPathChanged = false;
@@ -158,7 +163,18 @@ namespace mRemoteNG.UI.Forms.OptionsPages
lblConfigurePuttySessions.Enabled = exists;
btnLaunchPutty.Enabled = exists;
}
private void chkNoReconnect_CheckedChanged(object sender, EventArgs e)
{
}
private void chkAutomaticReconnect_CheckedChanged(object sender, EventArgs e)
{
chkNoReconnect.Enabled = chkAutomaticReconnect.Checked;
}
#endregion
}
}

View File

@@ -1,64 +1,4 @@
<?xml version="1.0" encoding="utf-8"?>
<root>
<!--
Microsoft ResX Schema
Version 2.0
The primary goals of this format is to allow a simple XML format
that is mostly human readable. The generation and parsing of the
various data types are done through the TypeConverter classes
associated with the data types.
Example:
... ado.net/XML headers & schema ...
<resheader name="resmimetype">text/microsoft-resx</resheader>
<resheader name="version">2.0</resheader>
<resheader name="reader">System.Resources.ResXResourceReader, System.Windows.Forms, ...</resheader>
<resheader name="writer">System.Resources.ResXResourceWriter, System.Windows.Forms, ...</resheader>
<data name="Name1"><value>this is my long string</value><comment>this is a comment</comment></data>
<data name="Color1" type="System.Drawing.Color, System.Drawing">Blue</data>
<data name="Bitmap1" mimetype="application/x-microsoft.net.object.binary.base64">
<value>[base64 mime encoded serialized .NET Framework object]</value>
</data>
<data name="Icon1" type="System.Drawing.Icon, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
<value>[base64 mime encoded string representing a byte array form of the .NET Framework object]</value>
<comment>This is a comment</comment>
</data>
There are any number of "resheader" rows that contain simple
name/value pairs.
Each data row contains a name, and value. The row also contains a
type or mimetype. Type corresponds to a .NET class that support
text/value conversion through the TypeConverter architecture.
Classes that don't support this are serialized and stored with the
mimetype set.
The mimetype is used for serialized objects, and tells the
ResXResourceReader how to depersist the object. This is currently not
extensible. For a given mimetype the value must be set accordingly:
Note - application/x-microsoft.net.object.binary.base64 is the format
that the ResXResourceWriter will generate, however the reader can
read any of the formats listed below.
mimetype: application/x-microsoft.net.object.binary.base64
value : The object must be serialized with
: System.Runtime.Serialization.Formatters.Binary.BinaryFormatter
: and then encoded with base64 encoding.
mimetype: application/x-microsoft.net.object.soap.base64
value : The object must be serialized with
: System.Runtime.Serialization.Formatters.Soap.SoapFormatter
: and then encoded with base64 encoding.
mimetype: application/x-microsoft.net.object.bytearray.base64
value : The object must be serialized into a byte array
: using a System.ComponentModel.TypeConverter
: and then encoded with base64 encoding.
-->
<root>
<xsd:schema id="root" xmlns="" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata">
<xsd:import namespace="http://www.w3.org/XML/1998/namespace" />
<xsd:element name="root" msdata:IsDataSet="true">

View File

@@ -141,7 +141,7 @@ namespace mRemoteNG.UI.Window
new RootNodeExpander()
};
if (Properties.OptionsStartupExitPage.Default.OpenConsFromLastSession && !Settings.Default.NoReconnect)
if (Properties.OptionsStartupExitPage.Default.OpenConsFromLastSession && !Properties.OptionsAdvancedPage.Default.NoReconnect)
actions.Add(new PreviousSessionOpener(Runtime.ConnectionInitiator));
ConnectionTree.PostSetupActions = actions;