void Reload()
        {
            if (_currentfile != null)
            {
                // refresh listbox contents
                string[] lines = File.ReadAllLines(_currentfile, Encoding.UTF8);
                listBox.Items.Clear();
                foreach (var line in lines)
                {
                    listBox.Items.Add(line);
                }

                // get categories string
                var categories = Configs.Current.Get(ConfigKey.CategoriesModeText);
                if (categories == null || categories.Length == 0)
                {
                    categories = "G/good/good|B/bad/bad";
                    Configs.Current.Set(ConfigKey.CategoriesModeText, categories);
                }

                // refresh categories in ui
                _categoryKeyBindings.Clear();
                lblCategories.Text = "";
                var tuples = ModeUtils.CategoriesStringToTuple(categories);
                foreach (var tuple in tuples)
                {
                    lblCategories.Text += tuple.Item1 + "    " +
                                          tuple.Item2 + Utils.NL + Utils.NL;
                    _categoryKeyBindings[tuple.Item1] = tuple.Item3;
                }
            }
        }
        public static Tuple <string, string, string>[] ModeToTuples(ModeBase mode)
        {
            var categoriesString = Configs.Current.Get(mode.GetCategories());

            return(ModeUtils.CategoriesStringToTuple(categoriesString));
        }