private void RemovePlayer(int i) { if (AllocatedGamepads.ContainsKey(i)) { Editors.Remove(AllocatedGamepads[i].Editor); AllocatedGamepads[i].Editor.DisposeLater(); AllocatedGamepads.Remove(i); } }
/// <summary> /// Removes the <see cref="IEditor"/> with the specified file path /// key. /// </summary> /// <param name="key"> /// The file path of the <see cref="IEditor"/> to remove. /// </param> /// <returns> /// <see langword="true"/> if the <see cref="IEditor"/> is /// successfully found and removed; otherwise <see /// langword="false"/>. /// </returns> /// <exception cref="ArgumentException"> /// <paramref name="key"/> is a zero-length string, contains only /// whitespace, or contains one or more of the invalid characters /// defined in <see cref=" GetInvalidPathChars"/>. /// <para/> /// -or- /// <para/> /// The system could not retrieve the absolute path. /// </exception> /// <exception cref="System.Security.SecurityException"> /// The caller does not have the required permissions. /// </exception> /// <exception cref="ArgumentNullException"> /// <paramref name="key"/> is <see langword="null"/>. /// </exception> /// <exception cref="NotSupportedException"> /// <paramref name="key"/> contains a colon (":") that is not part /// of a volume identifier (for example, "c:\"). /// </exception> /// <exception cref="System.IO.PathTooLongException"> /// The specified path, file name, or both exceed the /// system-defined maximum length. /// </exception> public bool Remove(string key) { var actualKey = GetFullPath(key); if (Editors.TryGetValue(actualKey, out var value)) { Editors.Remove(actualKey); var e = new EditorEventArgs(value); EditorSelector.OnEditorRemoved(e); return(true); } return(false); }