private void update_panel() { Manufacturer newMfg = CC.PrinterDB.ActiveManufacturer; MachineModel newModel = CC.PrinterDB.ActiveMachine; MachinePreset newPreset = CC.PrinterDB.ActivePreset; if (force_mfg_update || newMfg != currentMfg) { if (validate_mfg_list()) { select_mfg(newMfg); } currentMfg = newMfg; modelDropDown.options.Clear(); // force fetch of new models } if (newModel != currentModel) { if (validate_machine_list()) { select_model(newModel); } currentModel = newModel; presetDropDown.options.Clear(); } if (newPreset != currentPreset) { if (validate_preset_list(newPreset)) { select_preset(newPreset); } currentPreset = newPreset; } panel_requires_update = false; }
public void SelectPreset(MachinePreset preset, bool bForceUpdate = false) { if (preset != ActivePreset || bForceUpdate) { ActivePreset = preset; CC.Settings.UpdateFromSettings(ActivePreset.Settings); UpdatePreferences(); OnPresetSelectionModified?.Invoke(preset); } }
public void Initialize() { MachineDB = new MachineDatabase(); ActiveManufacturer = MachineDB.Manufacturers.First(); ActiveMachine = MachineDB.ModelsForManufacturer(ActiveManufacturer).First(); ActivePreset = MachineDB.DefaultPresetForModel(ActiveMachine); RestorePreferences(); //OnPrinterSelectionModified?.Invoke(ActiveManufacturer, ActiveMachine); //OnPresetSelectionModified?.Invoke(ActivePreset); }
void select_preset(MachinePreset preset) { for (int k = 0; k < presetDropDown.options.Count; ++k) { if (presetDropDown.options[k].text == preset.Settings.Identifier) { presetDropDown.value = k; } } deleteButton.interactable = (CC.PrinterDB.ActivePreset != CC.PrinterDB.ActiveMachine.DefaultPreset); }
public void SelectMachine(MachineModel machine) { if (machine != ActiveMachine) { ActiveMachine = machine; // [TODO] should remember this per-machine MachinePreset defaultPreset = MachineDB.DefaultPresetForModel(ActiveMachine); SelectPreset(defaultPreset); OnPrinterSelectionModified?.Invoke(ActiveManufacturer, ActiveMachine); } }
int find_preset_index(MachinePreset preset) { if (preset == null) { return(0); } for (int k = 0; k < presetInfo.Count; ++k) { if (preset.UUID.Equals(presetInfo[k], StringComparison.OrdinalIgnoreCase)) { return(k); } } return(0); }
protected void RestorePreferences() { // do this first because setting preset will replace this DisabledManufacturers = new List <Manufacturer>(); string disabled_list = FPlatform.GetPrefsString("DisabledManufacturers", ""); string[] disabled_uuids = disabled_list.Split(';'); foreach (var uuid in disabled_uuids) { Manufacturer mfg = FindManufacturerByUUID(uuid); if (mfg != null) { DisabledManufacturers.Add(mfg); } } string last_mfg_uuid = FPlatform.GetPrefsString("LastManufacturer", ActiveManufacturer.UUID); string last_machine_uuid = FPlatform.GetPrefsString("LastMachine", ActiveMachine.UUID); string last_preset_id = FPlatform.GetPrefsString("LastPreset", ActivePreset.Settings.Identifier); if (last_preset_id != ActivePreset.UUID) { Manufacturer mfg = MachineDB.FindManufacturerByUUID(last_mfg_uuid); if (mfg != null) { SelectManufacturer(mfg); MachineModel model = MachineDB.FindModelByUUID(mfg, last_machine_uuid); if (model != null) { SelectMachine(model); MachinePreset preset = MachineDB.FindPresetByIdentifier(model, last_preset_id); if (preset != null) { CC.ActiveContext.RegisterNthFrameAction(2, () => { SelectPreset(preset, true); }); } } } } else { CC.ActiveContext.RegisterNthFrameAction(2, () => { SelectPreset(ActivePreset, true); }); } }
MachinePreset select_preset_by_index(int idx) { if (idx == 0) { CC.PrinterDB.CreateDerivedPreset(); return(null); } string uuid = presetInfo[idx]; MachinePreset preset = CC.PrinterDB.FindActiveMachinePresetByUUID(uuid); if (preset != null) { CC.PrinterDB.SelectPreset(preset); } deleteButton.interactable = (CC.PrinterDB.ActivePreset != CC.PrinterDB.ActiveMachine.DefaultPreset); return(preset); }
bool validate_preset_list(MachinePreset toSelect) { IReadOnlyList <MachinePreset> presets = CC.PrinterDB.PresetsForModel(currentModel); MachinePreset selectedPreset = CC.PrinterDB.ActivePreset; deleteButton.interactable = (CC.PrinterDB.ActivePreset != CC.PrinterDB.ActiveMachine.DefaultPreset); // -1 here because first item is "create new..." if ((presetDropDown.options.Count - 1) == presets.Count && presetDropDown.options.Count == presetInfo.Count) { return(true); } presetDropDown.options.Clear(); presetInfo = new List <string>(); List <string> options = new List <string>(); presetInfo.Add("-"); options.Add("Derive New Preset..."); int selected = -1; for (int k = 0; k < presets.Count; ++k) { presetInfo.Add(presets[k].UUID); options.Add(presets[k].Settings.Identifier); if (presets[k] == toSelect) { selected = k + 1; } } if (selected < 1) { selected = 1; } presetDropDown.ClearOptions(); presetDropDown.AddOptions(options); presetDropDown.value = selected; return(false); }
public void CreateDerivedPreset() { MachineModel activeModel = ActiveMachine; MachinePreset basePreset = ActivePreset.Clone(); CC.Settings.WriteToSettings(basePreset.Settings); CotangentUI.GetStringFromDialog("Create New Preset", "Enter the name of new Preset to be derived from \"" + basePreset.Settings.Identifier + "\"", null, (name) => { return(string.IsNullOrEmpty(name) == false && name.Contains('\"') == false); }, (name, obj) => { MachinePreset derived = MachineDB.CreateDerivedPreset(activeModel, basePreset, name); SelectPreset(derived); // will cause refresh of presets list OnPrinterSelectionModified?.Invoke(ActiveManufacturer, ActiveMachine); }, () => { SelectPreset(basePreset); } ); }
public void CreateDerivedMachine() { MachineModel activeModel = ActiveMachine; MachinePreset defaultPreset = MachineDB.DefaultPresetForModel(ActiveMachine); CotangentUI.GetStringFromDialog("Create New Machine", "Enter the name of new Machine to be derived from \"" + activeModel.Name + "\"", null, (name) => { return(string.IsNullOrEmpty(name) == false && name.Contains('\"') == false); }, (name, obj) => { try { MachineModel newModel = MachineDB.CreateDerivedMachine(ActiveManufacturer, ActiveMachine, defaultPreset, name); OnPrinterSelectionModified?.Invoke(null, null); SelectMachine(newModel); } catch (Exception e) { DebugUtil.Log("CreateDerivedMachine: " + e.Message); } }, () => { SelectMachine(ActiveMachine); } ); }
private void CC_OnPresetSelectionModified(MachinePreset newPreset) { destroy_dialog(); }
private static void PrinterDB_OnPresetSelectionModified(MachinePreset newPreset) { InvalidateToolPaths(); update_printer_bed(); OnPresetSelectionModified?.Invoke(newPreset); }
private void CC_OnPresetSelectionModified(MachinePreset preset) { panel_requires_update = true; }