private void OnProfilesDynamicMenuClick(object sender, DynamicMenuEventArgs e) { PwProfile pwp = null; if (e.ItemName == DeriveFromPrevious) { pwp = PwProfile.DeriveFromPassword(current_password_field.TextEx); } else { foreach (PwProfile pwgo in Program.Config.PasswordGenerator.UserProfiles) { if (pwgo.Name == e.ItemName) { pwp = pwgo; break; } } } if (pwp != null) { ProtectedString psNew; PwGenerator.Generate(out psNew, pwp, null, m_host.PwGeneratorPool); current_password_confirm_field.TextEx = current_password_field.TextEx = psNew; } else { Debug.Assert(false); } }
//*************************************************************************** // Event Triggers // protected void OnMenuItemClicked(DynamicMenuEventArgs e) { if (this.MenuItemClicked != null) { this.MenuItemClicked.Invoke(this, e); } }
private void mURLDropDownMenu_MenuClick(object sender, DynamicMenuEventArgs e) { var filePath = GetFilePath(e.Tag); if (filePath != null && mLastContextMenuUrl != null) { WinUtil.OpenUrlWithApp(mLastContextMenuUrl, Entry, filePath); } }
void m_dynCustomStrings_MenuClick(object sender, DynamicMenuEventArgs e) { PwEntry pe = m_host.MainWindow.GetSelectedEntry(false); if (pe == null) { return; } if (ClipboardUtil.CopyAndMinimize(pe.Strings.ReadSafe((string)e.Tag), true, m_host.MainWindow, pe, m_host.Database)) { m_host.MainWindow.StartClipboardCountdown(); } }
public void OnShowQRCode(object sender, DynamicMenuEventArgs e) { var key = e.Tag as string; if (key == null) { return; } var pe = host.MainWindow.GetSelectedEntry(true); if (pe == null) { return; } var context = new SprContext(pe, host.Database, SprCompileFlags.All); var value = SprEngine.Compile(pe.Strings.GetSafe(key).ReadString(), context); try { var data = new QRCodeGenerator().CreateQrCode(value, QRCodeGenerator.ECCLevel.L); if (data != null) { var form = new ShowQRCodeForm( host, data.GetBitmap(10, Color.Black, Color.White), SprEngine.Compile(pe.Strings.GetSafe(PwDefs.TitleField).ReadString(), context), TryTranslateKey(key) ); form.ShowDialog(); } } catch { MessageBox.Show("The data can't be displayed as a QR Code."); } }
public void OnShowQRCode(object sender, DynamicMenuEventArgs e) { var key = e.Tag as string; if (key == null) { return; } var pe = host.MainWindow.GetSelectedEntry(true); if (pe == null) { return; } var context = new SprContext(pe, host.Database, SprCompileFlags.All); var value = SprEngine.Compile(pe.Strings.GetSafe(key).ReadString(), context); if (key == "otp" && value.StartsWith("key=")) { var title = SprEngine.Compile(pe.Strings.GetSafe("Title").ReadString(), context); var user = SprEngine.Compile(pe.Strings.GetSafe("UserName").ReadString(), context); string label = null; if (title == string.Empty && user == string.Empty) { label = "Unknown"; //edge case when entry has no title or user, nobody would use KeePass like this but just to be bulletproof } else if (title == string.Empty || user == string.Empty) { label = title + user; } else { label = title + " (" + user + ")"; //Not RFC 5234, but more readable in the auth app } label = Uri.EscapeDataString(label); value = string.Format("otpauth://totp/{0}?secret={1}", label, value.Replace("key=", "")); } try { var data = new QRCodeGenerator().CreateQrCode(value, QRCodeGenerator.ECCLevel.L); if (data != null) { var form = new ShowQRCodeForm( host, data.GetBitmap(10, Color.Black, Color.White), SprEngine.Compile(pe.Strings.GetSafe(PwDefs.TitleField).ReadString(), context), TryTranslateKey(key) ); form.ShowDialog(); } } catch { MessageBox.Show("The data can't be displayed as a QR Code."); } }
//*************************************************************************** // Event Handlers // protected void childCtrl_OnClick(object sender, DynamicMenuEventArgs e) { this.OnMenuItemClicked(e); }