forked from 1b-agent/opencadstudio-upstream
add-paper-sizes
This commit is contained in:
1 parent
d66e89ca19
commit
4eb656e946
2 files changed
+43
-25
No files matched your search
+30
-24
@@ -133,6 +133,9 @@ fn plot_dialog_sheet_mm(d: &crate::ui::window::plot::PlotDialogState) -> (f64, f
|
||||
"A1" => Some(PaperSize::A1),
|
||||
"A0" => Some(PaperSize::A0),
|
||||
"A4" => Some(PaperSize::A4),
|
||||
"Letter" => Some(PaperSize::Letter),
|
||||
"Legal" => Some(PaperSize::Legal),
|
||||
"Tabloid" => Some(PaperSize::Tabloid),
|
||||
_ => None,
|
||||
};
|
||||
if let Some(paper) = standard {
|
||||
@@ -2576,7 +2579,7 @@ pub(super) fn on_open_file(&mut self) -> Task<Message> {
|
||||
let pick = Task::perform(
|
||||
async move {
|
||||
let mut dlg = crate::sys::file_dialog()
|
||||
.set_title(crate::t!("Save Drawing As").as_ref())
|
||||
.set_title("Save Drawing As")
|
||||
.set_file_name(default_name)
|
||||
.add_filter(filter_label, &[filter_ext]);
|
||||
if let Some(dir) = seed_dir {
|
||||
@@ -2934,8 +2937,8 @@ pub(super) fn on_open_file(&mut self) -> Task<Message> {
|
||||
plot_style.as_ref(),
|
||||
render_options,
|
||||
)
|
||||
.map(|_| crate::tf!("Exported: {}", worker_path.display()).into_owned())
|
||||
.map_err(|e| crate::tf!("Export failed: {e}").into_owned())
|
||||
.map(|_| format!("Exported: {}", worker_path.display()))
|
||||
.map_err(|e| format!("Export failed: {e}"))
|
||||
};
|
||||
self.run_plot_work(self.plot_dialog.background, false, work)
|
||||
}
|
||||
@@ -2978,12 +2981,12 @@ pub(super) fn on_open_file(&mut self) -> Task<Message> {
|
||||
plot_style.as_ref(),
|
||||
render_options,
|
||||
)
|
||||
.map(|_| {crate::tf!(
|
||||
.map(|_| {format!(
|
||||
"Plotted window to {}",
|
||||
worker_path
|
||||
.file_name().unwrap_or_default().to_string_lossy()
|
||||
).into_owned()
|
||||
}).map_err(|e| crate::tf!("Plot failed: {e}").into_owned())
|
||||
)
|
||||
}).map_err(|e| format!("Plot failed: {e}"))
|
||||
};
|
||||
self.run_plot_work(self.plot_dialog.background, false, work)
|
||||
}
|
||||
@@ -3071,7 +3074,7 @@ pub(super) fn on_open_file(&mut self) -> Task<Message> {
|
||||
let page_setup = self.tabs[i]
|
||||
.scene
|
||||
.plot_settings_for(&name)
|
||||
.ok_or_else(|| crate::tf!("Layout '{name}' has no page setup.").into_owned())?;
|
||||
.ok_or_else(|| format!("Layout '{name}' has no page setup."))?;
|
||||
{
|
||||
let scene = &mut self.tabs[i].scene;
|
||||
scene.current_layout = name.clone();
|
||||
@@ -3092,10 +3095,10 @@ pub(super) fn on_open_file(&mut self) -> Task<Message> {
|
||||
self.tabs[i].scene.restore_saved_camera();
|
||||
}
|
||||
if dialog.style_missing && dialog.apply_plot_styles {
|
||||
return Err(crate::tf!(
|
||||
return Err(format!(
|
||||
"Layout '{name}' plot style table '{}' is not loaded.",
|
||||
dialog.style_name
|
||||
).into_owned());
|
||||
));
|
||||
}
|
||||
let plot_style = self.dialog_plot_style(&dialog);
|
||||
let params = match dialog.area.as_str() {
|
||||
@@ -3135,7 +3138,7 @@ pub(super) fn on_open_file(&mut self) -> Task<Message> {
|
||||
rotation_deg,
|
||||
scale,
|
||||
clip,
|
||||
) = params.ok_or_else(|| crate::tf!("Layout '{name}' plot area is empty.").into_owned())?;
|
||||
) = params.ok_or_else(|| format!("Layout '{name}' plot area is empty."))?;
|
||||
(
|
||||
std::sync::Arc::new(wires),
|
||||
hatches,
|
||||
@@ -3219,8 +3222,8 @@ pub(super) fn on_open_file(&mut self) -> Task<Message> {
|
||||
&worker_path,
|
||||
None,
|
||||
)
|
||||
.map(|_| crate::tf!("Exported {} layouts to {}", pages.len(), worker_path.display()).into_owned())
|
||||
.map_err(|error| crate::tf!("Export failed: {error}").into_owned())
|
||||
.map(|_| format!("Exported {} layouts to {}", pages.len(), worker_path.display()))
|
||||
.map_err(|error| format!("Export failed: {error}"))
|
||||
};
|
||||
self.run_print_all_work(dialog.background, work)
|
||||
}
|
||||
@@ -3269,8 +3272,8 @@ pub(super) fn on_open_file(&mut self) -> Task<Message> {
|
||||
.and_then(|_| {
|
||||
crate::io::print_to_printer::print_existing_pdf(&temp_path, &options)
|
||||
})
|
||||
.map(|printer| crate::tf!("Sent {} layouts to printer: {printer}", pages.len()).into_owned())
|
||||
.map_err(|error| crate::tf!("Print failed: {error}").into_owned())
|
||||
.map(|printer| format!("Sent {} layouts to printer: {printer}", pages.len()))
|
||||
.map_err(|error| format!("Print failed: {error}"))
|
||||
};
|
||||
self.run_print_all_work(true, work)
|
||||
}
|
||||
@@ -4285,7 +4288,7 @@ pub(super) fn on_open_file(&mut self) -> Task<Message> {
|
||||
.as_deref()
|
||||
.is_some_and(|name| name.eq_ignore_ascii_case(&style_name));
|
||||
let (mut paper, orient) = paper_label_from_dims(ps.paper_width, ps.paper_height);
|
||||
if !matches!(paper.as_str(), "A4" | "A3" | "A2" | "A1" | "A0")
|
||||
if !matches!(paper.as_str(), "A4" | "A3" | "A2" | "A1" | "A0" | "Letter" | "Legal" | "Tabloid")
|
||||
&& !ps.paper_size.is_empty()
|
||||
{
|
||||
paper = ps.paper_size.clone();
|
||||
@@ -4389,6 +4392,9 @@ pub(super) fn on_open_file(&mut self) -> Task<Message> {
|
||||
"A2" => PaperSize::A2,
|
||||
"A1" => PaperSize::A1,
|
||||
"A0" => PaperSize::A0,
|
||||
"Letter" => PaperSize::Letter,
|
||||
"Legal" => PaperSize::Legal,
|
||||
"Tabloid" => PaperSize::Tabloid,
|
||||
_ => PaperSize::A4,
|
||||
};
|
||||
let orient = if d.orientation == "Portrait" {
|
||||
@@ -4480,7 +4486,7 @@ pub(super) fn on_open_file(&mut self) -> Task<Message> {
|
||||
plot_style.as_ref(),
|
||||
render_options,
|
||||
).and_then(|_| crate::io::print_to_printer::open_in_viewer(&tmp))
|
||||
.map(|_| crate::t!("Opened plot preview.").into_owned()).map_err(|e| crate::tf!("Preview failed: {e}").into_owned())
|
||||
.map(|_| "Opened plot preview.".to_string()).map_err(|e| format!("Preview failed: {e}"))
|
||||
};
|
||||
return self.run_plot_work(d.background, true, work);
|
||||
}
|
||||
@@ -4497,8 +4503,8 @@ pub(super) fn on_open_file(&mut self) -> Task<Message> {
|
||||
plot_style.as_ref(),
|
||||
render_options,
|
||||
).and_then(|_| crate::io::print_to_printer::print_existing_pdf(&tmp, &opts))
|
||||
.map(|printer| crate::tf!("Sent to printer: {printer}").into_owned())
|
||||
.map_err(|e| crate::tf!("Print failed: {e}").into_owned())
|
||||
.map(|printer| format!("Sent to printer: {printer}"))
|
||||
.map_err(|e| format!("Print failed: {e}"))
|
||||
};
|
||||
return self.run_plot_work(true, false, work);
|
||||
}
|
||||
@@ -4525,7 +4531,7 @@ pub(super) fn on_open_file(&mut self) -> Task<Message> {
|
||||
plot_style.as_ref(),
|
||||
render_options,
|
||||
).and_then(|_| crate::io::print_to_printer::open_in_viewer(&tmp))
|
||||
.map(|_| crate::t!("Opened plot preview.").into_owned()).map_err(|e| crate::tf!("Preview failed: {e}").into_owned())
|
||||
.map(|_| "Opened plot preview.".to_string()).map_err(|e| format!("Preview failed: {e}"))
|
||||
};
|
||||
return self.run_plot_work(d.background, true, work);
|
||||
}
|
||||
@@ -4543,8 +4549,8 @@ pub(super) fn on_open_file(&mut self) -> Task<Message> {
|
||||
wires, hatches, wipeouts, page_w, page_h, ox, oy, rotation, scale, clip,
|
||||
plot_style, opts,
|
||||
))
|
||||
.map(|printer| crate::tf!("Sent to printer: {printer}").into_owned())
|
||||
.map_err(|error| crate::tf!("Print failed: {error}").into_owned())
|
||||
.map(|printer| format!("Sent to printer: {printer}"))
|
||||
.map_err(|error| format!("Print failed: {error}"))
|
||||
};
|
||||
self.run_plot_work(true, false, work)
|
||||
}
|
||||
@@ -4860,10 +4866,10 @@ pub(super) fn on_open_file(&mut self) -> Task<Message> {
|
||||
Task::perform(
|
||||
async move {
|
||||
let dialog = crate::sys::file_dialog()
|
||||
.set_title(crate::t!("Save Plot Style Table").as_ref())
|
||||
.set_title("Save Plot Style Table")
|
||||
.set_file_name(&default_name)
|
||||
.add_filter(crate::t!("Plot Style Files").as_ref(), &["ctb", "CTB"])
|
||||
.add_filter(crate::t!("All Files").as_ref(), &["*"]);
|
||||
.add_filter("Plot Style Files", &["ctb", "CTB"])
|
||||
.add_filter("All Files", &["*"]);
|
||||
#[cfg(not(target_arch = "wasm32"))]
|
||||
let dialog = match crate::io::plot_style::ensure_plot_styles_dir() {
|
||||
Ok(dir) => dialog.set_directory(dir),
|
||||
|
||||
+13
-1
@@ -7,15 +7,21 @@ pub enum PaperSize {
|
||||
A2,
|
||||
A1,
|
||||
A0,
|
||||
Letter,
|
||||
Legal,
|
||||
Tabloid,
|
||||
}
|
||||
|
||||
impl PaperSize {
|
||||
pub const ALL: [PaperSize; 5] = [
|
||||
pub const ALL: [PaperSize; 8] = [
|
||||
PaperSize::A4,
|
||||
PaperSize::A3,
|
||||
PaperSize::A2,
|
||||
PaperSize::A1,
|
||||
PaperSize::A0,
|
||||
PaperSize::Letter,
|
||||
PaperSize::Legal,
|
||||
PaperSize::Tabloid,
|
||||
];
|
||||
|
||||
pub fn label(self) -> &'static str {
|
||||
@@ -25,6 +31,9 @@ impl PaperSize {
|
||||
PaperSize::A2 => "A2",
|
||||
PaperSize::A1 => "A1",
|
||||
PaperSize::A0 => "A0",
|
||||
PaperSize::Letter => "Letter",
|
||||
PaperSize::Legal => "Legal",
|
||||
PaperSize::Tabloid => "Tabloid",
|
||||
}
|
||||
}
|
||||
|
||||
@@ -36,6 +45,9 @@ impl PaperSize {
|
||||
PaperSize::A2 => (420.0, 594.0),
|
||||
PaperSize::A1 => (594.0, 841.0),
|
||||
PaperSize::A0 => (841.0, 1189.0),
|
||||
PaperSize::Letter => (215.9, 279.4),
|
||||
PaperSize::Legal => (215.9, 355.6),
|
||||
PaperSize::Tabloid => (279.4, 431.8),
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
Reference in new issue
Block a user