@@ -35,20 +35,31 @@ AppState create_ui()
35
35
}
36
36
});
37
37
38
- demo->on_popup_confirmed (
39
- [demo = slint::ComponentWeakHandle (demo)] { (*demo.lock ())->window ().hide (); });
40
-
41
- demo->window ().on_close_requested ([todo_model, demo = slint::ComponentWeakHandle (demo)] {
42
- int count = todo_model->row_count ();
43
- for (int i = 0 ; i < count; ++i) {
44
- if (!todo_model->row_data (i)->checked ) {
45
- (*demo.lock ())->invoke_show_confirm_popup ();
46
- return slint::CloseRequestResponse::KeepWindowShown;
47
- }
38
+ auto confirm_dialog = todo_ui::ConfirmDialog::create ();
39
+ confirm_dialog->window ().set_modality (demo->window ());
40
+ confirm_dialog->on_yes_clicked ([demo = slint::ComponentWeakHandle (demo),
41
+ confirm_dialog = slint::ComponentWeakHandle (confirm_dialog)] {
42
+ if (auto d = demo.lock ()) {
43
+ (*d)->window ().hide ();
48
44
}
49
- return slint::CloseRequestResponse::HideWindow;
45
+ (*confirm_dialog.lock ())->window ().hide ();
46
+ });
47
+ confirm_dialog->on_no_clicked ([confirm_dialog = slint::ComponentWeakHandle (confirm_dialog)] {
48
+ (*confirm_dialog.lock ())->window ().hide ();
50
49
});
51
50
51
+ demo->window ().on_close_requested (
52
+ [todo_model, demo = slint::ComponentWeakHandle (demo), confirm_dialog] {
53
+ int count = todo_model->row_count ();
54
+ for (int i = 0 ; i < count; ++i) {
55
+ if (!todo_model->row_data (i)->checked ) {
56
+ confirm_dialog->window ().show ();
57
+ return slint::CloseRequestResponse::KeepWindowShown;
58
+ }
59
+ }
60
+ return slint::CloseRequestResponse::HideWindow;
61
+ });
62
+
52
63
demo->set_show_header (true );
53
64
54
65
demo->on_apply_sorting_and_filtering ([todo_model, demo = slint::ComponentWeakHandle (demo)] {
0 commit comments