From ab61bb5a1133a2ff920078491bbf1a2f8ec40265 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=D0=9D=D0=B8=D0=BA=D0=B8=D1=82=D0=B0?= Date: Wed, 3 Oct 2018 17:28:52 +0300 Subject: [PATCH] =?UTF-8?q?=D0=98=D1=81=D0=BF=D1=80=D0=B0=D0=B2=D0=BB?= =?UTF-8?q?=D0=B5=D0=BD=D0=B8=D0=B5=20=D0=BE=D1=88=D0=B8=D0=B1=D0=BA=D0=B8?= =?UTF-8?q?,=20=D0=BA=D0=BE=D0=B3=D0=B4=D0=B0=20=D0=BD=D0=B5=20=D0=BC?= =?UTF-8?q?=D0=B5=D0=BD=D1=8F=D0=BB=D0=BE=D1=81=D1=8C=20=D0=B2=D0=B8=D0=B4?= =?UTF-8?q?=D0=B8=D0=BC=D0=BE=D1=81=D1=82=D1=8C=20ResultViewer'a.=20=D0=94?= =?UTF-8?q?=D0=BE=D0=B1=D0=B0=D0=B2=D0=BB=D0=B5=D0=BD=D0=B0=20=D0=B2=D0=BE?= =?UTF-8?q?=D0=B7=D0=BC=D0=BE=D0=B6=D0=BD=D0=BE=D1=81=D1=82=D1=8C=20=D0=B7?= =?UTF-8?q?=D0=B0=D0=BF=D1=83=D1=81=D1=82=D0=B8=D1=82=D1=8C=20=D0=BD=D0=BE?= =?UTF-8?q?=D0=B2=D0=BE=D0=B5=20=D0=B7=D0=B0=D0=B4=D0=B0=D0=BD=D0=B8=D0=B5?= =?UTF-8?q?,=20=D0=B5=D1=81=D0=BB=D0=B8=20=D0=B2=20=D0=BE=D0=B4=D0=BD?= =?UTF-8?q?=D0=BE=D0=BC=20=D0=B8=D0=B7=20=D0=BF=D0=BE=D0=BB=D0=B5=D0=B9=20?= =?UTF-8?q?=D0=B8=D0=B7=D0=BC=D0=B5=D0=BD=D0=B8=D0=BB=D0=BE=D1=81=D1=8C=20?= =?UTF-8?q?=D0=BD=D0=B0=D0=B7=D0=B2=D0=B0=D0=BD=D0=B8=D0=B5.?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- fileFinder/MainForm.cs | 37 ++++++++++++++++++++++++------------ fileFinder/TaskController.cs | 2 ++ 2 files changed, 27 insertions(+), 12 deletions(-) diff --git a/fileFinder/MainForm.cs b/fileFinder/MainForm.cs index a5d655b..b392668 100644 --- a/fileFinder/MainForm.cs +++ b/fileFinder/MainForm.cs @@ -16,14 +16,13 @@ namespace fileFinder public partial class MainForm : Form { HintModel hints = new HintModel(); - TaskController mainController; + TaskController mainController = new TaskController(); SearchQueryModel searchQueryModel; System.Timers.Timer updateInfoTimer = new System.Timers.Timer(1000); public MainForm() { InitializeComponent(); - mainController = new TaskController(); this.updateInfoTimer.Elapsed += refreshInfoByTimer; this.updateInfoTimer.AutoReset = true; this.updateInfoTimer.Enabled = true; @@ -39,6 +38,7 @@ namespace fileFinder queryTextBox.Text = sets.fileNameQuery; searchQueryModel = mainController.updateSearchQueryModel(sets.fileUrl, sets.fileInnerQuery, sets.fileNameQuery); + mainController.isTaskChanged = false; } private void fillImagesToResultViewer() @@ -94,26 +94,30 @@ namespace fileFinder if (mainController.isStopped || mainController.isTaskChanged) { + mainController.stopTask(); + mainController = new TaskController(); searchQueryModel = mainController.updateSearchQueryModel(curDirTextBox.Text, queryTextBox.Text, innerQueryTextBox.Text); handleSearchBtn.Text = "Pause Task"; - waitOrPauseLabel.Visible = true; - resultViewer.Enabled = false; mainController.beginTask(); - TreeNode tN = await Task.Run(() => mainController.buildResultTree(searchQueryModel, progress)); - updateResultViewer(tN); changeVisibilityResultViewer(); - handleSearchBtn.Text = "Start Task"; + TreeNode tN = await Task.Run(() => mainController.buildResultTree(searchQueryModel, progress)); + if (tN != null) + { + updateResultViewer(tN); + changeVisibilityResultViewer(); + handleSearchBtn.Text = "Start Task"; + } } else if (mainController.isPaused) { handleSearchBtn.Text = "Pause Task"; - changeVisibilityResultViewer(); mainController.resumeTask(); + changeVisibilityResultViewer(); } else { handleSearchBtn.Text = "Resume Task"; - changeVisibilityResultViewer(); mainController.pauseTask(); + changeVisibilityResultViewer(); } } @@ -170,17 +174,26 @@ namespace fileFinder private void curDirTextBox_TextChanged(object sender, EventArgs e) { - mainController.isTaskChanged = true; + changeTaskBtnStatus(); } private void queryTextBox_TextChanged(object sender, EventArgs e) { - mainController.isTaskChanged = true; + changeTaskBtnStatus(); } private void innerQueryTextBox_TextChanged(object sender, EventArgs e) { - mainController.isTaskChanged = true; + changeTaskBtnStatus(); + } + + private void changeTaskBtnStatus() + { + if (!mainController.isTaskChanged) + { + mainController.isTaskChanged = true; + handleSearchBtn.Text = "Start New Task"; + } } } } diff --git a/fileFinder/TaskController.cs b/fileFinder/TaskController.cs index f9e911c..1ac8113 100644 --- a/fileFinder/TaskController.cs +++ b/fileFinder/TaskController.cs @@ -77,6 +77,8 @@ namespace fileFinder int counter = 0; foreach (string item in foundFiles) { + if (controller.isStopped) + return null; while (controller.isPaused) { Thread.Sleep(100);