Пример #1
0
 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;
                }
            }
        }
Пример #3
0
        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;
                }
            }
        }