BizHawk/BizHawk.Client.EmuHawk/config/FileExtensionPreferencesPic...

78 lines
1.8 KiB
C#
Raw Normal View History

using System;
using System.Collections.Generic;
using System.Linq;
using System.Windows.Forms;
using BizHawk.Emulation.Common;
using BizHawk.Client.Common;
namespace BizHawk.Client.EmuHawk
{
public partial class FileExtensionPreferencesPicker : UserControl
{
public FileExtensionPreferencesPicker()
{
InitializeComponent();
_availableSystems = new SystemLookup().AllSystems.ToList();
}
private readonly List<SystemLookup.SystemInfo> _availableSystems;
public string FileExtension { get; set; }
public string OriginalPreference { get; set; }
public string CurrentlySelectedSystemId
{
get
{
if (PlatformDropdown.SelectedIndex > 0)
{
return _availableSystems
.First(x => x.FullName == PlatformDropdown.SelectedItem.ToString()).SystemId;
}
2017-05-10 11:45:23 +00:00
return "";
}
}
private void PopulatePlatforms()
{
PlatformDropdown.Items.Add("Ask me on load");
foreach (var platform in _availableSystems)
{
PlatformDropdown.Items.Add(platform.FullName);
}
}
private void FileExtensionPreferencesPicker_Load(object sender, EventArgs e)
{
PopulatePlatforms();
var selectedSystemId = Global.Config.PreferredPlatformsForExtensions[FileExtension];
if (!string.IsNullOrEmpty(selectedSystemId))
{
var selectedSystem = _availableSystems.FirstOrDefault(s => s.SystemId == selectedSystemId);
var selectedItem = PlatformDropdown.Items
.OfType<string>()
2017-05-10 11:45:23 +00:00
.FirstOrDefault(item => item == (selectedSystem != null ? selectedSystem.FullName : ""));
if (selectedItem != null)
{
PlatformDropdown.SelectedItem = selectedItem;
}
else
{
PlatformDropdown.SelectedIndex = 0;
}
}
else
{
PlatformDropdown.SelectedIndex = 0;
}
FileExtensionLabel.Text = FileExtension;
}
}
}