From e1e8f04e9f1850d9ad9fde78e7fd31b7d97cdcae Mon Sep 17 00:00:00 2001 From: Tobias Hunger Date: Mon, 6 Jan 2025 17:16:54 +0100 Subject: [PATCH] lsp: Fix error reporting when opening the live-preview fails Fixes: #7255 --- tools/lsp/preview.rs | 9 +++++---- tools/lsp/preview/native.rs | 4 ++-- 2 files changed, 7 insertions(+), 6 deletions(-) diff --git a/tools/lsp/preview.rs b/tools/lsp/preview.rs index ba778319ec9..a88ff6d1cf7 100644 --- a/tools/lsp/preview.rs +++ b/tools/lsp/preview.rs @@ -1250,7 +1250,7 @@ pub fn load_preview(preview_component: PreviewComponent, behavior: LoadBehavior) cache.loading_state = PreviewFutureState::PreLoading; }; - run_in_ui_thread(move || async move { + if let Err(e) = run_in_ui_thread(move || async move { PREVIEW_STATE.with(|preview_state| { preview_state .borrow_mut() @@ -1261,15 +1261,16 @@ pub fn load_preview(preview_component: PreviewComponent, behavior: LoadBehavior) slint::TimerMode::SingleShot, core::time::Duration::from_millis(50), || { - slint::spawn_local(reload_timer_function()).unwrap(); + let _ = slint::spawn_local(reload_timer_function()); }, ); timer }) .restart(); }); - }) - .unwrap(); + }) { + send_platform_error_notification(&e); + } } async fn parse_source( diff --git a/tools/lsp/preview/native.rs b/tools/lsp/preview/native.rs index 34bf80551af..262e5ab927e 100644 --- a/tools/lsp/preview/native.rs +++ b/tools/lsp/preview/native.rs @@ -54,11 +54,11 @@ pub fn run_in_ui_thread + 'static>( return Err(err.clone()); } } + i_slint_core::api::invoke_from_event_loop(move || { slint::spawn_local(create_future()).unwrap(); }) - .unwrap(); - Ok(()) + .map_err(|e| e.to_string()) } /// This is the main entry for the Slint event loop. It runs on the main thread,