gtk4/auto/
file_chooser_widget.rs

1// This file was generated by gir (https://github.com/gtk-rs/gir)
2// from gir-files (https://github.com/gtk-rs/gir-files)
3// DO NOT EDIT
4#![allow(deprecated)]
5
6use crate::{
7    ffi, Accessible, AccessibleRole, Align, Buildable, ConstraintTarget, FileChooser,
8    FileChooserAction, FileFilter, LayoutManager, Overflow, Widget,
9};
10use glib::{
11    object::ObjectType as _,
12    prelude::*,
13    signal::{connect_raw, SignalHandlerId},
14    translate::*,
15};
16use std::boxed::Box as Box_;
17
18glib::wrapper! {
19    #[doc(alias = "GtkFileChooserWidget")]
20    pub struct FileChooserWidget(Object<ffi::GtkFileChooserWidget>) @extends Widget, @implements Accessible, Buildable, ConstraintTarget, FileChooser;
21
22    match fn {
23        type_ => || ffi::gtk_file_chooser_widget_get_type(),
24    }
25}
26
27impl FileChooserWidget {
28    #[cfg_attr(feature = "v4_10", deprecated = "Since 4.10")]
29    #[allow(deprecated)]
30    #[doc(alias = "gtk_file_chooser_widget_new")]
31    pub fn new(action: FileChooserAction) -> FileChooserWidget {
32        assert_initialized_main_thread!();
33        unsafe {
34            Widget::from_glib_none(ffi::gtk_file_chooser_widget_new(action.into_glib()))
35                .unsafe_cast()
36        }
37    }
38
39    // rustdoc-stripper-ignore-next
40    /// Creates a new builder-pattern struct instance to construct [`FileChooserWidget`] objects.
41    ///
42    /// This method returns an instance of [`FileChooserWidgetBuilder`](crate::builders::FileChooserWidgetBuilder) which can be used to create [`FileChooserWidget`] objects.
43    pub fn builder() -> FileChooserWidgetBuilder {
44        FileChooserWidgetBuilder::new()
45    }
46
47    #[doc(alias = "search-mode")]
48    pub fn is_search_mode(&self) -> bool {
49        ObjectExt::property(self, "search-mode")
50    }
51
52    #[doc(alias = "search-mode")]
53    pub fn set_search_mode(&self, search_mode: bool) {
54        ObjectExt::set_property(self, "search-mode", search_mode)
55    }
56
57    #[cfg(feature = "v4_10")]
58    #[cfg_attr(docsrs, doc(cfg(feature = "v4_10")))]
59    #[doc(alias = "show-time")]
60    pub fn shows_time(&self) -> bool {
61        ObjectExt::property(self, "show-time")
62    }
63
64    pub fn subtitle(&self) -> Option<glib::GString> {
65        ObjectExt::property(self, "subtitle")
66    }
67
68    #[doc(alias = "desktop-folder")]
69    pub fn connect_desktop_folder<F: Fn(&Self) + 'static>(&self, f: F) -> SignalHandlerId {
70        unsafe extern "C" fn desktop_folder_trampoline<F: Fn(&FileChooserWidget) + 'static>(
71            this: *mut ffi::GtkFileChooserWidget,
72            f: glib::ffi::gpointer,
73        ) {
74            let f: &F = &*(f as *const F);
75            f(&from_glib_borrow(this))
76        }
77        unsafe {
78            let f: Box_<F> = Box_::new(f);
79            connect_raw(
80                self.as_ptr() as *mut _,
81                c"desktop-folder".as_ptr() as *const _,
82                Some(std::mem::transmute::<*const (), unsafe extern "C" fn()>(
83                    desktop_folder_trampoline::<F> as *const (),
84                )),
85                Box_::into_raw(f),
86            )
87        }
88    }
89
90    pub fn emit_desktop_folder(&self) {
91        self.emit_by_name::<()>("desktop-folder", &[]);
92    }
93
94    #[doc(alias = "down-folder")]
95    pub fn connect_down_folder<F: Fn(&Self) + 'static>(&self, f: F) -> SignalHandlerId {
96        unsafe extern "C" fn down_folder_trampoline<F: Fn(&FileChooserWidget) + 'static>(
97            this: *mut ffi::GtkFileChooserWidget,
98            f: glib::ffi::gpointer,
99        ) {
100            let f: &F = &*(f as *const F);
101            f(&from_glib_borrow(this))
102        }
103        unsafe {
104            let f: Box_<F> = Box_::new(f);
105            connect_raw(
106                self.as_ptr() as *mut _,
107                c"down-folder".as_ptr() as *const _,
108                Some(std::mem::transmute::<*const (), unsafe extern "C" fn()>(
109                    down_folder_trampoline::<F> as *const (),
110                )),
111                Box_::into_raw(f),
112            )
113        }
114    }
115
116    pub fn emit_down_folder(&self) {
117        self.emit_by_name::<()>("down-folder", &[]);
118    }
119
120    #[doc(alias = "home-folder")]
121    pub fn connect_home_folder<F: Fn(&Self) + 'static>(&self, f: F) -> SignalHandlerId {
122        unsafe extern "C" fn home_folder_trampoline<F: Fn(&FileChooserWidget) + 'static>(
123            this: *mut ffi::GtkFileChooserWidget,
124            f: glib::ffi::gpointer,
125        ) {
126            let f: &F = &*(f as *const F);
127            f(&from_glib_borrow(this))
128        }
129        unsafe {
130            let f: Box_<F> = Box_::new(f);
131            connect_raw(
132                self.as_ptr() as *mut _,
133                c"home-folder".as_ptr() as *const _,
134                Some(std::mem::transmute::<*const (), unsafe extern "C" fn()>(
135                    home_folder_trampoline::<F> as *const (),
136                )),
137                Box_::into_raw(f),
138            )
139        }
140    }
141
142    pub fn emit_home_folder(&self) {
143        self.emit_by_name::<()>("home-folder", &[]);
144    }
145
146    #[doc(alias = "location-popup")]
147    pub fn connect_location_popup<F: Fn(&Self, &str) + 'static>(&self, f: F) -> SignalHandlerId {
148        unsafe extern "C" fn location_popup_trampoline<
149            F: Fn(&FileChooserWidget, &str) + 'static,
150        >(
151            this: *mut ffi::GtkFileChooserWidget,
152            path: *mut std::ffi::c_char,
153            f: glib::ffi::gpointer,
154        ) {
155            let f: &F = &*(f as *const F);
156            f(
157                &from_glib_borrow(this),
158                &glib::GString::from_glib_borrow(path),
159            )
160        }
161        unsafe {
162            let f: Box_<F> = Box_::new(f);
163            connect_raw(
164                self.as_ptr() as *mut _,
165                c"location-popup".as_ptr() as *const _,
166                Some(std::mem::transmute::<*const (), unsafe extern "C" fn()>(
167                    location_popup_trampoline::<F> as *const (),
168                )),
169                Box_::into_raw(f),
170            )
171        }
172    }
173
174    pub fn emit_location_popup(&self, path: &str) {
175        self.emit_by_name::<()>("location-popup", &[&path]);
176    }
177
178    #[doc(alias = "location-popup-on-paste")]
179    pub fn connect_location_popup_on_paste<F: Fn(&Self) + 'static>(&self, f: F) -> SignalHandlerId {
180        unsafe extern "C" fn location_popup_on_paste_trampoline<
181            F: Fn(&FileChooserWidget) + 'static,
182        >(
183            this: *mut ffi::GtkFileChooserWidget,
184            f: glib::ffi::gpointer,
185        ) {
186            let f: &F = &*(f as *const F);
187            f(&from_glib_borrow(this))
188        }
189        unsafe {
190            let f: Box_<F> = Box_::new(f);
191            connect_raw(
192                self.as_ptr() as *mut _,
193                c"location-popup-on-paste".as_ptr() as *const _,
194                Some(std::mem::transmute::<*const (), unsafe extern "C" fn()>(
195                    location_popup_on_paste_trampoline::<F> as *const (),
196                )),
197                Box_::into_raw(f),
198            )
199        }
200    }
201
202    pub fn emit_location_popup_on_paste(&self) {
203        self.emit_by_name::<()>("location-popup-on-paste", &[]);
204    }
205
206    #[doc(alias = "location-toggle-popup")]
207    pub fn connect_location_toggle_popup<F: Fn(&Self) + 'static>(&self, f: F) -> SignalHandlerId {
208        unsafe extern "C" fn location_toggle_popup_trampoline<
209            F: Fn(&FileChooserWidget) + 'static,
210        >(
211            this: *mut ffi::GtkFileChooserWidget,
212            f: glib::ffi::gpointer,
213        ) {
214            let f: &F = &*(f as *const F);
215            f(&from_glib_borrow(this))
216        }
217        unsafe {
218            let f: Box_<F> = Box_::new(f);
219            connect_raw(
220                self.as_ptr() as *mut _,
221                c"location-toggle-popup".as_ptr() as *const _,
222                Some(std::mem::transmute::<*const (), unsafe extern "C" fn()>(
223                    location_toggle_popup_trampoline::<F> as *const (),
224                )),
225                Box_::into_raw(f),
226            )
227        }
228    }
229
230    pub fn emit_location_toggle_popup(&self) {
231        self.emit_by_name::<()>("location-toggle-popup", &[]);
232    }
233
234    #[doc(alias = "places-shortcut")]
235    pub fn connect_places_shortcut<F: Fn(&Self) + 'static>(&self, f: F) -> SignalHandlerId {
236        unsafe extern "C" fn places_shortcut_trampoline<F: Fn(&FileChooserWidget) + 'static>(
237            this: *mut ffi::GtkFileChooserWidget,
238            f: glib::ffi::gpointer,
239        ) {
240            let f: &F = &*(f as *const F);
241            f(&from_glib_borrow(this))
242        }
243        unsafe {
244            let f: Box_<F> = Box_::new(f);
245            connect_raw(
246                self.as_ptr() as *mut _,
247                c"places-shortcut".as_ptr() as *const _,
248                Some(std::mem::transmute::<*const (), unsafe extern "C" fn()>(
249                    places_shortcut_trampoline::<F> as *const (),
250                )),
251                Box_::into_raw(f),
252            )
253        }
254    }
255
256    pub fn emit_places_shortcut(&self) {
257        self.emit_by_name::<()>("places-shortcut", &[]);
258    }
259
260    #[doc(alias = "quick-bookmark")]
261    pub fn connect_quick_bookmark<F: Fn(&Self, i32) + 'static>(&self, f: F) -> SignalHandlerId {
262        unsafe extern "C" fn quick_bookmark_trampoline<F: Fn(&FileChooserWidget, i32) + 'static>(
263            this: *mut ffi::GtkFileChooserWidget,
264            bookmark_index: std::ffi::c_int,
265            f: glib::ffi::gpointer,
266        ) {
267            let f: &F = &*(f as *const F);
268            f(&from_glib_borrow(this), bookmark_index)
269        }
270        unsafe {
271            let f: Box_<F> = Box_::new(f);
272            connect_raw(
273                self.as_ptr() as *mut _,
274                c"quick-bookmark".as_ptr() as *const _,
275                Some(std::mem::transmute::<*const (), unsafe extern "C" fn()>(
276                    quick_bookmark_trampoline::<F> as *const (),
277                )),
278                Box_::into_raw(f),
279            )
280        }
281    }
282
283    pub fn emit_quick_bookmark(&self, bookmark_index: i32) {
284        self.emit_by_name::<()>("quick-bookmark", &[&bookmark_index]);
285    }
286
287    #[doc(alias = "recent-shortcut")]
288    pub fn connect_recent_shortcut<F: Fn(&Self) + 'static>(&self, f: F) -> SignalHandlerId {
289        unsafe extern "C" fn recent_shortcut_trampoline<F: Fn(&FileChooserWidget) + 'static>(
290            this: *mut ffi::GtkFileChooserWidget,
291            f: glib::ffi::gpointer,
292        ) {
293            let f: &F = &*(f as *const F);
294            f(&from_glib_borrow(this))
295        }
296        unsafe {
297            let f: Box_<F> = Box_::new(f);
298            connect_raw(
299                self.as_ptr() as *mut _,
300                c"recent-shortcut".as_ptr() as *const _,
301                Some(std::mem::transmute::<*const (), unsafe extern "C" fn()>(
302                    recent_shortcut_trampoline::<F> as *const (),
303                )),
304                Box_::into_raw(f),
305            )
306        }
307    }
308
309    pub fn emit_recent_shortcut(&self) {
310        self.emit_by_name::<()>("recent-shortcut", &[]);
311    }
312
313    #[doc(alias = "search-shortcut")]
314    pub fn connect_search_shortcut<F: Fn(&Self) + 'static>(&self, f: F) -> SignalHandlerId {
315        unsafe extern "C" fn search_shortcut_trampoline<F: Fn(&FileChooserWidget) + 'static>(
316            this: *mut ffi::GtkFileChooserWidget,
317            f: glib::ffi::gpointer,
318        ) {
319            let f: &F = &*(f as *const F);
320            f(&from_glib_borrow(this))
321        }
322        unsafe {
323            let f: Box_<F> = Box_::new(f);
324            connect_raw(
325                self.as_ptr() as *mut _,
326                c"search-shortcut".as_ptr() as *const _,
327                Some(std::mem::transmute::<*const (), unsafe extern "C" fn()>(
328                    search_shortcut_trampoline::<F> as *const (),
329                )),
330                Box_::into_raw(f),
331            )
332        }
333    }
334
335    pub fn emit_search_shortcut(&self) {
336        self.emit_by_name::<()>("search-shortcut", &[]);
337    }
338
339    #[doc(alias = "show-hidden")]
340    pub fn connect_show_hidden<F: Fn(&Self) + 'static>(&self, f: F) -> SignalHandlerId {
341        unsafe extern "C" fn show_hidden_trampoline<F: Fn(&FileChooserWidget) + 'static>(
342            this: *mut ffi::GtkFileChooserWidget,
343            f: glib::ffi::gpointer,
344        ) {
345            let f: &F = &*(f as *const F);
346            f(&from_glib_borrow(this))
347        }
348        unsafe {
349            let f: Box_<F> = Box_::new(f);
350            connect_raw(
351                self.as_ptr() as *mut _,
352                c"show-hidden".as_ptr() as *const _,
353                Some(std::mem::transmute::<*const (), unsafe extern "C" fn()>(
354                    show_hidden_trampoline::<F> as *const (),
355                )),
356                Box_::into_raw(f),
357            )
358        }
359    }
360
361    pub fn emit_show_hidden(&self) {
362        self.emit_by_name::<()>("show-hidden", &[]);
363    }
364
365    #[doc(alias = "up-folder")]
366    pub fn connect_up_folder<F: Fn(&Self) + 'static>(&self, f: F) -> SignalHandlerId {
367        unsafe extern "C" fn up_folder_trampoline<F: Fn(&FileChooserWidget) + 'static>(
368            this: *mut ffi::GtkFileChooserWidget,
369            f: glib::ffi::gpointer,
370        ) {
371            let f: &F = &*(f as *const F);
372            f(&from_glib_borrow(this))
373        }
374        unsafe {
375            let f: Box_<F> = Box_::new(f);
376            connect_raw(
377                self.as_ptr() as *mut _,
378                c"up-folder".as_ptr() as *const _,
379                Some(std::mem::transmute::<*const (), unsafe extern "C" fn()>(
380                    up_folder_trampoline::<F> as *const (),
381                )),
382                Box_::into_raw(f),
383            )
384        }
385    }
386
387    pub fn emit_up_folder(&self) {
388        self.emit_by_name::<()>("up-folder", &[]);
389    }
390
391    #[doc(alias = "search-mode")]
392    pub fn connect_search_mode_notify<F: Fn(&Self) + 'static>(&self, f: F) -> SignalHandlerId {
393        unsafe extern "C" fn notify_search_mode_trampoline<F: Fn(&FileChooserWidget) + 'static>(
394            this: *mut ffi::GtkFileChooserWidget,
395            _param_spec: glib::ffi::gpointer,
396            f: glib::ffi::gpointer,
397        ) {
398            let f: &F = &*(f as *const F);
399            f(&from_glib_borrow(this))
400        }
401        unsafe {
402            let f: Box_<F> = Box_::new(f);
403            connect_raw(
404                self.as_ptr() as *mut _,
405                c"notify::search-mode".as_ptr() as *const _,
406                Some(std::mem::transmute::<*const (), unsafe extern "C" fn()>(
407                    notify_search_mode_trampoline::<F> as *const (),
408                )),
409                Box_::into_raw(f),
410            )
411        }
412    }
413
414    #[cfg(feature = "v4_10")]
415    #[cfg_attr(docsrs, doc(cfg(feature = "v4_10")))]
416    #[doc(alias = "show-time")]
417    pub fn connect_show_time_notify<F: Fn(&Self) + 'static>(&self, f: F) -> SignalHandlerId {
418        unsafe extern "C" fn notify_show_time_trampoline<F: Fn(&FileChooserWidget) + 'static>(
419            this: *mut ffi::GtkFileChooserWidget,
420            _param_spec: glib::ffi::gpointer,
421            f: glib::ffi::gpointer,
422        ) {
423            let f: &F = &*(f as *const F);
424            f(&from_glib_borrow(this))
425        }
426        unsafe {
427            let f: Box_<F> = Box_::new(f);
428            connect_raw(
429                self.as_ptr() as *mut _,
430                c"notify::show-time".as_ptr() as *const _,
431                Some(std::mem::transmute::<*const (), unsafe extern "C" fn()>(
432                    notify_show_time_trampoline::<F> as *const (),
433                )),
434                Box_::into_raw(f),
435            )
436        }
437    }
438
439    #[doc(alias = "subtitle")]
440    pub fn connect_subtitle_notify<F: Fn(&Self) + 'static>(&self, f: F) -> SignalHandlerId {
441        unsafe extern "C" fn notify_subtitle_trampoline<F: Fn(&FileChooserWidget) + 'static>(
442            this: *mut ffi::GtkFileChooserWidget,
443            _param_spec: glib::ffi::gpointer,
444            f: glib::ffi::gpointer,
445        ) {
446            let f: &F = &*(f as *const F);
447            f(&from_glib_borrow(this))
448        }
449        unsafe {
450            let f: Box_<F> = Box_::new(f);
451            connect_raw(
452                self.as_ptr() as *mut _,
453                c"notify::subtitle".as_ptr() as *const _,
454                Some(std::mem::transmute::<*const (), unsafe extern "C" fn()>(
455                    notify_subtitle_trampoline::<F> as *const (),
456                )),
457                Box_::into_raw(f),
458            )
459        }
460    }
461}
462
463impl Default for FileChooserWidget {
464    fn default() -> Self {
465        glib::object::Object::new::<Self>()
466    }
467}
468
469// rustdoc-stripper-ignore-next
470/// A [builder-pattern] type to construct [`FileChooserWidget`] objects.
471///
472/// [builder-pattern]: https://doc.rust-lang.org/1.0.0/style/ownership/builders.html
473#[must_use = "The builder must be built to be used"]
474pub struct FileChooserWidgetBuilder {
475    builder: glib::object::ObjectBuilder<'static, FileChooserWidget>,
476}
477
478impl FileChooserWidgetBuilder {
479    fn new() -> Self {
480        Self {
481            builder: glib::object::Object::builder(),
482        }
483    }
484
485    pub fn search_mode(self, search_mode: bool) -> Self {
486        Self {
487            builder: self.builder.property("search-mode", search_mode),
488        }
489    }
490
491    pub fn can_focus(self, can_focus: bool) -> Self {
492        Self {
493            builder: self.builder.property("can-focus", can_focus),
494        }
495    }
496
497    pub fn can_target(self, can_target: bool) -> Self {
498        Self {
499            builder: self.builder.property("can-target", can_target),
500        }
501    }
502
503    pub fn css_classes(self, css_classes: impl Into<glib::StrV>) -> Self {
504        Self {
505            builder: self.builder.property("css-classes", css_classes.into()),
506        }
507    }
508
509    pub fn css_name(self, css_name: impl Into<glib::GString>) -> Self {
510        Self {
511            builder: self.builder.property("css-name", css_name.into()),
512        }
513    }
514
515    pub fn cursor(self, cursor: &gdk::Cursor) -> Self {
516        Self {
517            builder: self.builder.property("cursor", cursor.clone()),
518        }
519    }
520
521    pub fn focus_on_click(self, focus_on_click: bool) -> Self {
522        Self {
523            builder: self.builder.property("focus-on-click", focus_on_click),
524        }
525    }
526
527    pub fn focusable(self, focusable: bool) -> Self {
528        Self {
529            builder: self.builder.property("focusable", focusable),
530        }
531    }
532
533    pub fn halign(self, halign: Align) -> Self {
534        Self {
535            builder: self.builder.property("halign", halign),
536        }
537    }
538
539    pub fn has_tooltip(self, has_tooltip: bool) -> Self {
540        Self {
541            builder: self.builder.property("has-tooltip", has_tooltip),
542        }
543    }
544
545    pub fn height_request(self, height_request: i32) -> Self {
546        Self {
547            builder: self.builder.property("height-request", height_request),
548        }
549    }
550
551    pub fn hexpand(self, hexpand: bool) -> Self {
552        Self {
553            builder: self.builder.property("hexpand", hexpand),
554        }
555    }
556
557    pub fn hexpand_set(self, hexpand_set: bool) -> Self {
558        Self {
559            builder: self.builder.property("hexpand-set", hexpand_set),
560        }
561    }
562
563    pub fn layout_manager(self, layout_manager: &impl IsA<LayoutManager>) -> Self {
564        Self {
565            builder: self
566                .builder
567                .property("layout-manager", layout_manager.clone().upcast()),
568        }
569    }
570
571    #[cfg(feature = "v4_18")]
572    #[cfg_attr(docsrs, doc(cfg(feature = "v4_18")))]
573    pub fn limit_events(self, limit_events: bool) -> Self {
574        Self {
575            builder: self.builder.property("limit-events", limit_events),
576        }
577    }
578
579    pub fn margin_bottom(self, margin_bottom: i32) -> Self {
580        Self {
581            builder: self.builder.property("margin-bottom", margin_bottom),
582        }
583    }
584
585    pub fn margin_end(self, margin_end: i32) -> Self {
586        Self {
587            builder: self.builder.property("margin-end", margin_end),
588        }
589    }
590
591    pub fn margin_start(self, margin_start: i32) -> Self {
592        Self {
593            builder: self.builder.property("margin-start", margin_start),
594        }
595    }
596
597    pub fn margin_top(self, margin_top: i32) -> Self {
598        Self {
599            builder: self.builder.property("margin-top", margin_top),
600        }
601    }
602
603    pub fn name(self, name: impl Into<glib::GString>) -> Self {
604        Self {
605            builder: self.builder.property("name", name.into()),
606        }
607    }
608
609    pub fn opacity(self, opacity: f64) -> Self {
610        Self {
611            builder: self.builder.property("opacity", opacity),
612        }
613    }
614
615    pub fn overflow(self, overflow: Overflow) -> Self {
616        Self {
617            builder: self.builder.property("overflow", overflow),
618        }
619    }
620
621    pub fn receives_default(self, receives_default: bool) -> Self {
622        Self {
623            builder: self.builder.property("receives-default", receives_default),
624        }
625    }
626
627    pub fn sensitive(self, sensitive: bool) -> Self {
628        Self {
629            builder: self.builder.property("sensitive", sensitive),
630        }
631    }
632
633    pub fn tooltip_markup(self, tooltip_markup: impl Into<glib::GString>) -> Self {
634        Self {
635            builder: self
636                .builder
637                .property("tooltip-markup", tooltip_markup.into()),
638        }
639    }
640
641    pub fn tooltip_text(self, tooltip_text: impl Into<glib::GString>) -> Self {
642        Self {
643            builder: self.builder.property("tooltip-text", tooltip_text.into()),
644        }
645    }
646
647    pub fn valign(self, valign: Align) -> Self {
648        Self {
649            builder: self.builder.property("valign", valign),
650        }
651    }
652
653    pub fn vexpand(self, vexpand: bool) -> Self {
654        Self {
655            builder: self.builder.property("vexpand", vexpand),
656        }
657    }
658
659    pub fn vexpand_set(self, vexpand_set: bool) -> Self {
660        Self {
661            builder: self.builder.property("vexpand-set", vexpand_set),
662        }
663    }
664
665    pub fn visible(self, visible: bool) -> Self {
666        Self {
667            builder: self.builder.property("visible", visible),
668        }
669    }
670
671    pub fn width_request(self, width_request: i32) -> Self {
672        Self {
673            builder: self.builder.property("width-request", width_request),
674        }
675    }
676
677    pub fn accessible_role(self, accessible_role: AccessibleRole) -> Self {
678        Self {
679            builder: self.builder.property("accessible-role", accessible_role),
680        }
681    }
682
683    #[cfg_attr(feature = "v4_10", deprecated = "Since 4.10")]
684    pub fn action(self, action: FileChooserAction) -> Self {
685        Self {
686            builder: self.builder.property("action", action),
687        }
688    }
689
690    #[cfg_attr(feature = "v4_10", deprecated = "Since 4.10")]
691    pub fn create_folders(self, create_folders: bool) -> Self {
692        Self {
693            builder: self.builder.property("create-folders", create_folders),
694        }
695    }
696
697    #[cfg_attr(feature = "v4_10", deprecated = "Since 4.10")]
698    pub fn filter(self, filter: &FileFilter) -> Self {
699        Self {
700            builder: self.builder.property("filter", filter.clone()),
701        }
702    }
703
704    #[cfg_attr(feature = "v4_10", deprecated = "Since 4.10")]
705    pub fn select_multiple(self, select_multiple: bool) -> Self {
706        Self {
707            builder: self.builder.property("select-multiple", select_multiple),
708        }
709    }
710
711    // rustdoc-stripper-ignore-next
712    /// Build the [`FileChooserWidget`].
713    #[must_use = "Building the object from the builder is usually expensive and is not expected to have side effects"]
714    pub fn build(self) -> FileChooserWidget {
715        assert_initialized_main_thread!();
716        self.builder.build()
717    }
718}