Change the Invalidate Type to flags

remove undo buffer from invalidate type
This commit is contained in:
Lars Brubaker 2019-01-28 14:19:40 -08:00
parent 0d74b4b5d8
commit f0728e0610
56 changed files with 283 additions and 261 deletions

View file

@ -53,23 +53,23 @@ namespace MatterHackers.MatterControl.PartPreviewWindow.View3D
public override async void OnInvalidate(InvalidateArgs invalidateType)
{
if ((invalidateType.InvalidateType == InvalidateType.Content
|| invalidateType.InvalidateType == InvalidateType.Matrix
|| invalidateType.InvalidateType == InvalidateType.Mesh)
if ((invalidateType.InvalidateType.HasFlag(InvalidateType.Children)
|| invalidateType.InvalidateType.HasFlag(InvalidateType.Matrix)
|| invalidateType.InvalidateType.HasFlag(InvalidateType.Mesh))
&& invalidateType.Source != this
&& !RebuildLocked)
{
await Rebuild();
invalidateType = new InvalidateArgs(this, InvalidateType.Content, invalidateType.UndoBuffer);
}
else if (invalidateType.InvalidateType == InvalidateType.Properties
else if (invalidateType.InvalidateType.HasFlag(InvalidateType.Properties)
&& invalidateType.Source == this)
{
await Rebuild();
invalidateType = new InvalidateArgs(this, InvalidateType.Content, invalidateType.UndoBuffer);
}
base.OnInvalidate(invalidateType);
else
{
base.OnInvalidate(invalidateType);
}
}
public override Task Rebuild()
@ -85,23 +85,17 @@ namespace MatterHackers.MatterControl.PartPreviewWindow.View3D
{
Intersect(cancellationToken, reporter);
}
catch { }
UiThread.RunOnIdle(() =>
catch
{
rebuildLocks.Dispose();
base.Invalidate(new InvalidateArgs(this, InvalidateType.Content));
});
}
rebuildLocks.Dispose();
base.Invalidate(new InvalidateArgs(this, InvalidateType.Children));
return Task.CompletedTask;
});
}
public void Intersect()
{
Intersect(CancellationToken.None, null);
}
private void Intersect(CancellationToken cancellationToken, IProgress<ProgressStatus> reporter)
{
ResetMeshWrapperMeshes(Object3DPropertyFlags.All, cancellationToken);