summaryrefslogtreecommitdiff
path: root/src/main.rs
diff options
context:
space:
mode:
authorPolesznyák Márk <contact@pml68.dev>2026-01-29 18:27:54 +0100
committerPolesznyák Márk <contact@pml68.dev>2026-01-29 18:27:54 +0100
commit7dcc3d8eabfba6a7c4cdd36165d55c4d2f48a82c (patch)
treef291953090670ef149db37770bdd70578690fb15 /src/main.rs
parentchore: bump MSRV to match iced's (diff)
downloadiced-builder-7dcc3d8eabfba6a7c4cdd36165d55c4d2f48a82c.tar.gz
feat: set parent window of rfd dialogs
Diffstat (limited to 'src/main.rs')
-rw-r--r--src/main.rs42
1 files changed, 16 insertions, 26 deletions
diff --git a/src/main.rs b/src/main.rs
index 107dd3f..9a93b51 100644
--- a/src/main.rs
+++ b/src/main.rs
@@ -350,13 +350,10 @@ impl IcedBuilder {
dialog::Action::UnsavedChanges(_)
) {
self.is_loading = true;
- Task::perform(
- self.project
- .clone()
- .write_to_file(self.project_path.clone()),
- Message::FileSaved,
- )
- .chain(Task::done(Message::DialogNo))
+ self.project
+ .write_to_file(self.project_path.clone())
+ .map(Message::FileSaved)
+ .chain(Task::done(Message::DialogNo))
} else {
self.update(Message::CloseDialog)
};
@@ -377,11 +374,9 @@ impl IcedBuilder {
UnsavedChanges::Open => {
self.is_dirty = false;
self.is_loading = true;
- task = Task::perform(
- Project::from_file(),
- Message::FileOpened,
- )
- .chain(task);
+ task = Project::from_file()
+ .map(Message::FileOpened)
+ .chain(task);
}
UnsavedChanges::Exit => {
return self.update(Message::CloseApp);
@@ -414,10 +409,7 @@ impl IcedBuilder {
if !self.is_dirty {
self.is_loading = true;
- return Task::perform(
- Project::from_file(),
- Message::FileOpened,
- );
+ return Project::from_file().map(Message::FileOpened);
} else {
self.dialog = Dialog::unsaved_changes(
"You have unsaved changes. Do you want to save them before opening another project?",
@@ -453,12 +445,10 @@ impl IcedBuilder {
self.is_loading = true;
self.is_dialog_open = true;
- return Task::perform(
- self.project
- .clone()
- .write_to_file(self.project_path.clone()),
- Message::FileSaved,
- );
+ return self
+ .project
+ .write_to_file(self.project_path.clone())
+ .map(Message::FileSaved);
}
}
Message::SaveFileAs => {
@@ -466,10 +456,10 @@ impl IcedBuilder {
self.is_loading = true;
self.is_dialog_open = true;
- return Task::perform(
- self.project.clone().write_to_file(None),
- Message::FileSaved,
- );
+ return self
+ .project
+ .write_to_file(None)
+ .map(Message::FileSaved);
}
}
Message::FileSaved(result) => {