mirror of
https://github.com/mRemoteNG/mRemoteNG.git
synced 2026-02-26 03:58:45 +08:00
added ability to load/unload a repo
This commit is contained in:
@@ -12,6 +12,7 @@ namespace mRemoteNG.Credential
|
||||
IList<ICredentialRecord> CredentialRecords { get; }
|
||||
void LoadCredentials();
|
||||
void SaveCredentials();
|
||||
void UnloadCredentials();
|
||||
event EventHandler RepositoryConfigUpdated;
|
||||
event EventHandler<CollectionUpdatedEventArgs<ICredentialRecord>> CredentialsUpdated;
|
||||
}
|
||||
|
||||
@@ -71,6 +71,12 @@ namespace mRemoteNG.Credential.Repositories
|
||||
return new ICredentialRecord[0];
|
||||
}
|
||||
|
||||
public void UnloadCredentials()
|
||||
{
|
||||
Config.Loaded = false;
|
||||
CredentialRecords.Clear();
|
||||
}
|
||||
|
||||
public void SaveCredentials()
|
||||
{
|
||||
if (!Config.Loaded) return;
|
||||
|
||||
@@ -41,16 +41,16 @@
|
||||
//
|
||||
this.objectListView1.AllColumns.Add(this.olvColumnTitle);
|
||||
this.objectListView1.AllColumns.Add(this.olvColumnProvider);
|
||||
this.objectListView1.AllColumns.Add(this.olvColumnSource);
|
||||
this.objectListView1.AllColumns.Add(this.olvColumnId);
|
||||
this.objectListView1.AllColumns.Add(this.olvColumnIsLoaded);
|
||||
this.objectListView1.AllColumns.Add(this.olvColumnId);
|
||||
this.objectListView1.AllColumns.Add(this.olvColumnSource);
|
||||
this.objectListView1.CellEditUseWholeCell = false;
|
||||
this.objectListView1.Columns.AddRange(new System.Windows.Forms.ColumnHeader[] {
|
||||
this.olvColumnTitle,
|
||||
this.olvColumnProvider,
|
||||
this.olvColumnSource,
|
||||
this.olvColumnIsLoaded,
|
||||
this.olvColumnId,
|
||||
this.olvColumnIsLoaded});
|
||||
this.olvColumnSource});
|
||||
this.objectListView1.CopySelectionOnControlC = false;
|
||||
this.objectListView1.CopySelectionOnControlCUsesDragSource = false;
|
||||
this.objectListView1.Cursor = System.Windows.Forms.Cursors.Default;
|
||||
@@ -84,6 +84,7 @@
|
||||
// olvColumnSource
|
||||
//
|
||||
this.olvColumnSource.AspectName = "";
|
||||
this.olvColumnSource.DisplayIndex = 2;
|
||||
this.olvColumnSource.Groupable = false;
|
||||
this.olvColumnSource.Text = "Source";
|
||||
//
|
||||
@@ -93,6 +94,7 @@
|
||||
//
|
||||
// olvColumnIsLoaded
|
||||
//
|
||||
this.olvColumnIsLoaded.DisplayIndex = 4;
|
||||
this.olvColumnIsLoaded.IsEditable = false;
|
||||
this.olvColumnIsLoaded.Text = "Loaded";
|
||||
//
|
||||
|
||||
@@ -33,6 +33,7 @@
|
||||
this.buttonRemove = new System.Windows.Forms.Button();
|
||||
this.buttonEdit = new System.Windows.Forms.Button();
|
||||
this.credentialRepositoryListView = new mRemoteNG.UI.Controls.CredentialRepositoryListView();
|
||||
this.buttonToggleLoad = new System.Windows.Forms.Button();
|
||||
this.SuspendLayout();
|
||||
//
|
||||
// buttonAdd
|
||||
@@ -40,7 +41,7 @@
|
||||
this.buttonAdd.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Right)));
|
||||
this.buttonAdd.Image = global::mRemoteNG.Resources.key_add;
|
||||
this.buttonAdd.ImageAlign = System.Drawing.ContentAlignment.MiddleLeft;
|
||||
this.buttonAdd.Location = new System.Drawing.Point(105, 269);
|
||||
this.buttonAdd.Location = new System.Drawing.Point(105, 237);
|
||||
this.buttonAdd.Name = "buttonAdd";
|
||||
this.buttonAdd.Size = new System.Drawing.Size(99, 32);
|
||||
this.buttonAdd.TabIndex = 5;
|
||||
@@ -54,7 +55,7 @@
|
||||
this.buttonRemove.Enabled = false;
|
||||
this.buttonRemove.Image = global::mRemoteNG.Resources.key_delete;
|
||||
this.buttonRemove.ImageAlign = System.Drawing.ContentAlignment.MiddleLeft;
|
||||
this.buttonRemove.Location = new System.Drawing.Point(315, 269);
|
||||
this.buttonRemove.Location = new System.Drawing.Point(315, 237);
|
||||
this.buttonRemove.Name = "buttonRemove";
|
||||
this.buttonRemove.Size = new System.Drawing.Size(99, 32);
|
||||
this.buttonRemove.TabIndex = 6;
|
||||
@@ -67,7 +68,7 @@
|
||||
this.buttonEdit.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Right)));
|
||||
this.buttonEdit.Enabled = false;
|
||||
this.buttonEdit.ImageAlign = System.Drawing.ContentAlignment.MiddleLeft;
|
||||
this.buttonEdit.Location = new System.Drawing.Point(210, 269);
|
||||
this.buttonEdit.Location = new System.Drawing.Point(210, 237);
|
||||
this.buttonEdit.Name = "buttonEdit";
|
||||
this.buttonEdit.Size = new System.Drawing.Size(99, 32);
|
||||
this.buttonEdit.TabIndex = 8;
|
||||
@@ -84,19 +85,34 @@
|
||||
this.credentialRepositoryListView.DoubleClickHandler = null;
|
||||
this.credentialRepositoryListView.Location = new System.Drawing.Point(0, 0);
|
||||
this.credentialRepositoryListView.Name = "credentialRepositoryListView";
|
||||
this.credentialRepositoryListView.Size = new System.Drawing.Size(417, 263);
|
||||
this.credentialRepositoryListView.RepositoryFilter = null;
|
||||
this.credentialRepositoryListView.Size = new System.Drawing.Size(417, 231);
|
||||
this.credentialRepositoryListView.TabIndex = 9;
|
||||
//
|
||||
// buttonToggleLoad
|
||||
//
|
||||
this.buttonToggleLoad.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Right)));
|
||||
this.buttonToggleLoad.Enabled = false;
|
||||
this.buttonToggleLoad.ImageAlign = System.Drawing.ContentAlignment.MiddleLeft;
|
||||
this.buttonToggleLoad.Location = new System.Drawing.Point(3, 237);
|
||||
this.buttonToggleLoad.Name = "buttonToggleLoad";
|
||||
this.buttonToggleLoad.Size = new System.Drawing.Size(99, 32);
|
||||
this.buttonToggleLoad.TabIndex = 10;
|
||||
this.buttonToggleLoad.Text = "Load";
|
||||
this.buttonToggleLoad.UseVisualStyleBackColor = true;
|
||||
this.buttonToggleLoad.Click += new System.EventHandler(this.buttonToggleLoad_Click);
|
||||
//
|
||||
// CredentialRepositoriesPage
|
||||
//
|
||||
this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F);
|
||||
this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
|
||||
this.Controls.Add(this.buttonToggleLoad);
|
||||
this.Controls.Add(this.credentialRepositoryListView);
|
||||
this.Controls.Add(this.buttonEdit);
|
||||
this.Controls.Add(this.buttonAdd);
|
||||
this.Controls.Add(this.buttonRemove);
|
||||
this.Name = "CredentialRepositoriesPage";
|
||||
this.Size = new System.Drawing.Size(417, 304);
|
||||
this.Size = new System.Drawing.Size(417, 272);
|
||||
this.ResumeLayout(false);
|
||||
|
||||
}
|
||||
@@ -107,5 +123,6 @@
|
||||
private System.Windows.Forms.Button buttonRemove;
|
||||
private System.Windows.Forms.Button buttonEdit;
|
||||
private Controls.CredentialRepositoryListView credentialRepositoryListView;
|
||||
private System.Windows.Forms.Button buttonToggleLoad;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -34,6 +34,8 @@ namespace mRemoteNG.UI.Forms.CredentialManagerPages
|
||||
var selectedRepository = credentialRepositoryListView.SelectedRepository;
|
||||
buttonRemove.Enabled = selectedRepository != null;
|
||||
buttonEdit.Enabled = selectedRepository != null;
|
||||
buttonToggleLoad.Enabled = selectedRepository != null;
|
||||
UpdateLoadToggleButton(selectedRepository);
|
||||
}
|
||||
|
||||
private void buttonAdd_Click(object sender, EventArgs e)
|
||||
@@ -81,5 +83,20 @@ namespace mRemoteNG.UI.Forms.CredentialManagerPages
|
||||
if (_providerCatalog.Contains(selectedRepository.Config.Id))
|
||||
_providerCatalog.RemoveProvider(selectedRepository);
|
||||
}
|
||||
|
||||
private void UpdateLoadToggleButton(ICredentialRepository selectedRepository)
|
||||
{
|
||||
if (selectedRepository == null) return;
|
||||
buttonToggleLoad.Text = selectedRepository.Config.Loaded ? "Unload" : "Load";
|
||||
}
|
||||
|
||||
private void buttonToggleLoad_Click(object sender, EventArgs e)
|
||||
{
|
||||
var selectedRepository = credentialRepositoryListView.SelectedRepository;
|
||||
if (selectedRepository.Config.Loaded)
|
||||
selectedRepository.UnloadCredentials();
|
||||
else
|
||||
selectedRepository.LoadCredentials();
|
||||
}
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user