Skip to content

Commit b544282

Browse files
authored
library: Port Avatar demo to Vala (#781)
* library: Port Avatar demo to Vala * Use `.begin` to call async functions in Avatar Vala demo
1 parent 928b732 commit b544282

File tree

1 file changed

+29
-0
lines changed

1 file changed

+29
-0
lines changed

src/Library/demos/Avatar/main.vala

Lines changed: 29 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,29 @@
1+
#!/usr/bin/env -S vala workbench.vala --pkg libadwaita-1
2+
3+
private Adw.Avatar avatar_image;
4+
5+
public void main () {
6+
avatar_image = (Adw.Avatar) workbench.builder.get_object ("avatar_image");
7+
var button = (Gtk.Button) workbench.builder.get_object ("button");
8+
button.clicked.connect (select_image.begin);
9+
}
10+
11+
private async void select_image () {
12+
var filter = new Gtk.FileFilter () {
13+
name = "Images"
14+
};
15+
filter.add_pixbuf_formats ();
16+
17+
var file_dialog = new Gtk.FileDialog () {
18+
title = "Select an Avatar",
19+
modal = true,
20+
default_filter = filter
21+
};
22+
23+
try {
24+
File file = yield file_dialog.open (workbench.window, null);
25+
avatar_image.custom_image = Gdk.Texture.from_file (file);
26+
} catch (Error e) {
27+
critical (e.message);
28+
}
29+
}

0 commit comments

Comments
 (0)