diff --git a/Translations/ColoredPassword.de.language.xml b/Translations/ColoredPassword.de.language.xml
index b277504..cbba110 100644
--- a/Translations/ColoredPassword.de.language.xml
+++ b/Translations/ColoredPassword.de.language.xml
@@ -4,7 +4,7 @@
Increment the TranslationVersion every time the translation file is updated
Also update the version.info file
-->
- 7
+ 8
-
Active
Aktiv
@@ -49,4 +49,8 @@
SyncColors
Synchronisiere Schriftfarben
+ -
+ DontShowAsterisks
+ Zeige keine * für leere Felder, auch wenn '{0}' aktiv ist
+
\ No newline at end of file
diff --git a/Translations/ColoredPassword.template.language.xml b/Translations/ColoredPassword.template.language.xml
index d99fa38..259f1a6 100644
--- a/Translations/ColoredPassword.template.language.xml
+++ b/Translations/ColoredPassword.template.language.xml
@@ -49,4 +49,8 @@
SyncColors
Snychronize font colors
+ -
+ DontShowAsterisks
+ Don't show asterisks for empty fields if '{0}' is active
+
\ No newline at end of file
diff --git a/src/ColoredPassword.cs b/src/ColoredPassword.cs
index e2dacbe..4c964da 100644
--- a/src/ColoredPassword.cs
+++ b/src/ColoredPassword.cs
@@ -6,6 +6,7 @@
using KeePass.App.Configuration;
using KeePass.Plugins;
using KeePass.UI;
+using KeePassLib;
using KeePassLib.Utility;
using PluginTools;
@@ -49,10 +50,76 @@ public override bool Initialize(IPluginHost host)
SinglePwDisplay.Enabled = ColorConfig.SinglePwDisplayActive;
+ m_host.MainWindow.UIStateUpdated += OnUIStateUpdated;
+
return true;
}
- private void MainWindow_FormLoadPost(object sender, EventArgs e)
+ private void OnUIStateUpdated(object sender, EventArgs e)
+ {
+ if (!ColorConfig.DontShowAsteriskForEmptyFields) return;
+ Dictionary dHiddenColumns = new Dictionary();
+ for (int i = 0; i < KeePass.Program.Config.MainWindow.EntryListColumns.Count; i++)
+ {
+ var col = KeePass.Program.Config.MainWindow.EntryListColumns[i];
+ if (!col.HideWithAsterisks) continue;
+ dHiddenColumns[i] = new CP_ColumnType(col);
+ }
+
+ if (dHiddenColumns.Count == 0) return;
+
+ ListView lv = (ListView)Tools.GetControl("m_lvEntries");
+ if (lv == null)
+ {
+ PluginDebug.AddError("Could not find m_lvEntries", 0);
+ return;
+ }
+
+ try
+ {
+ lv.BeginUpdate();
+
+ for (int i = lv.Items.Count - 1; i >= 0; i--)
+ {
+ ListViewItem lvi = null;
+ PwListItem li = null;
+ try
+ {
+ //This can throw if multiple concurrent changes are in progress
+ //Can happen when e. g. doing Edit Entries (quick) - Expire npw
+ lvi = lv.Items[i];
+ li = (lvi.Tag as PwListItem);
+ }
+ catch { }
+ if (li == null) continue;
+
+ if (li.Entry == null)
+ {
+ PluginDebug.AddError("List entry does not contain valid PwEntry", 0, lvi.Text);
+ continue; //should never happen but on the other side... you never know
+ }
+
+ foreach (var col in dHiddenColumns)
+ {
+ if (lvi.SubItems[col.Key].Text != PwDefs.HiddenPassword) continue;
+ if (col.Value.IsEmpty(li.Entry)) lvi.SubItems[col.Key].Text = string.Empty;
+ }
+ }
+ }
+ catch (Exception ex)
+ {
+ bool bDM = PluginDebug.DebugMode;
+ PluginDebug.DebugMode = true;
+ PluginDebug.AddError("Exception during OnUIStateUpdate", -1, ex.Message, ex.Source, ex.StackTrace);
+ PluginDebug.DebugMode = bDM;
+ }
+ finally
+ {
+ if (lv != null) lv.EndUpdate();
+ }
+ }
+
+ private void MainWindow_FormLoadPost(object sender, EventArgs e)
{
m_host.MainWindow.FormLoadPost -= MainWindow_FormLoadPost;
@@ -396,6 +463,7 @@ private void OptionsForm_Shown(object sender, EventArgs e)
o.cbSyncColorsWithPrintForm.Checked = ColorConfig.SyncColorsWithPrintForm;
o.cbSinglePwDisplay.Checked = ColorConfig.SinglePwDisplayActive;
o.cbColorPwGen.Checked = ColorConfig.ColorPwGen;
+ o.cbDontShowAsterisk.Checked = ColorConfig.DontShowAsteriskForEmptyFields;
o.ctbExample.ColorText();
ColorConfig.Testmode = true;
}
@@ -425,6 +493,7 @@ private void OptionsClosed(object sender, Tools.OptionsFormsEventArgs e)
ColorConfig.SyncColorsWithPrintForm = o.cbSyncColorsWithPrintForm.Checked;
SinglePwDisplay.Enabled = ColorConfig.SinglePwDisplayActive = o.cbSinglePwDisplay.Checked;
ColorConfig.ColorPwGen = o.cbColorPwGen.Checked;
+ ColorConfig.DontShowAsteriskForEmptyFields = o.cbDontShowAsterisk.Checked;
ColorConfig.Write();
if (ColorConfig.Active) ColorPasswords(ColorConfig.Active);
}
diff --git a/src/Options.Designer.cs b/src/Options.Designer.cs
index 5c72c3d..5c7f80f 100644
--- a/src/Options.Designer.cs
+++ b/src/Options.Designer.cs
@@ -52,23 +52,24 @@ private void InitializeComponent()
this.bForeColorSpecial = new System.Windows.Forms.Button();
this.bBackColorSpecial = new System.Windows.Forms.Button();
this.tpAdvanced = new System.Windows.Forms.TabPage();
+ this.gSyncColorsWithPrintForm = new System.Windows.Forms.GroupBox();
+ this.cbSyncColorsWithPrintForm = new System.Windows.Forms.CheckBox();
this.gPasswordGenerator = new System.Windows.Forms.GroupBox();
this.cbColorPwGen = new System.Windows.Forms.CheckBox();
this.gEntryView = new System.Windows.Forms.GroupBox();
+ this.cbDontShowAsterisk = new System.Windows.Forms.CheckBox();
this.cbSinglePwDisplay = new System.Windows.Forms.CheckBox();
this.cbColorEntryViewKeepBackgroundColor = new System.Windows.Forms.CheckBox();
this.cbColorEntryView = new System.Windows.Forms.CheckBox();
- this.gSyncColorsWithPrintForm = new System.Windows.Forms.GroupBox();
- this.cbSyncColorsWithPrintForm = new System.Windows.Forms.CheckBox();
this.gExample.SuspendLayout();
this.pError.SuspendLayout();
this.tabControl1.SuspendLayout();
this.tpSettings.SuspendLayout();
this.cgActive.SuspendLayout();
this.tpAdvanced.SuspendLayout();
+ this.gSyncColorsWithPrintForm.SuspendLayout();
this.gPasswordGenerator.SuspendLayout();
this.gEntryView.SuspendLayout();
- this.gSyncColorsWithPrintForm.SuspendLayout();
this.SuspendLayout();
//
// gExample
@@ -78,7 +79,7 @@ private void InitializeComponent()
this.gExample.AutoSize = true;
this.gExample.Controls.Add(this.ctbExample);
this.gExample.Location = new System.Drawing.Point(5, 315);
- this.gExample.Margin = new System.Windows.Forms.Padding(5, 5, 5, 5);
+ this.gExample.Margin = new System.Windows.Forms.Padding(5);
this.gExample.Name = "gExample";
this.gExample.Padding = new System.Windows.Forms.Padding(0);
this.gExample.Size = new System.Drawing.Size(1428, 132);
@@ -106,7 +107,7 @@ private void InitializeComponent()
this.pError.Controls.Add(this.lError2);
this.pError.Controls.Add(this.lError);
this.pError.Location = new System.Drawing.Point(5, 428);
- this.pError.Margin = new System.Windows.Forms.Padding(5, 5, 5, 5);
+ this.pError.Margin = new System.Windows.Forms.Padding(5);
this.pError.Name = "pError";
this.pError.Padding = new System.Windows.Forms.Padding(18, 8, 18, 8);
this.pError.Size = new System.Drawing.Size(1428, 95);
@@ -143,7 +144,7 @@ private void InitializeComponent()
this.tabControl1.Controls.Add(this.tpSettings);
this.tabControl1.Controls.Add(this.tpAdvanced);
this.tabControl1.Location = new System.Drawing.Point(0, 0);
- this.tabControl1.Margin = new System.Windows.Forms.Padding(5, 5, 5, 5);
+ this.tabControl1.Margin = new System.Windows.Forms.Padding(5);
this.tabControl1.Name = "tabControl1";
this.tabControl1.SelectedIndex = 0;
this.tabControl1.Size = new System.Drawing.Size(1452, 620);
@@ -155,9 +156,9 @@ private void InitializeComponent()
this.tpSettings.Controls.Add(this.gExample);
this.tpSettings.Controls.Add(this.cgActive);
this.tpSettings.Location = new System.Drawing.Point(10, 48);
- this.tpSettings.Margin = new System.Windows.Forms.Padding(5, 5, 5, 5);
+ this.tpSettings.Margin = new System.Windows.Forms.Padding(5);
this.tpSettings.Name = "tpSettings";
- this.tpSettings.Padding = new System.Windows.Forms.Padding(5, 5, 5, 5);
+ this.tpSettings.Padding = new System.Windows.Forms.Padding(5);
this.tpSettings.Size = new System.Drawing.Size(1432, 562);
this.tpSettings.TabIndex = 0;
this.tpSettings.Text = "Settings";
@@ -180,9 +181,9 @@ private void InitializeComponent()
this.cgActive.Controls.Add(this.bForeColorSpecial);
this.cgActive.Controls.Add(this.bBackColorSpecial);
this.cgActive.Location = new System.Drawing.Point(5, 5);
- this.cgActive.Margin = new System.Windows.Forms.Padding(5, 5, 5, 5);
+ this.cgActive.Margin = new System.Windows.Forms.Padding(5);
this.cgActive.Name = "cgActive";
- this.cgActive.Padding = new System.Windows.Forms.Padding(5, 5, 5, 5);
+ this.cgActive.Padding = new System.Windows.Forms.Padding(5);
this.cgActive.Size = new System.Drawing.Size(1428, 310);
this.cgActive.TabIndex = 0;
this.cgActive.Text = "cgActive";
@@ -202,7 +203,7 @@ private void InitializeComponent()
//
this.bForeColorDefault.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Right)));
this.bForeColorDefault.Location = new System.Drawing.Point(996, 34);
- this.bForeColorDefault.Margin = new System.Windows.Forms.Padding(5, 5, 5, 5);
+ this.bForeColorDefault.Margin = new System.Windows.Forms.Padding(5);
this.bForeColorDefault.Name = "bForeColorDefault";
this.bForeColorDefault.Size = new System.Drawing.Size(68, 53);
this.bForeColorDefault.TabIndex = 15;
@@ -214,7 +215,7 @@ private void InitializeComponent()
//
this.bBackColorDefault.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Right)));
this.bBackColorDefault.Location = new System.Drawing.Point(1259, 34);
- this.bBackColorDefault.Margin = new System.Windows.Forms.Padding(5, 5, 5, 5);
+ this.bBackColorDefault.Margin = new System.Windows.Forms.Padding(5);
this.bBackColorDefault.Name = "bBackColorDefault";
this.bBackColorDefault.Size = new System.Drawing.Size(68, 53);
this.bBackColorDefault.TabIndex = 17;
@@ -237,7 +238,7 @@ private void InitializeComponent()
//
this.bForeColorLower.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Right)));
this.bForeColorLower.Location = new System.Drawing.Point(996, 96);
- this.bForeColorLower.Margin = new System.Windows.Forms.Padding(5, 5, 5, 5);
+ this.bForeColorLower.Margin = new System.Windows.Forms.Padding(5);
this.bForeColorLower.Name = "bForeColorLower";
this.bForeColorLower.Size = new System.Drawing.Size(68, 53);
this.bForeColorLower.TabIndex = 16;
@@ -249,7 +250,7 @@ private void InitializeComponent()
//
this.bBackColorLower.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Right)));
this.bBackColorLower.Location = new System.Drawing.Point(1259, 96);
- this.bBackColorLower.Margin = new System.Windows.Forms.Padding(5, 5, 5, 5);
+ this.bBackColorLower.Margin = new System.Windows.Forms.Padding(5);
this.bBackColorLower.Name = "bBackColorLower";
this.bBackColorLower.Size = new System.Drawing.Size(68, 53);
this.bBackColorLower.TabIndex = 18;
@@ -271,7 +272,7 @@ private void InitializeComponent()
//
this.bForeColorDigit.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Right)));
this.bForeColorDigit.Location = new System.Drawing.Point(996, 158);
- this.bForeColorDigit.Margin = new System.Windows.Forms.Padding(5, 5, 5, 5);
+ this.bForeColorDigit.Margin = new System.Windows.Forms.Padding(5);
this.bForeColorDigit.Name = "bForeColorDigit";
this.bForeColorDigit.Size = new System.Drawing.Size(68, 53);
this.bForeColorDigit.TabIndex = 19;
@@ -283,7 +284,7 @@ private void InitializeComponent()
//
this.bBackColorDigit.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Right)));
this.bBackColorDigit.Location = new System.Drawing.Point(1259, 158);
- this.bBackColorDigit.Margin = new System.Windows.Forms.Padding(5, 5, 5, 5);
+ this.bBackColorDigit.Margin = new System.Windows.Forms.Padding(5);
this.bBackColorDigit.Name = "bBackColorDigit";
this.bBackColorDigit.Size = new System.Drawing.Size(68, 53);
this.bBackColorDigit.TabIndex = 20;
@@ -305,7 +306,7 @@ private void InitializeComponent()
//
this.bForeColorSpecial.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Right)));
this.bForeColorSpecial.Location = new System.Drawing.Point(996, 220);
- this.bForeColorSpecial.Margin = new System.Windows.Forms.Padding(5, 5, 5, 5);
+ this.bForeColorSpecial.Margin = new System.Windows.Forms.Padding(5);
this.bForeColorSpecial.Name = "bForeColorSpecial";
this.bForeColorSpecial.Size = new System.Drawing.Size(68, 53);
this.bForeColorSpecial.TabIndex = 21;
@@ -317,7 +318,7 @@ private void InitializeComponent()
//
this.bBackColorSpecial.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Right)));
this.bBackColorSpecial.Location = new System.Drawing.Point(1259, 220);
- this.bBackColorSpecial.Margin = new System.Windows.Forms.Padding(5, 5, 5, 5);
+ this.bBackColorSpecial.Margin = new System.Windows.Forms.Padding(5);
this.bBackColorSpecial.Name = "bBackColorSpecial";
this.bBackColorSpecial.Size = new System.Drawing.Size(68, 53);
this.bBackColorSpecial.TabIndex = 22;
@@ -331,21 +332,44 @@ private void InitializeComponent()
this.tpAdvanced.Controls.Add(this.gPasswordGenerator);
this.tpAdvanced.Controls.Add(this.gEntryView);
this.tpAdvanced.Location = new System.Drawing.Point(10, 48);
- this.tpAdvanced.Margin = new System.Windows.Forms.Padding(5, 5, 5, 5);
+ this.tpAdvanced.Margin = new System.Windows.Forms.Padding(5);
this.tpAdvanced.Name = "tpAdvanced";
- this.tpAdvanced.Padding = new System.Windows.Forms.Padding(5, 5, 5, 5);
+ this.tpAdvanced.Padding = new System.Windows.Forms.Padding(5);
this.tpAdvanced.Size = new System.Drawing.Size(1432, 562);
this.tpAdvanced.TabIndex = 1;
this.tpAdvanced.Text = "Advanced";
this.tpAdvanced.UseVisualStyleBackColor = true;
//
+ // gSyncColorsWithPrintForm
+ //
+ this.gSyncColorsWithPrintForm.Controls.Add(this.cbSyncColorsWithPrintForm);
+ this.gSyncColorsWithPrintForm.Location = new System.Drawing.Point(5, 290);
+ this.gSyncColorsWithPrintForm.Margin = new System.Windows.Forms.Padding(5);
+ this.gSyncColorsWithPrintForm.Name = "gSyncColorsWithPrintForm";
+ this.gSyncColorsWithPrintForm.Padding = new System.Windows.Forms.Padding(5);
+ this.gSyncColorsWithPrintForm.Size = new System.Drawing.Size(1428, 85);
+ this.gSyncColorsWithPrintForm.TabIndex = 7;
+ this.gSyncColorsWithPrintForm.TabStop = false;
+ this.gSyncColorsWithPrintForm.Text = "Sync with print form";
+ //
+ // cbSyncColorsWithPrintForm
+ //
+ this.cbSyncColorsWithPrintForm.AutoSize = true;
+ this.cbSyncColorsWithPrintForm.Location = new System.Drawing.Point(18, 34);
+ this.cbSyncColorsWithPrintForm.Margin = new System.Windows.Forms.Padding(5);
+ this.cbSyncColorsWithPrintForm.Name = "cbSyncColorsWithPrintForm";
+ this.cbSyncColorsWithPrintForm.Size = new System.Drawing.Size(300, 36);
+ this.cbSyncColorsWithPrintForm.TabIndex = 5;
+ this.cbSyncColorsWithPrintForm.Text = "Sync with print form";
+ this.cbSyncColorsWithPrintForm.UseVisualStyleBackColor = true;
+ //
// gPasswordGenerator
//
this.gPasswordGenerator.Controls.Add(this.cbColorPwGen);
- this.gPasswordGenerator.Location = new System.Drawing.Point(5, 165);
- this.gPasswordGenerator.Margin = new System.Windows.Forms.Padding(5, 5, 5, 5);
+ this.gPasswordGenerator.Location = new System.Drawing.Point(5, 205);
+ this.gPasswordGenerator.Margin = new System.Windows.Forms.Padding(5);
this.gPasswordGenerator.Name = "gPasswordGenerator";
- this.gPasswordGenerator.Padding = new System.Windows.Forms.Padding(5, 5, 5, 5);
+ this.gPasswordGenerator.Padding = new System.Windows.Forms.Padding(5);
this.gPasswordGenerator.Size = new System.Drawing.Size(1428, 85);
this.gPasswordGenerator.TabIndex = 6;
this.gPasswordGenerator.TabStop = false;
@@ -355,7 +379,7 @@ private void InitializeComponent()
//
this.cbColorPwGen.AutoSize = true;
this.cbColorPwGen.Location = new System.Drawing.Point(18, 34);
- this.cbColorPwGen.Margin = new System.Windows.Forms.Padding(5, 5, 5, 5);
+ this.cbColorPwGen.Margin = new System.Windows.Forms.Padding(5);
this.cbColorPwGen.Name = "cbColorPwGen";
this.cbColorPwGen.Size = new System.Drawing.Size(473, 36);
this.cbColorPwGen.TabIndex = 5;
@@ -364,26 +388,41 @@ private void InitializeComponent()
//
// gEntryView
//
+ this.gEntryView.Controls.Add(this.cbDontShowAsterisk);
this.gEntryView.Controls.Add(this.cbSinglePwDisplay);
this.gEntryView.Controls.Add(this.cbColorEntryViewKeepBackgroundColor);
this.gEntryView.Controls.Add(this.cbColorEntryView);
this.gEntryView.Location = new System.Drawing.Point(5, 5);
- this.gEntryView.Margin = new System.Windows.Forms.Padding(5, 5, 5, 5);
+ this.gEntryView.Margin = new System.Windows.Forms.Padding(5);
this.gEntryView.Name = "gEntryView";
- this.gEntryView.Padding = new System.Windows.Forms.Padding(5, 5, 5, 5);
- this.gEntryView.Size = new System.Drawing.Size(1428, 160);
+ this.gEntryView.Padding = new System.Windows.Forms.Padding(5);
+ this.gEntryView.Size = new System.Drawing.Size(1428, 200);
this.gEntryView.TabIndex = 5;
this.gEntryView.TabStop = false;
+ this.gEntryView.Tag = "KEEPENABLED";
this.gEntryView.Text = "Entry list";
//
+ // cbDontShowAsterisk
+ //
+ this.cbDontShowAsterisk.AutoSize = true;
+ this.cbDontShowAsterisk.Location = new System.Drawing.Point(18, 142);
+ this.cbDontShowAsterisk.Margin = new System.Windows.Forms.Padding(5);
+ this.cbDontShowAsterisk.Name = "cbDontShowAsterisk";
+ this.cbDontShowAsterisk.Size = new System.Drawing.Size(509, 36);
+ this.cbDontShowAsterisk.TabIndex = 7;
+ this.cbDontShowAsterisk.Tag = "KEEPENABLED";
+ this.cbDontShowAsterisk.Text = "Don\'t show asterisks for empty fields";
+ this.cbDontShowAsterisk.UseVisualStyleBackColor = true;
+ //
// cbSinglePwDisplay
//
this.cbSinglePwDisplay.AutoSize = true;
this.cbSinglePwDisplay.Location = new System.Drawing.Point(18, 108);
- this.cbSinglePwDisplay.Margin = new System.Windows.Forms.Padding(5, 5, 5, 5);
+ this.cbSinglePwDisplay.Margin = new System.Windows.Forms.Padding(5);
this.cbSinglePwDisplay.Name = "cbSinglePwDisplay";
this.cbSinglePwDisplay.Size = new System.Drawing.Size(429, 36);
this.cbSinglePwDisplay.TabIndex = 6;
+ this.cbSinglePwDisplay.Tag = "KEEPENABLED";
this.cbSinglePwDisplay.Text = "Single click password to show";
this.cbSinglePwDisplay.UseVisualStyleBackColor = true;
//
@@ -391,7 +430,7 @@ private void InitializeComponent()
//
this.cbColorEntryViewKeepBackgroundColor.AutoSize = true;
this.cbColorEntryViewKeepBackgroundColor.Location = new System.Drawing.Point(18, 71);
- this.cbColorEntryViewKeepBackgroundColor.Margin = new System.Windows.Forms.Padding(5, 5, 5, 5);
+ this.cbColorEntryViewKeepBackgroundColor.Margin = new System.Windows.Forms.Padding(5);
this.cbColorEntryViewKeepBackgroundColor.Name = "cbColorEntryViewKeepBackgroundColor";
this.cbColorEntryViewKeepBackgroundColor.Size = new System.Drawing.Size(479, 36);
this.cbColorEntryViewKeepBackgroundColor.TabIndex = 4;
@@ -402,43 +441,20 @@ private void InitializeComponent()
//
this.cbColorEntryView.AutoSize = true;
this.cbColorEntryView.Location = new System.Drawing.Point(18, 34);
- this.cbColorEntryView.Margin = new System.Windows.Forms.Padding(5, 5, 5, 5);
+ this.cbColorEntryView.Margin = new System.Windows.Forms.Padding(5);
this.cbColorEntryView.Name = "cbColorEntryView";
this.cbColorEntryView.Size = new System.Drawing.Size(255, 36);
this.cbColorEntryView.TabIndex = 5;
this.cbColorEntryView.Text = "Color entry view";
this.cbColorEntryView.UseVisualStyleBackColor = true;
//
- // gSyncColorsWithPrintForm
- //
- this.gSyncColorsWithPrintForm.Controls.Add(this.cbSyncColorsWithPrintForm);
- this.gSyncColorsWithPrintForm.Location = new System.Drawing.Point(5, 250);
- this.gSyncColorsWithPrintForm.Margin = new System.Windows.Forms.Padding(5);
- this.gSyncColorsWithPrintForm.Name = "gSyncColorsWithPrintForm";
- this.gSyncColorsWithPrintForm.Padding = new System.Windows.Forms.Padding(5);
- this.gSyncColorsWithPrintForm.Size = new System.Drawing.Size(1428, 85);
- this.gSyncColorsWithPrintForm.TabIndex = 7;
- this.gSyncColorsWithPrintForm.TabStop = false;
- this.gSyncColorsWithPrintForm.Text = "Sync with print form";
- //
- // cbSyncColorsWithPrintForm
- //
- this.cbSyncColorsWithPrintForm.AutoSize = true;
- this.cbSyncColorsWithPrintForm.Location = new System.Drawing.Point(18, 34);
- this.cbSyncColorsWithPrintForm.Margin = new System.Windows.Forms.Padding(5);
- this.cbSyncColorsWithPrintForm.Name = "cbSyncColorsWithPrintForm";
- this.cbSyncColorsWithPrintForm.Size = new System.Drawing.Size(300, 36);
- this.cbSyncColorsWithPrintForm.TabIndex = 5;
- this.cbSyncColorsWithPrintForm.Text = "Sync with print form";
- this.cbSyncColorsWithPrintForm.UseVisualStyleBackColor = true;
- //
// Options
//
this.AutoScaleDimensions = new System.Drawing.SizeF(16F, 31F);
this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
this.AutoScroll = true;
this.Controls.Add(this.tabControl1);
- this.Margin = new System.Windows.Forms.Padding(5, 5, 5, 5);
+ this.Margin = new System.Windows.Forms.Padding(5);
this.Name = "Options";
this.Size = new System.Drawing.Size(1452, 693);
this.Resize += new System.EventHandler(this.Options_Resize);
@@ -451,12 +467,12 @@ private void InitializeComponent()
this.cgActive.ResumeLayout(false);
this.cgActive.PerformLayout();
this.tpAdvanced.ResumeLayout(false);
+ this.gSyncColorsWithPrintForm.ResumeLayout(false);
+ this.gSyncColorsWithPrintForm.PerformLayout();
this.gPasswordGenerator.ResumeLayout(false);
this.gPasswordGenerator.PerformLayout();
this.gEntryView.ResumeLayout(false);
this.gEntryView.PerformLayout();
- this.gSyncColorsWithPrintForm.ResumeLayout(false);
- this.gSyncColorsWithPrintForm.PerformLayout();
this.ResumeLayout(false);
}
@@ -493,5 +509,6 @@ private void InitializeComponent()
internal System.Windows.Forms.Button bBackColorSpecial;
private System.Windows.Forms.GroupBox gSyncColorsWithPrintForm;
internal System.Windows.Forms.CheckBox cbSyncColorsWithPrintForm;
- }
+ internal System.Windows.Forms.CheckBox cbDontShowAsterisk;
+ }
}
diff --git a/src/Options.cs b/src/Options.cs
index 1c317ec..e0d4877 100644
--- a/src/Options.cs
+++ b/src/Options.cs
@@ -46,6 +46,8 @@ public Options()
gSyncColorsWithPrintForm.Text = KeePass.Resources.KPRes.Print;
cbSyncColorsWithPrintForm.Text = PluginTranslate.SyncColors;
+
+ cbDontShowAsterisk.Text = string.Format(PluginTranslate.DontShowAsterisks, KeePass.Resources.KPRes.HideUsingAsterisks);
}
private void OnColorSelect(object sender, EventArgs e)
@@ -80,7 +82,17 @@ private void cbLowercase_CheckedChanged(object sender, EventArgs e)
private void cgActive_CheckedChanged(object sender, RookieUI.CheckedGroupCheckEventArgs e)
{
- foreach (Control c in tpAdvanced.Controls) c.Enabled = cgActive.Checked;
+ foreach (Control c in tpAdvanced.Controls)
+ {
+ if (c.Tag is string && ((string)c.Tag != "KEEPENABLED")) c.Enabled = cgActive.Checked;
+ else
+ {
+ foreach (Control c2 in c.Controls)
+ {
+ if (c2.Tag is string && ((string)c.Tag != "KEEPENABLED")) c2.Enabled = cgActive.Checked;
+ }
+ }
+ }
if (PluginTools.Tools.KeePassVersion < ColorConfig.KP_2_51) gSyncColorsWithPrintForm.Enabled = false;
}
}
diff --git a/src/PluginTranslation.cs b/src/PluginTranslation.cs
index 0c81375..2a44563 100644
--- a/src/PluginTranslation.cs
+++ b/src/PluginTranslation.cs
@@ -75,6 +75,10 @@ public static class PluginTranslate
/// Snychronize font colors
///
public static readonly string SyncColors = @"Snychronize font colors";
+ ///
+ /// Don't show asterisks for empty fields if '{0}' is active
+ ///
+ public static readonly string DontShowAsterisks = @"Don't show asterisks for empty fields if '{0}' is active";
#endregion
#region NO changes in this area
diff --git a/src/Properties/AssemblyInfo.cs b/src/Properties/AssemblyInfo.cs
index 5585be5..b27d491 100644
--- a/src/Properties/AssemblyInfo.cs
+++ b/src/Properties/AssemblyInfo.cs
@@ -10,7 +10,7 @@
[assembly: AssemblyConfiguration("")]
[assembly: AssemblyCompany("rookiestyle")]
[assembly: AssemblyProduct("KeePass Plugin")]
-[assembly: AssemblyCopyright("Copyright © 2020-2023")]
+[assembly: AssemblyCopyright("Copyright © 2020-2024")]
[assembly: AssemblyTrademark("")]
[assembly: AssemblyCulture("")]
@@ -32,5 +32,5 @@
// Sie können alle Werte angeben oder Standardwerte für die Build- und Revisionsnummern verwenden,
// indem Sie "*" wie unten gezeigt eingeben:
// [assembly: AssemblyVersion("1.0.*")]
-[assembly: AssemblyVersion("0.15.4")]
-[assembly: AssemblyFileVersion("0.15.4")]
+[assembly: AssemblyVersion("0.16")]
+[assembly: AssemblyFileVersion("0.16")]
diff --git a/src/Util.cs b/src/Util.cs
index 3366953..dcfda30 100644
--- a/src/Util.cs
+++ b/src/Util.cs
@@ -5,6 +5,7 @@
using System.Text;
using KeePass.App.Configuration;
using KeePass.Plugins;
+using KeePassLib;
namespace ColoredPassword
{
@@ -24,6 +25,13 @@ public static bool SyncColorsWithPrintForm
get { return m_Config.GetBool("ColoredPassword.SyncColorsWithPrintForm", true); }
set { m_Config.SetBool("ColoredPassword.SyncColorsWithPrintForm", value); }
}
+
+ public static bool DontShowAsteriskForEmptyFields
+ {
+ get { return m_Config.GetBool("ColoredPassword.DontShowAsteriskForEmptyFields", false); }
+ set { m_Config.SetBool("ColoredPassword.DontShowAsteriskForEmptyFields", value); }
+ }
+
public static bool Testmode
{
get { return m_Testmode; }
@@ -274,4 +282,43 @@ internal static Color ContrastColor(Color c)
return l < 0.5 ? Color.White : Color.Black;
}
}
+
+ class CP_ColumnType
+ {
+ private AceColumn m_ace = null;
+
+ private string m_sField = null;
+
+ public CP_ColumnType(AceColumn ace)
+ {
+ m_ace = ace;
+ if (m_ace == null) return;
+ switch (ace.Type)
+ {
+ case AceColumnType.Title: m_sField = PwDefs.TitleField; break;
+ case AceColumnType.UserName: m_sField = PwDefs.UserNameField; break;
+ case AceColumnType.Password: m_sField = PwDefs.PasswordField; break;
+ case AceColumnType.Url: m_sField = PwDefs.UrlField; break;
+ case AceColumnType.Notes: m_sField = PwDefs.NotesField; break;
+ case AceColumnType.CustomString: m_sField = m_ace.CustomName; break;
+ case AceColumnType.PluginExt: m_sField = m_ace.CustomName; break;
+ }
+ if (!string.IsNullOrEmpty(m_sField)) return;
+
+ PluginTools.PluginDebug.AddWarning("Unsupported column for asterisk check: " + m_ace.Type.ToString() +
+ (string.IsNullOrEmpty(m_ace.CustomName) ? string.Empty : " - " + m_ace.CustomName), 0);
+ }
+ public bool IsEmpty(PwEntry pe)
+ {
+ if (m_ace == null) return false;
+
+ if (m_sField == null) return false;
+ if (pe == null) return false;
+
+ if (m_ace.Type != AceColumnType.PluginExt) return pe.Strings.GetSafe(m_sField).IsEmpty;
+
+ return string.IsNullOrEmpty(KeePass.Program.ColumnProviderPool.GetCellData(m_sField, pe));
+ }
+ }
+
}
diff --git a/version.info b/version.info
index a5d91dc..d6e8dfe 100644
--- a/version.info
+++ b/version.info
@@ -1,6 +1,6 @@
:
-ColoredPassword:0.15.4
-ColoredPassword!de:7
+ColoredPassword:0.16
+ColoredPassword!de:8
ColoredPassword!pl:2
ColoredPassword!pt:3
ColoredPassword!ru:3