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))
|
||||
{
|
||||
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);
|
||||
|
||||
return Task.CompletedTask;
|
||||
|
|
@ -3367,14 +3367,35 @@ If you experience adhesion problems, please re-run leveling."
|
|||
break;
|
||||
|
||||
case Keys.Left:
|
||||
// move or rotate view left
|
||||
Offset3DView(view3D, new Vector2(-offsetDist, 0), arrowKeyOpperation);
|
||||
if (keyEvent.Control
|
||||
&& !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.SuppressKeyPress = true;
|
||||
break;
|
||||
|
||||
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.SuppressKeyPress = true;
|
||||
break;
|
||||
|
|
|
|||
|
|
@ -229,6 +229,30 @@ namespace MatterHackers.MatterControl.PartPreviewWindow
|
|||
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();
|
||||
|
||||
private void ResumePrint(bool clickedOk)
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue