Sfall-ScriptEditor

Форк
0
133 строки · 4.4 Кб
1
using System;
2
using System.Windows.Forms;
3
using System.Collections.Generic;
4
using System.IO;
5
using System.Linq;
6

7
namespace ScriptEditor
8
{
9
    public partial class SearchForm : Form
10
    {
11
        private bool isHide = false;
12

13
        public SearchForm()
14
        {
15
            InitializeComponent();
16

17
            cbSearchPath.Items.AddRange((Settings.searchListPath.Count > 0)
18
                                        ? Settings.searchListPath.Cast<String>().ToArray()
19
                                        : File.ReadAllLines(Settings.SearchFoldersPath));
20

21
            if (Settings.lastSearchPath == null) {
22
                cbSearchPath.Text = "<unset>";
23
            } else {
24
                cbSearchPath.Text = Settings.lastSearchPath;
25
            }
26
            cbFileMask.SelectedIndex = 0;
27

28
            cbCase.Checked = !Settings.searchIgnoreCase;
29
            cbWord.Checked = Settings.searchWholeWord;
30

31
            this.KeyUp += delegate(object a1, KeyEventArgs a2)
32
            {
33
                if (a2.KeyCode == Keys.Escape) this.bHide.PerformClick();
34
            };
35

36
            this.rbFolder.CheckedChanged += delegate(object a1, EventArgs a2)
37
            {
38
                this.bChange.Enabled = this.cbSearchSubfolders.Enabled = this.rbFolder.Checked;
39
                this.bReplace.Enabled = !this.rbFolder.Checked;
40
            };
41

42
            this.bChange.Click += delegate(object a1, EventArgs a2)
43
            {
44
                this.fbdSearchFolder.SelectedPath = Settings.lastSearchPath;
45
                if (this.fbdSearchFolder.ShowDialog() != DialogResult.OK) return;
46

47
                Settings.lastSearchPath = this.fbdSearchFolder.SelectedPath;
48

49
                if (CheckSearchPath()) this.cbSearchPath.Items.Add(Settings.lastSearchPath);
50
                this.cbSearchPath.Text = Settings.lastSearchPath;
51
            };
52

53
            this.cbSearch.KeyPress += delegate(object a1, KeyPressEventArgs a2)
54
            {
55
                if (a2.KeyChar == '\r') {
56
                    a2.Handled = true;
57
                    this.bSearch.PerformClick();
58
                }
59
            };
60
        }
61

62
        public List<string> GetFolderFiles()
63
        {
64
            List<string> files = new List<string>();
65
            SearchOption so = cbSearchSubfolders.Checked ? SearchOption.AllDirectories : SearchOption.TopDirectoryOnly;
66
            if (cbFileMask.SelectedIndex == 0) {
67
                for (int i = 1; i < cbFileMask.Items.Count; i++)
68
                   files.AddRange(Directory.GetFiles(Settings.lastSearchPath, cbFileMask.Items[i].ToString(), so));
69
            } else
70
                files.AddRange(Directory.GetFiles(Settings.lastSearchPath, cbFileMask.Text, so));
71

72
            return files;
73
        }
74

75
        private bool CheckSearchPath()
76
        {
77
            foreach (string item in this.cbSearchPath.Items)
78
            {
79
                if (String.Equals(item, Settings.lastSearchPath, StringComparison.OrdinalIgnoreCase)) return false;
80
            }
81
            return true;
82
        }
83

84
        private void SearchForm_Deactivate(object sender, EventArgs e)
85
        {
86
            if (!isHide && WindowState == FormWindowState.Minimized) Opacity = 0.6;
87
        }
88

89
        private void SearchForm_Activated(object sender, EventArgs e)
90
        {
91
            Opacity = 1;
92
            isHide = false;
93
        }
94

95
        private void bHide_Click(object sender, EventArgs e)
96
        {
97
            isHide = true;
98
            this.Hide();
99
        }
100

101
        private void rbFolder_CheckedChanged(object sender, EventArgs e)
102
        {
103
            cbFileMask.Enabled = rbFolder.Checked;
104
            cbSearchPath.Enabled = rbFolder.Checked;
105
        }
106

107
        private void cbRegular_CheckedChanged(object sender, EventArgs e)
108
        {
109
            cbWord.Enabled = !cbRegular.Checked;
110
        }
111

112
        private void SearchForm_FormClosing(object sender, FormClosingEventArgs e)
113
        {
114
            Settings.searchListPath.Clear();
115
            Settings.searchListPath.AddRange(cbSearchPath.Items.Cast<String>().ToList());
116
        }
117

118
        private void cbCase_Click(object sender, EventArgs e)
119
        {
120
            Settings.searchIgnoreCase = !cbCase.Checked;
121
        }
122

123
        private void cbWord_Click(object sender, EventArgs e)
124
        {
125
            Settings.searchWholeWord = cbWord.Checked;
126
        }
127

128
        private void cbSearchPath_SelectedIndexChanged(object sender, EventArgs e)
129
        {
130
            Settings.lastSearchPath = cbSearchPath.Text;
131
        }
132
    }
133
}
134

Использование cookies

Мы используем файлы cookie в соответствии с Политикой конфиденциальности и Политикой использования cookies.

Нажимая кнопку «Принимаю», Вы даете АО «СберТех» согласие на обработку Ваших персональных данных в целях совершенствования нашего веб-сайта и Сервиса GitVerse, а также повышения удобства их использования.

Запретить использование cookies Вы можете самостоятельно в настройках Вашего браузера.