Esempio n. 1
0
        void LanguageManager_LanguageChanged(object sender, EventArgs e)
        {
            if (!appWindow.AppLoaded)
            {
                return;
            }
            var tab = fileTabManager.ActiveTab;

            if (tab == null)
            {
                return;
            }
            var langContent = tab.Content as ILanguageTabContent;

            if (langContent == null)
            {
                return;
            }
            var languageManager = (ILanguageManager)sender;

            if (langContent.Language == languageManager.Language)
            {
                return;
            }
            langContent.Language = languageManager.Language;
            fileTabManager.Refresh(new IFileTab[] { tab });
        }
Esempio n. 2
0
 void BamlSettings_PropertyChanged(object sender, PropertyChangedEventArgs e)
 {
     if (e.PropertyName == nameof(BamlSettings.DisassembleBaml))
     {
         fileTabManager.Refresh <BamlResourceElementNode>();
     }
 }
Esempio n. 3
0
        void InitializeTextFormatterProvider()
        {
            var newValue = appSettings.UseNewRenderer_TextEditor ? TextFormatterProvider.GlyphRunFormatter : TextFormatterProvider.BuiltIn;

            TextFormatterFactory.DefaultTextFormatterProvider = newValue;
            var tabs = fileTabManager.VisibleFirstTabs.Where(a => a.UIContext is ITextEditorUIContextImpl).ToArray();

            foreach (var tab in tabs)
            {
                ((ITextEditorUIContextImpl)tab.UIContext).OnUseNewRendererChanged();
            }
            fileTabManager.Refresh(tabs);
        }
        void RefreshResources(HashSet <IFileTreeNodeData> modifiedResourceNodes)
        {
            if (modifiedResourceNodes.Count == 0)
            {
                return;
            }

            var ownerNodes = new HashSet <IResourcesFolderNode>();

            foreach (var node in modifiedResourceNodes)
            {
                var owner = node.GetAncestorOrSelf <IResourcesFolderNode>();
                if (owner != null)
                {
                    ownerNodes.Add(owner);
                }
            }
            if (ownerNodes.Count == 0)
            {
                return;
            }

            decompilationCache.Clear(new HashSet <IDnSpyFile>(ownerNodes.Select(a => {
                var mod = a.GetModuleNode();
                Debug.Assert(mod != null);
                return(mod == null ? null : mod.DnSpyFile);
            }).Where(a => a != null)));

            var tabs = new List <IFileTab>();

            foreach (var tab in fileTabManager.VisibleFirstTabs)
            {
                bool refresh = tab.Content.Nodes.Any(a => ownerNodes.Contains(a.GetAncestorOrSelf <IResourcesFolderNode>()));
                if (refresh)
                {
                    tabs.Add(tab);
                }
            }
            fileTabManager.Refresh(tabs);
        }
Esempio n. 5
0
        void DecompilerManager_DecompilerChanged(object sender, EventArgs e)
        {
            if (!appWindow.AppLoaded)
            {
                return;
            }
            var tab = fileTabManager.ActiveTab;
            var decompilerContent = tab?.Content as IDecompilerTabContent;

            if (decompilerContent == null)
            {
                return;
            }
            var decompilerManager = (IDecompilerManager)sender;

            if (decompilerContent.Decompiler == decompilerManager.Decompiler)
            {
                return;
            }
            decompilerContent.Decompiler = decompilerManager.Decompiler;
            fileTabManager.Refresh(new IFileTab[] { tab });
        }
 void RefreshCode <T>()
 {
     fileTabManager.Refresh(LanguageTabs.Where(t => t.Item2 is T).Select(a => a.Item1).ToArray());
 }
 void RefreshCode <T>() => fileTabManager.Refresh(DecompilerTabs.Where(t => t.Item2 is T).Select(a => a.Item1).ToArray());
 void RefreshCode(Guid guid)
 {
     fileTabManager.Refresh(LanguageTabs.Where(t => t.Item2.GenericGuid == guid || t.Item2.UniqueGuid == guid).Select(a => a.Item1).ToArray());
 }