forked from 1b-agent/opencadstudio-upstream
feat(plugin): ModuleEvent::PluginFileDialog for native file import
Add-ons had no way to request a file picker — only the host's own Open dialog. PluginFileDialog lets a plugin tool ask the host to open a native picker; on selection the host dispatches "<command> <path>" back to the plugin with original case preserved (bypassing the command-line upper-casing that mangles case-sensitive paths on Linux/macOS). The demo plugin gains an Import tool exercising it. Part of the #100 extensibility epic (surfaced in #106). Co-Authored-By: Claude Opus 4.8 <[email protected]>
This commit is contained in:
1 parent
844069b4ef
commit
50825b6346
8 files changed
+107
-7
No files matched your search
@@ -1269,6 +1269,12 @@ pub fn module_event_to_message(event: ModuleEvent) -> Message {
|
||||
ModuleEvent::ClearModels => Message::ClearScene,
|
||||
ModuleEvent::SetWireframe(w) => Message::SetWireframe(w),
|
||||
ModuleEvent::ToggleLayers => Message::ToggleLayers,
|
||||
// Needs the tool context + async picker — route through the normal
|
||||
// ribbon-click handler rather than a direct 1:1 message.
|
||||
e @ ModuleEvent::PluginFileDialog { .. } => Message::RibbonToolClick {
|
||||
tool_id: String::new(),
|
||||
event: e,
|
||||
},
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
Reference in new issue
Block a user