Destruktor i Try .. Catch
Ostatnio zmodyfikowano 2026-04-06 23:21
tBane Temat założony przez niniejszego użytkownika |
» 2026-04-06 22:48:14 Działa ponieważ przy każdym wywołaniu funkcji dla sliderów nakładany jest efekt na _edited_layers. W tym przypadku ustawiana wartość dla sliderów to 0,0 i one resetują - nakładają zero efektu na _edited_layers. Więc przywracane są resetowane warstwy. Dlatego wygląda jakby kod był poprawny. Zaraz to poprawię :-) |
|
tBane Temat założony przez niniejszego użytkownika |
» 2026-04-06 23:21:58 Ostatecznie tak sie prezentuje destruktor z poprawnym try .. catchDialog_Brightness_Contrast::~Dialog_Brightness_Contrast() { try { if( Dialog_Brightness_Contrast::_state == BrightnessContrastState::Idle ) { _brightness_slider->setValue( 0 ); _contrast_slider->setValue( 0 ); getCurrentAnimation()->getCurrentFrame()->_layers.clear(); getCurrentAnimation()->getCurrentFrame()->_layers = _original_layers; layers_panel->loadLayersFromCurrentFrame(); } else { if( selection->_state == SelectionState::Selected ) { sf::Image original_image = getCurrentAnimation()->getCurrentLayer()->_image; pasteImageWithMask( getCurrentAnimation()->getCurrentLayer()->_image, * selection->_resizedImage, selection->_resizedRect.position.x, selection->_resizedRect.position.y, * selection->_resizedMaskImage,( toolbar->_option_transparency->_checkbox->_value == 0 ) ? sf::Color::Transparent : toolbar->_second_color->_color ); history->saveStep(); canvas->_isEdited = true; selection->normalize( selection->_resizedRect ); getCurrentAnimation()->getCurrentLayer()->_image = original_image; } else { history->saveStep(); } } } catch( const std::exception & e ) { std::cerr << "Exception in Dialog_Brightness_Contrast destructor: " << e.what() << std::endl; } catch( ... ) { std::cerr << "Unknown exception in Dialog_Brightness_Contrast destructor" << std::endl; } }
|
|
| 1 « 2 » |