public TitleUpdateWindow(VirtualFileSystem virtualFileSystem, string titleId, string titleName) { VirtualFileSystem = virtualFileSystem; TitleId = titleId; TitleName = titleName; _titleUpdateJsonPath = Path.Combine(AppDataManager.GamesDirPath, titleId, "updates.json"); try { _titleUpdateWindowData = JsonHelper.DeserializeFromFile <TitleUpdateMetadata>(_titleUpdateJsonPath); } catch { _titleUpdateWindowData = new TitleUpdateMetadata { Selected = "", Paths = new List <string>() }; } DataContext = this; InitializeComponent(); Title = $"Ryujinx {Program.Version} - " + LocaleManager.Instance["UpdateWindowTitle"]; LoadUpdates(); }
private TitleUpdateWindow(Builder builder, string titleId, string titleName, VirtualFileSystem virtualFileSystem) : base(builder.GetObject("_titleUpdateWindow").Handle) { builder.Autoconnect(this); _titleId = titleId; _virtualFileSystem = virtualFileSystem; _updateJsonPath = System.IO.Path.Combine(AppDataManager.GamesDirPath, _titleId, "updates.json"); _radioButtonToPathDictionary = new Dictionary <RadioButton, string>(); try { _titleUpdateWindowData = JsonHelper.DeserializeFromFile <TitleUpdateMetadata>(_updateJsonPath); } catch { _titleUpdateWindowData = new TitleUpdateMetadata { Selected = "", Paths = new List <string>() }; } _baseTitleInfoLabel.Text = $"Updates Available for {titleName} [{titleId.ToUpper()}]"; _noUpdateRadioButton.Active = true; foreach (string path in _titleUpdateWindowData.Paths) { AddUpdate(path, false); } foreach ((RadioButton update, var _) in _radioButtonToPathDictionary.Where(keyValuePair => keyValuePair.Value == _titleUpdateWindowData.Selected)) { update.Active = true; } }
private TitleUpdateWindow(Builder builder, MainWindow parent, VirtualFileSystem virtualFileSystem, string titleId, string titleName) : base(builder.GetObject("_titleUpdateWindow").Handle) { _parent = parent; builder.Autoconnect(this); _titleId = titleId; _virtualFileSystem = virtualFileSystem; _updateJsonPath = System.IO.Path.Combine(AppDataManager.GamesDirPath, _titleId, "updates.json"); _radioButtonToPathDictionary = new Dictionary <RadioButton, string>(); try { _titleUpdateWindowData = JsonHelper.DeserializeFromFile <TitleUpdateMetadata>(_updateJsonPath); } catch { _titleUpdateWindowData = new TitleUpdateMetadata { Selected = "", Paths = new List <string>() }; } _baseTitleInfoLabel.Text = $"Updates Available for {titleName} [{titleId.ToUpper()}]"; int invalidUpdateCount = 0; foreach (string path in _titleUpdateWindowData.Paths) { if (!File.Exists(path)) { invalidUpdateCount++; continue; } AddUpdate(path); } if (invalidUpdateCount > 0) { Logger.Error?.PrintMsg(LogClass.Application, "Updates have been moved or deleted; skipping " + invalidUpdateCount + " updates"); GtkDialog.CreateErrorDialog(invalidUpdateCount + " updates have been moved or deleted; please re-add your updates."); } if (_titleUpdateWindowData.Selected == "") { _noUpdateRadioButton.Active = true; } else { foreach ((RadioButton update, var _) in _radioButtonToPathDictionary.Where(keyValuePair => keyValuePair.Value == _titleUpdateWindowData.Selected)) { update.Active = true; } } }
private TitleUpdateWindow(Builder builder, string titleId, string titleName, VirtualFileSystem virtualFileSystem) : base(builder.GetObject("_titleUpdateWindow").Handle) { builder.Autoconnect(this); _titleId = titleId; _virtualFileSystem = virtualFileSystem; try { using (Stream stream = File.OpenRead(System.IO.Path.Combine(_virtualFileSystem.GetBasePath(), "games", _titleId, "updates.json"))) { IJsonFormatterResolver resolver = CompositeResolver.Create(StandardResolver.AllowPrivateSnakeCase); _titleUpdateWindowData = JsonSerializer.Deserialize <TitleUpdateMetadata>(stream, resolver); } } catch { _titleUpdateWindowData = new TitleUpdateMetadata { Selected = "", Paths = new List <string>() }; } _baseTitleInfoLabel.Text = $"Updates Available for {titleName} [{titleId}]"; foreach (string path in _titleUpdateWindowData.Paths) { AddUpdate(path); } _noUpdateRadioButton.Active = true; foreach (KeyValuePair <RadioButton, string> keyValuePair in _radioButtonToPathDictionary) { if (keyValuePair.Value == _titleUpdateWindowData.Selected) { keyValuePair.Key.Active = true; } } }
private TitleUpdateWindow(Builder builder, string titleId, string titleName, VirtualFileSystem virtualFileSystem) : base(builder.GetObject("_titleUpdateWindow").Handle) { builder.Autoconnect(this); _titleId = titleId; _virtualFileSystem = virtualFileSystem; try { string path = System.IO.Path.Combine(_virtualFileSystem.GetBasePath(), "games", _titleId, "updates.json"); _titleUpdateWindowData = JsonHelper.DeserializeFromFile <TitleUpdateMetadata>(path); } catch { _titleUpdateWindowData = new TitleUpdateMetadata { Selected = "", Paths = new List <string>() }; } _baseTitleInfoLabel.Text = $"Updates Available for {titleName} [{titleId}]"; foreach (string path in _titleUpdateWindowData.Paths) { AddUpdate(path, false); } _noUpdateRadioButton.Active = true; foreach (KeyValuePair <RadioButton, string> keyValuePair in _radioButtonToPathDictionary) { if (keyValuePair.Value == _titleUpdateWindowData.Selected) { keyValuePair.Key.Active = true; } } }