Skip to content

Commit 928b732

Browse files
authored
library: Port Open File demo to Vala (#783)
* library: Port Open File demo to Vala * Use `.begin` to call async functions in Open File Vala demo
1 parent 920943f commit 928b732

1 file changed

Lines changed: 37 additions & 0 deletions

File tree

Lines changed: 37 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,37 @@
1+
#!/usr/bin/env -S vala workbench.vala --pkg libadwaita-1
2+
3+
public void main () {
4+
var button_single = (Gtk.Button) workbench.builder.get_object ("button_single");
5+
var button_multiple = (Gtk.Button) workbench.builder.get_object ("button_multiple");
6+
7+
button_single.clicked.connect (open_single.begin);
8+
button_multiple.clicked.connect (open_multiple.begin);
9+
}
10+
11+
private async void open_single () {
12+
var default_directory = File.new_for_path (
13+
Environment.get_user_special_dir (DOWNLOAD)
14+
);
15+
var file_dialog = new Gtk.FileDialog () {
16+
initial_folder = default_directory
17+
};
18+
19+
try {
20+
File file = yield file_dialog.open (workbench.window, null);
21+
FileInfo info = file.query_info ("standard::name", NONE, null);
22+
23+
message (@"Selected file: $(info.get_name ())");
24+
} catch (Error e) {
25+
critical (e.message);
26+
}
27+
}
28+
29+
private async void open_multiple () {
30+
var file_dialog = new Gtk.FileDialog ();
31+
try {
32+
ListModel files = yield file_dialog.open_multiple (workbench.window, null);
33+
message (@"Number of selected files: $(files.get_n_items ())");
34+
} catch (Error e) {
35+
critical (e.message);
36+
}
37+
}

0 commit comments

Comments
 (0)