Exemplo n.º 1
0
        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;
            }
        }