ThunarxFileInfo

ThunarxFileInfo — Abstraction of a file handled within the file manager

Functions

Signals

void changed Run First
void renamed Run First

Types and Values

Object Hierarchy

    GInterface
    ╰── ThunarxFileInfo

Prerequisites

ThunarxFileInfo requires GObject.

Includes

#include <thunarx/thunarx.h>

Description

The ThunarxFileInfo interface provides extensions with a way to access information about a file handled within the file manager.

Functions

thunarx_file_info_get_name ()

gchar *
thunarx_file_info_get_name (ThunarxFileInfo *file_info);

Returns the real name of the file represented by file_info in the local file system encoding. You can use g_filename_display_name() or similar functions to generate an UTF-8 version of the name, which is suitable for use in the user interface.

The caller is responsible to free the returned string using g_free() when no longer needed.

Parameters

file_info

a ThunarxFileInfo.

 

Returns

the real name of the file represented by file_info .


thunarx_file_info_get_uri ()

gchar *
thunarx_file_info_get_uri (ThunarxFileInfo *file_info);

Returns the escaped, fully qualified URI of the file object represented by file_info . You may use g_filename_from_uri() and similar functions to work with the returned URI.

The caller is responsible to free the returned string using g_free() when no longer needed.

Parameters

file_info

a ThunarxFileInfo.

 

Returns

the fully qualified URI of file_info .


thunarx_file_info_get_parent_uri ()

gchar *
thunarx_file_info_get_parent_uri (ThunarxFileInfo *file_info);

Returns the URI to the parent file of file_info or NULL if file_info has no parent. Note that the parent URI may be of a different type than the URI of file_info . For example, the parent of "file:///" is "computer:///".

The caller is responsible to free the returned string using g_free() when no longer needed.

Parameters

file_info

a ThunarxFileInfo.

 

Returns

the parent URI for file_info or NULL.


thunarx_file_info_get_uri_scheme ()

gchar *
thunarx_file_info_get_uri_scheme (ThunarxFileInfo *file_info);

Returns the URI scheme of the file represented by file_info . E.g. if file_info refers to the file "file:///usr/home", the return value will be "file".

The caller is responsible to free the returned string using g_free() when no longer needed.

Parameters

file_info

a ThunarxFileInfo.

 

Returns

the URI scheme for file_info .


thunarx_file_info_get_mime_type ()

gchar *
thunarx_file_info_get_mime_type (ThunarxFileInfo *file_info);

Returns the MIME-type of the file represented by file_info or NULL if no MIME-type is known for file_info .

The caller is responsible to free the returned string using g_free() when no longer needed.

Parameters

file_info

a ThunarxFileInfo.

 

Returns

the MIME-type for file_info or NULL.


thunarx_file_info_has_mime_type ()

gboolean
thunarx_file_info_has_mime_type (ThunarxFileInfo *file_info,
                                 const gchar *mime_type);

Checks whether file_info is of the given mime_type or whether the MIME-type of file_info is a subclass of mime_type .

This is the preferred way for most extensions to check whether they support a given file or not, and you should consider using this method rather than thunarx_file_info_get_mime_type(). A simple example would be a menu extension that performs a certain action on text files. In this case you want to check whether a given ThunarxFileInfo refers to any kind of text file, not only to "text/plain" (e.g. this also includes "text/xml" and "application/x-desktop").

But you should be aware that this method may take some time to test whether mime_type is valid for file_info , so don't call it too often.

Parameters

file_info

a ThunarxFileInfo.

 

mime_type

a MIME-type (e.g. "text/plain").

 

Returns

TRUE if mime_type is valid for file_info , else FALSE.


thunarx_file_info_is_directory ()

gboolean
thunarx_file_info_is_directory (ThunarxFileInfo *file_info);

Checks whether file_info refers to a directory.

Parameters

file_info

a ThunarxFileInfo.

 

Returns

TRUE if file_info is a directory.


thunarx_file_info_get_file_info ()

GFileInfo *
thunarx_file_info_get_file_info (ThunarxFileInfo *file_info);

Returns the GFileInfo associated with file_info , which includes additional information about the file_info as queried from GIO earlier. The caller is responsible to free the returned GFileInfo object using g_object_unref() when no longer needed.

Parameters

file_info

a ThunarxFileInfo.

 

Returns

the GFileInfo object associated with file_info , which MUST be freed using g_object_unref().

[transfer full]


thunarx_file_info_get_filesystem_info ()

GFileInfo *
thunarx_file_info_get_filesystem_info (ThunarxFileInfo *file_info);

Returns the GFileInfo which includes additional information about the filesystem file_info resides on. The caller is responsible to free the returned GFileInfo object using g_object_unref() when no longer needed.

Parameters

file_info

a ThunarxFileInfo.

 

Returns

the GFileInfo containing information about the filesystem of file_info or NULL if no filesystem information is available. It MUST be released using g_object_unref().

[transfer full]


thunarx_file_info_get_location ()

GFile *
thunarx_file_info_get_location (ThunarxFileInfo *file_info);

Returns the GFile file_info points to. The GFile is a more powerful tool than just the URI or the path. The caller is responsible to release the returned GFile using g_object_unref() when no longer needed.

Parameters

file_info

a ThunarxFileInfo.

 

Returns

the GFile to which file_info points. It MUST be released using g_object_unref().

[transfer full]


thunarx_file_info_changed ()

void
thunarx_file_info_changed (ThunarxFileInfo *file_info);

Emits the ::changed signal on file_info . This method should not be invoked by Thunar plugins, instead the file manager itself will use this method to emit ::changed whenever it notices a change on file_info .

Parameters

file_info

a ThunarxFileInfo.

 

thunarx_file_info_renamed ()

void
thunarx_file_info_renamed (ThunarxFileInfo *file_info);

Emits the ::renamed signal on file_info . This method should not be invoked by Thunar plugins, instead the file manager will emit this signal whenever the user renamed the file_info .

The plugins should instead connect to the ::renamed signal and update it's internal state and it's user interface after the file manager renamed a file.

Parameters

file_info

a ThunarxFileInfo.

 

thunarx_file_info_list_copy ()

GList *
thunarx_file_info_list_copy (GList *file_infos);

Does a deep copy of file_infos and returns the new list.

Parameters

file_infos

a GList of ThunarxFileInfos.

[element-type ThunarxFileInfo]

Returns

a copy of file_infos .

[transfer full][element-type ThunarxFileInfo]


thunarx_file_info_list_free ()

void
thunarx_file_info_list_free (GList *file_infos);

Frees the resources allocated for the file_infos list and decreases the reference count on the ThunarxFileInfos contained within.

Parameters

file_infos

a GList of ThunarxFileInfos.

[element-type ThunarxFileInfo]

Types and Values

struct ThunarxFileInfoIface

struct ThunarxFileInfoIface {
  /* virtual methods */
  gchar     *(*get_name)            (ThunarxFileInfo *file_info);

  gchar     *(*get_uri)             (ThunarxFileInfo *file_info);
  gchar     *(*get_parent_uri)      (ThunarxFileInfo *file_info);
  gchar     *(*get_uri_scheme)      (ThunarxFileInfo *file_info);

  gchar     *(*get_mime_type)       (ThunarxFileInfo *file_info);
  gboolean   (*has_mime_type)       (ThunarxFileInfo *file_info,
                                     const gchar     *mime_type);

  gboolean   (*is_directory)        (ThunarxFileInfo *file_info);

  GFileInfo *(*get_file_info)       (ThunarxFileInfo *file_info);
  GFileInfo *(*get_filesystem_info) (ThunarxFileInfo *file_info);
  GFile     *(*get_location)        (ThunarxFileInfo *file_info);

  /* signals */
  void (*changed) (ThunarxFileInfo *file_info);
  void (*renamed) (ThunarxFileInfo *file_info);
};

Interface with virtual methods implemented by the file manager and accessible from the extensions.

Members

get_name ()

See thunarx_file_info_get_name().

 

get_uri ()

See thunarx_file_info_get_uri().

 

get_parent_uri ()

See thunarx_file_info_get_parent_uri().

 

get_uri_scheme ()

See thunarx_file_info_get_uri_scheme().

 

get_mime_type ()

See thunarx_file_info_get_mime_type().

 

has_mime_type ()

See thunarx_file_info_has_mime_type().

 

is_directory ()

See thunarx_file_info_is_directory().

 

get_file_info ()

See thunarx_file_info_get_file_info().

 

get_filesystem_info ()

See thunarx_filesystem_info_get_filesystem_info().

 

get_location ()

See thunarx_location_get_location().

 

changed ()

See thunarx_file_info_changed().

 

renamed ()

See thunarx_file_info_renamed().

 

ThunarxFileInfo

typedef struct _ThunarxFileInfo ThunarxFileInfo;

THUNARX_TYPE_FILE_INFO_LIST

#define THUNARX_TYPE_FILE_INFO_LIST (thunarx_file_info_list_get_type ())

Signal Details

The “changed” signal

void
user_function (ThunarxFileInfo *file_info,
               gpointer         user_data)

Emitted whenever the system notices a change to file_info .

Thunar plugins should use this signal to stay informed about changes to a file_info for which they currently display information (i.e. in a ThunarxPropertyPage), and update it's user interface whenever a change is noticed on file_info .

Parameters

file_info

a ThunarxFileInfo.

 

user_data

user data set when the signal handler was connected.

 

Flags: Run First


The “renamed” signal

void
user_function (ThunarxFileInfo *file_info,
               gpointer         user_data)

Emitted when the file_info is renamed to another name.

For example, within Thunar, ThunarFolder uses this signal to reregister it's VFS directory monitor, after the corresponding file was renamed.

Parameters

file_info

a ThunarxFileInfo

 

user_data

user data set when the signal handler was connected.

 

Flags: Run First