Skip to content

Commit 2606cbe

Browse files
Library: Port 'Select Folder' to Python (#771)
Co-authored-by: Marco Capypara Köpcke <hello@capypara.de>
1 parent 7290ac0 commit 2606cbe

File tree

1 file changed

+43
-0
lines changed
  • src/Library/demos/Select Folder

1 file changed

+43
-0
lines changed
Lines changed: 43 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,43 @@
1+
import gi
2+
3+
gi.require_version("Gtk", "4.0")
4+
from gi.repository import Gio, Gtk
5+
import workbench
6+
7+
8+
button_single = workbench.builder.get_object("button_single")
9+
button_multiple = workbench.builder.get_object("button_multiple")
10+
11+
12+
def on_single_selected(dialog, result):
13+
file = dialog.select_folder_finish(result)
14+
info = file.query_info(
15+
"standard::name",
16+
Gio.FileQueryInfoFlags.NONE,
17+
None,
18+
)
19+
print(f'"{info.get_name()}" selected')
20+
21+
22+
def select_folder(button):
23+
dialog_for_folder = Gtk.FileDialog()
24+
dialog_for_folder.select_folder(workbench.window, None, on_single_selected)
25+
26+
27+
button_single.connect("clicked", select_folder)
28+
29+
30+
def on_multiple_selected(dialog, result):
31+
folders = dialog.select_multiple_folders_finish(result)
32+
selected_items_count = folders.get_n_items()
33+
print(f"{selected_items_count} selected folders")
34+
35+
36+
def select_multiple_folders(button):
37+
dialog_for_folders = Gtk.FileDialog()
38+
dialog_for_folders.select_multiple_folders(
39+
workbench.window, None, on_multiple_selected
40+
)
41+
42+
43+
button_multiple.connect("clicked", select_multiple_folders)

0 commit comments

Comments
 (0)