GtkRecentManager
GtkRecentManager — Управление недавно использованными файлами
Функции
Сигналы
| void | changed | Выполнять сначала |
Типы и значения
| 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, который можно использовать в своём приложении, не беспокоясь об управлении памятью.
С: 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 .
Параметры
менеджер | объект 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; краткое описание элемента; следует ли рассматривать элемент как частный — то есть, следует ли отображать его только приложениям, которые его зарегистрировали.
Параметры
менеджер | объект 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, из списка недавно использованных ресурсов, обрабатываемого менеджером недавно использованных ресурсов.
Параметры
менеджер | объект GtkRecentManager | |
uri | URI удаляемого элемента | |
error | место для возврата GError, или | [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 или имя для отображения.
Параметры
менеджер | объект GtkRecentManager | |
uri | URI | |
error | место для возврата GError, или | [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 в менеджере недавно использованных ресурсов.
Параметры
менеджер | объект GtkRecentManager | |
uri | URI |
Возвращает
TRUE если ресурс найден, FALSE в противном случае
С: 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, используемый в списке недавно используемых ресурсов.
Параметры
менеджер | ||
uri | URI недавно используемого ресурса | |
new_uri | новый URI недавно используемого ресурса или | [allow-none] |
ошибка | место для возврата GError или | [allow-none] |
Возвращаемое значение
TRUE при успешном выполнении
Since: 2.10
gtk_recent_manager_get_items ()
GList *
gtk_recent_manager_get_items (GtkRecentManager *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);
Очищает все элементы из списка недавно используемых ресурсов.
Параметры
менеджер | ||
ошибка | место для возврата GError, или | [allow-none] |
Возвращаемое значение
количество элементов, удаленных из списка недавно используемых ресурсов
Since: 2.10
gtk_recent_info_ref ()
GtkRecentInfo *
gtk_recent_info_ref (GtkRecentInfo *info); Увеличивает счетчик ссылок на recent_info на единицу.
Параметры
информация |
Возвращаемое значение
объект recent info со счетчиком ссылок, увеличенным на единицу
Since: 2.10
gtk_recent_info_unref ()
void
gtk_recent_info_unref (GtkRecentInfo *info); Уменьшает счетчик ссылок на info на единицу. Если счетчик ссылок достигнет нуля, info освобождается, и память освобождается.
Параметры
информация |
Since: 2.10
gtk_recent_info_get_uri ()
const gchar *
gtk_recent_info_get_uri (GtkRecentInfo *info); Получает URI ресурса.
Параметры
информация |
Возвращаемое значение
URI ресурса. Возвращаемая строка принадлежит менеджеру ресурсов и не должна освобождаться.
Since: 2.10
gtk_recent_info_get_display_name ()
const gchar *
gtk_recent_info_get_display_name (GtkRecentInfo *info); Получает имя ресурса. Если оно не определено, возвращается имя файла ресурса.
Параметры
информация |
Возвращаемое значение
отображаемое имя ресурса. Возвращаемая строка принадлежит менеджеру ресурсов и не должна освобождаться.
Since: 2.10
gtk_recent_info_get_description ()
const gchar *
gtk_recent_info_get_description (GtkRecentInfo *info); Получает краткое описание ресурса.
Параметры
информация |
Возвращаемое значение
описание ресурса. Возвращаемая строка принадлежит менеджеру ресурсов и не должна освобождаться.
Since: 2.10
gtk_recent_info_get_mime_type ()
const gchar *
gtk_recent_info_get_mime_type (GtkRecentInfo *info); Получает MIME-тип ресурса.
Параметры
информация |
Возвращаемое значение
MIME-тип ресурса. Возвращаемая строка принадлежит менеджеру ресурсов и не должна освобождаться.
Since: 2.10
gtk_recent_info_get_added ()
time_t
gtk_recent_info_get_added (GtkRecentInfo *info); Получает метку времени (секунды с эпохи системы) добавления ресурса в список недавно используемых ресурсов.
Параметры
информация |
Возвращаемое значение
количество секунд, прошедших с эпохи системы, когда ресурс был добавлен в список, или -1 в случае ошибки.
Since: 2.10
gtk_recent_info_get_modified ()
time_t
gtk_recent_info_get_modified (GtkRecentInfo *info); Получает метку времени (секунды с эпохи системы) последнего изменения метаданных ресурса.
Параметры
информация |
Возвращаемое значение
количество секунд, прошедших с эпохи системы, когда ресурс был последний раз изменён, или -1 в случае ошибки.
Since: 2.10
gtk_recent_info_get_visited ()
time_t
gtk_recent_info_get_visited (GtkRecentInfo *info); Получает метку времени (секунды с эпохи системы) последнего посещения метаданных ресурса.
Параметры
информация |
Возвращаемое значение
количество секунд, прошедших с эпохи системы, когда ресурс был последний раз посещён, или -1 в случае ошибки.
Since: 2.10
gtk_recent_info_get_private_hint ()
gboolean
gtk_recent_info_get_private_hint (GtkRecentInfo *info); Получает значение флага «приватный». Ресурсы в списке недавно использовавшихся, у которых этот флаг установлен в TRUE должны отображаться только приложениями, которые их зарегистрировали.
Параметры
info |
Возвращает
TRUE если флаг приватности был найден, FALSE в противном случае
Since: 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 и не должна быть изменена или освобождена
Since: 2.10
gtk_recent_info_get_applications ()
gchar ** gtk_recent_info_get_applications (GtkRecentInfo *info,gsize *length);
Возвращает список приложений, которые зарегистрировали этот ресурс.
Параметры
info | ||
length | место для длины возвращённого списка. | [out][allow-none] |
Возвращает
новый выделенный массив строк, завершённый нулём. Используйте g_strfreev() для его освобождения.
[array length=length zero-terminated=1][transfer full]
Since: 2.10
gtk_recent_info_last_application ()
gchar *
gtk_recent_info_last_application (GtkRecentInfo *info); Получает имя последнего приложения, которое зарегистрировало ресурс недавно использовавшихся, представленный info .
Параметры
info |
Возвращает
имя приложения. Используйте g_free() для его освобождения.
Since: 2.10
gtk_recent_info_has_application ()
gboolean gtk_recent_info_has_application (GtkRecentInfo *info,const gchar *app_name);
Проверяет, зарегистрировало ли приложение этот ресурс, используя app_name .
Параметры
info | ||
app_name | строка, содержащая имя приложения |
Возвращает
TRUE если приложение с именем app_name было найдено, FALSE в противном случае
Since: 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
Параметры
info | ||
app_name | имя приложения, которое должно быть сопоставлено с GAppInfo; если используется | [allow-none] |
error | место для GError, или | [allow-none] |
Возвращает
созданный GAppInfo, или NULL. В случае ошибки, error будет установлено либо с GTK_RECENT_MANAGER_ERROR, либо с G_IO_ERROR.
[nullable][transfer full]
gtk_recent_info_get_groups ()
gchar ** gtk_recent_info_get_groups (GtkRecentInfo *info,gsize *length);
Возвращает все группы, зарегистрированные для элемента недавно использовавшихся info . Массив возвращаемых имён групп будет завершён нулём, поэтому длина может быть NULL.
Параметры
info | ||
length | место для числа возвращённых групп. | [out][allow-none] |
Возвращает
новый выделенный массив строк, завершённый нулём. Используйте g_strfreev() для его освобождения.
[array length=length zero-terminated=1][transfer full]
Since: 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 если группа найдена
Since: 2.10
gtk_recent_info_get_icon ()
GdkPixbuf * gtk_recent_info_get_icon (GtkRecentInfo *info,gint size);
Возвращает значок размера size, связанный с MIME-типом ресурса.
Параметры
info | ||
size | размер значка в пикселях |
Возвращаемое значение
a GdkPixbuf содержащий значок или NULL. Используйте g_object_unref() по завершении использования значка.
[nullable][transfer full]
Since: 2.10
gtk_recent_info_get_gicon ()
GIcon *
gtk_recent_info_get_gicon (GtkRecentInfo *info); Возвращает значок, связанный с MIME-типом ресурса.
Параметры
info |
Возвращаемое значение
a GIcon содержащий значок, или NULL. Используйте g_object_unref() по завершении использования значка.
[nullable][transfer full]
Since: 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()
Since: 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() по завершении использования строки.
[nullable]
Since: 2.10
gtk_recent-info_get_age ()
gint
gtk_recent_info_get_age (GtkRecentInfo *info); Возвращает количество дней, прошедших с момента последнего обновления ресурса, на который указывает info .
Параметры
info |
Возвращаемое значение
положительное целое число, содержащее количество дней, прошедших с момента последнего изменения ресурса
Since: 2.10
gtk_recent_info_is_local ()
gboolean
gtk_recent_info_is_local (GtkRecentInfo *info); Проверяет, является ли ресурс локальным, проверяя схему его URI.
Параметры
info |
Возвращаемое значение
TRUE если ресурс локальный
Since: 2.10
gtk_recent_info_exists ()
gboolean
gtk_recent_info_exists (GtkRecentInfo *info); Проверяет, существует ли ресурс, на который указывает info. В настоящий момент эта проверка выполняется только для ресурсов, указывающих на локальные файлы.
Параметры
info |
Возвращаемое значение
TRUE если ресурс существует
Since: 2.10
gtk_recent-info_match ()
gboolean gtk_recent_info_match (GtkRecentInfo *info_a,GtkRecentInfo *info_b);
Проверяет, указывают ли два объекта GtkRecentInfo на один и тот же ресурс.
Параметры
info_a | ||
info_b |
Возвращаемое значение
TRUE если оба GtkRecentInfo указывают на один и тот же ресурс, FALSE в противном случае
Since: 2.10
Типы и значения
структура GtkRecentManager
struct GtkRecentManager;
GtkRecentManager содержит только приватные данные и должна использоваться с помощью предоставленного API.
С: 2.10
GtkRecentInfo
typedef struct _GtkRecentInfo GtkRecentInfo;
GtkRecentInfo содержит только приватные данные и должна использоваться с помощью предоставленного API.
GtkRecentInfo содержит все метаданные, связанные с записью в списке недавно использовавшихся файлов.
С: 2.10
структура 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 ** | вектор строк, содержащих имена групп;. | [массив нулевой-терминированный=1] |
gboolean | определяет, должен ли этот ресурс отображаться только приложениями, которые его зарегистрировали, или нет. |
GTK_RECENT_MANAGER_ERROR
#define GTK_RECENT_MANAGER_ERROR (gtk_recent_manager_error_quark ())
Область GError для ошибок GtkRecentManager.
С: 2.10
перечисление 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” char *
Полный путь к файлу для хранения и чтения списка недавно использовавшихся ресурсов
Владелец: GtkRecentManager
Флаги: Чтение / Запись / Только для создания
Значение по умолчанию: NULL
С: 2.10
Свойство “size”
“size” int
Размер списка недавно использовавшихся ресурсов.
Владелец: GtkRecentManager
Флаги: Чтение
Допустимые значения: >= -1
Значение по умолчанию: 0
С: 2.10
Подробности сигналов
Сигнал “changed”
void user_function (GtkRecentManager *recent_manager, gpointer user_data)
Выдаётся, когда текущий менеджер недавно использовавшихся ресурсов изменяет своё содержимое, либо вызовом gtk_recent_manager_add_item(), либо другим приложением.
Параметры
recent_manager | менеджер недавно использовавшихся ресурсов | |
user_data | данные пользователя, заданные при подключении обработчика сигнала. |
Флаги: Выполняется в первую очередь
С: 2.10
См. также
GBookmarkFile, GtkSettings, GtkRecentChooser
© 2005–2020 The GNOME Project
Licensed under the GNU Lesser General Public License version 2.1 or later.
https://developer.gnome.org/gtk3/3.24/GtkRecentManager.html