public void LoadDocument(VisualTreeAsset visualTreeAsset, VisualElement documentElement) { NewDocument(documentElement); if (visualTreeAsset == null) { return; } m_VisualTreeAssetBackup = visualTreeAsset.DeepCopy(); m_VisualTreeAsset = visualTreeAsset; m_VisualTreeAsset.ConvertAllAssetReferencesToPaths(); // Load styles. var styleSheetsUsed = m_VisualTreeAsset.GetAllReferencedStyleSheets(); for (int i = 0; i < styleSheetsUsed.Count; ++i) { AddStyleSheetToDocument(styleSheetsUsed[i], null); } m_OpenendVisualTreeAssetOldPath = AssetDatabase.GetAssetPath(m_VisualTreeAsset); hasUnsavedChanges = false; m_Settings = BuilderDocumentSettings.CreateOrLoadSettingsObject(m_Settings, uxmlPath); ReloadDocumentToCanvas(documentElement); }
public void LoadDocument(VisualTreeAsset visualTreeAsset, VisualElement documentElement) { NewDocument(documentElement); if (visualTreeAsset == null) { return; } m_VisualTreeAssetBackup = visualTreeAsset.DeepCopy(); m_VisualTreeAsset = visualTreeAsset; m_VisualTreeAsset.ConvertAllAssetReferencesToPaths(); // Load styles. // TODO: For now we only support one stylesheet so we just load the first one we find. var styleSheetsUsed = m_VisualTreeAsset.GetAllReferencedStyleSheets(); var styleSheet = styleSheetsUsed.Count > 0 ? styleSheetsUsed[0] : null; m_MainStyleSheetBackup = null; if (styleSheet != null) { m_MainStyleSheetBackup = styleSheet.DeepCopy(); } m_MainStyleSheet = styleSheet; m_OpenendMainStyleSheetOldPath = AssetDatabase.GetAssetPath(styleSheet); hasUnsavedChanges = false; CreateOrLoadSettingsObject(); ReloadDocumentToCanvas(documentElement); SaveToDisk(); }
public void PostLoadDocumentStyleSheetCleanup() { m_VisualTreeAsset.ConvertAllAssetReferencesToPaths(); // Load styles. var styleSheetsUsed = m_VisualTreeAsset.GetAllReferencedStyleSheets(); for (int i = 0; i < styleSheetsUsed.Count; ++i) { AddStyleSheetToDocument(styleSheetsUsed[i], null); } #if !UNITY_2019_4 // For the near to mid term, we have this code that cleans up any // existing root element stylesheets. RemoveLegacyStyleSheetsFromRootAssets(); #endif hasUnsavedChanges = false; }
public void PostLoadDocumentStyleSheetCleanup() { m_VisualTreeAsset.UpdateUsingEntries(); m_OpenUSSFiles.Clear(); // Load styles. var styleSheetsUsed = m_VisualTreeAsset.GetAllReferencedStyleSheets(); for (int i = 0; i < styleSheetsUsed.Count; ++i) { AddStyleSheetToDocument(styleSheetsUsed[i], null); } // For the near to mid term, we have this code that cleans up any // existing root element stylesheets. RemoveLegacyStyleSheetsFromRootAssets(); hasUnsavedChanges = false; }
public void OnAfterBuilderDeserialize(VisualElement documentElement) { // Refresh StyleSheets. var styleSheetsUsed = m_VisualTreeAsset.GetAllReferencedStyleSheets(); while (m_OpenUSSFiles.Count < styleSheetsUsed.Count) { m_OpenUSSFiles.Add(new BuilderDocumentOpenUSS()); } // Make sure active stylesheet is still in the document. ValidateActiveStyleSheet(); for (int i = 0; i < styleSheetsUsed.Count; ++i) { if (m_OpenUSSFiles[i].Sheet == styleSheetsUsed[i]) { continue; } m_OpenUSSFiles[i].Set(styleSheetsUsed[i], null); } while (m_OpenUSSFiles.Count > styleSheetsUsed.Count) { var lastIndex = m_OpenUSSFiles.Count - 1; RemoveStyleSheetFromLists(lastIndex); } // Fix unserialized rule references in Selectors in StyleSheets. // VTA.inlineSheet only has Rules so it does not need this fix. foreach (var openUSSFile in m_OpenUSSFiles) { openUSSFile.FixRuleReferences(); } ReloadDocumentToCanvas(documentElement); }
static bool IsAssetUsedInDependencies(VisualTreeAsset visualTreeAsset, string assetPath) { foreach (var styleSheet in visualTreeAsset.GetAllReferencedStyleSheets()) { if (AssetDatabase.GetAssetPath(styleSheet) == assetPath) { return(true); } } foreach (var vta in visualTreeAsset.templateDependencies) { var path = visualTreeAsset.GetPathFromTemplateName(vta.name); if (path == assetPath) { return(true); } return(IsAssetUsedInDependencies(vta, assetPath)); } return(false); }