mirror of
				https://github.com/SoftFever/OrcaSlicer.git
				synced 2025-11-02 20:51:23 -07:00 
			
		
		
		
	Keep instance mode selection when at least one instance is already selected
This commit is contained in:
		
							parent
							
								
									7d488e3424
								
							
						
					
					
						commit
						28ec3415eb
					
				
					 1 changed files with 9 additions and 4 deletions
				
			
		| 
						 | 
				
			
			@ -108,21 +108,26 @@ void Selection::add(unsigned int volume_idx, bool as_single_selection)
 | 
			
		|||
    if (is_wipe_tower() && volume->is_wipe_tower)
 | 
			
		||||
        return;
 | 
			
		||||
 | 
			
		||||
    bool keep_instance_mode = (m_mode == Instance) && !as_single_selection && (is_single_full_instance() || is_multiple_full_instance());
 | 
			
		||||
 | 
			
		||||
    // resets the current list if needed
 | 
			
		||||
    bool needs_reset = as_single_selection;
 | 
			
		||||
    needs_reset |= volume->is_wipe_tower;
 | 
			
		||||
    needs_reset |= is_wipe_tower() && !volume->is_wipe_tower;
 | 
			
		||||
    needs_reset |= !is_modifier() && volume->is_modifier;
 | 
			
		||||
    needs_reset |= !keep_instance_mode && !is_modifier() && volume->is_modifier;
 | 
			
		||||
    needs_reset |= is_modifier() && !volume->is_modifier;
 | 
			
		||||
 | 
			
		||||
    if (needs_reset)
 | 
			
		||||
        clear();
 | 
			
		||||
 | 
			
		||||
    if (!contains_volume(volume_idx))
 | 
			
		||||
        m_mode = volume->is_modifier ? Volume : Instance;
 | 
			
		||||
    {
 | 
			
		||||
        if (!keep_instance_mode)
 | 
			
		||||
            m_mode = volume->is_modifier ? Volume : Instance;
 | 
			
		||||
    }
 | 
			
		||||
    else
 | 
			
		||||
        // keep current mode
 | 
			
		||||
        return;
 | 
			
		||||
      // keep current mode
 | 
			
		||||
      return;
 | 
			
		||||
 | 
			
		||||
    switch (m_mode)
 | 
			
		||||
    {
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue