forked from 1b-agent/opencadstudio-upstream
Merge main into Select-Color-Redesign
Keep both sides: main's ViewBackground colour target and PREVIEW icon next to this branch's Interface target and LIST/SEARCH icons. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_013rGmDUNr1hUf4zo1X3dak8
This commit is contained in:
231 files changed
+32217
-3423
No files matched your search
+94
-8
@@ -35,6 +35,13 @@ impl OpenCADStudio {
|
||||
Some(K::PointCloudAttach) => crate::t!("Attach Point Cloud").into_owned(),
|
||||
Some(K::PointCloudColorMap) => crate::t!("Point Cloud Color Map").into_owned(),
|
||||
Some(K::PcSection) => crate::t!("Extract Section Lines from Point Cloud").into_owned(),
|
||||
Some(K::ViewBackground) => format!(
|
||||
"{} — {}",
|
||||
crate::tr!("view-background", "title"),
|
||||
self.view_background.as_ref().map_or("", |s| s.view.as_str())
|
||||
),
|
||||
Some(K::ImageAdjust) => crate::tr!("image-adjust", "title"),
|
||||
Some(K::RefEdit) => crate::tr!("ref-edit", "dialog-title"),
|
||||
Some(K::UnderlayLayers) => crate::t!("Underlay Layers").into_owned(),
|
||||
Some(K::PdfImportSettings) => crate::t!("PDF Import Settings").into_owned(),
|
||||
Some(K::PdfImportFile) => crate::t!("Import PDF").into_owned(),
|
||||
@@ -71,6 +78,9 @@ impl OpenCADStudio {
|
||||
Some(K::ExternalChange) => crate::tr!("modal", "drawing-changed"),
|
||||
Some(K::LayerDeleteWarning) => crate::tr!("modal", "delete-layer"),
|
||||
Some(K::Unsaved) => crate::tr!("modal", "unsaved-changes"),
|
||||
Some(K::BlockEditChanges) => crate::t!("Block Editor").into_owned(),
|
||||
Some(K::BlockEditPicker) => crate::t!("Edit Block Definition").into_owned(),
|
||||
Some(K::BlockSaveAs) => crate::t!("Save Block As").into_owned(),
|
||||
Some(K::PointStyle) => crate::tr!("modal", "point-style"),
|
||||
Some(K::AttributeEditor) => crate::tr!("modal", "attribute-editor"),
|
||||
Some(K::SaveDialog) => crate::tr!("modal", "save-drawing-as"),
|
||||
@@ -294,6 +304,10 @@ impl OpenCADStudio {
|
||||
textfill: crate::scene::text::sdf_atlas::textfill(),
|
||||
cliprompt_lines: self.cliprompt_lines,
|
||||
commandline_fade_ms: self.commandline_fade_ms,
|
||||
command_line_opacity: self.command_line.opacity_percent(),
|
||||
show_menu_bar: self.show_menu_bar,
|
||||
show_ribbon: !self.ribbon_closed,
|
||||
hatch_associative: self.hatch_associative,
|
||||
zoom_wheel_reversed: self.zoom_wheel_reversed,
|
||||
touchpad_pan: self.touchpad_pan,
|
||||
ui_scale_percent: self.ui_scale_percent,
|
||||
@@ -488,6 +502,18 @@ impl OpenCADStudio {
|
||||
crate::ui::window::block_definition::view_window(state, flow)
|
||||
})
|
||||
}
|
||||
super::super::ModalKind::BlockEditPicker => {
|
||||
let state = self.block_edit_picker.as_ref()?;
|
||||
sized_flow(ex, 540, 380, |flow| {
|
||||
crate::ui::window::block_edit_picker::view(state, flow)
|
||||
})
|
||||
}
|
||||
super::super::ModalKind::BlockSaveAs => {
|
||||
let state = self.block_save_as.as_ref()?;
|
||||
sized_flow(ex, 430, 370, |flow| {
|
||||
crate::ui::window::block_save_as::view(state, flow)
|
||||
})
|
||||
}
|
||||
super::super::ModalKind::PdfAttach => {
|
||||
let state = self.pdf_attach.as_ref()?;
|
||||
sized_flow(ex, 880, 540, |flow| {
|
||||
@@ -512,6 +538,24 @@ impl OpenCADStudio {
|
||||
crate::ui::window::pdf_dialogs::view_pc_section(state, flow)
|
||||
})
|
||||
}
|
||||
super::super::ModalKind::ViewBackground => {
|
||||
let state = self.view_background.as_ref()?;
|
||||
sized_flow(ex, 420, 560, |flow| {
|
||||
crate::ui::window::pdf_dialogs::view_background(state, flow)
|
||||
})
|
||||
}
|
||||
super::super::ModalKind::ImageAdjust => {
|
||||
let state = self.image_adjust.as_ref()?;
|
||||
sized_flow(ex, 520, 560, |flow| {
|
||||
crate::ui::window::pdf_dialogs::image_adjust(state, flow)
|
||||
})
|
||||
}
|
||||
super::super::ModalKind::RefEdit => {
|
||||
let state = self.refedit_dialog.as_ref()?;
|
||||
sized_flow(ex, 560, 470, |flow| {
|
||||
crate::ui::window::refedit_dialog::view(state, flow)
|
||||
})
|
||||
}
|
||||
super::super::ModalKind::UnderlayLayers => {
|
||||
let state = self.underlay_layers.as_ref()?;
|
||||
sized_flow(ex, 460, 520, |flow| {
|
||||
@@ -1727,7 +1771,19 @@ impl OpenCADStudio {
|
||||
.unwrap_or_default(),
|
||||
None => String::new(),
|
||||
};
|
||||
automatic_flow(ex, |flow| unsaved_changes_dialog_window(&tab_name, flow))
|
||||
automatic_flow(ex, |flow| {
|
||||
unsaved_changes_dialog_window(&tab_name, flow, false)
|
||||
})
|
||||
}
|
||||
super::super::ModalKind::BlockEditChanges => {
|
||||
let name = self
|
||||
.pending_block_close
|
||||
.as_ref()
|
||||
.and_then(|(id, _)| self.tabs.iter().find(|tab| tab.id == *id))
|
||||
.and_then(|tab| tab.active_block_edit_session())
|
||||
.map(|session| session.block_name.clone())
|
||||
.unwrap_or_default();
|
||||
automatic_flow(ex, |flow| unsaved_changes_dialog_window(&name, flow, true))
|
||||
}
|
||||
super::super::ModalKind::PointStyle => sized_flow(ex, 360, 470, |flow| {
|
||||
crate::ui::style::point_style::view_window(
|
||||
@@ -2045,23 +2101,53 @@ fn save_as_dialog_window<'a>(
|
||||
fn unsaved_changes_dialog_window(
|
||||
name: &str,
|
||||
sizing: crate::ui::modal::ModalSizing,
|
||||
block_edit: bool,
|
||||
) -> Element<'static, Message> {
|
||||
container(
|
||||
column![
|
||||
text(name.to_owned()).size(14),
|
||||
text(if block_edit {
|
||||
crate::tf!("Save changes to {}?", name).into_owned()
|
||||
} else {
|
||||
name.to_owned()
|
||||
})
|
||||
.size(14),
|
||||
iced::widget::Space::new().height(4),
|
||||
text(crate::tr!("modal", "unsaved-save-prompt"))
|
||||
.size(12)
|
||||
.style(dialog_muted_text_style),
|
||||
text(if block_edit {
|
||||
String::new()
|
||||
} else {
|
||||
crate::tr!("modal", "unsaved-save-prompt")
|
||||
})
|
||||
.size(12)
|
||||
.style(dialog_muted_text_style),
|
||||
iced::widget::Space::new().height(20),
|
||||
row![
|
||||
dialog_button(t!("Save"), Message::UnsavedDialogSave, button::primary),
|
||||
dialog_button(
|
||||
t!("Save"),
|
||||
if block_edit {
|
||||
Message::BlockEditChangesSave
|
||||
} else {
|
||||
Message::UnsavedDialogSave
|
||||
},
|
||||
button::primary
|
||||
),
|
||||
iced::widget::Space::new().width(8),
|
||||
dialog_button(t!("Discard"), Message::UnsavedDialogDiscard, button::danger),
|
||||
dialog_button(
|
||||
t!("Discard"),
|
||||
if block_edit {
|
||||
Message::BlockEditChangesDiscard
|
||||
} else {
|
||||
Message::UnsavedDialogDiscard
|
||||
},
|
||||
button::danger
|
||||
),
|
||||
iced::widget::Space::new().width(8),
|
||||
dialog_button(
|
||||
t!("Cancel"),
|
||||
Message::UnsavedDialogCancel,
|
||||
if block_edit {
|
||||
Message::BlockEditChangesCancel
|
||||
} else {
|
||||
Message::UnsavedDialogCancel
|
||||
},
|
||||
button::secondary
|
||||
),
|
||||
],
|
||||
|
||||
Reference in new issue
Block a user