feat: Icon overlay and editor improvements #1

Merged
rootiest merged 34 commits from feature/icon-overlay into main 2026-08-04 03:57:24 +00:00
Showing only changes of commit f45eb5e70a - Show all commits
+12 -1
View File
@@ -193,14 +193,25 @@ fn build_editor(stack: &Stack, window: &ApplicationWindow, icon_path: PathBuf, b
let window_clone = window.clone();
let comp = Rc::clone(&comp);
move || {
let filter = gtk::FileFilter::new();
filter.set_name(Some("SVG Images"));
filter.add_mime_type("image/svg+xml");
filter.add_pattern("*.svg");
let filters = gtk::gio::ListStore::new::<gtk::FileFilter>();
filters.append(&filter);
let dialog = gtk::FileDialog::builder()
.title("Save Composite Icon As...")
.filters(&filters)
.default_filter(&filter)
.build();
let c = Rc::clone(&comp);
dialog.save(Some(&window_clone), gtk::gio::Cancellable::NONE, move |res| {
if let Ok(file) = res {
if let Some(path) = file.path() {
if let Err(e) = std::fs::write(&path, c.borrow().render()) {
let rendered = c.borrow().render();
if let Err(e) = std::fs::write(&path, rendered) {
eprintln!("Failed to save composite to {}: {e}", path.display());
} else {
c.borrow_mut().is_modified = false;