Spec-Zone.ru › GTK 4.0

GtkRecentManager

GtkRecentManager — Управление файлами, которые использовались недавно

Функции

GtkRecentManager * gtk_recent_manager_new ()
GtkRecentManager * gtk_recent_manager_get_default ()
gboolean gtk_recent_manager_add_item ()
gboolean gtk_recent_manager_add_full ()
gboolean gtk_recent_manager_remove_item ()
GtkRecentInfo * gtk_recent_manager_lookup_item ()
gboolean gtk_recent_manager_has-item ()
gboolean gtk_recent_manager_move-item ()
GList * gtk_recent_manager_get_items ()
int gtk_recent_manager_purge-items ()
GtkRecentInfo * gtk_recent_info_ref ()
void gtk_recent_info_unref ()
const char * gtk_recent_info_get_uri ()
const char * gtk_recent_info_get_display_name ()
const char * gtk_recent_info_get_description ()
const char * gtk_recent_info_get_mime_type ()
GDateTime * gtk_recent_info_get_added ()
GDateTime * gtk_recent_info_get_modified ()
GDateTime * gtk_recent_info_get_visited ()
gboolean gtk_recent_info_get_private_hint ()
gboolean gtk_recent_info_get_application_info ()
char ** gtk_recent_info_get_applications ()
char * gtk_recent_info_last_application ()
gboolean gtk_recent_info_has-application ()
GAppInfo * gtk_recent_info_create-app-info ()
char ** gtk_recent-info-get-groups ()
gboolean gtk_recent_info_has-group ()
GIcon * gtk_recent_info_get-gicon ()
char * gtk_recent_info_get-short-name ()
char * gtk_recent_info_get-uri-display ()
int gtk_recent_info_get-age ()
gboolean gtk_recent_info_is-local ()
gboolean gtk_recent_info_exists ()
gboolean gtk_recent_info_match ()

Свойства

char * filename Чтение / Запись / Только построение
int size Только чтение

Сигналы

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, который вы можете использовать в своём приложении, не беспокоясь об управлении памятью.

Возвращает

Уникальный GtkRecentManager. Не используйте ref или unref для него.

[transfer none]

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, или NULL.

[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, или NULL.

[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 недавно использованного ресурса, или NULL для удаления элемента, указанного uri , из списка.

[allow-none]

error

место для возврата GError, или NULL.

[allow-none]

Возвращает

TRUE при успехе

gtk_recent_manager_get_items ()

GList *
gtk_recent_manager_get_items (GtkRecentManager *manager);

Получает список недавно используемых ресурсов.

Параметры

manager

a GtkRecentManager

Возвращаемое значение

список недавно выделенных объектов 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

a GtkRecentManager

error

место для возврата GError, или NULL.

[allow-none]

Возвращаемое значение

количество элементов, удаленных из списка недавно используемых ресурсов

gtk_recent_info_ref ()

GtkRecentInfo *
gtk_recent_info_ref (GtkRecentInfo *info);

Увеличивает счетчик ссылок на recent_info на единицу.

Параметры

info

a GtkRecentInfo

Возвращаемое значение

объект recent info со счетчиком ссылок, увеличенным на единицу

gtk_recent_info_unref ()

void
gtk_recent_info_unref (GtkRecentInfo *info);

Уменьшает счетчик ссылок на info на единицу. Если счетчик ссылок станет равным нулю, info будет удалён, а память освобождена.

Параметры

info

a GtkRecentInfo

gtk_recent_info_get_uri ()

const char *
gtk_recent_info_get_uri (GtkRecentInfo *info);

Получает URI ресурса.

Параметры

info

a GtkRecentInfo

Возвращаемое значение

URI ресурса. Возвращаемая строка принадлежит менеджеру ресурсов и не должна освобождаться.

gtk_recent_info_get_display_name ()

const char *
gtk_recent_info_get_display_name (GtkRecentInfo *info);

Получает имя ресурса. Если оно не определено, возвращается имя файла ресурса.

Параметры

info

a GtkRecentInfo

Возвращаемое значение

отображаемое имя ресурса. Возвращаемая строка принадлежит менеджеру ресурсов и не должна освобождаться.

gtk_recent_info_get_description ()

const char *
gtk_recent_info_get_description (GtkRecentInfo *info);

Получает краткое описание ресурса.

Параметры

info

a GtkRecentInfo

Возвращаемое значение

описание ресурса. Возвращаемая строка принадлежит менеджеру ресурсов и не должна освобождаться.

gtk_recent_info_get_mime_type ()

const char *
gtk_recent_info_get_mime_type (GtkRecentInfo *info);

Получает MIME-тип ресурса.

Параметры

info

a GtkRecentInfo

Возвращаемое значение

MIME-тип ресурса. Возвращаемая строка принадлежит менеджеру ресурсов и не должна освобождаться.

gtk_recent_info_get_added ()

GDateTime *
gtk_recent_info_get_added (GtkRecentInfo *info);

Получает время добавления ресурса в список недавно используемых ресурсов.

Параметры

info

a GtkRecentInfo

Возвращаемое значение

объект GDateTime, содержащий время добавления ресурса.

[transfer none]

gtk_recent_info_get_modified ()

GDateTime *
gtk_recent_info_get_modified (GtkRecentInfo *info);

Получает время последнего изменения метаданных ресурса.

Параметры

info

a GtkRecentInfo

Возвращаемое значение

объект GDateTime, содержащий время последнего изменения ресурса.

[transfer none]

gtk_recent_info_get_visited ()

GDateTime *
gtk_recent_info_get_visited (GtkRecentInfo *info);

Получает время последнего посещения метаданных ресурса.

Параметры

info

a GtkRecentInfo

Возвращаемое значение

объект GDateTime, содержащий время последнего посещения ресурса.

[transfer none]

gtk_recent_info_get_private_hint ()

gboolean
gtk_recent_info_get_private_hint (GtkRecentInfo *info);

Получает значение флага «приватный». Ресурсы в списке недавно используемых, у которых этот флаг установлен в TRUE, должны отображаться только приложениями, которые их зарегистрировали.

Параметры

info

a GtkRecentInfo

Возвращаемое значение

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

a GtkRecentInfo

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

a GtkRecentInfo

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

a GtkRecentInfo

Возвращаемое значение

имя приложения. Используйте g_free() для его освобождения.

gtk_recent_info_has-application ()

gboolean
gtk_recent_info_has_application (GtkRecentInfo *info,
                                 const char *app_name);

Проверяет, зарегистрировало ли приложение этот ресурс с использованием app_name.

Параметры

info

a GtkRecentInfo

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

a GtkRecentInfo

app_name

имя приложения, которое должно быть сопоставлено с GAppInfo; если используется NULL, используется приложение по умолчанию для типа MIME.

[allow-none]

error

место для возврата GError, или NULL.

[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

a GtkRecentInfo

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

a GtkRecentInfo

group_name

имя группы

Возвращаемое значение

TRUE , если группа найдена.

gtk_recent_info_get_gicon ()

GIcon *
gtk_recent_info_get_gicon (GtkRecentInfo *info);

Получает значок, связанный с типом MIME ресурса.

Параметры

info

a GtkRecentInfo

Возвращаемое значение

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 *display_name;

строка UTF-8, содержащая отображаемое имя недавно использованного ресурса, или NULL;

char *description;

строка UTF-8, содержащая краткое описание ресурса, или NULL;

char *mime_type;

тип MIME ресурса;

char *app_name;

имя приложения, которое регистрирует этот недавно использованный ресурс;

char *app_exec;

командная строка для запуска этого ресурса; может содержать escape-символы «%f» и «%u», которые будут заменены на путь к файлу ресурса и URI соответственно при получении командной строки;

char **groups;

вектор строк, содержащий имена групп.

[array zero-terminated=1]

gboolean is_private;

указывается ли, что этот ресурс должен отображаться только приложениями, которые его зарегистрировали.

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

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API