Index: src/Deltares.DSoilModel.Forms/DSoilModelPlugin.cs =================================================================== diff -u -r253 -r257 --- src/Deltares.DSoilModel.Forms/DSoilModelPlugin.cs (.../DSoilModelPlugin.cs) (revision 253) +++ src/Deltares.DSoilModel.Forms/DSoilModelPlugin.cs (.../DSoilModelPlugin.cs) (revision 257) @@ -220,9 +220,12 @@ DataEventPublisher.OnDataListModified -= DataEventPublisherOnDataListModified; DataEventPublisher.OnAfterChange -= DataEventPublisherOnAfterChange; + DataEventPublisher.OnChanged -= DataEventPublisherOnChanged; DataEventPublisher.OnSelectionChanged -= DataEventPublisherOnSelectionChanged; } + + public void Configure(MainForm aMainForm) { mainForm = aMainForm; @@ -231,6 +234,7 @@ DataEventPublisher.OnDataListModified += DataEventPublisherOnDataListModified; DataEventPublisher.OnAfterChange += DataEventPublisherOnAfterChange; + DataEventPublisher.OnChanged += DataEventPublisherOnChanged; DataEventPublisher.OnSelectionChanged += DataEventPublisherOnSelectionChanged; mainForm.RegisterNewFileHandler(CreateNewFile); @@ -451,6 +455,18 @@ } } + private void DataEventPublisherOnChanged(object sender, PublishEventArgs e) + { + if (UndoRedoManager.UseManager == false) + { + // note: as the UndoRedoManager is not sending EndAction events the validator can respond to, start it here (see DSB-473) + if (DSoilModelProject.IsAutoValidationEnabled) + { + RealTimeBackgroundValidator.Instance.Start(); + } + } + } + private void DataEventPublisherOnAfterChange(object sender, PublishEventArgs publishEventArgs) { var localProject = sender as DSoilModelProject; @@ -1745,7 +1761,16 @@ if (dialogResult == DialogResult.OK) { - project.RepairAllValidationResults(); + var cuCursor = Cursor.Current; + try + { + Cursor.Current = Cursors.WaitCursor; + project.RepairAllValidationResults(); + } + finally + { + Cursor.Current = cuCursor; + } } } }