class Gtk::DirectoryList
- Gtk::DirectoryList
- GObject::Object
- Reference
- Object
Overview
Gtk::DirectoryList
is a list model that wraps g_file_enumerate_children_async().
It presents a GListModel
and fills it asynchronously with the GFileInfo
s
returned from that function.
Enumeration will start automatically when a the
Gtk::DirectoryList#file
property is set.
While the Gtk::DirectoryList
is being filled, the
Gtk::DirectoryList#loading
property will be set to true
. You can
listen to that property if you want to show information like a Gtk::Spinner
or a "Loading..." text.
If loading fails at any point, the Gtk::DirectoryList#error
property will be set to give more indication about the failure.
The GFileInfo
s returned from a Gtk::DirectoryList
have the "standard::file"
attribute set to the GFile
they refer to. This way you can get at the file
that is referred to in the same way you would via g_file_enumerator_get_child().
This means you do not need access to the Gtk::DirectoryList
, but can access
the GFile
directly from the GFileInfo
when operating with a Gtk::ListView
or similar.
Included Modules
Defined in:
lib/gi-crystal/src/auto/gtk-4.0/directory_list.crConstructors
-
.new(attributes : String?, file : Gio::File?) : self
Creates a new
Gtk::DirectoryList
. -
.new
Initialize a new
DirectoryList
. - .new(*, attributes : String? = nil, error : GLib::Error? = nil, file : Gio::File? = nil, io_priority : Int32? = nil, item_type : UInt64? = nil, loading : Bool? = nil, monitored : Bool? = nil, n_items : UInt32? = nil)
Class Method Summary
-
.g_type : UInt64
Returns the type id (GType) registered in GLib type system.
Instance Method Summary
-
#attributes : String?
Gets the attributes queried on the children.
- #attributes=(value : String) : String
-
#attributes=(attributes : String?) : Nil
Sets the @attributes to be enumerated and starts the enumeration.
-
#error : GLib::Error?
Gets the loading error, if any.
-
#file : Gio::File?
Gets the file whose children are currently enumerated.
-
#file=(file : Gio::File?) : Nil
Sets the @file to be enumerated and starts the enumeration.
-
#io_priority : Int32
Gets the IO priority set via gtk_directory_list_set_io_priority().
-
#io_priority=(io_priority : Int32) : Nil
Sets the IO priority to use while loading directories.
-
#is_loading : Bool
Returns
true
if the children enumeration is currently in progress. - #item_type : UInt64
- #loading? : Bool
-
#monitored : Bool
Returns whether the directory list is monitoring the directory for changes.
-
#monitored=(monitored : Bool) : Nil
Sets whether the directory list will monitor the directory for changes.
- #monitored? : Bool
- #n_items : UInt32
Instance methods inherited from module Gio::ListModel
item(position : UInt32) : GObject::Object?
item,
item_type : UInt64
item_type,
items_changed(position : UInt32, removed : UInt32, added : UInt32) : Nil
items_changed,
items_changed_signal
items_changed_signal,
n_items : UInt32
n_items,
to_unsafe
to_unsafe
Class methods inherited from module Gio::ListModel
g_type : UInt64
g_type
Instance methods inherited from class GObject::Object
bind_property(source_property : String, target : GObject::Object, target_property : String, flags : GObject::BindingFlags) : GObject::Binding
bind_property,
bind_property_full(source_property : String, target : GObject::Object, target_property : String, flags : GObject::BindingFlags, transform_to : GObject::Closure, transform_from : GObject::Closure) : GObject::Binding
bind_property_full,
data(key : String) : Pointer(Void)?
data,
finalize
finalize,
freeze_notify : Nil
freeze_notify,
getv(names : Enumerable(String), values : Enumerable(_)) : Nil
getv,
notify(property_name : String) : Nil
notify,
notify_by_pspec(pspec : GObject::ParamSpec) : Nil
notify_by_pspec,
notify_signal
notify_signal,
property(property_name : String, value : _) : Nil
property,
qdata(quark : UInt32) : Pointer(Void)?
qdata,
ref_count : UInt32
ref_count,
run_dispose : Nil
run_dispose,
set_data(key : String, data : Pointer(Void)?) : Nil
set_data,
set_property(property_name : String, value : _) : Nil
set_property,
steal_data(key : String) : Pointer(Void)?
steal_data,
steal_qdata(quark : UInt32) : Pointer(Void)?
steal_qdata,
thaw_notify : Nil
thaw_notify,
to_unsafe : Pointer(Void)
to_unsafe,
watch_closure(closure : GObject::Closure) : Nil
watch_closure
Constructor methods inherited from class GObject::Object
cast(obj : GObject::Object) : self
cast,
cast?(obj : GObject::Object) : self?
cast?,
new(pointer : Pointer(Void), transfer : GICrystal::Transfer)new new, newv(object_type : UInt64, parameters : Enumerable(GObject::Parameter)) : self newv
Class methods inherited from class GObject::Object
compat_control(what : UInt64, data : Pointer(Void)?) : UInt64
compat_control,
g_type : UInt64
g_type,
interface_find_property(g_iface : GObject::TypeInterface, property_name : String) : GObject::ParamSpec
interface_find_property,
interface_list_properties(g_iface : GObject::TypeInterface) : Enumerable(GObject::ParamSpec)
interface_list_properties
Constructor Detail
Creates a new Gtk::DirectoryList
.
The Gtk::DirectoryList
is querying the given @file
with the given @attributes.
Class Method Detail
Instance Method Detail
Sets the @attributes to be enumerated and starts the enumeration.
If @attributes is nil
, no attributes will be queried, but a list
of GFileInfo
s will still be created.
Gets the loading error, if any.
If an error occurs during the loading process, the loading process will finish and this property allows querying the error that happened. This error will persist until a file is loaded again.
An error being set does not mean that no files were loaded, and all successfully queried files will remain in the list.
Sets the @file to be enumerated and starts the enumeration.
If @file is nil
, the result will be an empty list.
Sets the IO priority to use while loading directories.
Setting the priority while @self is loading will reprioritize the ongoing load as soon as possible.
The default IO priority is %G_PRIORITY_DEFAULT, which is higher than the GTK redraw priority. If you are loading a lot of directories in parallel, lowering it to something like %G_PRIORITY_DEFAULT_IDLE may increase responsiveness.
Returns true
if the children enumeration is currently in
progress.
Files will be added to @self from time to time while loading is going on. The order in which are added is undefined and may change in between runs.
Sets whether the directory list will monitor the directory for changes.
If monitoring is enabled, the ::items-changed signal will be emitted when the directory contents change.
When monitoring is turned on after the initial creation of the directory list, the directory is reloaded to avoid missing files that appeared between the initial loading and when monitoring was turned on.