public TrayMenuItemProvider(KeeTrayTOTPExt plugin, IPluginHost pluginHost) { Plugin = plugin; DocumentManager = pluginHost.MainWindow.DocumentManager; PluginHost = pluginHost; PluginHost.MainWindow.TrayContextMenu.Opened += TrayContextMenu_Opened; }
private static void ActivateDatabaseTab(EcasAction a, EcasContext ctx) { string strName = EcasUtil.GetParamString(a.Parameters, 0, true); bool bEmptyName = string.IsNullOrEmpty(strName); uint uSel = EcasUtil.GetParamUInt(a.Parameters, 1, 0); PwDatabase pdSel = ctx.Properties.Get <PwDatabase>(EcasProperty.Database); DocumentManagerEx dm = Program.MainForm.DocumentManager; foreach (PwDocument doc in dm.Documents) { if (doc.Database == null) { Debug.Assert(false); continue; } if (uSel == 0) // Select from all { if (bEmptyName) { continue; // Name required in this case } } else if (uSel == 1) // Triggering only { if (!object.ReferenceEquals(doc.Database, pdSel)) { continue; } } else { Debug.Assert(false); continue; } IOConnectionInfo ioc = null; if ((doc.LockedIoc != null) && !string.IsNullOrEmpty(doc.LockedIoc.Path)) { ioc = doc.LockedIoc; } else if ((doc.Database.IOConnectionInfo != null) && !string.IsNullOrEmpty(doc.Database.IOConnectionInfo.Path)) { ioc = doc.Database.IOConnectionInfo; } if (bEmptyName || ((ioc != null) && (ioc.Path.IndexOf(strName, StrUtil.CaseIgnoreCmp) >= 0))) { Program.MainForm.MakeDocumentActive(doc); break; } } }
private static void ActivateDatabaseTab(EcasAction a, EcasContext ctx) { string strName = EcasUtil.GetParamString(a.Parameters, 0, true); if (string.IsNullOrEmpty(strName)) { return; } DocumentManagerEx dm = Program.MainForm.DocumentManager; foreach (PwDocument doc in dm.Documents) { if (doc.Database == null) { Debug.Assert(false); continue; } IOConnectionInfo ioc = null; if ((doc.LockedIoc != null) && !string.IsNullOrEmpty(doc.LockedIoc.Path)) { ioc = doc.LockedIoc; } else if ((doc.Database.IOConnectionInfo != null) && !string.IsNullOrEmpty(doc.Database.IOConnectionInfo.Path)) { ioc = doc.Database.IOConnectionInfo; } if ((ioc != null) && (ioc.Path.IndexOf(strName, StrUtil.CaseIgnoreCmp) >= 0)) { Program.MainForm.MakeDocumentActive(doc); break; } } }