Ejemplo n.º 1
0
        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;
        }
Ejemplo n.º 2
0
 public void SelectPreset(MachinePreset preset, bool bForceUpdate = false)
 {
     if (preset != ActivePreset || bForceUpdate)
     {
         ActivePreset = preset;
         CC.Settings.UpdateFromSettings(ActivePreset.Settings);
         UpdatePreferences();
         OnPresetSelectionModified?.Invoke(preset);
     }
 }
Ejemplo n.º 3
0
        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);
        }
Ejemplo n.º 4
0
 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);
 }
Ejemplo n.º 5
0
        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);
            }
        }
Ejemplo n.º 6
0
 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);
 }
Ejemplo n.º 7
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);
                });
            }
        }
Ejemplo n.º 8
0
        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);
        }
Ejemplo n.º 9
0
        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);
        }
Ejemplo n.º 10
0
        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);
            }
                                            );
        }
Ejemplo n.º 11
0
        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);
            }
                                            );
        }
Ejemplo n.º 12
0
 private void CC_OnPresetSelectionModified(MachinePreset newPreset)
 {
     destroy_dialog();
 }
Ejemplo n.º 13
0
 private static void PrinterDB_OnPresetSelectionModified(MachinePreset newPreset)
 {
     InvalidateToolPaths();
     update_printer_bed();
     OnPresetSelectionModified?.Invoke(newPreset);
 }
Ejemplo n.º 14
0
 private void CC_OnPresetSelectionModified(MachinePreset preset)
 {
     panel_requires_update = true;
 }