Merge pull request #4503 from jlewin/master
Prevent GCode load during slicing
This commit is contained in:
commit
79f401f2fe
9 changed files with 114 additions and 69 deletions
|
|
@ -2606,6 +2606,8 @@ namespace MatterHackers.MatterControl
|
|||
// Slice
|
||||
bool slicingSucceeded = false;
|
||||
|
||||
printer.ViewState.SlicingItem = true;
|
||||
|
||||
await this.Tasks.Execute("Slicing".Localize(), printer, async (reporter, cancellationToken) =>
|
||||
{
|
||||
slicingSucceeded = await Slicer.SliceItem(
|
||||
|
|
@ -2616,6 +2618,8 @@ namespace MatterHackers.MatterControl
|
|||
cancellationToken);
|
||||
});
|
||||
|
||||
printer.ViewState.SlicingItem = false;
|
||||
|
||||
// Skip loading GCode output if slicing failed
|
||||
if (!slicingSucceeded)
|
||||
{
|
||||
|
|
|
|||
|
|
@ -42,7 +42,6 @@ namespace MatterHackers.MatterControl
|
|||
using System.Linq;
|
||||
using System.Threading;
|
||||
using MatterHackers.Agg;
|
||||
using MatterHackers.Agg.Image;
|
||||
using MatterHackers.DataConverters3D;
|
||||
using MatterHackers.GCodeVisualizer;
|
||||
using MatterHackers.Localizations;
|
||||
|
|
@ -73,7 +72,7 @@ namespace MatterHackers.MatterControl
|
|||
|
||||
public SceneContextViewState ViewState { get; }
|
||||
|
||||
private HistoryContainerBase historyContainer;
|
||||
private readonly HistoryContainerBase historyContainer;
|
||||
|
||||
public BedConfig(HistoryContainerBase historyContainer, PrinterConfig printer = null)
|
||||
{
|
||||
|
|
@ -267,11 +266,10 @@ namespace MatterHackers.MatterControl
|
|||
foreach (string loadedFileName in filesToLoadIncludingZips)
|
||||
{
|
||||
string extension = Path.GetExtension(loadedFileName).ToUpper();
|
||||
if ((extension != ""
|
||||
if (extension != ""
|
||||
&& extension != ".ZIP"
|
||||
&& extension != ".GCODE"
|
||||
&& ApplicationController.Instance.Library.IsContentFileType(loadedFileName))
|
||||
)
|
||||
{
|
||||
filesToLoad.Add(loadedFileName);
|
||||
}
|
||||
|
|
@ -300,12 +298,9 @@ namespace MatterHackers.MatterControl
|
|||
}
|
||||
}
|
||||
|
||||
|
||||
/// <summary>
|
||||
/// Loads content to the bed and prepares edit/persistence context for use
|
||||
/// </summary>
|
||||
/// <param name="editContext"></param>
|
||||
/// <returns></returns>
|
||||
public async Task LoadPlateFromHistory()
|
||||
{
|
||||
await this.LoadContent(new EditContext()
|
||||
|
|
@ -374,6 +369,7 @@ namespace MatterHackers.MatterControl
|
|||
internal void EnsureGCodeLoaded()
|
||||
{
|
||||
if (this.LoadedGCode == null
|
||||
&& !this.Printer.ViewState.SlicingItem
|
||||
&& File.Exists(this.EditContext?.GCodeFilePath(this.Printer)))
|
||||
{
|
||||
UiThread.RunOnIdle(async () =>
|
||||
|
|
@ -389,14 +385,18 @@ namespace MatterHackers.MatterControl
|
|||
public WorldView World { get; } = new WorldView(0, 0);
|
||||
|
||||
public double BuildHeight { get; internal set; }
|
||||
|
||||
public Vector3 ViewerVolume { get; internal set; }
|
||||
|
||||
public Vector2 BedCenter { get; internal set; } = Vector2.Zero;
|
||||
|
||||
public BedShape BedShape { get; internal set; }
|
||||
|
||||
// TODO: Make assignment private, wire up post slicing initialization here
|
||||
public GCodeRenderer GCodeRenderer { get; set; }
|
||||
|
||||
private int _activeLayerIndex;
|
||||
|
||||
public int ActiveLayerIndex
|
||||
{
|
||||
get => _activeLayerIndex;
|
||||
|
|
@ -505,7 +505,6 @@ namespace MatterHackers.MatterControl
|
|||
|
||||
public string ContentType { get; private set; }
|
||||
|
||||
|
||||
/// <summary>
|
||||
/// Return the axis aligned bounding box of the bed
|
||||
/// </summary>
|
||||
|
|
@ -567,6 +566,7 @@ namespace MatterHackers.MatterControl
|
|||
{
|
||||
renderType |= RenderType.Moves;
|
||||
}
|
||||
|
||||
if (options.RenderRetractions)
|
||||
{
|
||||
renderType |= RenderType.Retractions;
|
||||
|
|
@ -585,6 +585,7 @@ namespace MatterHackers.MatterControl
|
|||
{
|
||||
renderType |= RenderType.SimulateExtrusion;
|
||||
}
|
||||
|
||||
if (options.TransparentExtrusion)
|
||||
{
|
||||
renderType |= RenderType.TransparentExtrusion;
|
||||
|
|
|
|||
|
|
@ -28,13 +28,23 @@ either expressed or implied, of the FreeBSD Project.
|
|||
*/
|
||||
|
||||
using System;
|
||||
using MatterHackers.MatterControl.PartPreviewWindow;
|
||||
|
||||
namespace MatterHackers.MatterControl
|
||||
{
|
||||
using MatterHackers.MatterControl.PartPreviewWindow;
|
||||
|
||||
public class PrinterViewState
|
||||
{
|
||||
private const double DefaultSliceSettingsWidth = 450;
|
||||
|
||||
// visibility defaults
|
||||
private bool _configurePrinterVisible = UserSettings.Instance.get(UserSettingsKey.ConfigurePrinterTabVisible) == "true";
|
||||
|
||||
private bool _controlsVisible = UserSettings.Instance.get(UserSettingsKey.ControlsTabVisible) != "false";
|
||||
|
||||
private bool _terminalVisible = UserSettings.Instance.get(UserSettingsKey.TerminalTabVisible) == "true";
|
||||
|
||||
private PartViewMode _viewMode = PartViewMode.Model;
|
||||
|
||||
public event EventHandler<ViewModeChangedEventArgs> ViewModeChanged;
|
||||
|
||||
public event EventHandler VisibilityChanged;
|
||||
|
|
@ -53,51 +63,47 @@ namespace MatterHackers.MatterControl
|
|||
|
||||
public bool DockWindowFloating { get; internal set; }
|
||||
|
||||
double DefaultSliceSettingsWidth => 450;
|
||||
public double SliceSettingsWidth
|
||||
{
|
||||
get
|
||||
{
|
||||
double.TryParse(UserSettings.Instance.get(UserSettingsKey.SliceSettingsWidth), out double controlWidth);
|
||||
if(controlWidth == 0)
|
||||
|
||||
if (controlWidth == 0)
|
||||
{
|
||||
controlWidth = DefaultSliceSettingsWidth;
|
||||
}
|
||||
|
||||
return controlWidth;
|
||||
}
|
||||
|
||||
set
|
||||
{
|
||||
UserSettings.Instance.set(UserSettingsKey.SliceSettingsWidth, value.ToString());
|
||||
}
|
||||
}
|
||||
|
||||
private PartViewMode viewMode = PartViewMode.Model;
|
||||
public PartViewMode ViewMode
|
||||
{
|
||||
get => viewMode;
|
||||
get => _viewMode;
|
||||
set
|
||||
{
|
||||
if (viewMode != value)
|
||||
if (_viewMode != value)
|
||||
{
|
||||
// Capture before/after state
|
||||
var eventArgs = new ViewModeChangedEventArgs()
|
||||
{
|
||||
ViewMode = value,
|
||||
PreviousMode = viewMode
|
||||
PreviousMode = _viewMode
|
||||
};
|
||||
|
||||
viewMode = value;
|
||||
_viewMode = value;
|
||||
|
||||
this.ViewModeChanged?.Invoke(this, eventArgs);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
public bool _configurePrinterVisible = UserSettings.Instance.get(UserSettingsKey.ConfigurePrinterTabVisible) == "true";
|
||||
// set the controls to default to visible
|
||||
public bool _controlsVisible = UserSettings.Instance.get(UserSettingsKey.ControlsTabVisible) != "false";
|
||||
public bool _terminalVisible = UserSettings.Instance.get(UserSettingsKey.TerminalTabVisible) == "true";
|
||||
|
||||
public bool ConfigurePrinterVisible
|
||||
{
|
||||
get => _configurePrinterVisible;
|
||||
|
|
@ -172,11 +178,14 @@ namespace MatterHackers.MatterControl
|
|||
|
||||
return 200;
|
||||
}
|
||||
|
||||
set
|
||||
{
|
||||
var minimumValue = Math.Max(value, 150);
|
||||
UserSettings.Instance.set(UserSettingsKey.SelectedObjectPanelWidth, minimumValue.ToString());
|
||||
}
|
||||
}
|
||||
|
||||
public bool SlicingItem { get; set; }
|
||||
}
|
||||
}
|
||||
|
|
@ -41,7 +41,7 @@ namespace MatterHackers.MatterControl.PartPreviewWindow
|
|||
{
|
||||
this.HAnchor = HAnchor.Fit;
|
||||
this.VAnchor = VAnchor.Fit;
|
||||
|
||||
|
||||
this.AddChild(new IconButton(AggContext.StaticData.LoadIcon("web.png", theme.InvertIcons), theme)
|
||||
{
|
||||
Selectable = false
|
||||
|
|
|
|||
|
|
@ -315,6 +315,7 @@ namespace MatterHackers.MatterControl.PartPreviewWindow
|
|||
homeButton.Click += (s, e) => viewControls3D.NotifyResetView();
|
||||
viewOptionsBar.AddChild(homeButton);
|
||||
|
||||
#if DEBUG
|
||||
var renderOptionsButton = new RenderOptionsButton(theme, this.InteractionLayer)
|
||||
{
|
||||
ToolTipText = "Model View Style".Localize(),
|
||||
|
|
@ -328,6 +329,7 @@ namespace MatterHackers.MatterControl.PartPreviewWindow
|
|||
}
|
||||
};
|
||||
viewOptionsBar.AddChild(renderOptionsButton);
|
||||
#endif
|
||||
|
||||
modelViewStyleButton = new ViewStyleButton(sceneContext, theme)
|
||||
{
|
||||
|
|
|
|||
|
|
@ -0,0 +1,44 @@
|
|||
/*
|
||||
Copyright (c) 2019, Lars Brubaker, John Lewin
|
||||
All rights reserved.
|
||||
|
||||
Redistribution and use in source and binary forms, with or without
|
||||
modification, are permitted provided that the following conditions are met:
|
||||
|
||||
1. Redistributions of source code must retain the above copyright notice, this
|
||||
list of conditions and the following disclaimer.
|
||||
2. Redistributions in binary form must reproduce the above copyright notice,
|
||||
this list of conditions and the following disclaimer in the documentation
|
||||
and/or other materials provided with the distribution.
|
||||
|
||||
THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND
|
||||
ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
|
||||
WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
|
||||
DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR
|
||||
ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
|
||||
(INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
|
||||
LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
|
||||
ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
|
||||
(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
|
||||
SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
||||
|
||||
The views and conclusions contained in the software and documentation are those
|
||||
of the authors and should not be interpreted as representing official policies,
|
||||
either expressed or implied, of the FreeBSD Project.
|
||||
*/
|
||||
|
||||
using MatterHackers.Agg.UI;
|
||||
|
||||
namespace MatterHackers.MatterControl.PrinterControls.PrinterConnections
|
||||
{
|
||||
public class SerialPortIndexRadioButton : RadioButton
|
||||
{
|
||||
public string PortValue { get; }
|
||||
|
||||
public SerialPortIndexRadioButton(string label, string value)
|
||||
: base(label)
|
||||
{
|
||||
PortValue = value;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
@ -1,5 +1,5 @@
|
|||
/*
|
||||
Copyright (c) 2018, Lars Brubaker, John Lewin
|
||||
Copyright (c) 2019, Lars Brubaker, John Lewin
|
||||
All rights reserved.
|
||||
|
||||
Redistribution and use in source and binary forms, with or without
|
||||
|
|
@ -33,22 +33,10 @@ using MatterHackers.Agg;
|
|||
using MatterHackers.Agg.UI;
|
||||
using MatterHackers.Localizations;
|
||||
using MatterHackers.MatterControl.PrinterCommunication;
|
||||
using MatterHackers.MatterControl.SlicerConfiguration;
|
||||
using MatterHackers.SerialPortCommunication.FrostedSerial;
|
||||
|
||||
namespace MatterHackers.MatterControl.PrinterControls.PrinterConnections
|
||||
{
|
||||
public class SerialPortIndexRadioButton : RadioButton
|
||||
{
|
||||
public string PortValue;
|
||||
|
||||
public SerialPortIndexRadioButton(string label, string value)
|
||||
: base(label)
|
||||
{
|
||||
PortValue = value;
|
||||
}
|
||||
}
|
||||
|
||||
public class SetupStepComPortManual : DialogPage
|
||||
{
|
||||
private GuiWidget nextButton;
|
||||
|
|
@ -61,17 +49,18 @@ namespace MatterHackers.MatterControl.PrinterControls.PrinterConnections
|
|||
private TextWidget printerComPortHelpMessage;
|
||||
private TextWidget printerComPortError;
|
||||
|
||||
protected List<SerialPortIndexRadioButton> SerialPortButtonsList = new List<SerialPortIndexRadioButton>();
|
||||
private List<SerialPortIndexRadioButton> serialPortButtonsList = new List<SerialPortIndexRadioButton>();
|
||||
|
||||
private PrinterConfig printer;
|
||||
|
||||
public SetupStepComPortManual(PrinterConfig printer)
|
||||
{
|
||||
this.printer = printer;
|
||||
|
||||
FlowLayoutWidget printerComPortContainer = createComPortContainer();
|
||||
FlowLayoutWidget printerComPortContainer = CreateComPortContainer();
|
||||
contentRow.AddChild(printerComPortContainer);
|
||||
|
||||
//Construct buttons
|
||||
// Construct buttons
|
||||
nextButton = theme.CreateDialogButton("Done".Localize());
|
||||
nextButton.Click += (s, e) => UiThread.RunOnIdle(Parent.Close);
|
||||
nextButton.Visible = false;
|
||||
|
|
@ -87,6 +76,9 @@ namespace MatterHackers.MatterControl.PrinterControls.PrinterConnections
|
|||
printerComPortError.Text = "Attempting to connect".Localize() + "...";
|
||||
printerComPortError.TextColor = theme.TextColor;
|
||||
|
||||
printer.Connection.ConnectionFailed += Connection_CommunicationStateChanged;
|
||||
printer.Connection.ConnectionSucceeded += Connection_CommunicationStateChanged;
|
||||
|
||||
printer.Settings.Helpers.SetComPort(GetSelectedSerialPort());
|
||||
printer.Connection.Connect();
|
||||
|
||||
|
|
@ -125,11 +117,13 @@ namespace MatterHackers.MatterControl.PrinterControls.PrinterConnections
|
|||
{
|
||||
// Unregister listeners
|
||||
printer.Connection.CommunicationStateChanged -= Connection_CommunicationStateChanged;
|
||||
printer.Connection.ConnectionFailed -= Connection_CommunicationStateChanged;
|
||||
printer.Connection.ConnectionSucceeded -= Connection_CommunicationStateChanged;
|
||||
|
||||
base.OnClosed(e);
|
||||
}
|
||||
|
||||
private FlowLayoutWidget createComPortContainer()
|
||||
private FlowLayoutWidget CreateComPortContainer()
|
||||
{
|
||||
var container = new FlowLayoutWidget(FlowDirection.TopToBottom)
|
||||
{
|
||||
|
|
@ -216,13 +210,13 @@ namespace MatterHackers.MatterControl.PrinterControls.PrinterConnections
|
|||
// Add a radio button for each filtered port
|
||||
foreach (string portName in FrostedSerialPort.GetPortNames())
|
||||
{
|
||||
SerialPortIndexRadioButton comPortOption = createComPortOption(portName, activePrinterSerialPort == portName);
|
||||
SerialPortIndexRadioButton comPortOption = CreateComPortOption(portName, activePrinterSerialPort == portName);
|
||||
if (comPortOption.Checked)
|
||||
{
|
||||
printerComPortIsAvailable = true;
|
||||
}
|
||||
|
||||
SerialPortButtonsList.Add(comPortOption);
|
||||
serialPortButtonsList.Add(comPortOption);
|
||||
comPortContainer.AddChild(comPortOption);
|
||||
|
||||
portIndex++;
|
||||
|
|
@ -231,15 +225,15 @@ namespace MatterHackers.MatterControl.PrinterControls.PrinterConnections
|
|||
// Add a virtual entry for serial ports that were previously configured but are not currently connected
|
||||
if (!printerComPortIsAvailable && activePrinterSerialPort != null)
|
||||
{
|
||||
SerialPortIndexRadioButton comPortOption = createComPortOption(activePrinterSerialPort, true);
|
||||
SerialPortIndexRadioButton comPortOption = CreateComPortOption(activePrinterSerialPort, true);
|
||||
comPortOption.Enabled = false;
|
||||
|
||||
comPortContainer.AddChild(comPortOption);
|
||||
SerialPortButtonsList.Add(comPortOption);
|
||||
serialPortButtonsList.Add(comPortOption);
|
||||
portIndex++;
|
||||
}
|
||||
|
||||
//If there are still no com ports show a message to that effect
|
||||
// If there are still no com ports show a message to that effect
|
||||
if (portIndex == 0)
|
||||
{
|
||||
var comPortOption = new TextWidget("No COM ports available".Localize())
|
||||
|
|
@ -251,7 +245,7 @@ namespace MatterHackers.MatterControl.PrinterControls.PrinterConnections
|
|||
}
|
||||
}
|
||||
|
||||
private SerialPortIndexRadioButton createComPortOption(string portName, bool isActivePrinterPort)
|
||||
private SerialPortIndexRadioButton CreateComPortOption(string portName, bool isActivePrinterPort)
|
||||
{
|
||||
return new SerialPortIndexRadioButton(portName, portName)
|
||||
{
|
||||
|
|
@ -264,7 +258,7 @@ namespace MatterHackers.MatterControl.PrinterControls.PrinterConnections
|
|||
|
||||
private string GetSelectedSerialPort()
|
||||
{
|
||||
foreach (SerialPortIndexRadioButton button in SerialPortButtonsList)
|
||||
foreach (SerialPortIndexRadioButton button in serialPortButtonsList)
|
||||
{
|
||||
if (button.Checked)
|
||||
{
|
||||
|
|
@ -274,6 +268,5 @@ namespace MatterHackers.MatterControl.PrinterControls.PrinterConnections
|
|||
|
||||
throw new Exception("Could not find a selected button.".Localize());
|
||||
}
|
||||
|
||||
}
|
||||
}
|
||||
|
|
@ -1,5 +1,5 @@
|
|||
/*
|
||||
Copyright (c) 2018, Lars Brubaker, John Lewin
|
||||
Copyright (c) 2019, Lars Brubaker, John Lewin
|
||||
All rights reserved.
|
||||
|
||||
Redistribution and use in source and binary forms, with or without
|
||||
|
|
@ -31,16 +31,14 @@ using System;
|
|||
using System.Collections.Generic;
|
||||
using System.Linq;
|
||||
using MatterHackers.Agg;
|
||||
using MatterHackers.Agg.Platform;
|
||||
using MatterHackers.Agg.UI;
|
||||
using MatterHackers.Localizations;
|
||||
using MatterHackers.MatterControl.CustomWidgets;
|
||||
using MatterHackers.MatterControl.SettingsManagement;
|
||||
using MatterHackers.MatterControl.SlicerConfiguration;
|
||||
|
||||
namespace MatterHackers.MatterControl.PrinterControls.PrinterConnections
|
||||
{
|
||||
//Normally step one of the setup process
|
||||
// Normally step one of the setup process
|
||||
public class SetupStepMakeModelName : DialogPage
|
||||
{
|
||||
private FlowLayoutWidget printerModelContainer;
|
||||
|
|
@ -59,9 +57,9 @@ namespace MatterHackers.MatterControl.PrinterControls.PrinterConnections
|
|||
private BoundDropList printerManufacturerSelector;
|
||||
private BoundDropList printerModelSelector;
|
||||
|
||||
string activeMake;
|
||||
string activeModel;
|
||||
string activeName;
|
||||
private string activeMake;
|
||||
private string activeModel;
|
||||
private string activeName;
|
||||
|
||||
private RadioButton createPrinterRadioButton = null;
|
||||
|
||||
|
|
@ -107,10 +105,10 @@ namespace MatterHackers.MatterControl.PrinterControls.PrinterConnections
|
|||
"Select the printer model".Localize(),
|
||||
printerModelSelector);
|
||||
|
||||
//Add inputs to main container
|
||||
// Add inputs to main container
|
||||
addPrinterColumn.AddChild(printerMakeContainer);
|
||||
addPrinterColumn.AddChild(printerModelContainer);
|
||||
addPrinterColumn.AddChild(createPrinterNameContainer());
|
||||
addPrinterColumn.AddChild(CreatePrinterNameContainer());
|
||||
|
||||
RadioButton signInRadioButton = null;
|
||||
|
||||
|
|
@ -208,7 +206,7 @@ namespace MatterHackers.MatterControl.PrinterControls.PrinterConnections
|
|||
|| (createPrinterRadioButton.Checked && (activeModel != null && this.activeMake != null));
|
||||
}
|
||||
|
||||
private FlowLayoutWidget createPrinterNameContainer()
|
||||
private FlowLayoutWidget CreatePrinterNameContainer()
|
||||
{
|
||||
TextWidget printerNameLabel = new TextWidget("Name".Localize() + ":", 0, 0, 12)
|
||||
{
|
||||
|
|
@ -305,7 +303,7 @@ namespace MatterHackers.MatterControl.PrinterControls.PrinterConnections
|
|||
{
|
||||
UiThread.RunOnIdle(() =>
|
||||
{
|
||||
DropDownList dropList = (DropDownList) sender;
|
||||
DropDownList dropList = (DropDownList)sender;
|
||||
activeModel = dropList.SelectedLabel;
|
||||
|
||||
SetElementVisibility();
|
||||
|
|
|
|||
|
|
@ -154,6 +154,7 @@ namespace MatterHackers.MatterControl.SettingsManagement
|
|||
public OemProfileDictionary OemProfiles { get; set; }
|
||||
|
||||
public Dictionary<string, string> OemUrls { get; }
|
||||
|
||||
public Dictionary<string, StorePrinterID> OemPrinters { get; }
|
||||
|
||||
[OnDeserialized]
|
||||
|
|
@ -176,7 +177,7 @@ namespace MatterHackers.MatterControl.SettingsManagement
|
|||
return JsonConvert.DeserializeObject<OemProfileDictionary>(json);
|
||||
}
|
||||
|
||||
public async Task ReloadOemProfiles(IProgress<ProgressStatus> syncReport = null)
|
||||
public async Task ReloadOemProfiles()
|
||||
{
|
||||
// In public builds this won't be assigned to and we should exit
|
||||
if (ApplicationController.GetPublicProfileList == null)
|
||||
|
|
@ -201,10 +202,10 @@ namespace MatterHackers.MatterControl.SettingsManagement
|
|||
return result;
|
||||
});
|
||||
|
||||
await DownloadMissingProfiles(syncReport);
|
||||
await DownloadMissingProfiles();
|
||||
}
|
||||
|
||||
private async Task DownloadMissingProfiles(IProgress<ProgressStatus> syncReport)
|
||||
private async Task DownloadMissingProfiles()
|
||||
{
|
||||
ProgressStatus reportValue = new ProgressStatus();
|
||||
int index = 0;
|
||||
|
|
@ -226,13 +227,6 @@ namespace MatterHackers.MatterControl.SettingsManagement
|
|||
{
|
||||
return;
|
||||
}
|
||||
|
||||
if (syncReport != null)
|
||||
{
|
||||
reportValue.Status = string.Format("Downloading public profiles for {0}...", oem);
|
||||
reportValue.Progress0To1 = (double)index / OemProfiles.Count;
|
||||
syncReport.Report(reportValue);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue