mirror of
				https://github.com/SoftFever/OrcaSlicer.git
				synced 2025-10-30 20:21:12 -06:00 
			
		
		
		
	Merge remote-tracking branch 'origin/master' into new_main_page_ui
This commit is contained in:
		
						commit
						6abfee65ce
					
				
					 25 changed files with 1955 additions and 1029 deletions
				
			
		|  | @ -549,8 +549,8 @@ sub _on_select_preset { | |||
|         return if ($selected_item == $self->{"selected_item_$group"}); | ||||
| 
 | ||||
|         my $selected_string = $choice->GetString($selected_item); | ||||
|         if ($selected_string eq "------- System presets -------" || | ||||
|             $selected_string eq "-------  User presets  -------"){ | ||||
|         if ($selected_string eq ("------- ".L("System presets")." -------") || | ||||
|             $selected_string eq ("-------  ".L("User presets")."  -------") ){ | ||||
|             $choice->SetSelection($self->{"selected_item_$group"}); | ||||
|             return; | ||||
|         } | ||||
|  | @ -1809,8 +1809,7 @@ sub list_item_deselected { | |||
|     if ($self->{list}->GetFirstSelected == -1) { | ||||
|         $self->select_object(undef); | ||||
|         $self->{canvas}->Refresh; | ||||
|         #FIXME VBOs are being refreshed just to change a selection color? | ||||
|         $self->{canvas3D}->reload_scene if $self->{canvas3D}; | ||||
|         $self->{canvas3D}->deselect_volumes if $self->{canvas3D}; | ||||
|     } | ||||
|     undef $self->{_lecursor}; | ||||
| } | ||||
|  | @ -1822,8 +1821,7 @@ sub list_item_selected { | |||
|     my $obj_idx = $event->GetIndex; | ||||
|     $self->select_object($obj_idx); | ||||
|     $self->{canvas}->Refresh; | ||||
|     #FIXME VBOs are being refreshed just to change a selection color? | ||||
|     $self->{canvas3D}->reload_scene if $self->{canvas3D}; | ||||
|     $self->{canvas3D}->update_volumes_selection if $self->{canvas3D}; | ||||
|     undef $self->{_lecursor}; | ||||
| } | ||||
| 
 | ||||
|  | @ -2015,8 +2013,15 @@ sub selection_changed { | |||
| 
 | ||||
| sub select_object { | ||||
|     my ($self, $obj_idx) = @_; | ||||
| 
 | ||||
|     # remove current selection | ||||
|     foreach my $o (0..$#{$self->{objects}}) { | ||||
|         $PreventListEvents = 1; | ||||
|         $self->{objects}->[$o]->selected(0); | ||||
|         $self->{list}->Select($o, 0); | ||||
|         $PreventListEvents = 0; | ||||
|     } | ||||
|      | ||||
|     $_->selected(0) for @{ $self->{objects} }; | ||||
|     if (defined $obj_idx) { | ||||
|         $self->{objects}->[$obj_idx]->selected(1); | ||||
|         # We use this flag to avoid circular event handling | ||||
|  |  | |||
|  | @ -31,7 +31,9 @@ sub new { | |||
|     $self->{on_select_object}   = sub {}; | ||||
|     $self->{on_instances_moved} = sub {}; | ||||
|     $self->{on_wipe_tower_moved} = sub {}; | ||||
|      | ||||
| 
 | ||||
|     $self->{objects_volumes_idxs} = (); | ||||
|          | ||||
|     $self->on_select(sub { | ||||
|         my ($volume_idx) = @_; | ||||
|         $self->{on_select_object}->(($volume_idx == -1) ? undef : $self->volumes->[$volume_idx]->object_idx) | ||||
|  | @ -181,6 +183,17 @@ sub set_on_enable_action_buttons { | |||
|     $self->on_enable_action_buttons($cb); | ||||
| } | ||||
| 
 | ||||
| sub update_volumes_selection { | ||||
|     my ($self) = @_; | ||||
| 
 | ||||
|     foreach my $obj_idx (0..$#{$self->{model}->objects}) { | ||||
|         if ($self->{objects}[$obj_idx]->selected) { | ||||
|             my @volume_idxs = @{$self->{objects_volumes_idxs}[$obj_idx]}; | ||||
|             $self->select_volume($_) for @volume_idxs; | ||||
|         } | ||||
|     } | ||||
| } | ||||
| 
 | ||||
| sub reload_scene { | ||||
|     my ($self, $force) = @_; | ||||
| 
 | ||||
|  | @ -194,12 +207,14 @@ sub reload_scene { | |||
| 
 | ||||
|     $self->{reload_delayed} = 0; | ||||
| 
 | ||||
|     $self->{objects_volumes_idxs} = ();     | ||||
|     foreach my $obj_idx (0..$#{$self->{model}->objects}) { | ||||
|         my @volume_idxs = $self->load_object($self->{model}, $self->{print}, $obj_idx); | ||||
|         if ($self->{objects}[$obj_idx]->selected) { | ||||
|             $self->select_volume($_) for @volume_idxs; | ||||
|         } | ||||
|         push(@{$self->{objects_volumes_idxs}}, \@volume_idxs); | ||||
|     } | ||||
|      | ||||
|     $self->update_volumes_selection; | ||||
|          | ||||
|     if (defined $self->{config}->nozzle_diameter) { | ||||
|         # Should the wipe tower be visualized? | ||||
|         my $extruders_count = scalar @{ $self->{config}->nozzle_diameter }; | ||||
|  |  | |||
|  | @ -116,7 +116,6 @@ sub new { | |||
|         $canvas->set_auto_bed_shape; | ||||
|         $canvas->SetSize([500,500]); | ||||
|         $canvas->SetMinSize($canvas->GetSize); | ||||
|         $canvas->zoom_to_volumes; | ||||
|     } | ||||
|      | ||||
|     $self->{sizer} = Wx::BoxSizer->new(wxHORIZONTAL); | ||||
|  |  | |||
|  | @ -163,7 +163,6 @@ sub new { | |||
|         $canvas->set_auto_bed_shape; | ||||
|         $canvas->SetSize([500,700]); | ||||
|         $canvas->update_volumes_colors_by_extruder($self->GetParent->GetParent->GetParent->{config}); | ||||
|         $canvas->zoom_to_volumes; | ||||
|     } | ||||
|      | ||||
|     $self->{sizer} = Wx::BoxSizer->new(wxHORIZONTAL); | ||||
|  |  | |||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue
	
	 YuSanka
						YuSanka