From 7c37dc12e2a14e33d866aaf3ab83d4eb0370ee37 Mon Sep 17 00:00:00 2001 From: Andrew Schofield Date: Fri, 7 Apr 2017 10:23:32 +0100 Subject: [PATCH] Add item group info to the breached entries list. --- HaveIBeenPwned.plgx | Bin 222360 -> 222540 bytes .../BreachedEntriesDialog.Designer.cs | 19 +++++++++--------- HaveIBeenPwned/BreachedEntriesDialog.cs | 16 +++++++++++++++ HaveIBeenPwned/Properties/AssemblyInfo.cs | 4 ++-- VERSION | 2 +- mono/HaveIBeenPwned.dll | Bin 153600 -> 154112 bytes 6 files changed, 29 insertions(+), 12 deletions(-) diff --git a/HaveIBeenPwned.plgx b/HaveIBeenPwned.plgx index fcbac2d96bf3faeab3b9e89c95c55e2feb2914c3..4fd1a8b04f7d0002a9a35d4d7aa4d4ec06717814 100644 GIT binary patch delta 3476 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 Co|hB= delta 3304 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 z%E)%%vd1JWU5fl3Ad0000000005000000000000019s4+YM diff --git a/HaveIBeenPwned/BreachedEntriesDialog.Designer.cs b/HaveIBeenPwned/BreachedEntriesDialog.Designer.cs index 79b27b1..f6f5ada 100644 --- a/HaveIBeenPwned/BreachedEntriesDialog.Designer.cs +++ b/HaveIBeenPwned/BreachedEntriesDialog.Designer.cs @@ -33,10 +33,10 @@ private void InitializeComponent() this.usernameHeader = ((System.Windows.Forms.ColumnHeader)(new System.Windows.Forms.ColumnHeader())); this.urlHeader = ((System.Windows.Forms.ColumnHeader)(new System.Windows.Forms.ColumnHeader())); this.lastModifiedHeader = ((System.Windows.Forms.ColumnHeader)(new System.Windows.Forms.ColumnHeader())); + this.breachName = ((System.Windows.Forms.ColumnHeader)(new System.Windows.Forms.ColumnHeader())); this.breachedHeader = ((System.Windows.Forms.ColumnHeader)(new System.Windows.Forms.ColumnHeader())); this.closeButton = new System.Windows.Forms.Button(); this.label1 = new System.Windows.Forms.Label(); - this.breachName = ((System.Windows.Forms.ColumnHeader)(new System.Windows.Forms.ColumnHeader())); titleHeader = ((System.Windows.Forms.ColumnHeader)(new System.Windows.Forms.ColumnHeader())); this.SuspendLayout(); // @@ -62,7 +62,7 @@ private void InitializeComponent() this.breachedEntryList.Location = new System.Drawing.Point(12, 12); this.breachedEntryList.Name = "breachedEntryList"; this.breachedEntryList.ShowGroups = false; - this.breachedEntryList.Size = new System.Drawing.Size(698, 268); + this.breachedEntryList.Size = new System.Drawing.Size(719, 268); this.breachedEntryList.TabIndex = 0; this.breachedEntryList.UseCompatibleStateImageBehavior = false; this.breachedEntryList.View = System.Windows.Forms.View.Details; @@ -83,6 +83,11 @@ private void InitializeComponent() this.lastModifiedHeader.Text = "Password Changed"; this.lastModifiedHeader.Width = 105; // + // breachName + // + this.breachName.Text = "Breach Name"; + this.breachName.Width = 130; + // // breachedHeader // this.breachedHeader.Text = "Breach Date"; @@ -92,7 +97,7 @@ private void InitializeComponent() // this.closeButton.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Right))); this.closeButton.DialogResult = System.Windows.Forms.DialogResult.OK; - this.closeButton.Location = new System.Drawing.Point(635, 286); + this.closeButton.Location = new System.Drawing.Point(656, 286); this.closeButton.Name = "closeButton"; this.closeButton.Size = new System.Drawing.Size(75, 23); this.closeButton.TabIndex = 1; @@ -101,6 +106,7 @@ private void InitializeComponent() // // label1 // + this.label1.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Left))); this.label1.AutoSize = true; this.label1.Location = new System.Drawing.Point(12, 291); this.label1.Name = "label1"; @@ -108,16 +114,11 @@ private void InitializeComponent() this.label1.TabIndex = 2; this.label1.Text = "Double-click to edit breached entries"; // - // breachName - // - this.breachName.Text = "Breach Name"; - this.breachName.Width = 130; - // // BreachedEntriesDialog // this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F); this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font; - this.ClientSize = new System.Drawing.Size(722, 317); + this.ClientSize = new System.Drawing.Size(743, 317); this.Controls.Add(this.label1); this.Controls.Add(this.closeButton); this.Controls.Add(this.breachedEntryList); diff --git a/HaveIBeenPwned/BreachedEntriesDialog.cs b/HaveIBeenPwned/BreachedEntriesDialog.cs index 5c2a4ac..ea686a9 100644 --- a/HaveIBeenPwned/BreachedEntriesDialog.cs +++ b/HaveIBeenPwned/BreachedEntriesDialog.cs @@ -2,6 +2,7 @@ using KeePassLib; using System; using System.Collections.Generic; +using System.Linq; using System.Threading; using System.Windows.Forms; @@ -20,6 +21,13 @@ public BreachedEntriesDialog(IPluginHost pluginHost) public void AddBreaches(IList breaches) { breachedEntryList.Items.Clear(); + breachedEntryList.Groups.Clear(); + var groupNames = breaches.Select(b => b.Entry.ParentGroup.GetFullPath(" - ", false)).Distinct(); + foreach(var group in groupNames) + { + breachedEntryList.Groups.Add(new ListViewGroup(group, HorizontalAlignment.Left)); + } + breachedEntryList.ShowGroups = true; foreach (var breach in breaches) { var newItem = new ListViewItem(new[] @@ -34,6 +42,14 @@ public void AddBreaches(IList breaches) { Tag = breach.Entry }; + + foreach(ListViewGroup group in breachedEntryList.Groups) + { + if (group.Header == breach.Entry.ParentGroup.GetFullPath(" - ", false)) + { + newItem.Group = group; + } + } breachedEntryList.Items.Add(newItem); } } diff --git a/HaveIBeenPwned/Properties/AssemblyInfo.cs b/HaveIBeenPwned/Properties/AssemblyInfo.cs index fa8390f..d9c8a36 100644 --- a/HaveIBeenPwned/Properties/AssemblyInfo.cs +++ b/HaveIBeenPwned/Properties/AssemblyInfo.cs @@ -32,5 +32,5 @@ // You can specify all the values or you can default the Build and Revision Numbers // by using the '*' as shown below: // [assembly: AssemblyVersion("1.0.*")] -[assembly: AssemblyVersion("0.2.6.0")] -[assembly: AssemblyFileVersion("0.2.6.0")] +[assembly: AssemblyVersion("0.2.7.0")] +[assembly: AssemblyFileVersion("0.2.7.0")] diff --git a/VERSION b/VERSION index ea76868..d124ff9 100644 --- a/VERSION +++ b/VERSION @@ -1,3 +1,3 @@ : -HaveIBeenPwned checker:0.2.6 +HaveIBeenPwned checker:0.2.7 : \ No newline at end of file diff --git a/mono/HaveIBeenPwned.dll b/mono/HaveIBeenPwned.dll index e0fa6c70dcf7318b5803de71c9e077c00f13fef5..6ec9b01c7c60b04f4a1afc146fa01ca100762d3e 100644 GIT binary patch delta 16770 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 delta 15979 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 Ye5`%tIAJb#{xp2~gr3lY;;-U=0Gfik&;S4c