Bookmark file parser

Bookmark file parser — Анализ файлов содержащих закладки

Краткое описание

#include <glib.h> GBookmarkFile; #define G_BOOKMARK_FILE_ERROR enum GBookmarkFileError; GBookmarkFile* g_bookmark_file_new (void); void g_bookmark_file_free (GBookmarkFile *bookmark); gboolean g_bookmark_file_load_from_file (GBookmarkFile *bookmark, const gchar *filename, GError **error); gboolean g_bookmark_file_load_from_data (GBookmarkFile *bookmark, const gchar *data, gsize length, GError **error); gboolean g_bookmark_file_load_from_data_dirs (GBookmarkFile *bookmark, const gchar *file, gchar **full_path, GError **error); gchar* g_bookmark_file_to_data (GBookmarkFile *bookmark, gsize *length, GError **error); gboolean g_bookmark_file_to_file (GBookmarkFile *bookmark, const gchar *filename, GError **error); gboolean g_bookmark_file_has_item (GBookmarkFile *bookmark, const gchar *uri); gboolean g_bookmark_file_has_group (GBookmarkFile *bookmark, const gchar *uri, const gchar *group, GError **error); gboolean g_bookmark_file_has_application (GBookmarkFile *bookmark, const gchar *uri, const gchar *name, GError **error); gint g_bookmark_file_get_size (GBookmarkFile *bookmark); gchar** g_bookmark_file_get_uris (GBookmarkFile *bookmark, gsize *length); gchar* g_bookmark_file_get_title (GBookmarkFile *bookmark, const gchar *uri, GError **error); gchar* g_bookmark_file_get_description (GBookmarkFile *bookmark, const gchar *uri, GError **error); gchar* g_bookmark_file_get_mime_type (GBookmarkFile *bookmark, const gchar *uri, GError **error); gboolean g_bookmark_file_get_is_private (GBookmarkFile *bookmark, const gchar *uri, GError **error); gboolean g_bookmark_file_get_icon (GBookmarkFile *bookmark, const gchar *uri, gchar **href, gchar **mime_type, GError **error); time_t g_bookmark_file_get_added (GBookmarkFile *bookmark, const gchar *uri, GError **error); time_t g_bookmark_file_get_modified (GBookmarkFile *bookmark, const gchar *uri, GError **error); time_t g_bookmark_file_get_visited (GBookmarkFile *bookmark, const gchar *uri, GError **error); gchar** g_bookmark_file_get_groups (GBookmarkFile *bookmark, const gchar *uri, gsize *length, GError **error); gchar** g_bookmark_file_get_applications (GBookmarkFile *bookmark, const gchar *uri, gsize *length, GError **error); gboolean g_bookmark_file_get_app_info (GBookmarkFile *bookmark, const gchar *uri, const gchar *name, gchar **exec, guint *count, time_t *stamp, GError **error); void g_bookmark_file_set_title (GBookmarkFile *bookmark, const gchar *uri, const gchar *title); void g_bookmark_file_set_description (GBookmarkFile *bookmark, const gchar *uri, const gchar *description); void g_bookmark_file_set_mime_type (GBookmarkFile *bookmark, const gchar *uri, const gchar *mime_type); void g_bookmark_file_set_is_private (GBookmarkFile *bookmark, const gchar *uri, gboolean is_private); void g_bookmark_file_set_icon (GBookmarkFile *bookmark, const gchar *uri, const gchar *href, const gchar *mime_type); void g_bookmark_file_set_added (GBookmarkFile *bookmark, const gchar *uri, time_t added); void g_bookmark_file_set_groups (GBookmarkFile *bookmark, const gchar *uri, const gchar **groups, gsize length); void g_bookmark_file_set_modified (GBookmarkFile *bookmark, const gchar *uri, time_t modified); void g_bookmark_file_set_visited (GBookmarkFile *bookmark, const gchar *uri, time_t visited); gboolean g_bookmark_file_set_app_info (GBookmarkFile *bookmark, const gchar *uri, const gchar *name, const gchar *exec, gint count, time_t stamp, GError **error); void g_bookmark_file_add_group (GBookmarkFile *bookmark, const gchar *uri, const gchar *group); void g_bookmark_file_add_application (GBookmarkFile *bookmark, const gchar *uri, const gchar *name, const gchar *exec); gboolean g_bookmark_file_remove_group (GBookmarkFile *bookmark, const gchar *uri, const gchar *group, GError **error); gboolean g_bookmark_file_remove_application (GBookmarkFile *bookmark, const gchar *uri, const gchar *name, GError **error); gboolean g_bookmark_file_remove_item (GBookmarkFile *bookmark, const gchar *uri, GError **error); gboolean g_bookmark_file_move_item (GBookmarkFile *bookmark, const gchar *old_uri, const gchar *new_uri, GError **error);

Описание

GBookmarkFile позволяет вам анализировать, редактировать или создавать файлы содержащие закладки на URI, вместе с некоторыми meta-данными о ресурсе на который указывает URI, например его MIME тип, приложение которое зарегистрировало закладку и значок который должен использоваться для отображения закладки. Данные хранятся согласно Desktop Bookmark Specification.

Синтаксис файлов закладок детально описан в Desktop Bookmark Specification, здесь приведено краткое описание: файлы закладок используют подкласс спецификации XML Bookmark Exchange Language, состоят из XML в правильной кодировке UTF-8, под корневым элементом xbel; каждая закладка сохраняется в элементе bookmark, используя её URI: относительные пути не могут использоваться в файле закладок. Закладка может иметь заголовок и описание определённые пользователем, используемые вместо URI. Под элементом metadata, с его набором атрибутов owner в http://freedesktop.org, хранятся meta-данные о ресурсе указанном URI. Мета-данные состоят из MIME типа ресурса; приложения которое зарегистрировало закладку; группы к которой принадлежит закладка; флага видимости, используемом для установки закладки как "private" для приложений и групп которые имеют регистрацию; URI и MIME тип значка, для изображения закладки внутри GUI.

<?xml version="1.0"?> <!DOCTYPE xbel PUBLIC "+//IDN python.org//DTD XML Bookmark Exchange Language 1.0//EN//XML" "http://www.python.org/topics/xml/dtds/xbel-1.0.dtd"> <xbel version="1.0" xmlns:mime="http://www.freedesktop.org/standards/shared-mime-info" xmlns:bookmark="http://www.freedesktop.org/standards/desktop-bookmarks"> <bookmark href="file:///home/ebassi/bookmark-spec/bookmark-spec.xml"> <title>Desktop Bookmarks Spec</title> <info> <metadata owner="http://freedesktop.org"> <mime:mime-type>text/xml</mime:mime-type> <bookmark:applications> <bookmark:application name="GEdit" count="2" exec="gedit <link linkend="u"><literal>u</literal></link>" timestamp="1115726763"/> <bookmark:application name="GViM" count="7" exec="gvim <link linkend="f"><literal>f</literal></link>" timestamp="1115726812"/> </bookmark:applications> <bookmark:groups> <bookmark:group>Editors</bookmark:group> </bookmark:groups> </metadata> </info> </bookmark> </xbel>

Файл закладок может содержать больше одной закладки; к каждой закладке обращаются через её URI.

Важное замечание для файлов закладок в том, что когда вы добавляете закладку вы должны также добавить приложение которое зарегистрировало её, используя g_bookmark_file_add_application() или g_bookmark_file_set_app_info(). Если закладка не имеет приложений, то она будет сброшена при записи на диск, используя g_bookmark_file_to_data() или g_bookmark_file_to_file().

Анализатор GBookmarkFile добавлен в версии GLib 2.12.

Детали

GBookmarkFile

typedef struct _GBookmarkFile GBookmarkFile;

Структура GBookmarkFile содержит только закрытые данные к которым нет прямого доступа.


G_BOOKMARK_FILE_ERROR

#define G_BOOKMARK_FILE_ERROR (g_bookmark_file_error_quark ())

Домен ошибки для анализатора файла закладок. Ошибки в этом домене из перечисления GBookmarkFileError. Смотрите GError для информации о доменах ошибки.


enum GBookmarkFileError

typedef enum { G_BOOKMARK_FILE_ERROR_INVALID_URI, G_BOOKMARK_FILE_ERROR_INVALID_VALUE, G_BOOKMARK_FILE_ERROR_APP_NOT_REGISTERED, G_BOOKMARK_FILE_ERROR_URI_NOT_FOUND, G_BOOKMARK_FILE_ERROR_READ, G_BOOKMARK_FILE_ERROR_UNKNOWN_ENCODING, G_BOOKMARK_FILE_ERROR_WRITE, G_BOOKMARK_FILE_ERROR_FILE_NOT_FOUND } GBookmarkFileError;

Коды ошибок возвращаемые анализатором файла закладок.

G_BOOKMARK_FILE_ERROR_INVALID_URI URI был не правильно сформирован
G_BOOKMARK_FILE_ERROR_INVALID_VALUE запрашиваемое поле не найдено
G_BOOKMARK_FILE_ERROR_APP_NOT_REGISTERED запрошенное приложение не зарегистрировано
G_BOOKMARK_FILE_ERROR_URI_NOT_FOUND запрашиваемый URI не найден
G_BOOKMARK_FILE_ERROR_READ документ был не правильно сформирован
G_BOOKMARK_FILE_ERROR_UNKNOWN_ENCODING анализируемый текст находится в неизвестной кодировке
G_BOOKMARK_FILE_ERROR_WRITE в процессе записи произошла ошибка
G_BOOKMARK_FILE_ERROR_FILE_NOT_FOUND запрашиваемый файл не найден

g_bookmark_file_new ()

GBookmarkFile* g_bookmark_file_new (void);

Создаёт новый пустой объект GBookmarkFile.

Используйте g_bookmark_file_load_from_file(), g_bookmark_file_load_from_data() или g_bookmark_file_load_from_data_dirs() для чтения существующего файла закладок.

Возвращает : пустой GBookmarkFile

Начиная с версии 2.12


g_bookmark_file_free ()

void g_bookmark_file_free (GBookmarkFile *bookmark);

Освобождает GBookmarkFile.

bookmark : GBookmarkFile

Начиная с версии 2.12


g_bookmark_file_load_from_file ()

gboolean g_bookmark_file_load_from_file (GBookmarkFile *bookmark, const gchar *filename, GError **error);

Загружает desktop bookmark file в пустую структуру GBookmarkFile. Если файл не загружен, то устанавливается error в GFileError или GBookmarkFileError.

bookmark : пустая структура GBookmarkFile
filename : путь к имени файла для загрузки, в кодировке имён файлов GLib
error : расположение для возвращаемой GError, или NULL
Возвращает : TRUE если desktop bookmark file не загружен

Начиная с версии 2.12


g_bookmark_file_load_from_data ()

gboolean g_bookmark_file_load_from_data (GBookmarkFile *bookmark, const gchar *data, gsize length, GError **error);

Загружает файл закладок из памяти в пустую структуру GBookmarkFile. Если объект не создан, то устанавливается error в GBookmarkFileError.

bookmark : пустая структура GBookmarkFile
data : desktop закладки загруженные в память
length : размер data в байтах
error : расположение для возвращаемой GError, или NULL
Возвращает : TRUE если desktop закладка не загружена.

Начиная с версии 2.12


g_bookmark_file_load_from_data_dirs ()

gboolean g_bookmark_file_load_from_data_dirs (GBookmarkFile *bookmark, const gchar *file, gchar **full_path, GError **error);

Эта функция находит desktop bookmark file с именем file в пути который возвращает g_get_user_data_dir() и g_get_system_data_dirs(), загружает в файл bookmark и возвращает полный путь файла в full_path. Если файл не загружен, то error устанавливается либо в GFileError, либо в GBookmarkFileError.

bookmark : GBookmarkFile
file : относительный путь имени файла для открытия и анализа
full_path : расположение для возвращаемой строки содержащей полный путь файла, или NULL
error : расположение для возвращаемой GError, или NULL
Возвращает : TRUE если файл загружен, иначе FALSE

Начиная с версии 2.12


g_bookmark_file_to_data ()

gchar* g_bookmark_file_to_data (GBookmarkFile *bookmark, gsize *length, GError **error);

Эта функция выводит bookmark как строку.

bookmark : GBookmarkFile
length : расположение для длины возвращаемой строки, или NULL
error : расположение для возвращаемой GError, или NULL
Возвращает : вновь распределённая строка содержащая GBookmarkFile

Начиная с версии 2.12


g_bookmark_file_to_file ()

gboolean g_bookmark_file_to_file (GBookmarkFile *bookmark, const gchar *filename, GError **error);

Эта функция выводит bookmark в файл. Пишущий процесс будет гарантировано атомарным при внутреннем использовании g_file_set_contents().

bookmark : GBookmarkFile
filename : путь к файлу для записи
error : расположение для возвращаемой GError, или NULL
Возвращает : TRUE если файл полностью записан.

Начиная с версии 2.12


g_bookmark_file_has_item ()

gboolean g_bookmark_file_has_item (GBookmarkFile *bookmark, const gchar *uri);

Находит имеет ли desktop закладка элемент URI установленный в uri.

bookmark : GBookmarkFile
uri : правильный URI
Возвращает : TRUE если uri находится внутри bookmark, иначе FALSE

Начиная с версии 2.12


g_bookmark_file_has_group ()

gboolean g_bookmark_file_has_group (GBookmarkFile *bookmark, const gchar *uri, const gchar *group, GError **error);

Проверяет относится ли group к списку групп к которым принадлежит закладка для uri.

В случае когда URI не найден, возвращает FALSE и устанавливает error в G_BOOKMARK_FILE_ERROR_URI_NOT_FOUND.

bookmark : GBookmarkFile
uri : правильный URI
group : имя группы для поиска
error : расположение для возвращаемой GError, или NULL
Возвращает : TRUE если group найдена.

Начиная с версии 2.12


g_bookmark_file_has_application ()

gboolean g_bookmark_file_has_application (GBookmarkFile *bookmark, const gchar *uri, const gchar *name, GError **error);

Проверяет имеет ли закладка для uri внутри bookmark регистрацию приложения name.

В случае когда URI не найден, возвращает FALSE и устанавливает error в G_BOOKMARK_FILE_ERROR_URI_NOT_FOUND.

bookmark : GBookmarkFile
uri : правильный URI
name : имя приложения
error : расположение для возвращаемой GError, или NULL
Возвращает : TRUE если приложение name найдено

Начиная с версии 2.12


g_bookmark_file_get_size ()

gint g_bookmark_file_get_size (GBookmarkFile *bookmark);

Определяет количество закладок в bookmark.

bookmark : GBookmarkFile
Возвращает : количество закладок

Начиная с версии 2.12


g_bookmark_file_get_uris ()

gchar** g_bookmark_file_get_uris (GBookmarkFile *bookmark, gsize *length);

Возвращает все URIs закладок в файле bookmark. Массив возвращаемых URIs будет NULL-завершённый, поэтому length может опционально быть NULL.

bookmark : GBookmarkFile
length : расположение для количества возвращаемых URIs, или NULL
Возвращает : вновь распределённый NULL-завершённый массив строк. Используйте g_strfreev() для его освобождения.

Начиная с версии 2.12


g_bookmark_file_get_title ()

gchar* g_bookmark_file_get_title (GBookmarkFile *bookmark, const gchar *uri, GError **error);

Возвращает заголовок закладки для uri.

Если uri это NULL, возвращает заголовок bookmark.

В случае когда URI не найден, возвращает NULL и устанавливает error в G_BOOKMARK_FILE_ERROR_URI_NOT_FOUND.

bookmark : GBookmarkFile
uri : правильный URI или NULL
error : расположение для возвращаемой GError, или NULL
Возвращает : вновь распределённая строка или NULL если определённый URI не найден.

Начиная с версии 2.12


g_bookmark_file_get_description ()

gchar* g_bookmark_file_get_description (GBookmarkFile *bookmark, const gchar *uri, GError **error);

Находит описание закладки для uri.

В случае когда URI не найден, возвращает NULL и устанавливает error в G_BOOKMARK_FILE_ERROR_URI_NOT_FOUND.

bookmark : GBookmarkFile
uri : правильный URI
error : расположение для возвращаемой GError, или NULL
Возвращает : вновь распределённая строка или NULL если определённый URI не найден.

Начиная с версии 2.12


g_bookmark_file_get_mime_type ()

gchar* g_bookmark_file_get_mime_type (GBookmarkFile *bookmark, const gchar *uri, GError **error);

Находит MIME тип источника на который указывает uri.

В случае когда URI не найден, возвращает NULL и устанавливает error в G_BOOKMARK_FILE_ERROR_URI_NOT_FOUND. В случае когда MIME тип не найден, возвращает NULL и устанавливает error в G_BOOKMARK_FILE_ERROR_INVALID_VALUE.

bookmark : GBookmarkFile
uri : правильный URI
error : расположение для возвращаемой GError, или NULL
Возвращает : вновь распределённая строка или NULL если определённый URI не найден.

Начиная с версии 2.12


g_bookmark_file_get_is_private ()

gboolean g_bookmark_file_get_is_private (GBookmarkFile *bookmark, const gchar *uri, GError **error);

Определяет установлен ли приватный флаг закладки для uri.

В случае когда URI не найден, возвращает FALSE и устанавливает error в G_BOOKMARK_FILE_ERROR_URI_NOT_FOUND. В случае когда приватный флаг не найден, возвращает FALSE и устанавливает error в G_BOOKMARK_FILE_ERROR_INVALID_VALUE.

bookmark : GBookmarkFile
uri : правильный URI
error : расположение для возвращаемой GError, или NULL
Возвращает : TRUE если приватный флаг установлен, иначе FALSE.

Начиная с версии 2.12


g_bookmark_file_get_icon ()

gboolean g_bookmark_file_get_icon (GBookmarkFile *bookmark, const gchar *uri, gchar **href, gchar **mime_type, GError **error);

Определяет значок закладки для uri.

В случае когда URI не найден, возвращает FALSE и устанавливает error в G_BOOKMARK_FILE_ERROR_URI_NOT_FOUND.

bookmark : GBookmarkFile
uri : правильный URI
href : расположение для возвращаемого местонахождения значка или NULL
mime_type : расположение для возвращаемого MIME типа значка или NULL
error : расположение для возвращаемого GError или NULL
Возвращает : TRUE если значок закладки для URI найден. Вы должны освободить возвращаемые строки.

Начиная с версии 2.12


g_bookmark_file_get_added ()

time_t g_bookmark_file_get_added (GBookmarkFile *bookmark, const gchar *uri, GError **error);

Определяет время добавления закладки для uri в bookmark

В случае когда URI не найден, возвращает -1 и устанавливает error в G_BOOKMARK_FILE_ERROR_URI_NOT_FOUND.

bookmark : GBookmarkFile
uri : правильный URI
error : расположение для возвращаемой GError, или NULL
Возвращает : время добавления закладки (timestamp)

Начиная с версии 2.12


g_bookmark_file_get_modified ()

time_t g_bookmark_file_get_modified (GBookmarkFile *bookmark, const gchar *uri, GError **error);

Определяет время последней модификации закладки для uri.

В случае когда URI не найден, возвращает -1 и устанавливает error в G_BOOKMARK_FILE_ERROR_URI_NOT_FOUND.

bookmark : GBookmarkFile
uri : правильный URI
error : расположение для возвращаемой GError, или NULL
Возвращает : Время последней модификации закладки (timestamp)

Начиная с версии 2.12


g_bookmark_file_get_visited ()

time_t g_bookmark_file_get_visited (GBookmarkFile *bookmark, const gchar *uri, GError **error);

Определяет время последнего посещения закладки для uri was last visited.

В случае когда URI не найден, возвращает -1 и устанавливает error в G_BOOKMARK_FILE_ERROR_URI_NOT_FOUND.

bookmark : GBookmarkFile
uri : правильный URI
error : расположение для возвращаемой GError, или NULL
Возвращает : Время последнего посещения (timestamp).

Начиная с версии 2.12


g_bookmark_file_get_groups ()

gchar** g_bookmark_file_get_groups (GBookmarkFile *bookmark, const gchar *uri, gsize *length, GError **error);

Находит имена групп к которым принадлежит закладка для uri.

В случае когда URI не найден, возвращает NULL и устанавливает error в G_BOOKMARK_FILE_ERROR_URI_NOT_FOUND.

Возвращаемый массив является NULL-завершённым, поэтому length может опционально быть NULL.

bookmark : GBookmarkFile
uri : правильный URI
length : расположение длины возвращаемой строки, или NULL
error : расположение для возвращаемой GError, или NULL
Возвращает : вновь распределённый NULL-завершённый массив имён групп. Используйте g_strfreev() для его освобождения.

Начиная с версии 2.12


g_bookmark_file_get_applications ()

gchar** g_bookmark_file_get_applications (GBookmarkFile *bookmark, const gchar *uri, gsize *length, GError **error);

Находит имена приложений которые зарегистрированы закладкой для uri.

В случае когда URI не найден, возвращает NULL и устанавливает error в G_BOOKMARK_FILE_ERROR_URI_NOT_FOUND.

bookmark : GBookmarkFile
uri : правильный URI
length : расположение длины возвращаемого списка, или NULL
error : расположение для возвращаемой GError, или NULL
Возвращает : вновь распределённый NULL-завершённый массив строк. Используйте g_strfreev() для его освобождения.

Начиная с версии 2.12


g_bookmark_file_get_app_info ()

gboolean g_bookmark_file_get_app_info (GBookmarkFile *bookmark, const gchar *uri, const gchar *name, gchar **exec, guint *count, time_t *stamp, GError **error);

Получает регистрационную информацию app_name закладки для uri. Смотрите g_bookmark_file_set_app_info() для получения информации о возвращаемых данных.

Строка возвращаемая в app_exec должна быть освобождена.

В случае когда URI не найден, возвращает FALSE и устанавливает error в G_BOOKMARK_FILE_ERROR_URI_NOT_FOUND. В случае когда нет приложения с именем app_name зарегистрированного закладкой для uri, возвращает FALSE и устанавливает ошибку в G_BOOKMARK_FILE_ERROR_APP_NOT_REGISTERED.

bookmark : GBookmarkFile
uri : правильный URI
name : имя приложения
exec : расположение для командной строки приложения, или NULL
count : расположение для возвращаемого количества регистраций, или NULL
stamp : расположение для возвращаемого времени последней регистрации, или NULL
error : расположение для возвращаемой GError, или NULL
Возвращает : TRUE при успешном выполнении.

Начиная с версии 2.12


g_bookmark_file_set_title ()

void g_bookmark_file_set_title (GBookmarkFile *bookmark, const gchar *uri, const gchar *title);

Устанавливает title как заголовок закладки для uri внутри файла закладок bookmark.

Если uri это NULL, устанавливает заголовок bookmark.

Если закладка для uri не найдена, то она создаётся.

bookmark : GBookmarkFile
uri : правильный URI или NULL
title : строка в кодировке UTF-8

Начиная с версии 2.12


g_bookmark_file_set_description ()

void g_bookmark_file_set_description (GBookmarkFile *bookmark, const gchar *uri, const gchar *description);

Устанавливает description как описание закладки для uri.

Если uri это NULL, устанавливает описание bookmark.

Если закладка для uri не найдена, то она создаётся.

bookmark : GBookmarkFile
uri : правильный URI или NULL
description : строка

Начиная с версии 2.12


g_bookmark_file_set_mime_type ()

void g_bookmark_file_set_mime_type (GBookmarkFile *bookmark, const gchar *uri, const gchar *mime_type);

Устанавливает mime_type как MIME тип закладки для uri.

Если закладка для uri не найдена, то она создаётся.

bookmark : GBookmarkFile
uri : правильный URI
mime_type : MIME тип

Начиная с версии 2.12


g_bookmark_file_set_is_private ()

void g_bookmark_file_set_is_private (GBookmarkFile *bookmark, const gchar *uri, gboolean is_private);

Устанавливает приватный флаг закладки для uri.

Если закладка для uri не найдена, то она создаётся.

bookmark : GBookmarkFile
uri : правильный URI
is_private : TRUE если закладка должна быть помечена как закрытая

Начиная с версии 2.12


g_bookmark_file_set_icon ()

void g_bookmark_file_set_icon (GBookmarkFile *bookmark, const gchar *uri, const gchar *href, const gchar *mime_type);

Устанавливает значок закладки для uri. Если href это NULL, сбрасывает установленный в текущий момент значок.

Если нет найденной закладки для uri, она создаётся.

bookmark : GBookmarkFile
uri : правильный URI
href : URI значка для закладки, или NULL
mime_type : MIME тип значка для закладки

Начиная с версии 2.12


g_bookmark_file_set_added ()

void g_bookmark_file_set_added (GBookmarkFile *bookmark, const gchar *uri, time_t added);

Устанавливает время добавления закладки для uri в bookmark.

Если нет найденной закладки для uri, то она создаётся.

bookmark : GBookmarkFile
uri : правильный URI
added : временная отметка или -1 для использования текущего времени

Начиная с версии 2.12


g_bookmark_file_set_groups ()

void g_bookmark_file_set_groups (GBookmarkFile *bookmark, const gchar *uri, const gchar **groups, gsize length);

Устанавливает список имён групп для элементов с uri. Каждое предварительно установленное имя группы списка удаляется.

Если uri не найден, то элементы для него создаются.

bookmark : GBookmarkFile
uri : URI элемент
groups : массив имён групп, или NULL для удаления всех групп
length : количество имен групп в groups

Начиная с версии 2.12


g_bookmark_file_set_modified ()

void g_bookmark_file_set_modified (GBookmarkFile *bookmark, const gchar *uri, time_t modified);

Устанавливает время последнего изменения закладки для uri.

Если закладка для uri не найдена, то она создаётся.

Время изменения закладки должно устанавливаться только когда meta-данные были фактически изменены. Все функции GBookmarkFile которые изменяют закладку также изменяют время модификации, за исключением g_bookmark_file_set_visited().

bookmark : GBookmarkFile
uri : правильный URI
modified : временная отметка или -1 для использования текущего времени

Начиная с версии 2.12


g_bookmark_file_set_visited ()

void g_bookmark_file_set_visited (GBookmarkFile *bookmark, const gchar *uri, time_t visited);

Устанавливает время последнего посещения закладки для uri.

Если закладка для uri не найдена, то она создаётся.

Время посещения должно устанавливаться только если закладка была задействована, любое использование командной строки найденное с помощью g_bookmark_file_get_app_info() или приложение по умолчанию для закладки MIME типа найденное с использованием g_bookmark_file_get_mime_type(). Изменение времени "посещения" не влияет на время "модификации".

bookmark : GBookmarkFile
uri : правильный URI
visited : временная метка или -1 для использования текущего времени

Начиная с версии 2.12


g_bookmark_file_set_app_info ()

gboolean g_bookmark_file_set_app_info (GBookmarkFile *bookmark, const gchar *uri, const gchar *name, const gchar *exec, gint count, time_t stamp, GError **error);

Устанавливает meta-данные приложения name в список приложений которые были зарегистрированы закладкой для uri внутри bookmark.

Вы должны редко использовать эту функцию; вместо неё используйте g_bookmark_file_add_application() и g_bookmark_file_remove_application().

name может быть любой строкой в кодировке UTF-8 используемой для идентификации приложения. exec может иметь один из двух модификаторов: "f", который будет расшифрован как локальное имя файла полученное из URI закладки; "u", который будет расшифрован как закладка URI. Расшифровка выполняется автоматически когда находится сохранённая командная строка используя функцию g_bookmark_file_get_app_info(). count это количество регистраций приложения закладкой; если < 0, текущее количество регистраций будет увеличено на одну, если 0, приложение с именем name будет удалено из списка зарегистрированных приложений. stamp Unix время последней регистрации; если -1, используется текущее время.

Если вы попытаетесь удалить приложение установив количество его регистраций в ноль, а закладка для uri не найдена, то вернётся FALSE и установится error в G_BOOKMARK_FILE_ERROR_URI_NOT_FOUND; точно так же, в случае когда нет приложения с именем name зарегистрированного закладкой для uri, то возвращается FALSE и устанавливается ошибка в G_BOOKMARK_FILE_ERROR_APP_NOT_REGISTERED. Иначе, если закладка для uri не найдена, то она создаётся.

bookmark : GBookmarkFile
uri : правильный URI
name : имя приложения
exec : командная строка приложения
count : количество выполненных регистраций для приложения
stamp : время последней регистрации для приложения
error : расположение для возвращаемой GError или NULL
Возвращает : TRUE если meta-данные приложения полностью изменены.

Начиная с версии 2.12


g_bookmark_file_add_group ()

void g_bookmark_file_add_group (GBookmarkFile *bookmark, const gchar *uri, const gchar *group);

Добавляет group в список групп к которым принадлежит закладка для uri.

Если закладка для uri не найдена, то она создаётся.

bookmark : GBookmarkFile
uri : правильный URI
group : имя добавляемой группы

Начиная с версии 2.12


g_bookmark_file_add_application ()

void g_bookmark_file_add_application (GBookmarkFile *bookmark, const gchar *uri, const gchar *name, const gchar *exec);

Добавляет приложение с именем name и exec в список приложений, которые зарегистрированы закладкой для uri, в bookmark.

Все закладки внутри GBookmarkFile должны иметь по меньшей мере одно зарегистрированное приложение. Каждое приложение должно иметь имя, командная строка полезна для запуска закладки, количество регистраций закладкой приложения и время последней регистрации приложения этой закладкой.

Если name это NULL, имя приложения будет тем что возвращает функция g_get_application(); если exec это NULL, командная строка будет состоять из имени программы которое возвращает g_get_prgname() и модификатора "u", который будет расшифрован как URI закладки.

Эта функция автоматически обновляет количество регистраций и timestamping в случае когда приложение с именем name уже зарегистрировано закладкой для uri внутри bookmark.

Если закладка для uri не найдена, то она создаётся.

bookmark : GBookmarkFile
uri : правильный URI
name : имя приложения зарегистрированное закладкой, или NULL
exec : командная строка используемая для активации закладки, или NULL

Начиная с версии 2.12


g_bookmark_file_remove_group ()

gboolean g_bookmark_file_remove_group (GBookmarkFile *bookmark, const gchar *uri, const gchar *group, GError **error);

Удаляет group из списка групп к которым принадлежит закладка для uri.

В случае когда URI не найден, возвращает FALSE и устанавливает error в G_BOOKMARK_FILE_ERROR_URI_NOT_FOUND. В случае когда группа не определена, возвращает FALSE и устанавливает error в G_BOOKMARK_FILE_ERROR_INVALID_VALUE.

bookmark : GBookmarkFile
uri : правильный URI
group : имя группы для удаления
error : расположение для возвращаемой GError, или NULL
Возвращает : TRUE если group была полностью удалена.

Начиная с версии 2.12


g_bookmark_file_remove_application ()

gboolean g_bookmark_file_remove_application (GBookmarkFile *bookmark, const gchar *uri, const gchar *name, GError **error);

Удаляет регистрацию приложения с именем name из списка приложений которые зарегистрированы закладкой для uri внутри bookmark.

В случае когда URI не найден, возвращает FALSE и устанавливает error в G_BOOKMARK_FILE_ERROR_URI_NOT_FOUND. В случае когда приложение с именем app_name не зарегистрировано закладкой для uri, возвращает FALSE и устанавливает ошибку в G_BOOKMARK_FILE_ERROR_APP_NOT_REGISTERED.

bookmark : GBookmarkFile
uri : правильный URI
name : имя приложения
error : расположение для возвращаемой GError, или NULL
Возвращает : TRUE если приложение полностью удалено.

Начиная с версии 2.12


g_bookmark_file_remove_item ()

gboolean g_bookmark_file_remove_item (GBookmarkFile *bookmark, const gchar *uri, GError **error);

Удаляет закладку для uri из файла закладок bookmark.

bookmark : GBookmarkFile
uri : правильный URI
error : расположение для возвращаемой GError, или NULL
Возвращает : TRUE если закладка была полностью удалена.

Начиная с версии 2.12


g_bookmark_file_move_item ()

gboolean g_bookmark_file_move_item (GBookmarkFile *bookmark, const gchar *old_uri, const gchar *new_uri, GError **error);

Изменяет URI закладки из параметра old_uri на new_uri. Любые существующие закладки для new_uri будут переписаны. Если new_uri это NULL, тогда закладка удаляется.

В случае когда URI не найден, возвращает FALSE и устанавливает error в G_BOOKMARK_FILE_ERROR_URI_NOT_FOUND.

bookmark : GBookmarkFile
old_uri : правильный URI
new_uri : правильный URI, или NULL
error : расположение для возвращаемой GError, или NULL
Возвращает : TRUE если URI полностью изменён

Начиная с версии 2.12