private void OnBtnOK(object sender, EventArgs e) { if (!m_tbDbName.Text.Equals(m_pwDatabase.Name)) { m_pwDatabase.Name = m_tbDbName.Text; m_pwDatabase.NameChanged = DateTime.Now; } if (!m_tbDbDesc.Text.Equals(m_pwDatabase.Description)) { m_pwDatabase.Description = m_tbDbDesc.Text; m_pwDatabase.DescriptionChanged = DateTime.Now; } if (!m_tbDefaultUser.Text.Equals(m_pwDatabase.DefaultUserName)) { m_pwDatabase.DefaultUserName = m_tbDefaultUser.Text; m_pwDatabase.DefaultUserNameChanged = DateTime.Now; } if (!m_cbColor.Checked) { m_pwDatabase.Color = Color.Empty; } else { m_pwDatabase.Color = m_clr; } int nCipher = CipherPool.GlobalPool.GetCipherIndex(m_cmbEncAlgo.Text); Debug.Assert(nCipher >= 0); if (nCipher >= 0) { m_pwDatabase.DataCipherUuid = CipherPool.GlobalPool[nCipher].CipherUuid; } else { m_pwDatabase.DataCipherUuid = StandardAesEngine.AesUuid; } m_pwDatabase.KeyEncryptionRounds = (ulong)m_numEncRounds.Value; if (m_rbNone.Checked) { m_pwDatabase.Compression = PwCompressionAlgorithm.None; } else if (m_rbGZip.Checked) { m_pwDatabase.Compression = PwCompressionAlgorithm.GZip; } else { Debug.Assert(false); } // m_pwDatabase.MemoryProtection.ProtectTitle = UpdateMemoryProtection(0, // m_pwDatabase.MemoryProtection.ProtectTitle, PwDefs.TitleField); // m_pwDatabase.MemoryProtection.ProtectUserName = UpdateMemoryProtection(1, // m_pwDatabase.MemoryProtection.ProtectUserName, PwDefs.UserNameField); // m_pwDatabase.MemoryProtection.ProtectPassword = UpdateMemoryProtection(2, // m_pwDatabase.MemoryProtection.ProtectPassword, PwDefs.PasswordField); // m_pwDatabase.MemoryProtection.ProtectUrl = UpdateMemoryProtection(3, // m_pwDatabase.MemoryProtection.ProtectUrl, PwDefs.UrlField); // m_pwDatabase.MemoryProtection.ProtectNotes = UpdateMemoryProtection(4, // m_pwDatabase.MemoryProtection.ProtectNotes, PwDefs.NotesField); // m_pwDatabase.MemoryProtection.AutoEnableVisualHiding = m_cbAutoEnableHiding.Checked; if (m_cbRecycleBin.Checked != m_pwDatabase.RecycleBinEnabled) { m_pwDatabase.RecycleBinEnabled = m_cbRecycleBin.Checked; m_pwDatabase.RecycleBinChanged = DateTime.Now; } int iRecBinSel = m_cmbRecycleBin.SelectedIndex; if (m_dictRecycleBinGroups.ContainsKey(iRecBinSel)) { if (!m_dictRecycleBinGroups[iRecBinSel].EqualsValue(m_pwDatabase.RecycleBinUuid)) { m_pwDatabase.RecycleBinUuid = m_dictRecycleBinGroups[iRecBinSel]; m_pwDatabase.RecycleBinChanged = DateTime.Now; } } else { Debug.Assert(false); if (!PwUuid.Zero.EqualsValue(m_pwDatabase.RecycleBinUuid)) { m_pwDatabase.RecycleBinUuid = PwUuid.Zero; m_pwDatabase.RecycleBinChanged = DateTime.Now; } } int iTemplSel = m_cmbEntryTemplates.SelectedIndex; if (m_dictEntryTemplateGroups.ContainsKey(iTemplSel)) { if (!m_dictEntryTemplateGroups[iTemplSel].EqualsValue(m_pwDatabase.EntryTemplatesGroup)) { m_pwDatabase.EntryTemplatesGroup = m_dictEntryTemplateGroups[iTemplSel]; m_pwDatabase.EntryTemplatesGroupChanged = DateTime.Now; } } else { Debug.Assert(false); if (!PwUuid.Zero.EqualsValue(m_pwDatabase.EntryTemplatesGroup)) { m_pwDatabase.EntryTemplatesGroup = PwUuid.Zero; m_pwDatabase.EntryTemplatesGroupChanged = DateTime.Now; } } if (!m_cbHistoryMaxItems.Checked) { m_pwDatabase.HistoryMaxItems = -1; } else { m_pwDatabase.HistoryMaxItems = (int)m_numHistoryMaxItems.Value; } if (!m_cbHistoryMaxSize.Checked) { m_pwDatabase.HistoryMaxSize = -1; } else { m_pwDatabase.HistoryMaxSize = (long)m_numHistoryMaxSize.Value * 1024 * 1024; } m_pwDatabase.MaintainBackups(); // Apply new history settings if (!m_cbKeyRec.Checked) { m_pwDatabase.MasterKeyChangeRec = -1; } else { m_pwDatabase.MasterKeyChangeRec = (long)m_numKeyRecDays.Value; } if (!m_cbKeyForce.Checked) { m_pwDatabase.MasterKeyChangeForce = -1; } else { m_pwDatabase.MasterKeyChangeForce = (long)m_numKeyForceDays.Value; } }