Live operation previews: open feature dialogs (new or Edit Feature) evaluate on a scratch session off the UI thread (Session::preview, no document or undo changes) and draw the result in place: new surface tinted, removed material as a translucent ghost; errors show in the dialog and keep the last good preview; a failing join/cut still shows its tool body
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01AS5Tn3xieewUSg3uxrMVdL
This commit is contained in:
1 parent
b8d0fcc8e2
commit
d44083d1cc
8 files changed
+548
-23
No files matched your search
@@ -14,6 +14,7 @@ pub mod dialogs;
|
||||
pub mod gpu;
|
||||
pub mod icons;
|
||||
pub mod palette;
|
||||
pub mod preview;
|
||||
pub mod selection;
|
||||
pub mod theme;
|
||||
pub mod timeline;
|
||||
@@ -87,6 +88,7 @@ pub struct SolveApp {
|
||||
pub tool: Option<tools::Tool>,
|
||||
pub dialog: Option<dialogs::Dialog>,
|
||||
pub palette: palette::Palette,
|
||||
pub preview: preview::PreviewState,
|
||||
pub status: Option<(String, f64, bool)>,
|
||||
pub quit_requested: bool,
|
||||
pub frame_ms: f64,
|
||||
@@ -113,6 +115,7 @@ impl SolveApp {
|
||||
tool: None,
|
||||
dialog: None,
|
||||
palette: palette::Palette::default(),
|
||||
preview: preview::PreviewState::default(),
|
||||
status: None,
|
||||
quit_requested: false,
|
||||
frame_ms: 0.0,
|
||||
@@ -387,6 +390,7 @@ impl SolveApp {
|
||||
if self.ui.show_browser {
|
||||
browser::browser(self, ui);
|
||||
}
|
||||
preview::update(self, ui.ctx());
|
||||
egui::CentralPanel::default().frame(egui::Frame::NONE).show(ui, |ui| {
|
||||
viewport::show(self, ui);
|
||||
});
|
||||
|
||||
Reference in new issue
Block a user