public void RefreshOpcodes(bool pReselect) { SessionForm session = DockPanel.ActiveDocument as SessionForm; Opcode selected = pReselect && session != null && mOpcodeCombo.SelectedIndex >= 0 && session.Opcodes.Count > mOpcodeCombo.SelectedIndex ? session.Opcodes[mOpcodeCombo.SelectedIndex] : null; mOpcodeCombo.Items.Clear(); if (session == null) { return; } session.UpdateOpcodeList(); foreach (Opcode op in session.Opcodes) { Definition definition = Config.Instance.GetDefinition(session.Build, session.Locale, op.Outbound, op.Header); int addedIndex = mOpcodeCombo.Items.Add(string.Format("{0} 0x{1:X4} {2}", (op.Outbound ? "Outbound " : "Inbound "), op.Header, definition == null || string.IsNullOrEmpty(definition.Name) ? "" : definition.Name)); if (selected != null && selected.Outbound == op.Outbound && selected.Header == op.Header) { mOpcodeCombo.SelectedIndex = addedIndex; } } }
public void RefreshOpcodes(bool pReselect) { SessionForm session = DockPanel.ActiveDocument as SessionForm; Pair <bool, ushort> selected = pReselect && session != null && mOpcodeCombo.SelectedIndex >= 0 ? session.Opcodes[mOpcodeCombo.SelectedIndex] : null; mOpcodeCombo.Items.Clear(); if (session == null) { return; } session.UpdateOpcodeList(); foreach (Pair <bool, ushort> kv in session.Opcodes) { Definition definition = Config.Instance.GetDefinition(session.Build, session.Locale, kv.First, kv.Second); int addedIndex = mOpcodeCombo.Items.Add(string.Format("{0} 0x{1:X4} {2}", (kv.First ? "Outbound " : "Inbound "), kv.Second, definition == null || string.IsNullOrEmpty(definition.Name) ? "" : definition.Name)); if (selected != null && selected.First == kv.First && selected.Second == kv.Second) { mOpcodeCombo.SelectedIndex = addedIndex; } } }