class Gtk::DirectoryList

Overview

Gtk::DirectoryList is a list model that wraps g_file_enumerate_children_async().

It presents a GListModel and fills it asynchronously with the GFileInfos 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 GFileInfos 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.cr

Constructors

Class Method Summary

Instance Method Summary

Instance methods inherited from module Gio::ListModel

item(position : UInt32) : GObject::Object | Nil item, item_type : UInt64 item_type, items_changed(position : UInt32, removed : UInt32, added : UInt32) : Nil
items_changed(position : Int, removed : Int, added : Int) : Nil
items_changed
, items_changed_signal items_changed_signal, n_items : UInt32 n_items, to_unsafe to_unsafe

Constructor methods inherited from module Gio::ListModel

cast(obj : GObject::Object) : self cast

Class methods inherited from module Gio::ListModel

cast?(obj : GObject::Object) : self | Nil cast?, g_type : UInt64 g_type

Instance methods inherited from class GObject::Object

==(other : self) ==, 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) | Nil data, finalize finalize, freeze_notify : Nil freeze_notify, getv(names : Enumerable(String), values : Enumerable(_)) : Nil getv, hash(hasher) hash, 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) | Nil qdata, ref_count : UInt32 ref_count, run_dispose : Nil run_dispose, set_data(key : String, data : Pointer(Void) | Nil) : Nil set_data, set_property(property_name : String, value : _) : Nil set_property, steal_data(key : String) : Pointer(Void) | Nil steal_data, steal_qdata(quark : UInt32) : Pointer(Void) | Nil 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, 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

cast?(obj : GObject::Object) : self | Nil cast?, compat_control(what : UInt64, data : Pointer(Void) | Nil) : 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

Macros inherited from class GObject::Object

previous_vfunc(*args) previous_vfunc, previous_vfunc!(*args) previous_vfunc!, signal(signature) signal

Constructor Detail

def self.new(attributes : String | Nil, file : Gio::File | Nil) : self #

Creates a new Gtk::DirectoryList.

The Gtk::DirectoryList is querying the given file with the given attributes.


[View source]
def self.new #

Initialize a new DirectoryList.


[View source]
def self.new(*, attributes : String | Nil = nil, error : GLib::Error | Nil = nil, file : Gio::File | Nil = nil, io_priority : Int32 | Nil = nil, loading : Bool | Nil = nil, monitored : Bool | Nil = nil) #

[View source]

Class Method Detail

def self.g_type : UInt64 #

Returns the type id (GType) registered in GLib type system.


[View source]

Instance Method Detail

def ==(other : self) #
Description copied from class Reference

Returns true if this reference is the same as other. Invokes same?.


def attributes : String | Nil #

Gets the attributes queried on the children.


[View source]
def attributes=(value : String) : String #

[View source]
def attributes=(attributes : String | Nil) : Nil #

Sets the attributes to be enumerated and starts the enumeration.

If attributes is nil, no attributes will be queried, but a list of GFileInfos will still be created.


[View source]
def error : GLib::Error | Nil #

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.


[View source]
def file : Gio::File | Nil #

Gets the file whose children are currently enumerated.


[View source]
def file=(file : Gio::File | Nil) : Nil #

Sets the file to be enumerated and starts the enumeration.

If file is nil, the result will be an empty list.


[View source]
def hash(hasher) #
Description copied from class Reference

See Object#hash(hasher)


def io_priority : Int32 #

Gets the IO priority set via gtk_directory_list_set_io_priority().


[View source]
def io_priority=(io_priority : Int32) : Nil #

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.


[View source]
def is_loading : Bool #

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.


[View source]
def loading? : Bool #

[View source]
def monitored : Bool #

Returns whether the directory list is monitoring the directory for changes.


[View source]
def monitored=(monitored : Bool) : Nil #

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.


[View source]
def monitored? : Bool #

[View source]