コード例 #1
0
ファイル: MainForm.cs プロジェクト: acceleration3/di2xinput
        private void ProfileChangedEvent(object sender, EventArgs e)
        {
            var currentCell = ProgramGrid.CurrentCellAddress;
            var comboBox    = sender as DataGridViewComboBoxEditingControl;

            ProgramManager.entries.programs[currentCell.Y].profile = comboBox.EditingControlFormattedValue.ToString();
            ProgramManager.entries.programs[currentCell.Y].ApplyConfig();
            ProgramManager.SaveEntries();
        }
コード例 #2
0
ファイル: MainForm.cs プロジェクト: acceleration3/di2xinput
 private void RemoveButton_Click(object sender, EventArgs e)
 {
     if (ProgramGrid.SelectedRows.Count > 0)
     {
         var entry = ProgramManager.entries.programs[ProgramGrid.CurrentCell.RowIndex];
         entry.RemoveConfig();
         ProgramManager.entries.programs.Remove(entry);
         ProgramManager.SaveEntries();
         UpdateEntryList();
     }
 }
コード例 #3
0
ファイル: MainForm.cs プロジェクト: acceleration3/di2xinput
        private void AddButton_Click(object sender, EventArgs e)
        {
            if (ProfileManager.profiles.Count == 0)
            {
                MessageBox.Show("No profiles have been created. Please create a new profile.", "Error", MessageBoxButtons.OK, MessageBoxIcon.Error);
                return;
            }

            var result = openProgramDialog.ShowDialog();

            if (result == DialogResult.OK)
            {
                if (ProgramManager.entries.programs.Any(x => x.path == openProgramDialog.FileName))
                {
                    MessageBox.Show("This program has already been added to the list.", "Error", MessageBoxButtons.OK, MessageBoxIcon.Error);
                    return;
                }

                var newEntry = new ProgramManager.ProgramEntry()
                {
                    icon      = null,
                    path      = openProgramDialog.FileName,
                    profile   = ProfileManager.profiles.First().Key,
                    XIVersion = "Finding..."
                };

                string fileName   = openProgramDialog.FileName;
                int    entryIndex = ProgramManager.entries.programs.Count;

                ProgramManager.entries.programs.Add(newEntry);

                UpdateEntryList();

                Task <Tuple <int, string> > getVersionTask = new Task <Tuple <int, string> >(() =>
                {
                    return(GetXInputVersion(fileName, entryIndex));
                });

                getVersionTask.Start();

                getVersionTask.ContinueWith(task =>
                {
                    ProgramManager.entries.programs[task.Result.Item1].XIVersion = task.Result.Item2;
                    ProgramManager.entries.programs[task.Result.Item1].ApplyConfig();
                    ProgramManager.SaveEntries();
                    UpdateEntryList();
                });
            }
        }
コード例 #4
0
ファイル: MainForm.cs プロジェクト: acceleration3/di2xinput
        private void MainForm_Load(object sender, EventArgs e)
        {
            ProgramManager.LoadEntries();
            ProfileManager.ReloadProfiles();

            for (int i = 0; i < ProgramManager.entries.programs.Count; i++)
            {
                if (!ProfileManager.profiles.Any(x => x.Key == ProgramManager.entries.programs[i].profile))
                {
                    ProgramManager.entries.programs.RemoveAt(i);
                }
            }

            ProfileCombo_DropDown(null, null);
            DeviceCombo_DropDown(null, null);

            if (ProfileManager.profiles.Count == 0)
            {
                ProfileManager.activeProfile = new ProfileManager.Profile();
            }
            else
            {
                var startupProfile = ProfileManager.profiles.First();
                ProfileManager.activeProfile = startupProfile.Value;
                ProfileCombo.Text            = startupProfile.Key;
            }

            UpdateDeviceCombo();
            UpdateMappingGrid();
            UpdateEntryList();

            foreach (var entry in ProgramManager.entries.programs)
            {
                entry.ApplyConfig();
            }
        }