public void LoadSlicePresets(string make, string model, string tag) { string[] slicePresetPaths = GetSlicePresets(make, model, tag); foreach (string filePath in slicePresetPaths) { SliceSettingsCollection collection = null; Dictionary <string, string> settingsDict = LoadSliceSettingsFromFile(filePath); if (settingsDict.Count > 0) { collection = new DataStorage.SliceSettingsCollection(); collection.Name = Path.GetFileNameWithoutExtension(filePath); collection.PrinterId = ActivePrinter.Id; collection.Tag = tag; collection.Commit(); if (tag == "material" && defaultMaterialPreset != null && collection.Name == defaultMaterialPreset) { ActivePrinter.MaterialCollectionIds = collection.Id.ToString(); ActivePrinter.Commit(); } else if (tag == "quality" && defaultQualityPreset != null && collection.Name == defaultQualityPreset) { ActivePrinter.QualityCollectionId = collection.Id; ActivePrinter.Commit(); } CommitSliceSettings(settingsDict, collection.Id); } } }
private SliceSettingsCollection GetSliceSettings(string make, string model) { SliceSettingsCollection collection = null; Dictionary <string, string> settingsDict = LoadSliceSettingsFromFile(make, model); if (settingsDict.Count > 0) { collection = new DataStorage.SliceSettingsCollection(); collection.Name = this.ActivePrinter.Name; collection.Commit(); this.ActivePrinter.DefaultSettingsCollectionId = collection.Id; this.ActivePrinter.Commit(); foreach (KeyValuePair <string, string> item in settingsDict) { DataStorage.SliceSetting sliceSetting = new DataStorage.SliceSetting(); sliceSetting.Name = item.Key; sliceSetting.Value = item.Value; sliceSetting.SettingsCollectionId = collection.Id; sliceSetting.Commit(); } } return(collection); }
private void LoadDefaultConfigrationSettings() { DataStorage.SliceSettingsCollection defaultCollection = new DataStorage.SliceSettingsCollection(); defaultCollection.Name = "__default__"; SettingsLayer defaultSettingsLayer = LoadConfigurationSettingsFromFile(Path.Combine("PrinterSettings", "config.ini"), defaultCollection); this.activeSettingsLayers.Add(defaultSettingsLayer); }
private void LoadDefaultConfigrationSettings() { string slic3rDefaultConfigurationPathAndFile = Path.Combine(ApplicationDataStorage.Instance.ApplicationStaticDataPath, "PrinterSettings", "config.ini"); DataStorage.SliceSettingsCollection defaultCollection = new DataStorage.SliceSettingsCollection(); defaultCollection.Name = "__default__"; SettingsLayer defaultSettingsLayer = LoadConfigurationSettingsFromFile(slic3rDefaultConfigurationPathAndFile, defaultCollection); this.activeSettingsLayers.Add(defaultSettingsLayer); }
private SettingsLayer LoadConfigurationSettingsFromDatastore(DataStorage.SliceSettingsCollection collection) { Dictionary <string, DataStorage.SliceSetting> settingsDictionary = new Dictionary <string, DataStorage.SliceSetting>(); IEnumerable <DataStorage.SliceSetting> settingsList = GetCollectionSettings(collection.Id); foreach (DataStorage.SliceSetting s in settingsList) { settingsDictionary[s.Name] = s; } SettingsLayer settingsLayer = new SettingsLayer(collection, settingsDictionary); return(settingsLayer); }
public SliceSettingsCollection LoadDefaultSliceSettings(string make, string model) { SliceSettingsCollection collection = null; Dictionary <string, string> settingsDict = LoadSliceSettingsFromFile(GetDefaultPrinterSlicePath(make, model)); if (settingsDict.Count > 0) { collection = new DataStorage.SliceSettingsCollection(); collection.Name = this.ActivePrinter.Name; collection.Commit(); this.ActivePrinter.DefaultSettingsCollectionId = collection.Id; CommitSliceSettings(settingsDict, collection.Id); } return(collection); }
void initSlicePreset() { int noExistingPresets = ExistingPresetsCount() + 1; Dictionary <string, DataStorage.SliceSetting> settingsDictionary = new Dictionary <string, DataStorage.SliceSetting>(); DataStorage.SliceSettingsCollection collection = new DataStorage.SliceSettingsCollection(); if (ActivePrinterProfile.Instance.ActivePrinter != null) { collection.Name = string.Format("{0} ({1})", windowController.filterLabel, noExistingPresets.ToString()); collection.Tag = windowController.filterTag; collection.PrinterId = ActivePrinterProfile.Instance.ActivePrinter.Id; } windowController.ActivePresetLayer = new SettingsLayer(collection, settingsDictionary); }
public void LoadPrinterConfigurationSettings() { if (ActivePrinterProfile.Instance.ActivePrinter != null) { DataStorage.SliceSettingsCollection collection; if (ActivePrinterProfile.Instance.ActivePrinter.DefaultSettingsCollectionId != 0) { int activePrinterSettingsID = ActivePrinterProfile.Instance.ActivePrinter.DefaultSettingsCollectionId; collection = DataStorage.Datastore.Instance.dbSQLite.Table <DataStorage.SliceSettingsCollection>().Where(v => v.Id == activePrinterSettingsID).Take(1).FirstOrDefault(); } else { collection = new DataStorage.SliceSettingsCollection(); collection.Name = ActivePrinterProfile.Instance.ActivePrinter.Name; collection.Commit(); ActivePrinterProfile.Instance.ActivePrinter.DefaultSettingsCollectionId = collection.Id; ActivePrinterProfile.Instance.ActivePrinter.Commit(); } SettingsLayer printerSettingsLayer = LoadConfigurationSettingsFromDatastore(collection); this.activeSettingsLayers.Add(printerSettingsLayer); } }
public string GetMaterialValue(string sliceSetting, int extruderNumber1Based) { int numberOfActiveLayers = activeSettingsLayers.Count; string settingValue = null; if (ActivePrinterProfile.Instance.GetMaterialSetting(extruderNumber1Based) != 0) { int materialOneSettingsID = ActivePrinterProfile.Instance.GetMaterialSetting(extruderNumber1Based); DataStorage.SliceSettingsCollection collection = DataStorage.Datastore.Instance.dbSQLite.Table <DataStorage.SliceSettingsCollection>().Where(v => v.Id == materialOneSettingsID).Take(1).FirstOrDefault(); SettingsLayer printerSettingsLayer = LoadConfigurationSettingsFromDatastore(collection); if (printerSettingsLayer.settingsDictionary.ContainsKey(sliceSetting)) { settingValue = printerSettingsLayer.settingsDictionary[sliceSetting].Value; } } if (settingValue == null) { //Go through settings layers one-by-one, starting with quality (index = 2), in reverse order, until we find a layer that contains the value int startingLayer = Math.Min(numberOfActiveLayers - 1, 2); for (int i = startingLayer; i >= 0; i--) { if (activeSettingsLayers[i].settingsDictionary.ContainsKey(sliceSetting)) { settingValue = activeSettingsLayers[i].settingsDictionary[sliceSetting].Value; return(settingValue); } } } if (settingValue == null) { settingValue = "Unknown"; } return(settingValue); }
public void LoadPrinterConfigurationSettings() { if (ActivePrinterProfile.Instance.ActivePrinter != null) { DataStorage.SliceSettingsCollection collection; if (ActivePrinterProfile.Instance.ActivePrinter.DefaultSettingsCollectionId != 0) { int activePrinterSettingsID = ActivePrinterProfile.Instance.ActivePrinter.DefaultSettingsCollectionId; collection = DataStorage.Datastore.Instance.dbSQLite.Table<DataStorage.SliceSettingsCollection>().Where(v => v.Id == activePrinterSettingsID).Take(1).FirstOrDefault(); } else { collection = new DataStorage.SliceSettingsCollection(); collection.Name = ActivePrinterProfile.Instance.ActivePrinter.Name; collection.Commit(); ActivePrinterProfile.Instance.ActivePrinter.DefaultSettingsCollectionId = collection.Id; ActivePrinterProfile.Instance.ActivePrinter.Commit(); } SettingsLayer printerSettingsLayer = LoadConfigurationSettingsFromDatastore(collection); this.activeSettingsLayers.Add(printerSettingsLayer); } }
public SettingsLayer(DataStorage.SliceSettingsCollection settingsCollection, Dictionary <string, DataStorage.SliceSetting> settingsDictionary) { this.settingsCollectionData = settingsCollection; this.settingsDictionary = settingsDictionary; }
public SettingsLayer LoadConfigurationSettingsFromFile(string pathAndFileName, DataStorage.SliceSettingsCollection collection) { Dictionary <string, DataStorage.SliceSetting> settingsDictionary = new Dictionary <string, DataStorage.SliceSetting>(); SettingsLayer activeCollection; try { if (File.Exists(pathAndFileName)) { string[] lines = System.IO.File.ReadAllLines(pathAndFileName); foreach (string line in lines) { //Ignore commented lines if (!line.StartsWith("#")) { string[] settingLine = line.Split('='); string keyName = settingLine[0].Trim(); string settingDefaultValue = settingLine[1].Trim(); DataStorage.SliceSetting sliceSetting = new DataStorage.SliceSetting(); sliceSetting.Name = keyName; sliceSetting.Value = settingDefaultValue; settingsDictionary.Add(keyName, sliceSetting); } } activeCollection = new SettingsLayer(collection, settingsDictionary); return(activeCollection); } return(null); } catch (Exception e) { Debug.WriteLine(string.Format("Error loading configuration: {0}", e)); return(null); } }
private void LoadSlicePresets(string make, string model, string tag) { string[] slicePresetPaths = GetSlicePresets(make, model, tag); foreach (string filePath in slicePresetPaths) { SliceSettingsCollection collection = null; Dictionary<string, string> settingsDict = LoadSliceSettingsFromFile(filePath); if (settingsDict.Count > 0) { collection = new DataStorage.SliceSettingsCollection(); collection.Name = Path.GetFileNameWithoutExtension(filePath); collection.PrinterId = ActivePrinter.Id; collection.Tag = tag; collection.Commit(); if (tag == "material" && defaultMaterialPreset != null && collection.Name == defaultMaterialPreset) { ActivePrinter.MaterialCollectionIds = collection.Id.ToString(); ActivePrinter.Commit(); } else if (tag == "quality" && defaultQualityPreset != null && collection.Name == defaultQualityPreset) { ActivePrinter.QualityCollectionId = collection.Id; ActivePrinter.Commit(); } CommitSliceSettings(settingsDict, collection.Id); } } }
private SliceSettingsCollection GetSliceSettings(string make, string model) { SliceSettingsCollection collection = null; Dictionary<string, string> settingsDict = LoadSliceSettingsFromFile(make, model); if (settingsDict.Count > 0) { collection = new DataStorage.SliceSettingsCollection(); collection.Name = this.ActivePrinter.Name; collection.Commit(); this.ActivePrinter.DefaultSettingsCollectionId = collection.Id; this.ActivePrinter.Commit(); foreach (KeyValuePair<string, string> item in settingsDict) { DataStorage.SliceSetting sliceSetting = new DataStorage.SliceSetting(); sliceSetting.Name = item.Key; sliceSetting.Value = item.Value; sliceSetting.SettingsCollectionId = collection.Id; sliceSetting.Commit(); } } return collection; }
private void initSlicePreset() { int noExistingPresets = ExistingPresetsCount() + 1; Dictionary<string, DataStorage.SliceSetting> settingsDictionary = new Dictionary<string, DataStorage.SliceSetting>(); DataStorage.SliceSettingsCollection collection = new DataStorage.SliceSettingsCollection(); if (ActivePrinterProfile.Instance.ActivePrinter != null) { collection.Name = string.Format("{0} ({1})", windowController.filterLabel, noExistingPresets.ToString()); collection.Tag = windowController.filterTag; collection.PrinterId = ActivePrinterProfile.Instance.ActivePrinter.Id; } windowController.ActivePresetLayer = new SettingsLayer(collection, settingsDictionary); }
public PresetListItem(SlicePresetsWindow windowController, DataStorage.SliceSettingsCollection preset) { this.preset = preset; this.BackgroundColor = RGBA_Bytes.White; this.HAnchor = HAnchor.ParentLeftRight; this.Margin = new BorderDouble(6, 0, 6, 3); this.Padding = new BorderDouble(3); LinkButtonFactory linkButtonFactory = new LinkButtonFactory(); linkButtonFactory.fontSize = 10; int maxLabelWidth = 300; TextWidget materialLabel = new TextWidget(preset.Name, pointSize: 14); materialLabel.EllipsisIfClipped = true; materialLabel.VAnchor = Agg.UI.VAnchor.ParentCenter; materialLabel.MinimumSize = new Vector2(maxLabelWidth, materialLabel.Height); materialLabel.Width = maxLabelWidth; Button materialEditLink = linkButtonFactory.Generate("edit"); materialEditLink.VAnchor = Agg.UI.VAnchor.ParentCenter; materialEditLink.Click += (sender, e) => { UiThread.RunOnIdle((state) => { windowController.ChangeToSlicePresetDetail(preset); }); }; Button materialRemoveLink = linkButtonFactory.Generate("remove"); materialRemoveLink.Margin = new BorderDouble(left: 4); materialRemoveLink.VAnchor = Agg.UI.VAnchor.ParentCenter; materialRemoveLink.Click += (sender, e) => { UiThread.RunOnIdle((state) => { //Unwind this setting if it is currently active if (ActivePrinterProfile.Instance.ActivePrinter != null) { if (preset.Id == ActivePrinterProfile.Instance.ActiveQualitySettingsID) { ActivePrinterProfile.Instance.ActiveQualitySettingsID = 0; } string[] activeMaterialPresets = ActivePrinterProfile.Instance.ActivePrinter.MaterialCollectionIds.Split(','); for (int i = 0; i < activeMaterialPresets.Count(); i++) { int index = 0; Int32.TryParse(activeMaterialPresets[i], out index); if (preset.Id == index) { ActivePrinterProfile.Instance.SetMaterialSetting(i + 1, 0); } } } preset.Delete(); windowController.ChangeToSlicePresetList(); ActiveSliceSettings.Instance.LoadAllSettings(); ApplicationController.Instance.ReloadAdvancedControlsPanel(); }); }; this.AddChild(materialLabel); this.AddChild(new HorizontalSpacer()); this.AddChild(materialEditLink); this.AddChild(materialRemoveLink); this.Height = 35; }
private SliceSettingsCollection LoadDefaultSliceSettings(string make, string model) { SliceSettingsCollection collection = null; Dictionary<string, string> settingsDict = LoadSliceSettingsFromFile(GetDefaultPrinterSlicePath(make, model)); if (settingsDict.Count > 0) { collection = new DataStorage.SliceSettingsCollection(); collection.Name = this.ActivePrinter.Name; collection.Commit(); this.ActivePrinter.DefaultSettingsCollectionId = collection.Id; CommitSliceSettings(settingsDict, collection.Id); } return collection; }
public PresetListItem(SlicePresetsWindow windowController, DataStorage.SliceSettingsCollection preset) { this.preset = preset; this.BackgroundColor = RGBA_Bytes.White; this.HAnchor = HAnchor.ParentLeftRight; this.Margin = new BorderDouble(6, 0, 6, 3); this.Padding = new BorderDouble(3); LinkButtonFactory linkButtonFactory = new LinkButtonFactory(); linkButtonFactory.fontSize = 10; int maxLabelWidth = 300; TextWidget materialLabel = new TextWidget(preset.Name, pointSize: 14); materialLabel.EllipsisIfClipped = true; materialLabel.VAnchor = Agg.UI.VAnchor.ParentCenter; materialLabel.MinimumSize = new Vector2(maxLabelWidth, materialLabel.Height); materialLabel.Width = maxLabelWidth; Button materialEditLink = linkButtonFactory.Generate("edit"); materialEditLink.VAnchor = Agg.UI.VAnchor.ParentCenter; materialEditLink.Click += (sender, e) => { UiThread.RunOnIdle(() => { windowController.ChangeToSlicePresetDetail(preset); }); }; Button materialRemoveLink = linkButtonFactory.Generate("remove"); materialRemoveLink.Margin = new BorderDouble(left: 4); materialRemoveLink.VAnchor = Agg.UI.VAnchor.ParentCenter; materialRemoveLink.Click += (sender, e) => { UiThread.RunOnIdle(() => { //Unwind this setting if it is currently active if (ActivePrinterProfile.Instance.ActivePrinter != null) { if (preset.Id == ActivePrinterProfile.Instance.ActiveQualitySettingsID) { ActivePrinterProfile.Instance.ActiveQualitySettingsID = 0; } string[] activeMaterialPresets = ActivePrinterProfile.Instance.ActivePrinter.MaterialCollectionIds.Split(','); for (int i = 0; i < activeMaterialPresets.Count(); i++) { int index = 0; Int32.TryParse(activeMaterialPresets[i], out index); if (preset.Id == index) { ActivePrinterProfile.Instance.SetMaterialSetting(i + 1, 0); } } } preset.Delete(); windowController.ChangeToSlicePresetList(); ActiveSliceSettings.Instance.LoadAllSettings(); ApplicationController.Instance.ReloadAdvancedControlsPanel(); }); }; this.AddChild(materialLabel); this.AddChild(new HorizontalSpacer()); this.AddChild(materialEditLink); this.AddChild(materialRemoveLink); this.Height = 35; }
public SettingsLayer(DataStorage.SliceSettingsCollection settingsCollection, Dictionary<string, DataStorage.SliceSetting> settingsDictionary) { this.settingsCollectionData = settingsCollection; this.settingsDictionary = settingsDictionary; }