GtkRecentManager
GtkRecentManager — Управление недавно используемыми файлами
Функции
Типы и значения
| struct | GtkRecentManager |
| GtkRecentInfo | |
| struct | GtkRecentData |
| #define | GTK_RECENT_MANAGER_ERROR |
| enum | GtkRecentManagerError |
Иерархия объектов
GObject ╰── GtkRecentManager
Файлы заголовков
#include <gtk/gtk.h>
Описание
GtkRecentManager предоставляет средства для добавления, удаления и поиска недавно используемых файлов. Каждый недавно используемый файл идентифицируется по своему URI и имеет метаданные, такие как имена и командные строки приложений, которые его зарегистрировали, количество раз, когда каждое приложение регистрировало тот же файл, MIME-тип файла и то, отображается ли файл только приложениями, которые его зарегистрировали.
Список недавно используемых файлов относится к конкретному пользователю.
Класс GtkRecentManager действует как база данных всех недавно используемых файлов. Можно создавать новые объекты GtkRecentManager, но эффективнее использовать менеджер по умолчанию, созданный GTK+.
Добавление нового недавно используемого файла выполняется следующим образом:
Класс GtkRecentManager попытается собрать всю необходимую информацию из самого файла через GIO.
Для поиска метаданных, связанных с недавно используемым файлом по его URI, необходимо вызвать gtk_recent_manager_lookup_item():
GtkRecentManager*manager; manager =gtk_recent_manager_get_default(); gtk_recent_manager_add_item(manager, file_uri);
Для получения списка недавно используемых файлов можно использовать gtk_recent_manager_get_items(), который возвращает список GtkRecentInfo-структур.
Класс GtkRecentManager является моделью, используемой для заполнения содержимого одного или нескольких элементов GtkRecentChooser.
Обратите внимание, что максимальный срок действия списка недавно используемых файлов можно настроить через свойство “gtk-recent-files-max-age”.
Недавно используемые файлы поддерживаются начиная с GTK+ 2.10.
Функции
gtk_recent_manager_new ()
GtkRecentManager *
gtk_recent_manager_new (void); Создаёт новый объект менеджера последних ресурсов. Объекты менеджеров последних ресурсов используются для управления списком недавно использованных ресурсов. Объект GtkRecentManager отслеживает список недавно использованных ресурсов и испускает сигнал «changed» каждый раз, когда что-либо в списке изменяется.
Объекты GtkRecentManager ресурсоёмкие: убедитесь, что вы создаёте их только тогда, когда это необходимо. Вы должны использовать gtk_recent_manager_get_default() вместо этого.
Возвращаемое значение
Новый созданный объект GtkRecentManager
С версии: 2.10
gtk_recent_manager_get_default ()
GtkRecentManager *
gtk_recent_manager_get_default (void); Получает уникальный экземпляр GtkRecentManager, который можно использовать в вашем приложении без забот о управлении памятью.
Возвращаемое значение
Уникальный GtkRecentManager. Не нужно ссылаться или освобождать его.
[transfer none]
С версии: 2.10
gtk_recent_manager_add_item ()
gboolean gtk_recent_manager_add_item (GtkRecentManager *manager,const gchar *uri);
Добавляет новый ресурс, указанный в uri, в список недавно использованных ресурсов.
Эта функция автоматически извлекает некоторые необходимые метаданные и устанавливает другие метаданные в значения по умолчанию; затем она передаёт данные в gtk_recent_manager_add_full().
Обратитесь к gtk_recent_manager_add_full(), если вы хотите явно определить метаданные для ресурса, указанного в uri.
Параметры
manager | объект GtkRecentManager | |
uri | валидный URI |
Возвращаемое значение
TRUE, если новый элемент успешно добавлен в список недавно использованных ресурсов
С версии: 2.10
gtk_recent_manager_add_full ()
gboolean gtk_recent_manager_add_full (GtkRecentManager *manager,const gchar *uri,const GtkRecentData *recent_data);
Добавляет новый ресурс, указанный в uri, в список недавно использованных ресурсов, используя метаданные, указанные в GtkRecentData, переданные в recent_data.
Переданный URI будет использоваться для идентификации этого ресурса в списке.
Для регистрации нового недавно использованного ресурса, необходимо передать метаданные о ресурсе и URI; метаданные хранятся в GtkRecentData, который должен содержать MIME-тип ресурса, указанного URI, имя приложения, которое регистрирует элемент, и командную строку, используемую при запуске элемента.
Необязательно, GtkRecentData может содержать строку UTF-8, используемую при просмотре элемента вместо последней составляющей URI, краткое описание элемента; является ли элемент частным — то есть должен отображаться только приложениями, которые его зарегистрировали.
Параметры
manager | объект GtkRecentManager | |
uri | валидный URI | |
recent_data | метаданные ресурса |
Возвращаемое значение
TRUE, если новый элемент успешно добавлен в список недавно использованных ресурсов, FALSE в противном случае
С версии: 2.10
gtk_recent_manager_remove_item ()
gboolean gtk_recent_manager_remove_item (GtkRecentManager *manager,const gchar *uri,GError **error);
Удаляет ресурс, указанный в uri, из списка недавно использованных ресурсов, управляемых менеджером последних ресурсов.
Параметры
manager | объект GtkRecentManager | |
uri | URI элемента, который вы хотите удалить | |
error | [allow-none] |
Возвращаемое значение
TRUE, если элемент, указанный в uri, был успешно удален из списка недавно использованных ресурсов, и FALSE в противном случае
С версии: 2.10
gtk_recent_manager_lookup_item ()
GtkRecentInfo * gtk_recent_manager_lookup_item (GtkRecentManager *manager,const gchar *uri,GError **error);
Ищет URI в списке недавно использованных ресурсов и возвращает GtkRecentInfo, содержащий информацию о ресурсе, например, его MIME-тип или отображаемое имя.
Параметры
manager | объект GtkRecentManager | |
uri | URI | |
error | [allow-none] |
Возвращаемое значение
GtkRecentInfo, содержащий информацию о ресурсе, указанном в uri, или NULL, если URI не был зарегистрирован в списке недавно использованных ресурсов. Освободить с помощью gtk_recent_info_unref().
[nullable]
С версии: 2.10
gtk_recent_manager_has_item ()
gboolean gtk_recent_manager_has_item (GtkRecentManager *manager,const gchar *uri);
Проверяет, зарегистрирован ли недавно использованный ресурс с uri в менеджере последних ресурсов.
Параметры
manager | объект GtkRecentManager | |
uri | URI |
С версии: 2.10
gtk_recent_manager_move_item ()
gboolean gtk_recent_manager_move_item (GtkRecentManager *manager,const gchar *uri,const gchar *new_uri,GError **error);
Изменяет расположение недавно использованного ресурса с uri на new_uri.
Обратите внимание, что эта функция не повлияет на ресурс, на который указывают URI, а только на URI, используемый в списке недавно использованных ресурсов.
Параметры
manager | ||
uri | URI недавно использованного ресурса | |
new_uri | новый URI недавно использованного ресурса или | [allow-none] |
error | [allow-none] |
Возвращает
TRUE при успехе
Since: 2.10
gtk_recent_manager_get_items ()
GList *
gtk_recent_manager_get_items (GtkRecentManager *manager); Получает список недавно использованных ресурсов.
Параметры
manager |
Возвращает
список недавно выделенных GtkRecentInfo объектов. Используйте gtk_recent_info_unref() для каждого элемента в списке, а затем освободите сам список с помощью g_list_free().
[element-type GtkRecentInfo][transfer full]
Since: 2.10
gtk_recent_manager_purge_items ()
gint gtk_recent_manager_purge_items (GtkRecentManager *manager,GError **error);
Очищает все элементы из списка недавно использованных ресурсов.
Параметры
manager | ||
error | [allow-none] |
Возвращает
количество элементов, удаленных из списка недавно использованных ресурсов
Since: 2.10
gtk_recent_info_ref ()
GtkRecentInfo *
gtk_recent_info_ref (GtkRecentInfo *info); Увеличивает счётчик ссылок на recent_info на единицу.
Параметры
info |
Возвращает
объект recent info с увеличенным на единицу счётчиком ссылок
Since: 2.10
gtk_recent_info_unref ()
void
gtk_recent_info_unref (GtkRecentInfo *info); Уменьшает счётчик ссылок на info на единицу. Если счётчик ссылок достигнет нуля, info освобождается, и память освобождается.
Параметры
info |
Since: 2.10
gtk_recent_info_get_uri ()
const gchar *
gtk_recent_info_get_uri (GtkRecentInfo *info); Получает URI ресурса.
Параметры
info |
Возвращает
URI ресурса. Возвращённая строка принадлежит менеджеру ресурсов и не должна освобождаться.
Since: 2.10
gtk_recent_info_get_display_name ()
const gchar *
gtk_recent_info_get_display_name (GtkRecentInfo *info); Получает имя ресурса. Если имя не задано, возвращается имя файла ресурса.
Параметры
info |
Возвращает
отображаемое имя ресурса. Возвращённая строка принадлежит менеджеру ресурсов и не должна освобождаться.
Since: 2.10
gtk_recent_info_get_description ()
const gchar *
gtk_recent_info_get_description (GtkRecentInfo *info); Получает краткое описание ресурса.
Параметры
info |
Возвращает
описание ресурса. Возвращённая строка принадлежит менеджеру ресурсов и не должна освобождаться.
Since: 2.10
gtk_recent_info_get_mime_type ()
const gchar *
gtk_recent_info_get_mime_type (GtkRecentInfo *info); Получает тип MIME ресурса.
Параметры
info |
Возвращает
тип MIME ресурса. Возвращённая строка принадлежит менеджеру ресурсов и не должна освобождаться.
Since: 2.10
gtk_recent_info_get_added ()
time_t
gtk_recent_info_get_added (GtkRecentInfo *info); Получает метку времени (секунды с эпохи системы) добавления ресурса в список недавно использованных ресурсов.
Параметры
info |
Возвращает
число секунд, прошедших с эпохи системы, когда ресурс был добавлен в список, или -1 при ошибке.
Since: 2.10
gtk_recent_info_get_modified ()
time_t
gtk_recent_info_get_modified (GtkRecentInfo *info); Получает метку времени (секунды с эпохи системы) последнего изменения метаданных ресурса.
Параметры
info |
Возвращает
число секунд, прошедших с эпохи системы, когда ресурс был последний раз изменён, или -1 при ошибке.
Since: 2.10
gtk_recent_info_get_visited ()
time_t
gtk_recent_info_get_visited (GtkRecentInfo *info); Получает метку времени (секунды с эпохи системы), когда метаданные ресурса были в последний раз посещены.
Параметры
info |
Возвращает
количество секунд, прошедших с эпохи системы, когда ресурс был в последний раз посещен, или -1 при ошибке.
С: 2.10
gtk_recent_info_get_private_hint ()
gboolean
gtk_recent_info_get_private_hint (GtkRecentInfo *info); Получает значение флага «private». Ресурсы в списке недавно используемых, у которых этот флаг установлен в TRUE, должны отображаться только приложениями, которые их зарегистрировали.
Параметры
info |
С: 2.10
gtk_recent_info_get_application_info ()
gboolean gtk_recent_info_get_application_info (GtkRecentInfo *info,const gchar *app_name,const gchar **app_exec,guint *count,time_t *time_);
Получает данные о приложении, которое зарегистрировало ресурс, на который указывает info.
Если командная строка содержит какие-либо символы экранирования, определенные в спецификации хранения, они будут расширены.
Параметры
info | ||
app_name | имя приложения, которое зарегистрировало этот элемент | |
app_exec | место для возврата строки, содержащей командную строку. | [transfer none][out] |
count | место для возврата количества раз, когда этот элемент был зарегистрирован. | [out] |
time_ | место для возврата метки времени последней регистрации этого элемента для данного приложения. | [out] |
Возвращает
TRUE, если приложение с app_name зарегистрировало этот ресурс в списке недавно используемых, или FALSE в противном случае. Строка app_exec принадлежит GtkRecentInfo и не должна изменяться или освобождаться.
С: 2.10
gtk_recent_info_get_applications ()
gchar ** gtk_recent_info_get_applications (GtkRecentInfo *info,gsize *length);
Извлекает список приложений, которые зарегистрировали этот ресурс.
Параметры
info | ||
length | место для возврата длины возвращаемого списка. | [out][allow-none] |
Возвращает
новый выделенный массив строк, завершаемых NULL. Используйте g_strfreev() для его освобождения.
[array length=length zero-terminated=1][transfer full]
С: 2.10
gtk_recent_info_last_application ()
gchar *
gtk_recent_info_last_application (GtkRecentInfo *info); Получает имя последнего приложения, которое зарегистрировало недавно используемый ресурс, представленный info.
Параметры
info |
Возвращает
имя приложения. Используйте g_free() для его освобождения.
С: 2.10
gtk_recent_info_has-application ()
gboolean gtk_recent_info_has_application (GtkRecentInfo *info,const gchar *app_name);
Проверяет, зарегистрировало ли приложение этот ресурс с использованием app_name.
Параметры
info | ||
app_name | строка, содержащая имя приложения |
С: 2.10
gtk_recent_info_create_app_info ()
GAppInfo * gtk_recent_info_create_app_info (GtkRecentInfo *info,const gchar *app_name,GError **error);
Создаёт GAppInfo для указанного GtkRecentInfo
Параметры
Возвращает
созданный GAppInfo, или NULL. В случае ошибки error будет установлена либо с GTK_RECENT_MANAGER_ERROR, либо с G_IO_ERROR.
[transfer full]
gtk_recent_info_get_groups ()
gchar ** gtk_recent_info_get_groups (GtkRecentInfo *info,gsize *length);
Возвращает все зарегистрированные группы для недавно используемого элемента info. Массив возвращаемых имён групп будет NULL завершаться нулём, поэтому длина может быть NULL.
Параметры
info | ||
length | место для количества возвращённых групп. | [out][allow-none] |
Возвращаемое значение
новый динамически выделенный NULL завершаемый нулём массив строк. Используйте g_strfreev() для освобождения памяти.
[array length=length zero-terminated=1][transfer full]
С: 2.10
gtk_recent_info_has_group ()
gboolean gtk_recent_info_has_group (GtkRecentInfo *info,const gchar *group_name);
Проверяет, появляется ли group_name внутри зарегистрированных групп для недавно используемого элемента info.
Параметры
info | ||
group_name | имя группы |
Возвращаемое значение
TRUE, если группа найдена
С: 2.10
gtk_recent_info_get_icon ()
GdkPixbuf * gtk_recent_info_get_icon (GtkRecentInfo *info,gint size);
Возвращает значок размера size, связанный с MIME-типом ресурса.
Параметры
info | ||
size | размер значка в пикселях |
Возвращаемое значение
GdkPixbuf со значком или NULL. Используйте g_object_unref() по завершении использования значка.
[transfer full]
С: 2.10
gtk_recent_info_get_gicon ()
GIcon *
gtk_recent_info_get_gicon (GtkRecentInfo *info); Возвращает значок, связанный с MIME-типом ресурса.
Параметры
info |
Возвращаемое значение
GIcon со значком или NULL. Используйте g_object_unref() по завершении использования значка.
[transfer full]
С: 2.22
gtk_recent_info_get_short_name ()
gchar *
gtk_recent_info_get_short_name (GtkRecentInfo *info); Вычисляет корректную строку UTF-8, которая может использоваться в качестве имени элемента в меню или списке. Например, вызов этой функции для элемента, ссылающегося на «file:///foo/bar.txt», вернёт «bar.txt».
Параметры
info |
Возвращаемое значение
Новая динамически выделенная строка в кодировке UTF-8. Освободите её с помощью g_free()
С: 2.10
gtk_recent_info_get_uri_display ()
gchar *
gtk_recent_info_get_uri_display (GtkRecentInfo *info); Получает отображаемую версию URI ресурса. Если ресурс локальный, возвращает локальный путь; если ресурс нелокальный, возвращает закодированное в UTF-8 содержимое gtk_recent_info_get_uri().
Параметры
info |
Возвращаемое значение
динамически выделенная строка UTF-8, содержащая URI ресурса, или NULL. Используйте g_free() по завершении использования.
С: 2.10
gtk_recent_info_get_age ()
gint
gtk_recent_info_get_age (GtkRecentInfo *info); Получает количество прошедших дней с момента последнего обновления ресурса, указанного в info.
Параметры
info |
Возвращаемое значение
положительное целое число, содержащее количество дней, прошедших с момента последнего изменения этого ресурса.
С: 2.10
gtk_recent_info_is_local ()
gboolean
gtk_recent_info_is_local (GtkRecentInfo *info); Проверяет, является ли ресурс локальным, посмотрев на схему его URI.
Параметры
info |
Возвращаемое значение
TRUE, если ресурс локальный
С: 2.10
gtk_recent_info_exists ()
gboolean
gtk_recent_info_exists (GtkRecentInfo *info); Проверяет, существует ли ресурс, указанный в info. В данный момент эта проверка выполняется только для ресурсов, указывающих на локальные файлы.
Параметры
info |
Возвращаемое значение
TRUE, если ресурс существует
С: 2.10
gtk_recent_info_match ()
gboolean gtk_recent_info_match (GtkRecentInfo *info_a,GtkRecentInfo *info_b);
Проверяет, указывают ли два объекта GtkRecentInfo на один и тот же ресурс.
Параметры
info_a | объект GtkRecentInfo | |
info_b | объект GtkRecentInfo |
Возвращаемое значение
TRUE, если оба объекта GtkRecentInfo указывают на один и тот же ресурс, FALSE в противном случае
С: 2.10
Типы и значения
struct GtkRecentManager
struct GtkRecentManager;
Структура GtkRecentManager содержит только закрытые данные и должна быть обработана через предоставленный API.
С: 2.10
GtkRecentInfo
typedef struct _GtkRecentInfo GtkRecentInfo;
Объект GtkRecentInfo содержит только закрытые данные и должен быть обработан через предоставленный API.
Объект GtkRecentInfo содержит все метаданные, связанные с элементом в списке недавно использованных файлов.
С: 2.10
struct GtkRecentData
struct GtkRecentData {
gchar *display_name;
gchar *description;
gchar *mime_type;
gchar *app_name;
gchar *app_exec;
gchar **groups;
gboolean is_private;
};
Метаданные, которые необходимо передать в gtk_recent_manager_add_full() при регистрации недавно использованного ресурса.
Члены
gchar * | строка UTF-8, содержащая имя недавно использованного ресурса для отображения или | |
gchar * | строка UTF-8, содержащая краткое описание ресурса или | |
gchar * | тип MIME ресурса; | |
gchar * | имя приложения, которое регистрирует этот недавно использованный ресурс; | |
gchar * | строка командной строки для запуска ресурса; может содержать escape-символы «%f» и «%u», которые будут заменены на путь к файлу ресурса и URI соответственно, когда будет получена строка командной строки; | |
gchar ** | вектор строк, содержащих имена групп;. | [array zero-terminated=1] |
gboolean | должен ли этот ресурс отображаться только приложениями, которые его зарегистрировали. |
GTK_RECENT_MANAGER_ERROR
#define GTK_RECENT_MANAGER_ERROR (gtk_recent_manager_error_quark ())
Область ошибок GError для ошибок GtkRecentManager.
С: 2.10
enum GtkRecentManagerError
Коды ошибок для операций с GtkRecentManager.
Члены
GTK_RECENT_MANAGER_ERROR_NOT_FOUND | указанный URI не существует в списке недавно использованных ресурсов. | |
GTK_RECENT_MANAGER_ERROR_INVALID_URI | указанный URI некорректен. | |
GTK_RECENT_MANAGER_ERROR_INVALID_ENCODING | переданная строка не закодирована в UTF-8. | |
GTK_RECENT_MANAGER_ERROR_NOT_REGISTERED | приложение не зарегистрировало указанный элемент. | |
GTK_RECENT_MANAGER_ERROR_READ | ошибка при чтении файла недавно использованных ресурсов. | |
GTK_RECENT_MANAGER_ERROR_WRITE | ошибка при записи файла недавно использованных ресурсов. | |
GTK_RECENT_MANAGER_ERROR_UNKNOWN | неопределенная ошибка. |
С: 2.10
Подробное описание свойств
Свойство “filename”
“filename” gchar *
Полный путь к файлу для хранения и чтения списка недавно использованных ресурсов
Флаги: Чтение / Запись / Только для построения
Значение по умолчанию: NULL
С: 2.10
Свойство “size”
“size” gint
Размер списка недавно использованных ресурсов.
Флаги: Чтение
Допустимые значения: >= -1
Значение по умолчанию: 0
С: 2.10
Подробное описание сигналов
Сигнал “changed”
void user_function (GtkRecentManager *recent_manager, gpointer user_data)
Выдается, когда текущий менеджер недавно использованных ресурсов изменяет свое содержимое, например, при вызове gtk_recent_manager_add_item() или другим приложением.
Параметры
recent_manager | менеджер недавно использованных ресурсов | |
user_data | данные пользователя, установленные при подключении обработчика сигнала. |
Флаги: Run First
С: 2.10
См. также
© 2005–2020 The GNOME Project
Licensed under the GNU Lesser General Public License version 2.1 or later.
https://developer.gnome.org/gtk3/3.20/GtkRecentManager.html