public ConfigurePrinterWidget(SettingsContext settingsContext, PrinterConfig printer, ThemeConfig theme) : base(FlowDirection.TopToBottom) { var inlineTitleEdit = new InlineTitleEdit(printer.Settings.GetValue(SettingsKey.printer_name), theme, "Printer Name", boldFont: true); inlineTitleEdit.TitleChanged += (s, e) => { printer.Settings.SetValue(SettingsKey.printer_name, inlineTitleEdit.Text); }; this.AddChild(inlineTitleEdit); this.AddChild( new SliceSettingsTabView( settingsContext, "ConfigurePrinter", printer, "Printer", theme, isPrimarySettingsView: true, databaseMRUKey: UserSettingsKey.ConfigurePrinter_CurrentTab)); }
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 inlineTitleEdit = new InlineTitleEdit(presetsContext.PersistenceLayer.Name, theme, presetsContext.LayerType.ToString() + " Name", boldFont: true); inlineTitleEdit.TitleChanged += (s, e) => { printer.Settings.SetValue(SettingsKey.layer_name, inlineTitleEdit.Text, presetsContext.PersistenceLayer); }; contentRow.AddChild(inlineTitleEdit); var sliceSettingsWidget = CreateSliceSettingsWidget(printer, presetsContext.PersistenceLayer); contentRow.AddChild(sliceSettingsWidget); var duplicateButton = theme.CreateDialogButton("Duplicate".Localize()); duplicateButton.Click += (s, e) => { UiThread.RunOnIdle(() => { string sanitizedName = numberMatch.Replace(inlineTitleEdit.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); inlineTitleEdit.Text = newProfileName; }); }; this.AddPageAction(duplicateButton); var deleteButton = theme.CreateDialogButton("Delete".Localize()); deleteButton.Click += (s, e) => { UiThread.RunOnIdle(() => { presetsContext.DeleteLayer(); this.DialogWindow.Close(); }); }; this.AddPageAction(deleteButton); }