|
@@ -64,7 +64,7 @@ MainWidget::MainWidget()
|
|
};
|
|
};
|
|
|
|
|
|
m_tab_widget->on_tab_close_click = [&](auto& widget) {
|
|
m_tab_widget->on_tab_close_click = [&](auto& widget) {
|
|
- if (request_close()) {
|
|
|
|
|
|
+ if (request_close_editor()) {
|
|
auto& image_editor = verify_cast<PixelPaint::ImageEditor>(widget);
|
|
auto& image_editor = verify_cast<PixelPaint::ImageEditor>(widget);
|
|
m_tab_widget->deferred_invoke([&] {
|
|
m_tab_widget->deferred_invoke([&] {
|
|
m_tab_widget->remove_tab(image_editor);
|
|
m_tab_widget->remove_tab(image_editor);
|
|
@@ -751,18 +751,16 @@ void MainWidget::create_image_from_clipboard()
|
|
m_layer_list_widget->set_selected_layer(layer);
|
|
m_layer_list_widget->set_selected_layer(layer);
|
|
}
|
|
}
|
|
|
|
|
|
-bool MainWidget::request_close()
|
|
|
|
|
|
+bool MainWidget::request_close_editor()
|
|
{
|
|
{
|
|
- if (m_tab_widget->children().is_empty())
|
|
|
|
- return true;
|
|
|
|
|
|
+ auto* editor = current_image_editor();
|
|
|
|
+ VERIFY(editor);
|
|
|
|
|
|
- VERIFY(current_image_editor());
|
|
|
|
-
|
|
|
|
- if (!current_image_editor()->undo_stack().is_current_modified()) {
|
|
|
|
|
|
+ if (!editor->undo_stack().is_current_modified()) {
|
|
return true;
|
|
return true;
|
|
}
|
|
}
|
|
|
|
|
|
- auto result = GUI::MessageBox::ask_about_unsaved_changes(window(), current_image_editor()->path(), current_image_editor()->undo_stack().last_unmodified_timestamp());
|
|
|
|
|
|
+ auto result = GUI::MessageBox::ask_about_unsaved_changes(window(), editor->path(), editor->undo_stack().last_unmodified_timestamp());
|
|
|
|
|
|
if (result == GUI::MessageBox::ExecYes) {
|
|
if (result == GUI::MessageBox::ExecYes) {
|
|
m_save_image_action->activate();
|
|
m_save_image_action->activate();
|
|
@@ -775,6 +773,16 @@ bool MainWidget::request_close()
|
|
return false;
|
|
return false;
|
|
}
|
|
}
|
|
|
|
|
|
|
|
+bool MainWidget::request_close()
|
|
|
|
+{
|
|
|
|
+ while (!m_tab_widget->children().is_empty()) {
|
|
|
|
+ if (!request_close_editor())
|
|
|
|
+ return false;
|
|
|
|
+ m_tab_widget->remove_tab(*m_tab_widget->active_widget());
|
|
|
|
+ }
|
|
|
|
+ return true;
|
|
|
|
+}
|
|
|
|
+
|
|
ImageEditor* MainWidget::current_image_editor()
|
|
ImageEditor* MainWidget::current_image_editor()
|
|
{
|
|
{
|
|
if (!m_tab_widget->active_widget())
|
|
if (!m_tab_widget->active_widget())
|