void form_EntrySaving(object sender, KeePass.Util.CancellableOperationEventArgs e) { if (am_current_tab) { if (!check_confirm_password_ok()) { e.Cancel = true; return; } save_changes(); form.UpdateEntryStrings(false, true); } }
private void OnEntrySaving(object sender, KeePass.Util.CancellableOperationEventArgs e) { if (!Configuration.Active) { return; } //try reading fields from password entry form //checking and update the expiry date this way will save //us from creating one more backup just for //changing the expiry date in the "Touched" event if (m_pweForm == null) { return; } PEDCalcValue days = m_pweForm.EntryRef.GetPEDValue(true); if (!days.Specific) { return; //Nothing to do } CheckBox expires = (CheckBox)Tools.GetControl("m_cbExpires", m_pweForm); if (expires == null) { return; //read failed } if (!expires.Checked) { return; //entry does not expire (any longer) } DateTimePicker expiryDate = (DateTimePicker)Tools.GetControl("m_dtExpireDateTime", m_pweForm); if (expiryDate == null) { return; //read failed } if ((TimeUtil.ToUtc(expiryDate.Value, false) != m_pweForm.EntryRef.ExpiryTime) && m_pweForm.EntryRef.Expires) { return; //expiry date was already changed by the user } SecureTextBoxEx password = (SecureTextBoxEx)Tools.GetControl("m_tbPassword", m_pweForm); if (password == null) { return; //read failed; } byte[] pw_new = password.TextEx.ReadUtf8(); byte[] pw_old = m_pweForm.EntryRef.Strings.GetSafe(PwDefs.PasswordField).ReadUtf8(); if (MemUtil.ArraysEqual(pw_new, pw_old)) { return; //password was not changed } //calculate new expiry date and write back to form field if (expiryDate.Value.Kind == DateTimeKind.Local) { expiryDate.Value = days.NewExpiryDateUtc.ToLocalTime(); } else { expiryDate.Value = days.NewExpiryDateUtc; } }
/// <summary> /// Event handler triggered when the password entry is being saved. /// </summary> /// <param name="sender">The object which triggered the event.</param> /// <param name="e">The event arguments.</param> private void Container_EntrySaving(object sender, KeePass.Util.CancellableOperationEventArgs e) { this.SaveSettings(); }