public ChangesModel(ISourceControlProvider provider) { m_Provider = provider; m_Requests = new HashSet <string>(); m_AllItem = new ChangeEntryData { Entry = new ChangeEntry(string.Empty), All = true }; entryData = new Dictionary <string, IChangeEntryData>(); m_Conflicted = new List <IChangeEntryData>(); toggledEntries = new Dictionary <string, bool>(); SavedSearchQuery = string.Empty; SavedRevisionSummary = string.Empty; }
/// <summary> /// Convert and cache new list of changes. /// </summary> /// <param name="list">New list of changes.</param> internal virtual void UpdateChangeList([NotNull] IReadOnlyList <IChangeEntry> list) { TotalCount = list.Count; // Create a new set of containers. var newEntryData = new Dictionary <string, IChangeEntryData> { [string.Empty] = m_AllItem }; var newToggledEntries = new Dictionary <string, bool>(); var conflicted = new List <IChangeEntryData>(); var all = m_AllItem.Toggled; var toggledCount = 0; foreach (var entry in list) { // Transfer toggled state from old lookup into new. toggledEntries.TryGetValue(entry.Path, out var toggled); toggled = toggled || all || entry.Staged; newToggledEntries[entry.Path] = toggled; // Create a new data item for the entry. var item = new ChangeEntryData { Entry = entry, Toggled = toggled }; newEntryData.Add(entry.Path, item); // Update counts. if (toggled) { toggledCount++; } if (entry.Unmerged) { conflicted.Add(item); } } // Store the new containers. entryData = newEntryData; toggledEntries = newToggledEntries; ToggledCount = toggledCount; m_Conflicted = conflicted; UpdateAllItemToggle(); }
public ChangesModel(ISourceControlProvider provider) { m_Provider = provider; m_AllItem = new ChangeEntryData { Entry = new ChangeEntry(string.Empty), All = true }; entryData = new Dictionary <string, IChangeEntryData>(); toggledEntries = new Dictionary <string, bool>(); SavedSearchQuery = string.Empty; SavedRevisionSummary = string.Empty; m_IsRequestingChanges = false; // Ensure consistent start state. if (m_Provider.RequestingChanges) { OnStartedRequestingChanges(); } UpdateChangeList(m_Provider.ChangeList); }
public ChangesModel(ISourceControlProvider provider) { m_Provider = provider; m_Requests = new HashSet <string>(); m_Provider.UpdatedChangeList += OnUpdatedChangeList; m_Provider.UpdatedSelectedChangeList += OnUpdatedSelectedChangesList; m_AllItem = new ChangeEntryData { Entry = new ChangeEntry(string.Empty), All = true }; SavedRevisionSummary = WindowCache.Instance.RevisionSummary; SavedSearchQuery = WindowCache.Instance.ChangesSearchValue; toggledEntries = WindowCache.Instance.SimpleSelectedItems ?? new Dictionary <string, bool>(); entryData = new Dictionary <string, IChangeEntryData>(); m_Conflicted = new List <IChangeEntryData>(); WindowCache.Instance.BeforeSerialize += OnStop; }