Add keyboard arrow navigation for active GCode layer
This commit is contained in:
parent
f5fcde1083
commit
d4d7e80184
2 changed files with 49 additions and 4 deletions
|
|
@ -1279,7 +1279,7 @@ namespace MatterHackers.MatterControl
|
||||||
using (new SelectionMaintainer(scene))
|
using (new SelectionMaintainer(scene))
|
||||||
{
|
{
|
||||||
scene.UndoBuffer.AddAndDo(new ReplaceCommand(new[] { sceneItem }, new[] { component }));
|
scene.UndoBuffer.AddAndDo(new ReplaceCommand(new[] { sceneItem }, new[] { component }));
|
||||||
} // Invalidate image to kick off rebuild of ImageConverter stack
|
} // Invalidate image to kick off rebuild of ImageConverter stack
|
||||||
imageObject.Invalidate(InvalidateType.Image);
|
imageObject.Invalidate(InvalidateType.Image);
|
||||||
|
|
||||||
return Task.CompletedTask;
|
return Task.CompletedTask;
|
||||||
|
|
@ -3367,14 +3367,35 @@ If you experience adhesion problems, please re-run leveling."
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case Keys.Left:
|
case Keys.Left:
|
||||||
// move or rotate view left
|
if (keyEvent.Control
|
||||||
Offset3DView(view3D, new Vector2(-offsetDist, 0), arrowKeyOpperation);
|
&& !printerTabPage.sceneContext.ViewState.ModelView)
|
||||||
|
{
|
||||||
|
// Decrement slider
|
||||||
|
printerTabPage.LayerFeaturesIndex -= 1;
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
// move or rotate view left
|
||||||
|
Offset3DView(view3D, new Vector2(-offsetDist, 0), arrowKeyOpperation);
|
||||||
|
}
|
||||||
|
|
||||||
keyEvent.Handled = true;
|
keyEvent.Handled = true;
|
||||||
keyEvent.SuppressKeyPress = true;
|
keyEvent.SuppressKeyPress = true;
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case Keys.Right:
|
case Keys.Right:
|
||||||
Offset3DView(view3D, new Vector2(offsetDist, 0), arrowKeyOpperation);
|
if (keyEvent.Control
|
||||||
|
&& !printerTabPage.sceneContext.ViewState.ModelView)
|
||||||
|
{
|
||||||
|
// Increment slider
|
||||||
|
printerTabPage.LayerFeaturesIndex += 1;
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
// move or rotate view right
|
||||||
|
Offset3DView(view3D, new Vector2(offsetDist, 0), arrowKeyOpperation);
|
||||||
|
}
|
||||||
|
|
||||||
keyEvent.Handled = true;
|
keyEvent.Handled = true;
|
||||||
keyEvent.SuppressKeyPress = true;
|
keyEvent.SuppressKeyPress = true;
|
||||||
break;
|
break;
|
||||||
|
|
|
||||||
|
|
@ -229,6 +229,30 @@ namespace MatterHackers.MatterControl.PartPreviewWindow
|
||||||
sceneContext.LoadedGCodeChanged += BedPlate_LoadedGCodeChanged;
|
sceneContext.LoadedGCodeChanged += BedPlate_LoadedGCodeChanged;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public int LayerFeaturesIndex
|
||||||
|
{
|
||||||
|
get
|
||||||
|
{
|
||||||
|
var renderInfo = sceneContext.RenderInfo;
|
||||||
|
int layerIndex = renderInfo.EndLayerIndex - 1;
|
||||||
|
int featuresOnLayer = sceneContext.GCodeRenderer.GetNumFeatures(layerIndex);
|
||||||
|
int featureIndex = (int)(featuresOnLayer * renderInfo.FeatureToEndOnRatio0To1 + .5);
|
||||||
|
|
||||||
|
return Math.Max(0, Math.Min(featureIndex, featuresOnLayer));
|
||||||
|
}
|
||||||
|
|
||||||
|
set
|
||||||
|
{
|
||||||
|
var renderInfo = sceneContext.RenderInfo;
|
||||||
|
int layerIndex = renderInfo.EndLayerIndex - 1;
|
||||||
|
int featuresOnLayer = sceneContext.GCodeRenderer.GetNumFeatures(layerIndex);
|
||||||
|
|
||||||
|
var factor = (double)value / featuresOnLayer;
|
||||||
|
|
||||||
|
layerRenderRatioSlider.SecondValue = renderInfo.FeatureToEndOnRatio0To1 = Math.Max(0, Math.Min(factor, 1));
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
string pauseCaption = "Printer Paused".Localize();
|
string pauseCaption = "Printer Paused".Localize();
|
||||||
|
|
||||||
private void ResumePrint(bool clickedOk)
|
private void ResumePrint(bool clickedOk)
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue