public static void Init(ToolStripSplitButton btnHost) { if (btnHost == null) { throw new ArgumentNullException("btnHost"); } m_btnItemsHost = btnHost; ToolStripSeparator tsSep = new ToolStripSeparator(); m_btnItemsHost.DropDownItems.Add(tsSep); m_vToolStripItems.Add(tsSep); EntryTemplates.AddItem(BankAccount); EntryTemplates.AddItem(PersonalContact); }
private static void CreateEntry(PwEntry peTemplate) { if (peTemplate == null) { Debug.Assert(false); return; } PwDatabase pd = Program.MainForm.ActiveDatabase; if (pd == null) { Debug.Assert(false); return; } if (pd.IsOpen == false) { Debug.Assert(false); return; } PwGroup pgContainer = Program.MainForm.GetSelectedGroup(); if (pgContainer == null) { pgContainer = pd.RootGroup; } PwEntry pe = peTemplate.Duplicate(); pe.History.Clear(); if (EntryTemplates.EntryCreating != null) { EntryTemplates.EntryCreating(null, new TemplateEntryEventArgs( peTemplate.CloneDeep(), pe)); } PwEntryForm pef = new PwEntryForm(); pef.InitEx(pe, PwEditMode.AddNewEntry, pd, Program.MainForm.ClientIcons, false, true); if (UIUtil.ShowDialogAndDestroy(pef) == DialogResult.OK) { pgContainer.AddEntry(pe, true, true); MainForm mf = Program.MainForm; if (mf != null) { mf.UpdateUI(false, null, pd.UINeedsIconUpdate, null, true, null, true); PwObjectList <PwEntry> vSelect = new PwObjectList <PwEntry>(); vSelect.Add(pe); mf.SelectEntries(vSelect, true, true); mf.EnsureVisibleEntry(pe.Uuid); mf.UpdateUI(false, null, false, null, false, null, false); } else { Debug.Assert(false); } if (EntryTemplates.EntryCreated != null) { EntryTemplates.EntryCreated(null, new TemplateEntryEventArgs( peTemplate.CloneDeep(), pe)); } } else { Program.MainForm.UpdateUI(false, null, pd.UINeedsIconUpdate, null, pd.UINeedsIconUpdate, null, false); } }
private static void CreateEntry(PwEntry peTemplate) { if (peTemplate == null) { Debug.Assert(false); return; } PwDatabase pd = Program.MainForm.ActiveDatabase; if (pd == null) { Debug.Assert(false); return; } if (pd.IsOpen == false) { Debug.Assert(false); return; } PwGroup pgContainer = Program.MainForm.GetSelectedGroup(); if (pgContainer == null) { pgContainer = pd.RootGroup; } PwEntry pe = peTemplate.CloneDeep(); pe.Uuid = new PwUuid(true); pe.CreationTime = pe.LastModificationTime = pe.LastAccessTime = DateTime.Now; if (EntryTemplates.EntryCreating != null) { EntryTemplates.EntryCreating(null, new TemplateEntryEventArgs( peTemplate.CloneDeep(), pe)); } PwEntryForm pef = new PwEntryForm(); pef.InitEx(pe, PwEditMode.AddNewEntry, pd, Program.MainForm.ClientIcons, false, true); if (pef.ShowDialog() == DialogResult.OK) { pgContainer.AddEntry(pe, true, true); if (EntryTemplates.EntryCreated != null) { EntryTemplates.EntryCreated(null, new TemplateEntryEventArgs( peTemplate.CloneDeep(), pe)); } // Program.MainForm.UpdateEntryList(null, true); // Program.MainForm.UpdateUIState(true); Program.MainForm.UpdateUI(false, null, pd.UINeedsIconUpdate, null, true, null, true); } else { Program.MainForm.UpdateUI(false, null, pd.UINeedsIconUpdate, null, pd.UINeedsIconUpdate, null, false); } }
private static void OnMenuExecute(object sender, EventArgs e) { ToolStripMenuItem tsmi = (sender as ToolStripMenuItem); if (tsmi == null) { Debug.Assert(false); return; } PwEntry peTemplate = (tsmi.Tag as PwEntry); if (peTemplate == null) { Debug.Assert(false); return; } MainForm mf = Program.MainForm; if (mf == null) { Debug.Assert(false); return; } PwDatabase pd = mf.ActiveDatabase; if ((pd == null) || !pd.IsOpen) { Debug.Assert(false); return; } // Ensure that the correct database is still active if (pd != mf.DocumentManager.FindContainerOf(peTemplate)) { return; } GFunc <PwEntry> fNewEntry = delegate() { PwEntry pe = peTemplate.Duplicate(); pe.History.Clear(); return(pe); }; Action <PwEntry> fAddPre = delegate(PwEntry pe) { if (EntryTemplates.EntryCreating != null) { EntryTemplates.EntryCreating(null, new TemplateEntryEventArgs( peTemplate.CloneDeep(), pe)); } }; Action <PwEntry> fAddPost = delegate(PwEntry pe) { if (EntryTemplates.EntryCreated != null) { EntryTemplates.EntryCreated(null, new TemplateEntryEventArgs( peTemplate.CloneDeep(), pe)); } }; mf.AddEntryEx(null, fNewEntry, fAddPre, fAddPost); }