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_recent_manager_new ()
GtkRecentManager *
gtk_recent_manager_new (void); Создаёт новый объект менеджера недавно использованных ресурсов. Объекты менеджеров используются для управления списком недавно использованных ресурсов. Объект GtkRecentManager отслеживает список недавно использованных ресурсов и генерирует сигнал «changed» каждый раз, когда что-то в списке изменяется.
Объекты GtkRecentManager ресурсоёмки: убедитесь, что вы создаёте их только тогда, когда это необходимо. Вы должны использовать gtk_recent_manager_get_default() вместо этого.
Возвращает
Новый созданный объект GtkRecentManager
gtk_recent_manager_get_default ()
GtkRecentManager *
gtk_recent_manager_get_default (void); Получает единственный экземпляр GtkRecentManager, который вы можете использовать в своём приложении, не беспокоясь об управлении памятью.
gtk_recent_manager_add_item ()
gboolean gtk_recent_manager_add_item (GtkRecentManager *manager,const char *uri);
Добавляет новый ресурс, указанный uri , в список недавно использованных ресурсов.
Эта функция автоматически извлекает некоторые необходимые метаданные и устанавливает другие метаданные по умолчанию; затем она передаёт данные gtk_recent_manager_add_full().
См. gtk_recent_manager_add_full(), если вы хотите явно определить метаданные для ресурса, указанного uri .
Параметры
manager | объект GtkRecentManager | |
uri | валидный URI |
Возвращает
TRUE если новый элемент был успешно добавлен в список недавно использованных ресурсов
gtk_recent_manager_add_full ()
gboolean gtk_recent_manager_add_full (GtkRecentManager *manager,const char *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 в противном случае
gtk_recent_manager_remove_item ()
gboolean gtk_recent_manager_remove_item (GtkRecentManager *manager,const char *uri,GError **error);
Удаляет ресурс, указанный uri , из списка недавно использованных ресурсов, управляемого менеджером.
Параметры
manager | объект GtkRecentManager | |
uri | URI удаляемого элемента | |
error | место для возврата GError, или | [allow-none] |
Возвращает
TRUE если элемент, указанный uri , был успешно удалён из списка недавно использованных ресурсов, и FALSE в противном случае
gtk_recent_manager_lookup_item ()
GtkRecentInfo * gtk_recent_manager_lookup_item (GtkRecentManager *manager,const char *uri,GError **error);
Ищет URI в списке недавно использованных ресурсов и возвращает GtkRecentInfo, содержащий информацию о ресурсе, такую как тип MIME или имя для отображения.
Параметры
manager | объект GtkRecentManager | |
uri | URI | |
error | место для возврата GError, или | [allow-none] |
Возвращает
GtkRecentInfo, содержащий информацию о ресурсе, указанном uri , или NULL если URI не был зарегистрирован в списке недавно использованных ресурсов. Освобождается с помощью gtk_recent_info_unref().
[nullable]
gtk_recent_manager_has_item ()
gboolean gtk_recent_manager_has_item (GtkRecentManager *manager,const char *uri);
Проверяет, зарегистрирован ли недавно использованный ресурс с uri в менеджере.
Параметры
manager | объект GtkRecentManager | |
uri | URI |
Возвращает
TRUE если ресурс найден, FALSE в противном случае
gtk_recent_manager_move_item ()
gboolean gtk_recent_manager_move_item (GtkRecentManager *manager,const char *uri,const char *new_uri,GError **error);
Изменяет расположение недавно использованного ресурса с uri на new_uri .
Обратите внимание, что эта функция не повлияет на ресурс, указанный URI, а только на URI, используемый в списке недавно использованных ресурсов.
Параметры
manager | объект GtkRecentManager | |
uri | URI недавно использованного ресурса | |
new_uri | новый URI недавно использованного ресурса, или | [allow-none] |
error | место для возврата GError, или | [allow-none] |
Возвращает
TRUE при успехе
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]
gtk_recent_manager_purge_items ()
int gtk_recent_manager_purge_items (GtkRecentManager *manager,GError **error);
Очищает все элементы из списка недавно используемых ресурсов.
Параметры
manager | ||
error | место для возврата GError, или | [allow-none] |
Возвращаемое значение
количество элементов, удаленных из списка недавно используемых ресурсов
gtk_recent_info_ref ()
GtkRecentInfo *
gtk_recent_info_ref (GtkRecentInfo *info); Увеличивает счетчик ссылок на recent_info на единицу.
Параметры
info |
Возвращаемое значение
объект recent info со счетчиком ссылок, увеличенным на единицу
gtk_recent_info_unref ()
void
gtk_recent_info_unref (GtkRecentInfo *info); Уменьшает счетчик ссылок на info на единицу. Если счетчик ссылок станет равным нулю, info будет удалён, а память освобождена.
Параметры
info |
gtk_recent_info_get_uri ()
const char *
gtk_recent_info_get_uri (GtkRecentInfo *info); Получает URI ресурса.
Параметры
info |
Возвращаемое значение
URI ресурса. Возвращаемая строка принадлежит менеджеру ресурсов и не должна освобождаться.
gtk_recent_info_get_display_name ()
const char *
gtk_recent_info_get_display_name (GtkRecentInfo *info); Получает имя ресурса. Если оно не определено, возвращается имя файла ресурса.
Параметры
info |
Возвращаемое значение
отображаемое имя ресурса. Возвращаемая строка принадлежит менеджеру ресурсов и не должна освобождаться.
gtk_recent_info_get_description ()
const char *
gtk_recent_info_get_description (GtkRecentInfo *info); Получает краткое описание ресурса.
Параметры
info |
Возвращаемое значение
описание ресурса. Возвращаемая строка принадлежит менеджеру ресурсов и не должна освобождаться.
gtk_recent_info_get_mime_type ()
const char *
gtk_recent_info_get_mime_type (GtkRecentInfo *info); Получает MIME-тип ресурса.
Параметры
info |
Возвращаемое значение
MIME-тип ресурса. Возвращаемая строка принадлежит менеджеру ресурсов и не должна освобождаться.
gtk_recent_info_get_added ()
GDateTime *
gtk_recent_info_get_added (GtkRecentInfo *info); Получает время добавления ресурса в список недавно используемых ресурсов.
Параметры
info |
Возвращаемое значение
объект GDateTime, содержащий время добавления ресурса.
[transfer none]
gtk_recent_info_get_modified ()
GDateTime *
gtk_recent_info_get_modified (GtkRecentInfo *info); Получает время последнего изменения метаданных ресурса.
Параметры
info |
Возвращаемое значение
объект GDateTime, содержащий время последнего изменения ресурса.
[transfer none]
gtk_recent_info_get_visited ()
GDateTime *
gtk_recent_info_get_visited (GtkRecentInfo *info); Получает время последнего посещения метаданных ресурса.
Параметры
info |
Возвращаемое значение
объект GDateTime, содержащий время последнего посещения ресурса.
[transfer none]
gtk_recent_info_get_private_hint ()
gboolean
gtk_recent_info_get_private_hint (GtkRecentInfo *info); Получает значение флага «приватный». Ресурсы в списке недавно используемых, у которых этот флаг установлен в TRUE, должны отображаться только приложениями, которые их зарегистрировали.
Параметры
info |
Возвращаемое значение
TRUE если флаг «приватный» найден, FALSE в противном случае
gtk_recent_info_get_application_info ()
gboolean gtk_recent_info_get_application_info (GtkRecentInfo *info,const char *app_name,const char **app_exec,guint *count,GDateTime **stamp);
Получает данные об приложении, зарегистрировавшем ресурс, на который указывает info.
Если командная строка содержит какие-либо управляющие символы, определённые в спецификации хранения, они будут расширены.
Параметры
info | ||
app_name | имя приложения, зарегистрировавшего этот элемент | |
app_exec | место для возврата строки, содержащей командную строку. | [transfer none][out] |
count | место для возврата количества раз, когда этот элемент был зарегистрирован. | [out] |
stamp | место для возврата времени последней регистрации этого элемента для данного приложения. | [out][transfer none] |
Возвращаемое значение
TRUE , если приложение с именем app_name зарегистрировало этот ресурс в списке недавно использовавшихся элементов, или FALSE в противном случае. Строка app_exec принадлежит объекту GtkRecentInfo и не должна изменяться или освобождаться.
gtk_recent_info_get_applications ()
char ** 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]
gtk_recent_info_last_application ()
char *
gtk_recent_info_last_application (GtkRecentInfo *info); Получает имя последнего приложения, которое зарегистрировало недавно использованный ресурс, представленный info.
Параметры
info |
Возвращаемое значение
имя приложения. Используйте g_free() для его освобождения.
gtk_recent_info_has-application ()
gboolean gtk_recent_info_has_application (GtkRecentInfo *info,const char *app_name);
Проверяет, зарегистрировало ли приложение этот ресурс с использованием app_name.
Параметры
info | ||
app_name | строка, содержащая имя приложения |
Возвращаемое значение
TRUE , если приложение с именем app_name найдено, FALSE в противном случае.
gtk_recent_info_create-app-info ()
GAppInfo * gtk_recent_info_create_app_info (GtkRecentInfo *info,const char *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 ()
char ** 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]
gtk_recent_info_has-group ()
gboolean gtk_recent_info_has_group (GtkRecentInfo *info,const char *group_name);
Проверяет, появляется ли group_name в группах, зарегистрированных для недавно использованного элемента info.
Параметры
info | ||
group_name | имя группы |
Возвращаемое значение
TRUE , если группа найдена.
gtk_recent_info_get_gicon ()
GIcon *
gtk_recent_info_get_gicon (GtkRecentInfo *info); Получает значок, связанный с типом MIME ресурса.
Параметры
info |
Возвращаемое значение
a GIcon содержащий значок, или NULL. Используйте g_object_unref() после окончания использования значка.
[nullable][transfer full]
gtk_recent_info_get_short_name ()
char *
gtk_recent_info_get_short_name (GtkRecentInfo *info); Вычисляет допустимую строку UTF-8, которая может использоваться в качестве имени элемента в меню или списке. Например, вызов этой функции для элемента, который ссылается на «file:///foo/bar.txt», вернёт «bar.txt».
Параметры
info | объект GtkRecentInfo |
Возвращает
Новую строку, выделенную в кодировке UTF-8. Освободите её с помощью g_free()
gtk_recent_info_get_uri_display ()
char *
gtk_recent_info_get_uri_display (GtkRecentInfo *info); Получает отображаемую версию URI ресурса. Если ресурс локальный, возвращает локальный путь; если ресурс не локальный, возвращает закодированное в UTF-8 содержимое gtk_recent_info_get_uri().
Параметры
info | объект GtkRecentInfo |
Возвращает
новую выделенную строку UTF-8, содержащую URI ресурса, или NULL. Используйте g_free() после завершения работы с ней.
[nullable]
gtk_recent_info_get_age ()
int
gtk_recent_info_get_age (GtkRecentInfo *info); Возвращает количество прошедших дней с момента последнего обновления ресурса, указанного параметром info.
Параметры
info | объект GtkRecentInfo |
Возвращает
положительное целое число, содержащее количество прошедших дней с момента последнего изменения этого ресурса
gtk_recent_info_is_local ()
gboolean
gtk_recent_info_is_local (GtkRecentInfo *info); Проверяет, является ли ресурс локальным, проверяя схему его URI.
Параметры
info | объект GtkRecentInfo |
Возвращает
TRUE, если ресурс локальный
gtk_recent_info_exists ()
gboolean
gtk_recent_info_exists (GtkRecentInfo *info); Проверяет, существует ли ресурс, указанный параметром info. В настоящее время эта проверка выполняется только для ресурсов, указывающих на локальные файлы.
Параметры
info | объект GtkRecentInfo |
Возвращает
TRUE, если ресурс существует
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 в противном случае
Типы и значения
struct GtkRecentManager
struct GtkRecentManager;
GtkRecentManager содержит только закрытые данные и должен использоваться с помощью предоставленного API.
GtkRecentInfo
typedef struct _GtkRecentInfo GtkRecentInfo;
GtkRecentInfo содержит только закрытые данные и должен использоваться с помощью предоставленного API.
GtkRecentInfo содержит все метаданные, связанные с записью в списке недавно использованных файлов.
struct GtkRecentData
struct GtkRecentData {
char *display_name;
char *description;
char *mime_type;
char *app_name;
char *app_exec;
char **groups;
gboolean is_private;
};
Метаданные, которые необходимо передать функции gtk_recent_manager_add_full() при регистрации недавно использованного ресурса.
Члены
char * | строка UTF-8, содержащая отображаемое имя недавно использованного ресурса, или | |
char * | строка UTF-8, содержащая краткое описание ресурса, или | |
char * | тип MIME ресурса; | |
char * | имя приложения, которое регистрирует этот недавно использованный ресурс; | |
char * | командная строка для запуска этого ресурса; может содержать escape-символы «%f» и «%u», которые будут заменены на путь к файлу ресурса и URI соответственно при получении командной строки; | |
char ** | вектор строк, содержащий имена групп. | [array zero-terminated=1] |
gboolean | указывается ли, что этот ресурс должен отображаться только приложениями, которые его зарегистрировали. |
GTK_RECENT_MANAGER_ERROR
#define GTK_RECENT_MANAGER_ERROR (gtk_recent_manager_error_quark ())
Домен GError для ошибок GtkRecentManager.
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 | неопределенная ошибка. |
Подробное описание свойств
Свойство “filename”
“filename” char *
Полный путь к файлу, используемому для хранения и чтения списка недавно используемых ресурсов.
Владелец: GtkRecentManager
Флаги: Чтение / Запись / Только для создания
Значение по умолчанию: NULL
Свойство “size”
“size” int
Размер списка недавно используемых ресурсов.
Владелец: GtkRecentManager
Флаги: Только для чтения
Допустимые значения: >= -1
Значение по умолчанию: 0
Подробное описание сигналов
Сигнал “changed”
void user_function (GtkRecentManager *recent_manager, gpointer user_data)
Вызывается, когда текущий менеджер недавно используемых ресурсов изменяет свое содержимое, например, при вызове gtk_recent_manager_add_item() или другим приложением.
Параметры
recent_manager | менеджер недавно используемых ресурсов | |
user_data | данные пользователя, заданные при подключении обработчика сигнала. |
Флаги: Выполняется первым
См. также
GBookmarkFile, GtkSettings, GtkRecentChooser
© 2005–2020 The GNOME Project
Licensed under the GNU Lesser General Public License version 2.1 or later.
https://developer-old.gnome.org/gtk4/4.0/GtkRecentManager.html