public SlicePresetsPage(PrinterConfig printer, PresetsContext presetsContext) : base("Close".Localize()) { this.presetsContext = presetsContext; this.printer = printer; this.AlwaysOnTopOfMain = true; this.WindowTitle = "Slice Presets Editor".Localize(); this.WindowSize = new Vector2(640, 480); this.AnchorAll(); this.headerRow.Visible = false; this.contentRow.Padding = 0; contentRow.BackgroundColor = Color.Transparent; var inlineNameEdit = new InlineStringEdit(presetsContext.PersistenceLayer.Name, theme, presetsContext.LayerType.ToString() + " Name", boldFont: true); inlineNameEdit.ValueChanged += (s, e) => { printer.Settings.SetValue(SettingsKey.layer_name, inlineNameEdit.Text, presetsContext.PersistenceLayer); }; contentRow.AddChild(inlineNameEdit); var sliceSettingsWidget = CreateSliceSettingsWidget(printer, presetsContext.PersistenceLayer); contentRow.AddChild(sliceSettingsWidget); var duplicateButton = theme.CreateDialogButton("Duplicate".Localize()); duplicateButton.Click += (s, e) => { string sanitizedName = numberMatch.Replace(inlineNameEdit.Text, "").Trim(); string newProfileName = agg_basics.GetNonCollidingName(sanitizedName, presetsContext.PresetLayers.Select(preset => preset.ValueOrDefault(SettingsKey.layer_name))); var clonedLayer = presetsContext.PersistenceLayer.Clone(); clonedLayer.Name = newProfileName; presetsContext.PresetLayers.Add(clonedLayer); presetsContext.SetAsActive(clonedLayer.LayerID); presetsContext.PersistenceLayer = clonedLayer; sliceSettingsWidget.Close(); sliceSettingsWidget = CreateSliceSettingsWidget(printer, clonedLayer); contentRow.AddChild(sliceSettingsWidget); inlineNameEdit.Text = newProfileName; }; this.AddPageAction(duplicateButton); var deleteButton = theme.CreateDialogButton("Delete".Localize()); deleteButton.Click += (s, e) => { presetsContext.DeleteLayer(); this.DialogWindow.Close(); }; this.AddPageAction(deleteButton); }
public ConfigurePrinterWidget(SettingsContext settingsContext, PrinterConfig printer, ThemeConfig theme) : base(FlowDirection.TopToBottom) { var inlineNameEdit = new InlineStringEdit(printer.Settings.GetValue(SettingsKey.printer_name), theme, "Printer Name", boldFont: true); inlineNameEdit.ValueChanged += (s, e) => { printer.Settings.SetValue(SettingsKey.printer_name, inlineNameEdit.Text); }; this.AddChild(inlineNameEdit); void Printer_SettingChanged(object s, StringEventArgs stringEvent) { if (s is PrinterSettings printerSettings && stringEvent?.Data == SettingsKey.printer_name) { // Try to find a printer tab for the given printer inlineNameEdit.Text = printerSettings.GetValue(SettingsKey.printer_name); } } printer.Settings.SettingChanged += Printer_SettingChanged; inlineNameEdit.Closed += (s, e) => { printer.Settings.SettingChanged -= Printer_SettingChanged; }; var settingsSection = PrinterSettings.Layout.PrinterSections[0]; switch (UserSettings.Instance.get(UserSettingsKey.SliceSettingsViewDetail)) { case "Simple": settingsSection = PrinterSettings.Layout.PrinterSections[0]; break; case "Intermediate": settingsSection = PrinterSettings.Layout.PrinterSections[1]; break; case "Advanced": settingsSection = PrinterSettings.Layout.PrinterSections[2]; break; } this.AddChild( new SliceSettingsTabView( settingsContext, "ConfigurePrinter", printer, settingsSection, theme, isPrimarySettingsView: true, justMySettingsTitle: "My Modified Settings (Printer)".Localize(), databaseMRUKey: UserSettingsKey.ConfigurePrinter_CurrentTab)); }
public ConfigurePrinterWidget(SettingsContext settingsContext, PrinterConfig printer, ThemeConfig theme) : base(FlowDirection.TopToBottom) { var inlineNameEdit = new InlineStringEdit(printer.Settings.GetValue(SettingsKey.printer_name), theme, "Printer Name", boldFont: true); inlineNameEdit.ValueChanged += (s, e) => { printer.Settings.SetValue(SettingsKey.printer_name, inlineNameEdit.Text); }; this.AddChild(inlineNameEdit); this.AddChild( new SliceSettingsTabView( settingsContext, "ConfigurePrinter", printer, "Printer", theme, isPrimarySettingsView: true, databaseMRUKey: UserSettingsKey.ConfigurePrinter_CurrentTab)); }