Esempio n. 1
0
        protected override void UpdateTools(IList <ITool> tools)
        {
            tools.Add(modeTool);

            var tabTypes = ListPool <Type> .New();

            try
            {
                foreach (var tabInLayout in PeekPlugin.Configuration.tabsInLayout)
                {
                    if (!Codebase.TryDeserializeType(tabInLayout, out var tabType))
                    {
                        continue;
                    }

                    if (PeekPlugin.Configuration.tabsBlacklist.Contains(tabType))
                    {
                        continue;
                    }

                    if (!tabTypes.Contains(tabType))
                    {
                        tabTypes.Add(tabType);
                    }
                }

                foreach (var tabType in PeekPlugin.Configuration.tabsWhitelist)
                {
                    if (tabType == null)
                    {
                        continue;
                    }

                    if (!tabTypes.Contains(tabType))
                    {
                        tabTypes.Add(tabType);
                    }
                }

                tabTypes.Sort(compareTabTypes);

                foreach (var tabType in tabTypes)
                {
                    var tabTool = tabTools[tabType];

                    tools.Add(tabTool);
                }
            }
            finally
            {
                tabTypes.Free();
            }
        }