mirror of
https://github.com/mRemoteNG/mRemoteNG.git
synced 2026-02-25 19:38:37 +08:00
Merge branch 'develop' of https://github.com/mRemoteNG/mRemoteNG into develop
This commit is contained in:
@@ -2,16 +2,43 @@
|
||||
|
||||
Features/Enhancements:
|
||||
----------------------
|
||||
Added more logging/notifications options
|
||||
#429: Added Czech translation
|
||||
#799: Added option to save connections on every edit
|
||||
#798: Added button to test SQL database connections on SQL options page
|
||||
#784: Rearranged some settings in the Options pages to prevent overlap with some translations
|
||||
#704: Portable version now saves settings in application directory
|
||||
#671: Revamped UI theme system
|
||||
#611: Added multi-ssh toolbar for sending commands to many SSH clients at once
|
||||
#558: Connection tree now shows customizable icons instead of play/pause icon
|
||||
#504: Added Korean translation
|
||||
#208: Added credential repository feature
|
||||
#485: The Domain field is now visible/editable for connection with the IntApp protocol
|
||||
#468: Default connection info Panel property is now saved
|
||||
#429: Added Czech translation
|
||||
#421: When a connection file cannot be loaded, we will now prompt for how to proceed rather than always exiting.
|
||||
#338: Added option to filter connection tree when searching
|
||||
#357: Updated GeckoFX to v45.45.0.32
|
||||
#225: Added support for importing Remote Desktop Connection Manager v2.7 RDG files
|
||||
#207: Can now specify a working directory for external tools
|
||||
#197: Selecting a quick connect protocol will start a connection with that host
|
||||
#184: Improve search to include description and hostname fields
|
||||
#152: Added option "Show on Toolbar" to external tools
|
||||
Added more logging/notifications options
|
||||
|
||||
Fixes:
|
||||
------
|
||||
#747: Fixed unnecessary "PuttySessions.Watcher.StartWatching" error message
|
||||
#650: Fixed German translation typo
|
||||
#639: Fixed Italian translation typo
|
||||
#479: New connection tree nodes not starting in edit mode
|
||||
#233: Fixed crash that can occur when disconnecting from VNC server
|
||||
#195: Access to https with self-signed certificates not working
|
||||
|
||||
|
||||
General Changes:
|
||||
----------------
|
||||
Improved compatability between environments when building mRemoteNG from source
|
||||
#797: Removed duplicate translation strings
|
||||
#608: The Help -> Support Forum menu item now directs users to our Reddit community
|
||||
#493: Changed backup file name time stamp to use local system time rather than UTC
|
||||
Improved compatability between environments when building mRemoteNG from source
|
||||
|
||||
|
||||
1.75.7011 (2017-11-07):
|
||||
|
||||
@@ -19,6 +19,8 @@ github.com/dekelMP
|
||||
github.com/farosch
|
||||
Bruce (github.com/brucetp)
|
||||
Camilo Alvarez (github.com/jotatsu)
|
||||
github.com/DamianBis
|
||||
github.com/pfjason
|
||||
|
||||
|
||||
Past Contributors
|
||||
@@ -51,7 +53,7 @@ Robert Siwiec
|
||||
Hayato Iriumi
|
||||
Sebastien Thieury (github.com/SebThieu)
|
||||
Riza Emet
|
||||
Lukas Plachy
|
||||
Lukas Plachy (github.com/rheingold)
|
||||
Gyuha Shin
|
||||
Stefan (github.com/polluks)
|
||||
github.com/emazv72
|
||||
|
||||
@@ -43,21 +43,21 @@ namespace mRemoteNG.Connection
|
||||
LocalizedAttributes.LocalizedDisplayNameInheritAttribute("strPropertyNameUsername"),
|
||||
LocalizedAttributes.LocalizedDescriptionInheritAttribute("strPropertyDescriptionUsername"),
|
||||
TypeConverter(typeof(MiscTools.YesNoTypeConverter))]
|
||||
[Browsable(false)]
|
||||
[Browsable(true)]
|
||||
public bool Username { get; set; }
|
||||
|
||||
[LocalizedAttributes.LocalizedCategory("strCategoryConnection", 3),
|
||||
LocalizedAttributes.LocalizedDisplayNameInheritAttribute("strPropertyNamePassword"),
|
||||
LocalizedAttributes.LocalizedDescriptionInheritAttribute("strPropertyDescriptionPassword"),
|
||||
TypeConverter(typeof(MiscTools.YesNoTypeConverter))]
|
||||
[Browsable(false)]
|
||||
[Browsable(true)]
|
||||
public bool Password { get; set; }
|
||||
|
||||
[LocalizedAttributes.LocalizedCategory("strCategoryConnection", 3),
|
||||
LocalizedAttributes.LocalizedDisplayNameInheritAttribute("strPropertyNameDomain"),
|
||||
LocalizedAttributes.LocalizedDescriptionInheritAttribute("strPropertyDescriptionDomain"),
|
||||
TypeConverter(typeof(MiscTools.YesNoTypeConverter))]
|
||||
[Browsable(false)]
|
||||
[Browsable(true)]
|
||||
public bool Domain { get; set; }
|
||||
#endregion
|
||||
#region Protocol
|
||||
|
||||
14
mRemoteV1/Properties/Settings.Designer.cs
generated
14
mRemoteV1/Properties/Settings.Designer.cs
generated
@@ -12,7 +12,7 @@ namespace mRemoteNG {
|
||||
|
||||
|
||||
[global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()]
|
||||
[global::System.CodeDom.Compiler.GeneratedCodeAttribute("Microsoft.VisualStudio.Editors.SettingsDesigner.SettingsSingleFileGenerator", "15.3.0.0")]
|
||||
[global::System.CodeDom.Compiler.GeneratedCodeAttribute("Microsoft.VisualStudio.Editors.SettingsDesigner.SettingsSingleFileGenerator", "14.0.0.0")]
|
||||
internal sealed partial class Settings : global::System.Configuration.ApplicationSettingsBase {
|
||||
|
||||
private static Settings defaultInstance = ((Settings)(global::System.Configuration.ApplicationSettingsBase.Synchronized(new Settings())));
|
||||
@@ -2614,5 +2614,17 @@ namespace mRemoteNG {
|
||||
this["SaveConnectionsAfterEveryEdit"] = value;
|
||||
}
|
||||
}
|
||||
|
||||
[global::System.Configuration.UserScopedSettingAttribute()]
|
||||
[global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
|
||||
[global::System.Configuration.DefaultSettingValueAttribute("False")]
|
||||
public bool UseFilterSearch {
|
||||
get {
|
||||
return ((bool)(this["UseFilterSearch"]));
|
||||
}
|
||||
set {
|
||||
this["UseFilterSearch"] = value;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -650,5 +650,8 @@
|
||||
<Setting Name="SaveConnectionsAfterEveryEdit" Type="System.Boolean" Scope="User">
|
||||
<Value Profile="(Default)">True</Value>
|
||||
</Setting>
|
||||
<Setting Name="UseFilterSearch" Type="System.Boolean" Scope="User">
|
||||
<Value Profile="(Default)">False</Value>
|
||||
</Setting>
|
||||
</Settings>
|
||||
</SettingsFile>
|
||||
20
mRemoteV1/Resources/Language/Language.Designer.cs
generated
20
mRemoteV1/Resources/Language/Language.Designer.cs
generated
@@ -19,7 +19,7 @@ namespace mRemoteNG {
|
||||
// class via a tool like ResGen or Visual Studio.
|
||||
// To add or remove a member, edit your .ResX file then rerun ResGen
|
||||
// with the /str option, or rebuild your VS project.
|
||||
[global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Resources.Tools.StronglyTypedResourceBuilder", "15.0.0.0")]
|
||||
[global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Resources.Tools.StronglyTypedResourceBuilder", "4.0.0.0")]
|
||||
[global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
|
||||
[global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()]
|
||||
internal class Language {
|
||||
@@ -141,6 +141,15 @@ namespace mRemoteNG {
|
||||
}
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Looks up a localized string similar to Filter search matches in connection tree.
|
||||
/// </summary>
|
||||
internal static string FilterSearchMatchesInConnectionTree {
|
||||
get {
|
||||
return ResourceManager.GetString("FilterSearchMatchesInConnectionTree", resourceCulture);
|
||||
}
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Looks up a localized string similar to Incorrect password.
|
||||
/// </summary>
|
||||
@@ -7462,6 +7471,15 @@ namespace mRemoteNG {
|
||||
}
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Looks up a localized string similar to Test Connection.
|
||||
/// </summary>
|
||||
internal static string TestConnection {
|
||||
get {
|
||||
return ResourceManager.GetString("TestConnection", resourceCulture);
|
||||
}
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Looks up a localized string similar to Testing connection.
|
||||
/// </summary>
|
||||
|
||||
@@ -2619,4 +2619,10 @@ This page will walk you through the process of upgrading your connections file o
|
||||
<data name="SaveConnectionsAfterEveryEdit" xml:space="preserve">
|
||||
<value>Save connections after every edit</value>
|
||||
</data>
|
||||
<data name="FilterSearchMatchesInConnectionTree" xml:space="preserve">
|
||||
<value>Filter search matches in connection tree</value>
|
||||
</data>
|
||||
<data name="TestConnection" xml:space="preserve">
|
||||
<value>Test Connection</value>
|
||||
</data>
|
||||
</root>
|
||||
@@ -0,0 +1,26 @@
|
||||
using BrightIdeasSoftware;
|
||||
using mRemoteNG.Connection;
|
||||
|
||||
namespace mRemoteNG.UI.Controls
|
||||
{
|
||||
public class ConnectionTreeSearchTextFilter : IModelFilter
|
||||
{
|
||||
public string FilterText { get; set; } = "";
|
||||
|
||||
public bool Filter(object modelObject)
|
||||
{
|
||||
var objectAsConnectionInfo = modelObject as ConnectionInfo;
|
||||
if (objectAsConnectionInfo == null)
|
||||
return false;
|
||||
|
||||
var filterTextLower = FilterText.ToLowerInvariant();
|
||||
|
||||
if (objectAsConnectionInfo.Name.ToLowerInvariant().Contains(filterTextLower) ||
|
||||
objectAsConnectionInfo.Hostname.ToLowerInvariant().Contains(filterTextLower) ||
|
||||
objectAsConnectionInfo.Description.ToLowerInvariant().Contains(filterTextLower))
|
||||
return true;
|
||||
|
||||
return false;
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -50,6 +50,7 @@ namespace mRemoteNG.UI.Forms.OptionsPages
|
||||
this.pnlRdpConnectionTimeout = new System.Windows.Forms.TableLayoutPanel();
|
||||
this.tableLayoutPanel1 = new System.Windows.Forms.TableLayoutPanel();
|
||||
this.chkSaveConnectionsAfterEveryEdit = new mRemoteNG.UI.Controls.Base.NGCheckBox();
|
||||
this.chkUseFilterSearch = new mRemoteNG.UI.Controls.Base.NGCheckBox();
|
||||
((System.ComponentModel.ISupportInitialize)(this.numRDPConTimeout)).BeginInit();
|
||||
((System.ComponentModel.ISupportInitialize)(this.numRdpReconnectionCount)).BeginInit();
|
||||
((System.ComponentModel.ISupportInitialize)(this.numAutoSave)).BeginInit();
|
||||
@@ -183,7 +184,7 @@ namespace mRemoteNG.UI.Forms.OptionsPages
|
||||
this.pnlConfirmCloseConnection.Controls.Add(this.radCloseWarnMultiple);
|
||||
this.pnlConfirmCloseConnection.Controls.Add(this.radCloseWarnExit);
|
||||
this.pnlConfirmCloseConnection.Controls.Add(this.radCloseWarnNever);
|
||||
this.pnlConfirmCloseConnection.Location = new System.Drawing.Point(2, 191);
|
||||
this.pnlConfirmCloseConnection.Location = new System.Drawing.Point(3, 214);
|
||||
this.pnlConfirmCloseConnection.Name = "pnlConfirmCloseConnection";
|
||||
this.pnlConfirmCloseConnection.Size = new System.Drawing.Size(595, 137);
|
||||
this.pnlConfirmCloseConnection.TabIndex = 6;
|
||||
@@ -248,7 +249,7 @@ namespace mRemoteNG.UI.Forms.OptionsPages
|
||||
this.pnlRdpReconnectionCount.ColumnStyles.Add(new System.Windows.Forms.ColumnStyle(System.Windows.Forms.SizeType.Percent, 55F));
|
||||
this.pnlRdpReconnectionCount.Controls.Add(this.lblRdpReconnectionCount, 0, 0);
|
||||
this.pnlRdpReconnectionCount.Controls.Add(this.numRdpReconnectionCount, 1, 0);
|
||||
this.pnlRdpReconnectionCount.Location = new System.Drawing.Point(3, 95);
|
||||
this.pnlRdpReconnectionCount.Location = new System.Drawing.Point(4, 118);
|
||||
this.pnlRdpReconnectionCount.Name = "pnlRdpReconnectionCount";
|
||||
this.pnlRdpReconnectionCount.RowCount = 1;
|
||||
this.pnlRdpReconnectionCount.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Percent, 100F));
|
||||
@@ -263,7 +264,7 @@ namespace mRemoteNG.UI.Forms.OptionsPages
|
||||
this.pnlRdpConnectionTimeout.ColumnStyles.Add(new System.Windows.Forms.ColumnStyle(System.Windows.Forms.SizeType.Percent, 55F));
|
||||
this.pnlRdpConnectionTimeout.Controls.Add(this.numRDPConTimeout, 1, 0);
|
||||
this.pnlRdpConnectionTimeout.Controls.Add(this.lblRDPConTimeout, 0, 0);
|
||||
this.pnlRdpConnectionTimeout.Location = new System.Drawing.Point(3, 127);
|
||||
this.pnlRdpConnectionTimeout.Location = new System.Drawing.Point(4, 150);
|
||||
this.pnlRdpConnectionTimeout.Name = "pnlRdpConnectionTimeout";
|
||||
this.pnlRdpConnectionTimeout.RowCount = 1;
|
||||
this.pnlRdpConnectionTimeout.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Percent, 100F));
|
||||
@@ -278,11 +279,11 @@ namespace mRemoteNG.UI.Forms.OptionsPages
|
||||
this.tableLayoutPanel1.ColumnStyles.Add(new System.Windows.Forms.ColumnStyle(System.Windows.Forms.SizeType.Percent, 55F));
|
||||
this.tableLayoutPanel1.Controls.Add(this.numAutoSave, 1, 0);
|
||||
this.tableLayoutPanel1.Controls.Add(this.lblAutoSave1, 0, 0);
|
||||
this.tableLayoutPanel1.Location = new System.Drawing.Point(3, 159);
|
||||
this.tableLayoutPanel1.Location = new System.Drawing.Point(4, 182);
|
||||
this.tableLayoutPanel1.Name = "tableLayoutPanel1";
|
||||
this.tableLayoutPanel1.RowCount = 1;
|
||||
this.tableLayoutPanel1.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Percent, 100F));
|
||||
this.tableLayoutPanel1.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Absolute, 20F));
|
||||
this.tableLayoutPanel1.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Absolute, 26F));
|
||||
this.tableLayoutPanel1.Size = new System.Drawing.Size(595, 26);
|
||||
this.tableLayoutPanel1.TabIndex = 5;
|
||||
//
|
||||
@@ -297,10 +298,22 @@ namespace mRemoteNG.UI.Forms.OptionsPages
|
||||
this.chkSaveConnectionsAfterEveryEdit.Text = "Save connections after every edit";
|
||||
this.chkSaveConnectionsAfterEveryEdit.UseVisualStyleBackColor = true;
|
||||
//
|
||||
// chkUseFilterSearch
|
||||
//
|
||||
this.chkUseFilterSearch._mice = mRemoteNG.UI.Controls.Base.NGCheckBox.MouseState.HOVER;
|
||||
this.chkUseFilterSearch.AutoSize = true;
|
||||
this.chkUseFilterSearch.Location = new System.Drawing.Point(4, 95);
|
||||
this.chkUseFilterSearch.Name = "chkUseFilterSearch";
|
||||
this.chkUseFilterSearch.Size = new System.Drawing.Size(214, 17);
|
||||
this.chkUseFilterSearch.TabIndex = 8;
|
||||
this.chkUseFilterSearch.Text = "Filter search matches in connection tree";
|
||||
this.chkUseFilterSearch.UseVisualStyleBackColor = true;
|
||||
//
|
||||
// ConnectionsPage
|
||||
//
|
||||
this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F);
|
||||
this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
|
||||
this.Controls.Add(this.chkUseFilterSearch);
|
||||
this.Controls.Add(this.chkSaveConnectionsAfterEveryEdit);
|
||||
this.Controls.Add(this.tableLayoutPanel1);
|
||||
this.Controls.Add(this.pnlRdpConnectionTimeout);
|
||||
@@ -343,5 +356,6 @@ namespace mRemoteNG.UI.Forms.OptionsPages
|
||||
private System.Windows.Forms.TableLayoutPanel pnlRdpConnectionTimeout;
|
||||
private System.Windows.Forms.TableLayoutPanel tableLayoutPanel1;
|
||||
internal Controls.Base.NGCheckBox chkSaveConnectionsAfterEveryEdit;
|
||||
private Controls.Base.NGCheckBox chkUseFilterSearch;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -27,6 +27,7 @@ namespace mRemoteNG.UI.Forms.OptionsPages
|
||||
chkSingleClickOnOpenedConnectionSwitchesToIt.Text = Language.strSingleClickOnOpenConnectionSwitchesToIt;
|
||||
chkHostnameLikeDisplayName.Text = Language.strSetHostnameLikeDisplayName;
|
||||
chkSaveConnectionsAfterEveryEdit.Text = Language.SaveConnectionsAfterEveryEdit;
|
||||
chkUseFilterSearch.Text = Language.FilterSearchMatchesInConnectionTree;
|
||||
|
||||
lblRdpReconnectionCount.Text = Language.strRdpReconnectCount;
|
||||
lblRDPConTimeout.Text = Language.strRDPOverallConnectionTimeout;
|
||||
@@ -47,6 +48,7 @@ namespace mRemoteNG.UI.Forms.OptionsPages
|
||||
chkSingleClickOnOpenedConnectionSwitchesToIt.Checked = Settings.Default.SingleClickSwitchesToOpenConnection;
|
||||
chkHostnameLikeDisplayName.Checked = Settings.Default.SetHostnameLikeDisplayName;
|
||||
chkSaveConnectionsAfterEveryEdit.Checked = Settings.Default.SaveConnectionsAfterEveryEdit;
|
||||
chkUseFilterSearch.Checked = Settings.Default.UseFilterSearch;
|
||||
|
||||
numRdpReconnectionCount.Value = Convert.ToDecimal(Settings.Default.RdpReconnectionCount);
|
||||
numRDPConTimeout.Value = Convert.ToDecimal(Settings.Default.ConRDPOverallConnectionTimeout);
|
||||
@@ -75,6 +77,7 @@ namespace mRemoteNG.UI.Forms.OptionsPages
|
||||
Settings.Default.SingleClickSwitchesToOpenConnection = chkSingleClickOnOpenedConnectionSwitchesToIt.Checked;
|
||||
Settings.Default.SetHostnameLikeDisplayName = chkHostnameLikeDisplayName.Checked;
|
||||
Settings.Default.SaveConnectionsAfterEveryEdit = chkSaveConnectionsAfterEveryEdit.Checked;
|
||||
Settings.Default.UseFilterSearch = chkUseFilterSearch.Checked;
|
||||
|
||||
Settings.Default.RdpReconnectionCount = (int) numRdpReconnectionCount.Value;
|
||||
Settings.Default.ConRDPOverallConnectionTimeout = (int) numRDPConTimeout.Value;
|
||||
|
||||
@@ -36,7 +36,7 @@ namespace mRemoteNG.UI.Forms.OptionsPages
|
||||
lblSQLDatabaseName.Text = Language.strLabelSQLServerDatabaseName;
|
||||
lblSQLUsername.Text = Language.strLabelUsername;
|
||||
lblSQLPassword.Text = Language.strLabelPassword;
|
||||
btnTestConnection.Text = "Test Connection";
|
||||
btnTestConnection.Text = Language.TestConnection;
|
||||
}
|
||||
|
||||
public override void LoadSettings()
|
||||
@@ -54,6 +54,7 @@ namespace mRemoteNG.UI.Forms.OptionsPages
|
||||
public override void SaveSettings()
|
||||
{
|
||||
base.SaveSettings();
|
||||
var sqlServerWasPreviouslyEnabled = Settings.Default.UseSQLServer;
|
||||
|
||||
Settings.Default.UseSQLServer = chkUseSQLServer.Checked;
|
||||
Settings.Default.SQLHost = txtSQLServer.Text;
|
||||
@@ -61,7 +62,11 @@ namespace mRemoteNG.UI.Forms.OptionsPages
|
||||
Settings.Default.SQLUser = txtSQLUsername.Text;
|
||||
var cryptographyProvider = new LegacyRijndaelCryptographyProvider();
|
||||
Settings.Default.SQLPass = cryptographyProvider.Encrypt(txtSQLPassword.Text, Runtime.EncryptionKey);
|
||||
ReinitializeSqlUpdater();
|
||||
|
||||
if (Settings.Default.UseSQLServer)
|
||||
ReinitializeSqlUpdater();
|
||||
else if (!Settings.Default.UseSQLServer && sqlServerWasPreviouslyEnabled)
|
||||
DisableSql();
|
||||
|
||||
Settings.Default.Save();
|
||||
}
|
||||
@@ -69,18 +74,15 @@ namespace mRemoteNG.UI.Forms.OptionsPages
|
||||
private static void ReinitializeSqlUpdater()
|
||||
{
|
||||
Runtime.ConnectionsService.RemoteConnectionsSyncronizer?.Dispose();
|
||||
Runtime.ConnectionsService.RemoteConnectionsSyncronizer = new RemoteConnectionsSyncronizer(new SqlConnectionsUpdateChecker());
|
||||
Runtime.ConnectionsService.RemoteConnectionsSyncronizer.Enable();
|
||||
}
|
||||
|
||||
if (Settings.Default.UseSQLServer)
|
||||
{
|
||||
Runtime.ConnectionsService.RemoteConnectionsSyncronizer = new RemoteConnectionsSyncronizer(new SqlConnectionsUpdateChecker());
|
||||
Runtime.ConnectionsService.RemoteConnectionsSyncronizer.Enable();
|
||||
}
|
||||
else
|
||||
{
|
||||
Runtime.ConnectionsService.RemoteConnectionsSyncronizer?.Dispose();
|
||||
Runtime.ConnectionsService.RemoteConnectionsSyncronizer = null;
|
||||
Runtime.LoadConnections(true);
|
||||
}
|
||||
private void DisableSql()
|
||||
{
|
||||
Runtime.ConnectionsService.RemoteConnectionsSyncronizer?.Dispose();
|
||||
Runtime.ConnectionsService.RemoteConnectionsSyncronizer = null;
|
||||
Runtime.LoadConnections(true);
|
||||
}
|
||||
|
||||
private void chkUseSQLServer_CheckedChanged(object sender, EventArgs e)
|
||||
|
||||
@@ -19,6 +19,7 @@ namespace mRemoteNG.UI.Window
|
||||
private readonly ConnectionContextMenu _contextMenu;
|
||||
private readonly IConnectionInitiator _connectionInitiator = new ConnectionInitiator();
|
||||
private ThemeManager _themeManager;
|
||||
private readonly ConnectionTreeSearchTextFilter _connectionTreeSearchTextFilter = new ConnectionTreeSearchTextFilter();
|
||||
|
||||
public ConnectionInfo SelectedNode => olvConnections.SelectedNode;
|
||||
|
||||
@@ -42,6 +43,7 @@ namespace mRemoteNG.UI.Window
|
||||
SetMenuEventHandlers();
|
||||
SetConnectionTreeEventHandlers();
|
||||
Settings.Default.PropertyChanged += (sender, args) => SetConnectionTreeEventHandlers();
|
||||
olvConnections.ModelFilter = _connectionTreeSearchTextFilter;
|
||||
}
|
||||
|
||||
|
||||
@@ -242,9 +244,24 @@ namespace mRemoteNG.UI.Window
|
||||
|
||||
private void txtSearch_TextChanged(object sender, EventArgs e)
|
||||
{
|
||||
if (txtSearch.Text == "") return;
|
||||
olvConnections.NodeSearcher?.SearchByName(txtSearch.Text);
|
||||
JumpToNode(olvConnections.NodeSearcher?.CurrentMatch);
|
||||
if (Settings.Default.UseFilterSearch)
|
||||
{
|
||||
if (txtSearch.Text == "" || txtSearch.Text == Language.strSearchPrompt)
|
||||
{
|
||||
olvConnections.UseFiltering = false;
|
||||
olvConnections.ResetColumnFiltering();
|
||||
return;
|
||||
}
|
||||
olvConnections.UseFiltering = true;
|
||||
_connectionTreeSearchTextFilter.FilterText = txtSearch.Text;
|
||||
olvConnections.ModelFilter = _connectionTreeSearchTextFilter;
|
||||
}
|
||||
else
|
||||
{
|
||||
if (txtSearch.Text == "") return;
|
||||
olvConnections.NodeSearcher?.SearchByName(txtSearch.Text);
|
||||
JumpToNode(olvConnections.NodeSearcher?.CurrentMatch);
|
||||
}
|
||||
}
|
||||
|
||||
private void JumpToNode(ConnectionInfo connectionInfo)
|
||||
|
||||
@@ -671,6 +671,9 @@
|
||||
<setting name="SaveConnectionsAfterEveryEdit" serializeAs="String">
|
||||
<value>True</value>
|
||||
</setting>
|
||||
<setting name="UseFilterSearch" serializeAs="String">
|
||||
<value>False</value>
|
||||
</setting>
|
||||
</mRemoteNG.Settings>
|
||||
</userSettings>
|
||||
<applicationSettings>
|
||||
|
||||
@@ -381,6 +381,7 @@
|
||||
<Compile Include="UI\Controls\ConnectionTree\ConnectionTree.Designer.cs">
|
||||
<DependentUpon>ConnectionTree.cs</DependentUpon>
|
||||
</Compile>
|
||||
<Compile Include="UI\Controls\ConnectionTree\ConnectionTreeSearchTextFilter.cs" />
|
||||
<Compile Include="UI\Controls\CredentialRecordComboBox.cs">
|
||||
<SubType>Component</SubType>
|
||||
</Compile>
|
||||
|
||||
Reference in New Issue
Block a user