private void toolImportFilter_Click(object sender, EventArgs e)
        {
            using (var open = new OpenFileDialog {
                Filter = "INI File|*.ini"
            })
            {
                if (open.ShowDialog() != DialogResult.OK)
                {
                    return;
                }

                var import = IniSerializer.Deserialize <List <Filter> >(open.FileName);

                if (import.Count == 0)
                {
                    MessageBox.Show("This file doesn't contain any filters.", "Import error", MessageBoxButtons.OK, MessageBoxIcon.Information);
                    return;
                }

                using (var window = new FilterSelect(import))
                {
                    if (window.ShowDialog() != DialogResult.OK)
                    {
                        return;
                    }

                    foreach (int i in window.SelectedFilters)
                    {
                        Program.Settings.Filters.Add(window.FilterList[i]);
                    }
                }
            }
        }
        private void toolExportFilter_Click(object sender, EventArgs e)
        {
            using (var window = new FilterSelect(Program.Settings.Filters))
            {
                DialogResult result = window.ShowDialog();

                if (result != DialogResult.OK)
                {
                    return;
                }

                using (var save = new SaveFileDialog {
                    Filter = "INI File|*.ini"
                })
                {
                    if (save.ShowDialog() != DialogResult.OK || window.SelectedFilters.Count <= 0)
                    {
                        return;
                    }

                    if (window.FiltersModified)
                    {
                        Program.Settings.Filters = window.FilterList;
                    }

                    List <Filter> export = window.SelectedFilters.Select(i => Program.Settings.Filters[i]).ToList();

                    IniSerializer.Serialize(export, save.FileName);
                }
            }
        }
        private void RunSelectedFilters(bool selectFirst)
        {
            var result = DialogResult.OK;

            if (selectFirst)
            {
                using (var window = new FilterSelect(Program.Settings.Filters, lastFilters))
                {
                    result = window.ShowDialog();

                    if (result == DialogResult.OK && window.FiltersModified)
                    {
                        Program.Settings.Filters = window.FilterList;
                        SaveSettings();
                    }
                }
            }

            if (result != DialogResult.OK)
            {
                return;
            }

            ApplyFilters(true);
        }