Ejemplo n.º 1
0
        private void RefreshList()
        {
            listView1.Items.Clear();

            bool hasChanged = false;

            foreach (ShortcutKeyGroup group in ShortcutKeyGroup.AllGroups)
            {
                var lvg = new ListViewGroup(Lang._(group.Name));
                listView1.Groups.Add(lvg);
                foreach (var key in group.Keys)
                {
                    ListViewItem lvi = new ListViewItem(Lang._(key.Name), lvg);
                    lvi.SubItems.Add(key.KeysToString());
                    if (!string.IsNullOrEmpty(key.Description))
                    {
                        lvi.SubItems.Add(Lang._(key.Description));
                    }
                    lvi.Tag = key;
                    listView1.Items.Add(lvi);

                    hasChanged |= key.Changed;

#if DEBUG
                    // test invalid shortcuts
                    if (key.Keys != Keys.None && !KeyMap.IsValidKey(key.Keys))
                    {
                        lvi.ForeColor = System.Drawing.Color.Red;
                    }
#endif

                    if (key.Image != null)
                    {
                        listView1.SmallImageList.Images.Add(key.Image);
                        lvi.ImageIndex = listView1.SmallImageList.Images.Count - 1;
                    }
                }
            }

            Changes.Clear();
            BtnReset.Enabled = hasChanged;
            OKButton.Enabled = false;
        }