Class (GI Struct)

GLib-2.0GLibBookmarkFileSince 2.12

GLib.BookmarkFile lets you parse, edit or create files containing bookmarks.

Bookmarks refer to a URI, along with some meta-data about the resource pointed by the URI like its MIME type, the application that is registering the bookmark and the icon that should be used to represent the bookmark. The data is stored using the Desktop Bookmark Specification.

The syntax of the bookmark files is described in detail inside the Desktop Bookmark Specification, here is a quick summary: bookmark files use a sub-class of the XML Bookmark Exchange Language specification, consisting of valid UTF-8 encoded XML, under the <xbel> root element; each bookmark is stored inside a <bookmark> element, using its URI: no relative paths can be used inside a bookmark file. The bookmark may have a user defined title and description, to be used instead of the URI. Under the <metadata> element, with its owner attribute set to http://freedesktop.org, is stored the meta-data about a resource pointed by its URI. The meta-data consists of the resource's MIME type; the applications that have registered a bookmark; the groups to which a bookmark belongs to; a visibility flag, used to set the bookmark as "private" to the applications and groups that has it registered; the URI and MIME type of an icon, to be used when displaying the bookmark inside a GUI.

Here is an example of a bookmark file: bookmarks.xbel

A bookmark file might contain more than one bookmark; each bookmark is accessed through its URI.

The important caveat of bookmark files is that when you add a new bookmark you must also add the application that is registering it, using GLib.BookmarkFile.add_application or GLib.BookmarkFile.set_application_info. If a bookmark has no applications then it won't be dumped when creating the on disk representation, using GLib.BookmarkFile.to_data or GLib.BookmarkFile.to_file.

2.12

Index

Constructors

Properties

Methods

  • Adds the application with name and exec to the list of applications that have registered a bookmark for uri into bookmark.

    Every bookmark inside a GLib.BookmarkFile must have at least an application registered. Each application must provide a name, a command line useful for launching the bookmark, the number of times the bookmark has been registered by the application and the last time the application registered this bookmark.

    If name is null, the name of the application will be the same returned by g_get_application_name(); if exec is null, the command line will be a composition of the program name as returned by g_get_prgname() and the "%u" modifier, which will be expanded to the bookmark's URI.

    This function will automatically take care of updating the registrations count and timestamping in case an application with the same name had already registered a bookmark for uri inside bookmark.

    If no bookmark for uri is found, one is created.

    Parameters

    • uri: string

      a valid URI

    • Optionalname: string

      the name of the application registering the bookmark or null

    • Optionalexec: string

      command line to be used to launch the bookmark or null

    Returns void

  • Adds group to the list of groups to which the bookmark for uri belongs to.

    If no bookmark for uri is found then it is created.

    Parameters

    • uri: string

      a valid URI

    • group: string

      the group name to be added

    Returns void

  • Gets the registration information of app_name for the bookmark for uri. See g_bookmark_file_set_application_info() for more information about the returned data.

    The string returned in app_exec must be freed.

    In the event the URI cannot be found, false is returned and error is set to GLib.BookmarkFileError.URI_NOT_FOUND. In the event that no application with name app_name has registered a bookmark for uri, false is returned and error is set to GLib.BookmarkFileError.APP_NOT_REGISTERED. In the event that unquoting the command line fails, an error of the G_SHELL_ERROR domain is set and false is returned.

    Parameters

    • uri: string

      a valid URI

    • name: string

      an application's name

    Returns [boolean, string, number, number]

    true on success.

  • Gets the registration information of app_name for the bookmark for uri. See g_bookmark_file_set_application_info() for more information about the returned data.

    The string returned in app_exec must be freed.

    In the event the URI cannot be found, false is returned and error is set to GLib.BookmarkFileError.URI_NOT_FOUND. In the event that no application with name app_name has registered a bookmark for uri, false is returned and error is set to GLib.BookmarkFileError.APP_NOT_REGISTERED. In the event that unquoting the command line fails, an error of the G_SHELL_ERROR domain is set and false is returned.

    Parameters

    • uri: string

      a valid URI

    • name: string

      an application's name

    Returns [boolean, string, number, GLib.DateTime]

    true on success.

  • Retrieves the names of the applications that have registered the bookmark for uri.

    In the event the URI cannot be found, null is returned and error is set to GLib.BookmarkFileError.URI_NOT_FOUND.

    Parameters

    • uri: string

      a valid URI

    Returns string[]

    a newly allocated null-terminated array of strings. Use g_strfreev() to free it.

  • Retrieves the description of the bookmark for uri.

    In the event the URI cannot be found, null is returned and error is set to GLib.BookmarkFileError.URI_NOT_FOUND.

    Parameters

    • uri: string

      a valid URI

    Returns string

    a newly allocated string or null if the specified URI cannot be found.

  • Retrieves the list of group names of the bookmark for uri.

    In the event the URI cannot be found, null is returned and error is set to GLib.BookmarkFileError.URI_NOT_FOUND.

    The returned array is null terminated, so length may optionally be null.

    Parameters

    • uri: string

      a valid URI

    Returns string[]

    a newly allocated null-terminated array of group names. Use g_strfreev() to free it.

  • Gets the icon of the bookmark for uri.

    In the event the URI cannot be found, false is returned and error is set to GLib.BookmarkFileError.URI_NOT_FOUND.

    Parameters

    • uri: string

      a valid URI

    Returns [boolean, string, string]

    true if the icon for the bookmark for the URI was found. You should free the returned strings.

  • Gets the number of bookmarks inside bookmark.

    Returns number

    the number of bookmarks

  • Returns the title of the bookmark for uri.

    If uri is null, the title of bookmark is returned.

    In the event the URI cannot be found, null is returned and error is set to GLib.BookmarkFileError.URI_NOT_FOUND.

    Parameters

    • Optionaluri: string

      a valid URI or null

    Returns string

    a newly allocated string or null if the specified URI cannot be found.

  • Returns all URIs of the bookmarks in the bookmark file bookmark. The array of returned URIs will be null-terminated, so length may optionally be null.

    Returns string[]

    a newly allocated null-terminated array of strings. Use g_strfreev() to free it.

  • Checks whether the bookmark for uri inside bookmark has been registered by application name.

    In the event the URI cannot be found, false is returned and error is set to GLib.BookmarkFileError.URI_NOT_FOUND.

    Parameters

    • uri: string

      a valid URI

    • name: string

      the name of the application

    Returns boolean

    true if the application name was found

  • Checks whether group appears in the list of groups to which the bookmark for uri belongs to.

    In the event the URI cannot be found, false is returned and error is set to GLib.BookmarkFileError.URI_NOT_FOUND.

    Parameters

    • uri: string

      a valid URI

    • group: string

      the group name to be searched

    Returns boolean

    true if group was found.

  • Looks whether the desktop bookmark has an item with its URI set to uri.

    Parameters

    • uri: string

      a valid URI

    Returns boolean

    true if uri is inside bookmark, false otherwise

  • Loads a bookmark file from memory into an empty GLib.BookmarkFile structure. If the object cannot be created then error is set to a GLib.BookmarkFileError.

    Parameters

    • data: string | Uint8Array<ArrayBufferLike>

      desktop bookmarks loaded in memory

    Returns boolean

    true if a desktop bookmark could be loaded.

  • This function looks for a desktop bookmark file named file in the paths returned from g_get_user_data_dir() and g_get_system_data_dirs(), loads the file into bookmark and returns the file's full path in full_path. If the file could not be loaded then error is set to either a GLib.FileError or GLib.BookmarkFileError.

    Parameters

    • file: string

      a relative path to a filename to open and parse

    Returns [boolean, string]

    true if a key file could be loaded, false otherwise

  • Loads a desktop bookmark file into an empty GLib.BookmarkFile structure. If the file could not be loaded then error is set to either a GLib.FileError or GLib.BookmarkFileError.

    Parameters

    • filename: string

      the path of a filename to load, in the GLib file name encoding

    Returns boolean

    true if a desktop bookmark file could be loaded

  • Changes the URI of a bookmark item from old_uri to new_uri. Any existing bookmark for new_uri will be overwritten. If new_uri is null, then the bookmark is removed.

    In the event the URI cannot be found, false is returned and error is set to GLib.BookmarkFileError.URI_NOT_FOUND.

    Parameters

    • old_uri: string

      a valid URI

    • Optionalnew_uri: string

      a valid URI, or null

    Returns boolean

    true if the URI was successfully changed

  • Removes application registered with name from the list of applications that have registered a bookmark for uri inside bookmark.

    In the event the URI cannot be found, false is returned and error is set to GLib.BookmarkFileError.URI_NOT_FOUND. In the event that no application with name app_name has registered a bookmark for uri, false is returned and error is set to GLib.BookmarkFileError.APP_NOT_REGISTERED.

    Parameters

    • uri: string

      a valid URI

    • name: string

      the name of the application

    Returns boolean

    true if the application was successfully removed.

  • Removes group from the list of groups to which the bookmark for uri belongs to.

    In the event the URI cannot be found, false is returned and error is set to GLib.BookmarkFileError.URI_NOT_FOUND. In the event no group was defined, false is returned and error is set to GLib.BookmarkFileError.INVALID_VALUE.

    Parameters

    • uri: string

      a valid URI

    • group: string

      the group name to be removed

    Returns boolean

    true if group was successfully removed.

  • Removes the bookmark for uri from the bookmark file bookmark.

    Parameters

    • uri: string

      a valid URI

    Returns boolean

    true if the bookmark was removed successfully.

  • Sets the time the bookmark for uri was added into bookmark.

    If no bookmark for uri is found then it is created.

    Parameters

    • uri: string

      a valid URI

    • added: number

      a timestamp or -1 to use the current time

    Returns void

  • Sets the meta-data of application name inside the list of applications that have registered a bookmark for uri inside bookmark.

    You should rarely use this function; use g_bookmark_file_add_application() and g_bookmark_file_remove_application() instead.

    name can be any UTF-8 encoded string used to identify an application. exec can have one of these two modifiers: "%f", which will be expanded as the local file name retrieved from the bookmark's URI; "%u", which will be expanded as the bookmark's URI. The expansion is done automatically when retrieving the stored command line using the g_bookmark_file_get_application_info() function. count is the number of times the application has registered the bookmark; if is < 0, the current registration count will be increased by one, if is 0, the application with name will be removed from the list of registered applications. stamp is the Unix time of the last registration; if it is -1, the current time will be used.

    If you try to remove an application by setting its registration count to zero, and no bookmark for uri is found, false is returned and error is set to GLib.BookmarkFileError.URI_NOT_FOUND; similarly, in the event that no application name has registered a bookmark for uri, false is returned and error is set to GLib.BookmarkFileError.APP_NOT_REGISTERED. Otherwise, if no bookmark for uri is found, one is created.

    Parameters

    • uri: string

      a valid URI

    • name: string

      an application's name

    • exec: string

      an application's command line

    • count: number

      the number of registrations done for this application

    • stamp: number

      the time of the last registration for this application

    Returns boolean

    true if the application's meta-data was successfully changed.

  • Sets the meta-data of application name inside the list of applications that have registered a bookmark for uri inside bookmark.

    You should rarely use this function; use g_bookmark_file_add_application() and g_bookmark_file_remove_application() instead.

    name can be any UTF-8 encoded string used to identify an application. exec can have one of these two modifiers: "%f", which will be expanded as the local file name retrieved from the bookmark's URI; "%u", which will be expanded as the bookmark's URI. The expansion is done automatically when retrieving the stored command line using the g_bookmark_file_get_application_info() function. count is the number of times the application has registered the bookmark; if is < 0, the current registration count will be increased by one, if is 0, the application with name will be removed from the list of registered applications. stamp is the Unix time of the last registration.

    If you try to remove an application by setting its registration count to zero, and no bookmark for uri is found, false is returned and error is set to GLib.BookmarkFileError.URI_NOT_FOUND; similarly, in the event that no application name has registered a bookmark for uri, false is returned and error is set to GLib.BookmarkFileError.APP_NOT_REGISTERED. Otherwise, if no bookmark for uri is found, one is created.

    Parameters

    • uri: string

      a valid URI

    • name: string

      an application's name

    • exec: string

      an application's command line

    • count: number

      the number of registrations done for this application

    • Optionalstamp: GLib.DateTime

      the time of the last registration for this application, which may be null if count is 0

    Returns boolean

    true if the application's meta-data was successfully changed.

  • Sets description as the description of the bookmark for uri.

    If uri is null, the description of bookmark is set.

    If a bookmark for uri cannot be found then it is created.

    Parameters

    • uri: string

      a valid URI or null

    • description: string

      a string

    Returns void

  • Sets a list of group names for the item with URI uri. Each previously set group name list is removed.

    If uri cannot be found then an item for it is created.

    Parameters

    • uri: string

      an item's URI

    • Optionalgroups: string[]

      an array of group names, or null to remove all groups

    Returns void

  • Sets the icon for the bookmark for uri. If href is null, unsets the currently set icon. href can either be a full URL for the icon file or the icon name following the Icon Naming specification.

    If no bookmark for uri is found one is created.

    Parameters

    • uri: string

      a valid URI

    • href: string

      the URI of the icon for the bookmark, or null

    • mime_type: string

      the MIME type of the icon for the bookmark

    Returns void

  • Sets the private flag of the bookmark for uri.

    If a bookmark for uri cannot be found then it is created.

    Parameters

    • uri: string

      a valid URI

    • is_private: boolean

      true if the bookmark should be marked as private

    Returns void

  • Sets mime_type as the MIME type of the bookmark for uri.

    If a bookmark for uri cannot be found then it is created.

    Parameters

    • uri: string

      a valid URI

    • mime_type: string

      a MIME type

    Returns void

  • Sets the last time the bookmark for uri was last modified.

    If no bookmark for uri is found then it is created.

    The "modified" time should only be set when the bookmark's meta-data was actually changed. Every function of GLib.BookmarkFile that modifies a bookmark also changes the modification time, except for g_bookmark_file_set_visited_date_time().

    Parameters

    • uri: string

      a valid URI

    • modified: number

      a timestamp or -1 to use the current time

    Returns void

  • Sets the last time the bookmark for uri was last modified.

    If no bookmark for uri is found then it is created.

    The "modified" time should only be set when the bookmark's meta-data was actually changed. Every function of GLib.BookmarkFile that modifies a bookmark also changes the modification time, except for g_bookmark_file_set_visited_date_time().

    Parameters

    Returns void

  • Sets title as the title of the bookmark for uri inside the bookmark file bookmark.

    If uri is null, the title of bookmark is set.

    If a bookmark for uri cannot be found then it is created.

    Parameters

    • uri: string

      a valid URI or null

    • title: string

      a UTF-8 encoded string

    Returns void

  • Sets the time the bookmark for uri was last visited.

    If no bookmark for uri is found then it is created.

    The "visited" time should only be set if the bookmark was launched, either using the command line retrieved by g_bookmark_file_get_application_info() or by the default application for the bookmark's MIME type, retrieved using g_bookmark_file_get_mime_type(). Changing the "visited" time does not affect the "modified" time.

    Parameters

    • uri: string

      a valid URI

    • visited: number

      a timestamp or -1 to use the current time

    Returns void

  • Sets the time the bookmark for uri was last visited.

    If no bookmark for uri is found then it is created.

    The "visited" time should only be set if the bookmark was launched, either using the command line retrieved by g_bookmark_file_get_application_info() or by the default application for the bookmark's MIME type, retrieved using g_bookmark_file_get_mime_type(). Changing the "visited" time does not affect the "modified" time.

    Parameters

    Returns void

  • This function outputs bookmark into a file. The write process is guaranteed to be atomic by using g_file_set_contents() internally.

    Parameters

    • filename: string

      path of the output file

    Returns boolean

    true if the file was successfully written.