diff options
| author | Marvin W <git@larma.de> | 2025-10-06 20:12:19 +0200 |
|---|---|---|
| committer | Marvin W <git@larma.de> | 2025-11-01 18:04:43 -0400 |
| commit | f1bbb065ec63053b1e0dd0c78ba11376cbab451d (patch) | |
| tree | c8ba1ee43637b29f868e6d8ddd63714e6fb4618d /main/src/ui/conversation_content_view/file_widget.vala | |
| parent | 3c37cdbd1d2e5abbd0ab46a110b479432929b535 (diff) | |
Files: Use GFile instead of uri/path strings
In some situations (like VFS or other abstractions), the file reference can
have an invalid or unusabe path. Passing the GFile instead and opening it
directly increases probability we can actually access it.
Diffstat (limited to 'main/src/ui/conversation_content_view/file_widget.vala')
| -rw-r--r-- | main/src/ui/conversation_content_view/file_widget.vala | 9 |
1 files changed, 7 insertions, 2 deletions
diff --git a/main/src/ui/conversation_content_view/file_widget.vala b/main/src/ui/conversation_content_view/file_widget.vala index f031db21..0e3cee03 100644 --- a/main/src/ui/conversation_content_view/file_widget.vala +++ b/main/src/ui/conversation_content_view/file_widget.vala @@ -169,8 +169,13 @@ public class FileWidgetController : Object { save_dialog.set_current_name(file_transfer.file_name); save_dialog.response.connect(() => { - try{ - GLib.File.new_for_uri(file_transfer.get_file().get_uri()).copy(save_dialog.get_file(), GLib.FileCopyFlags.OVERWRITE, null); + File? target_file = save_dialog.get_file(); + if (target_file == null) { + warning("No file returned from save dialog."); + return; + } + try { + file_transfer.get_file().copy(save_dialog.get_file(), GLib.FileCopyFlags.OVERWRITE, null); } catch (Error err) { warning("Failed copy file %s - %s", file_transfer.get_file().get_uri(), err.message); } |
