mirror of
https://github.com/SoftFever/OrcaSlicer.git
synced 2025-07-25 15:44:12 -06:00
Use spin controls for integer values
This commit is contained in:
parent
f38f2f139e
commit
d8a64f0386
2 changed files with 32 additions and 9 deletions
|
@ -26,6 +26,8 @@ our $Options = {
|
||||||
sidetext => '(more speed but more memory usage)',
|
sidetext => '(more speed but more memory usage)',
|
||||||
cli => 'threads|j=i',
|
cli => 'threads|j=i',
|
||||||
type => 'i',
|
type => 'i',
|
||||||
|
min => 1,
|
||||||
|
max => 16,
|
||||||
},
|
},
|
||||||
|
|
||||||
# output options
|
# output options
|
||||||
|
@ -110,18 +112,21 @@ our $Options = {
|
||||||
sidetext => '°C',
|
sidetext => '°C',
|
||||||
cli => 'first-layer-temperature=i',
|
cli => 'first-layer-temperature=i',
|
||||||
type => 'i',
|
type => 'i',
|
||||||
|
max => 300,
|
||||||
},
|
},
|
||||||
'first_layer_bed_temperature' => {
|
'first_layer_bed_temperature' => {
|
||||||
label => 'First layer bed temperature',
|
label => 'First layer bed temperature',
|
||||||
sidetext => '°C',
|
sidetext => '°C',
|
||||||
cli => 'first-layer-bed-temperature=i',
|
cli => 'first-layer-bed-temperature=i',
|
||||||
type => 'i',
|
type => 'i',
|
||||||
|
max => 300,
|
||||||
},
|
},
|
||||||
'temperature' => {
|
'temperature' => {
|
||||||
label => 'Temperature',
|
label => 'Temperature',
|
||||||
sidetext => '°C',
|
sidetext => '°C',
|
||||||
cli => 'temperature=i',
|
cli => 'temperature=i',
|
||||||
type => 'i',
|
type => 'i',
|
||||||
|
max => 300,
|
||||||
important => 1,
|
important => 1,
|
||||||
},
|
},
|
||||||
'bed_temperature' => {
|
'bed_temperature' => {
|
||||||
|
@ -129,6 +134,7 @@ our $Options = {
|
||||||
sidetext => '°C',
|
sidetext => '°C',
|
||||||
cli => 'bed-temperature=i',
|
cli => 'bed-temperature=i',
|
||||||
type => 'i',
|
type => 'i',
|
||||||
|
max => 300,
|
||||||
},
|
},
|
||||||
|
|
||||||
# speed options
|
# speed options
|
||||||
|
@ -227,6 +233,7 @@ our $Options = {
|
||||||
sidetext => 'layers',
|
sidetext => 'layers',
|
||||||
cli => 'infill-every-layers=i',
|
cli => 'infill-every-layers=i',
|
||||||
type => 'i',
|
type => 'i',
|
||||||
|
min => 1,
|
||||||
},
|
},
|
||||||
|
|
||||||
# flow options
|
# flow options
|
||||||
|
@ -296,6 +303,7 @@ our $Options = {
|
||||||
sidetext => '°',
|
sidetext => '°',
|
||||||
cli => 'fill-angle=i',
|
cli => 'fill-angle=i',
|
||||||
type => 'i',
|
type => 'i',
|
||||||
|
max => 359,
|
||||||
},
|
},
|
||||||
'randomize_start' => {
|
'randomize_start' => {
|
||||||
label => 'Randomize starting points',
|
label => 'Randomize starting points',
|
||||||
|
@ -367,6 +375,7 @@ our $Options = {
|
||||||
sidetext => 'mm/s',
|
sidetext => 'mm/s',
|
||||||
cli => 'retract-speed=f',
|
cli => 'retract-speed=f',
|
||||||
type => 'i',
|
type => 'i',
|
||||||
|
max => 1000,
|
||||||
},
|
},
|
||||||
'retract_restart_extra' => {
|
'retract_restart_extra' => {
|
||||||
label => 'Extra length on restart',
|
label => 'Extra length on restart',
|
||||||
|
@ -398,24 +407,28 @@ our $Options = {
|
||||||
sidetext => '%',
|
sidetext => '%',
|
||||||
cli => 'min-fan-speed=i',
|
cli => 'min-fan-speed=i',
|
||||||
type => 'i',
|
type => 'i',
|
||||||
|
max => 1000,
|
||||||
},
|
},
|
||||||
'max_fan_speed' => {
|
'max_fan_speed' => {
|
||||||
label => 'Max fan speed',
|
label => 'Max fan speed',
|
||||||
sidetext => '%',
|
sidetext => '%',
|
||||||
cli => 'max-fan-speed=i',
|
cli => 'max-fan-speed=i',
|
||||||
type => 'i',
|
type => 'i',
|
||||||
|
max => 1000,
|
||||||
},
|
},
|
||||||
'bridge_fan_speed' => {
|
'bridge_fan_speed' => {
|
||||||
label => 'Bridge fan speed',
|
label => 'Bridge fan speed',
|
||||||
sidetext => '%',
|
sidetext => '%',
|
||||||
cli => 'bridge-fan-speed=i',
|
cli => 'bridge-fan-speed=i',
|
||||||
type => 'i',
|
type => 'i',
|
||||||
|
max => 1000,
|
||||||
},
|
},
|
||||||
'fan_below_layer_time' => {
|
'fan_below_layer_time' => {
|
||||||
label => 'Enable fan if layer print time is below',
|
label => 'Enable fan if layer print time is below',
|
||||||
sidetext => 'approximate seconds',
|
sidetext => 'approximate seconds',
|
||||||
cli => 'fan-below-layer-time=i',
|
cli => 'fan-below-layer-time=i',
|
||||||
type => 'i',
|
type => 'i',
|
||||||
|
max => 1000,
|
||||||
width => 60,
|
width => 60,
|
||||||
},
|
},
|
||||||
'slowdown_below_layer_time' => {
|
'slowdown_below_layer_time' => {
|
||||||
|
@ -423,6 +436,7 @@ our $Options = {
|
||||||
sidetext => 'approximate seconds',
|
sidetext => 'approximate seconds',
|
||||||
cli => 'slowdown-below-layer-time=i',
|
cli => 'slowdown-below-layer-time=i',
|
||||||
type => 'i',
|
type => 'i',
|
||||||
|
max => 1000,
|
||||||
width => 60,
|
width => 60,
|
||||||
},
|
},
|
||||||
'min_print_speed' => {
|
'min_print_speed' => {
|
||||||
|
@ -430,12 +444,14 @@ our $Options = {
|
||||||
sidetext => 'mm/s',
|
sidetext => 'mm/s',
|
||||||
cli => 'min-print-speed=f',
|
cli => 'min-print-speed=f',
|
||||||
type => 'i',
|
type => 'i',
|
||||||
|
max => 1000,
|
||||||
},
|
},
|
||||||
'disable_fan_first_layers' => {
|
'disable_fan_first_layers' => {
|
||||||
label => 'Disable fan for the first',
|
label => 'Disable fan for the first',
|
||||||
sidetext => 'layers',
|
sidetext => 'layers',
|
||||||
cli => 'disable-fan-first-layers=i',
|
cli => 'disable-fan-first-layers=i',
|
||||||
type => 'i',
|
type => 'i',
|
||||||
|
max => 1000,
|
||||||
},
|
},
|
||||||
'fan_always_on' => {
|
'fan_always_on' => {
|
||||||
label => 'Keep fan always on',
|
label => 'Keep fan always on',
|
||||||
|
@ -453,7 +469,7 @@ our $Options = {
|
||||||
label => 'Distance from object',
|
label => 'Distance from object',
|
||||||
sidetext => 'mm',
|
sidetext => 'mm',
|
||||||
cli => 'skirt-distance=f',
|
cli => 'skirt-distance=f',
|
||||||
type => 'i',
|
type => 'f',
|
||||||
},
|
},
|
||||||
'skirt_height' => {
|
'skirt_height' => {
|
||||||
label => 'Skirt height',
|
label => 'Skirt height',
|
||||||
|
@ -473,6 +489,7 @@ our $Options = {
|
||||||
sidetext => '°',
|
sidetext => '°',
|
||||||
cli => 'rotate=i',
|
cli => 'rotate=i',
|
||||||
type => 'i',
|
type => 'i',
|
||||||
|
max => 359,
|
||||||
},
|
},
|
||||||
'duplicate_mode' => {
|
'duplicate_mode' => {
|
||||||
label => 'Duplicate',
|
label => 'Duplicate',
|
||||||
|
@ -485,6 +502,7 @@ our $Options = {
|
||||||
label => 'Copies (autoarrange)',
|
label => 'Copies (autoarrange)',
|
||||||
cli => 'duplicate=i',
|
cli => 'duplicate=i',
|
||||||
type => 'i',
|
type => 'i',
|
||||||
|
min => 1,
|
||||||
},
|
},
|
||||||
'bed_size' => {
|
'bed_size' => {
|
||||||
label => 'Bed size',
|
label => 'Bed size',
|
||||||
|
@ -505,7 +523,7 @@ our $Options = {
|
||||||
label => 'Distance between copies',
|
label => 'Distance between copies',
|
||||||
sidetext => 'mm',
|
sidetext => 'mm',
|
||||||
cli => 'duplicate-distance=f',
|
cli => 'duplicate-distance=f',
|
||||||
type => 'i',
|
type => 'f',
|
||||||
aliases => [qw(multiply_distance)],
|
aliases => [qw(multiply_distance)],
|
||||||
},
|
},
|
||||||
|
|
||||||
|
@ -519,13 +537,13 @@ our $Options = {
|
||||||
label => 'Extruder clearance radius',
|
label => 'Extruder clearance radius',
|
||||||
sidetext => 'mm',
|
sidetext => 'mm',
|
||||||
cli => 'extruder-clearance-radius=f',
|
cli => 'extruder-clearance-radius=f',
|
||||||
type => 'i',
|
type => 'f',
|
||||||
},
|
},
|
||||||
'extruder_clearance_height' => {
|
'extruder_clearance_height' => {
|
||||||
label => 'Extruder clearance height',
|
label => 'Extruder clearance height',
|
||||||
sidetext => 'mm',
|
sidetext => 'mm',
|
||||||
cli => 'extruder-clearance-height=f',
|
cli => 'extruder-clearance-height=f',
|
||||||
type => 'i',
|
type => 'f',
|
||||||
},
|
},
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
|
@ -3,7 +3,7 @@ use strict;
|
||||||
use warnings;
|
use warnings;
|
||||||
|
|
||||||
use Wx qw(:sizer wxSYS_DEFAULT_GUI_FONT);
|
use Wx qw(:sizer wxSYS_DEFAULT_GUI_FONT);
|
||||||
use Wx::Event qw(EVT_TEXT EVT_CHECKBOX EVT_CHOICE);
|
use Wx::Event qw(EVT_TEXT EVT_SPINCTRL EVT_CHECKBOX EVT_CHOICE);
|
||||||
use base 'Wx::StaticBoxSizer';
|
use base 'Wx::StaticBoxSizer';
|
||||||
|
|
||||||
|
|
||||||
|
@ -49,9 +49,14 @@ sub new {
|
||||||
|
|
||||||
my ($get, $set) = $opt->{type} eq 's@' ? qw(serialize deserialize) : qw(get set);
|
my ($get, $set) = $opt->{type} eq 's@' ? qw(serialize deserialize) : qw(get set);
|
||||||
|
|
||||||
$field = Wx::TextCtrl->new($parent, -1, Slic3r::Config->$get($opt_key),
|
if ($opt->{type} eq 'i') {
|
||||||
Wx::wxDefaultPosition, $size, $style);
|
my $value = Slic3r::Config->$get($opt_key);
|
||||||
EVT_TEXT($parent, $field, sub { Slic3r::Config->$set($opt_key, $field->GetValue) });
|
$field = Wx::SpinCtrl->new($parent, -1, $value, Wx::wxDefaultPosition, $size, $style, $opt->{min} || 0, $opt->{max} || 100, $value);
|
||||||
|
EVT_SPINCTRL($parent, $field, sub { Slic3r::Config->$set($opt_key, $field->GetValue) });
|
||||||
|
} else {
|
||||||
|
$field = Wx::TextCtrl->new($parent, -1, Slic3r::Config->$get($opt_key), Wx::wxDefaultPosition, $size, $style);
|
||||||
|
EVT_TEXT($parent, $field, sub { Slic3r::Config->$set($opt_key, $field->GetValue) });
|
||||||
|
}
|
||||||
push @reload_callbacks, sub { $field->SetValue(Slic3r::Config->$get($opt_key)) };
|
push @reload_callbacks, sub { $field->SetValue(Slic3r::Config->$get($opt_key)) };
|
||||||
} elsif ($opt->{type} eq 'bool') {
|
} elsif ($opt->{type} eq 'bool') {
|
||||||
$field = Wx::CheckBox->new($parent, -1, "");
|
$field = Wx::CheckBox->new($parent, -1, "");
|
||||||
|
@ -100,7 +105,7 @@ sub new {
|
||||||
$sizer->Add($field);
|
$sizer->Add($field);
|
||||||
my $sidetext = Wx::StaticText->new($parent, -1, $opt->{sidetext}, Wx::wxDefaultPosition, [-1, -1]);
|
my $sidetext = Wx::StaticText->new($parent, -1, $opt->{sidetext}, Wx::wxDefaultPosition, [-1, -1]);
|
||||||
$sidetext->SetFont($sidetext_font);
|
$sidetext->SetFont($sidetext_font);
|
||||||
$sizer->Add($sidetext, 0, &Wx::wxLEFT, 4);
|
$sizer->Add($sidetext, 0, &Wx::wxLEFT | &Wx::wxALIGN_CENTER_VERTICAL , 4);
|
||||||
$grid_sizer->Add($sizer);
|
$grid_sizer->Add($sizer);
|
||||||
} else {
|
} else {
|
||||||
$grid_sizer->Add($field, 0, $opt->{full_width} ? &Wx::wxEXPAND : 0);
|
$grid_sizer->Add($field, 0, $opt->{full_width} ? &Wx::wxEXPAND : 0);
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue