public Item Add(string path,SVNFileType type) { Item item = new Item(); item.isSelected = true; item.isFocused = false; switch(type){ case SVNFileType.Added: case SVNFileType.Modify: case SVNFileType.Delete: case SVNFileType.New: case SVNFileType.Missing: AddItem(type,path); break; } return item; }
private static void SetFileStatus(string path,SVNFileType status) { if(_statusCache.ContainsKey(path)){ if(_statusCache[path] == SVNFileType.Conflict){ }else{ _statusCache[path] = status; } }else{ _statusCache.Add(path,status); } string parent = System.IO.Path.GetDirectoryName(path); if(string.IsNullOrEmpty(parent)){ return; } if(status == SVNFileType.External){ return; } SVNFileType parentStatus = SVNFileType.Modify; if(status == SVNFileType.Conflict){ parentStatus = SVNFileType.Conflict; } SetFileStatus(parent,parentStatus); }
private Item AddItem(SVNFileType type,string path) { if(_itemMap.ContainsKey(path)){ if(type == SVNFileType.None){ return _itemMap[path]; } if(_itemMap[path].type == SVNFileType.None){ _itemMap[path].type = type; }else{ Debug.LogError("Somthing error"); } return _itemMap[path]; } Item item = new Item(); item.isSelected = true; item.isFocused = false; item.type = type; item.path = path.Trim(); string parent = System.IO.Path.GetDirectoryName(item.path); if(string.IsNullOrEmpty(parent)){//top level _topLevelItems.Add(item); }else{ if(!_itemMap.ContainsKey(parent)){ Item direItem = AddItem(SVNFileType.None,parent); direItem.isFolder = true; } _itemMap[parent].children.Add(item); } if(_itemMap.ContainsKey(item.path)){ return item; } _itemMap.Add(item.path,item); return item; }