blob: 4bb1f537eeb3554c84051c4c144baab59d7f936d (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
|
using Gee;
using Gdk;
using Gtk;
using Dino.Entities;
namespace Dino.Ui {
[GtkTemplate (ui = "/im/dino/Dino/conversation_view.ui")]
public class ConversationView : Widget {
[GtkChild] public unowned Revealer goto_end_revealer;
[GtkChild] public unowned Button goto_end_button;
[GtkChild] public unowned ChatInput.View chat_input;
[GtkChild] public unowned ConversationSummary.ConversationView conversation_frame;
construct {
this.layout_manager = new BinLayout();
}
public void open_save_file_dialog(FileTransfer file_transfer) {
var save_dialog = new FileChooserNative(_("Save as…"), (Gtk.Window) this.get_root(), FileChooserAction.SAVE, null, null);
save_dialog.set_modal(true);
save_dialog.set_current_name(file_transfer.file_name);
save_dialog.response.connect(() => {
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);
}
});
save_dialog.show();
}
}
}
|