Пример #1
0
        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));
        }
Пример #2
0
        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);
        }