void ApplyChanges() { dirty = false; for (int i = 0; i < pbxFileList.Count; i++) { if (pbxFileList[i].removed) { pbxFileList.RemoveAt(i--); } pbxFileList[i].edited = false; } for (int i = 0; i < pbxSdkFileList.Count; i++) { if (pbxSdkFileList[i].removed) { pbxSdkFileList.RemoveAt(i--); continue; } pbxSdkFileList[i].edited = false; } for (int i = 0; i < pListEntryList.Count; i++) { if (pListEntryList[i].removed) { pListEntryList.RemoveAt(i--); continue; } pListEntryList[i].edited = false; } List <PBXFile> allFiles = new List <PBXFile> (pbxFileList); allFiles.AddRange(pbxSdkFileList); AddPBXFiles(allFiles); AddLinkerFlags(linkerFlags); AddPListEntries(pListEntryList); AddHeaderSearchPaths(headerSearchPaths); AddLibrarySearchPaths(librarySearchPaths); if (!isTemplate) { Save(); } else { XcodeTemplateManager.SaveExistingTemplate(this); } pbxFileList.Sort(); pbxSdkFileList.Sort(); headerSearchPaths.Sort(); librarySearchPaths.Sort(); }
void OnGUI() { if (serializer == null) { OnEnable(); } scrollPosition = EditorGUILayout.BeginScrollView(scrollPosition); { serializer.OnGUI(); EditorGUILayout.Space(); templateName = EditorGUILayout.TextField("Template name: ", templateName); if (GUILayout.Button("Save as Template")) { XcodeSerializer templateSerializer = XcodeSerializer.CreateInstance(serializer.ToString(), true); templateSerializer.name = templateName; XcodeTemplateManager.SaveTemplate(templateSerializer); } EditorGUILayout.Space(); for (int i = 0; i < templates.Count; i++) { EditorGUILayout.BeginHorizontal(); { templates[i].display = EditorGUILayout.Foldout(templates[i].display, templates[i].name); if (GUILayout.Button("Import", GUILayout.Width(50))) { serializer.Merge(templates[i]); } if (GUILayout.Button("Delete", GUILayout.Width(50))) { XcodeTemplateManager.DeleteTemplate(templates[i--]); continue; } } EditorGUILayout.EndHorizontal(); BBGuiHelper.BeginIndent(); { if (templates[i].display) { EditorGUILayout.BeginHorizontal(); { EditorGUILayout.LabelField("Name: ", GUILayout.Width(75)); templates[i].name = EditorGUILayout.TextField(templates[i].name); } EditorGUILayout.EndHorizontal(); templates[i].OnGUI(); } } BBGuiHelper.EndIndent(); } } EditorGUILayout.EndScrollView(); //Repaint on Undo if (Event.current.type == EventType.ValidateCommand) { switch (Event.current.commandName) { case "UndoRedoPerformed": this.Repaint(); break; } } }
void OnEnable() { serializer = XcodeSerializer.CreateInstance(); templates = XcodeTemplateManager.GetTemplates(); }