Esempio n. 1
0
        private void load(RealmContextFactory realmFactory)
        {
            var rulesetId = Ruleset?.ID;

            List <RealmKeyBinding> bindings;

            using (var usage = realmFactory.GetForRead())
                bindings = usage.Realm.All <RealmKeyBinding>().Where(b => b.RulesetID == rulesetId && b.Variant == variant).Detach();

            foreach (var defaultGroup in Defaults.GroupBy(d => d.Action))
            {
                int intKey = (int)defaultGroup.Key;

                // one row per valid action.
                Add(new KeyBindingRow(defaultGroup.Key, bindings.Where(b => b.ActionInt.Equals(intKey)).ToList())
                {
                    AllowMainMouseButtons = Ruleset != null,
                    Defaults = defaultGroup.Select(d => d.KeyCombination)
                });
            }

            Add(new ResetButton
            {
                Action = () => Children.OfType <KeyBindingRow>().ForEach(k => k.RestoreDefaults())
            });
        }
Esempio n. 2
0
        public IReadOnlyList <string> GetReadableKeyCombinationsFor(GlobalAction globalAction)
        {
            List <string> combinations = new List <string>();

            using (var context = realmFactory.GetForRead())
            {
                foreach (var action in context.Realm.All <RealmKeyBinding>().Where(b => b.RulesetID == null && (GlobalAction)b.ActionInt == globalAction))
                {
                    string str = action.KeyCombination.ReadableString();

                    // even if found, the readable string may be empty for an unbound action.
                    if (str.Length > 0)
                    {
                        combinations.Add(str);
                    }
                }
            }

            return(combinations);
        }