feat(find): add find and replace

Closes #583
This commit is contained in:
Hakan Seven committed 2026-07-30 17:56:54 +03:00
1 parent 4af141ebec
commit c9aab122f0
10 files changed
+814 -7

No files matched your search

+2
View File
@@ -1586,6 +1586,7 @@ impl OpenCADStudio {
About => (440, 360),
Shortcuts => (720, 520),
Options => (520, 500),
FindReplace => (560, 190),
PluginManager => {
#[cfg(target_arch = "wasm32")]
{
@@ -1889,6 +1890,7 @@ impl OpenCADStudio {
"z" if !shift => Some(Message::Undo),
"z" if shift => Some(Message::Redo),
"y" => Some(Message::Redo),
"f" | "h" => Some(Message::FindReplaceOpen),
// Ctrl/Cmd+A: select all layer rows when the
// Layer Manager is open, else all objects. The
// update handler branches on the active modal.
+10
View File
@@ -17,6 +17,7 @@ impl OpenCADStudio {
Some(K::Shortcuts) => "Keyboard Shortcuts",
Some(K::Aliases) => "Command Aliases",
Some(K::Options) => "Options",
Some(K::FindReplace) => "Find and Replace",
Some(K::PluginManager) => "Plugin Manager",
Some(K::UpdateNotice) => "Update Available",
Some(K::Layers) => "Layer Manager",
@@ -102,6 +103,15 @@ impl OpenCADStudio {
)
},
),
super::super::ModalKind::FindReplace => sized(
crate::ui::window::find_replace::view_window(
&self.find_replace.search,
&self.find_replace.replacement,
&self.find_replace.status,
),
560,
190,
),
super::super::ModalKind::PluginManager => {
#[cfg(not(target_arch = "wasm32"))]
{