Класс Notification

Разрешает публикацию уведомлений Подробнее...

Заголовочный файл: #include
Создается экземпляром: Notification

Публичные типы

  • enum CloseReason { Expired, DismissedByUser, Closed }
  • enum Urgency { Low, Normal, Critical }

Свойства

Публичные методы

Сигналы

Статические публичные члены

  • QList notifications()
  • QList notifications(const QString &owner)
  • QList notificationsByCategory(const QString &category)
  • QVariant remoteAction(const QString &name, const QString &displayName, const QString &service, const QString &path, const QString &iface, const QString &method, const QVariantList &arguments = QVariantList())

Подробное описание

Разрешает публикацию уведомлений

Тип Notification представляет собой удобный способ работы с уведомлениями. Тип основан на спецификации уведомлений рабочего стола (Desktop Notifications Specification), реализованной в Nemo.

Этот класс позволяет клиентским приложениям создавать уведомления, которые могут использоваться для обмена данными с диспетчером уведомлений графической оболочки Lipstick через D-Bus. Это упрощает процесс создания, отображения и закрытия уведомлений, т.к. сам класс управляет всеми необходимыми процедурами обмена данными.

Описание типов класса

enum Notification::CloseReason

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

Константа Значение Описание
Notification::Expired 0 Истек период expireTimeout уведомления.
Notification::DismissedByUser 1 Уведомление было отклонено пользователем.
Notification::Closed 2 Уведомление было закрыто программным способом.

enum Notification::Urgency

В данном перечислении описаны уровни срочности уведомления.

Константа Значение Описание
Notification::Low 0 Несрочное уведомление.
Notification::Normal 1 Обычное уведомление.
Notification::Critical 2 Очень важное уведомление.

Описание свойств

appIcon : QString

Значок приложения, с которым связано уведомление. Значением свойства может быть либо URI, либо абсолютный путь к файлу, либо токен, интерпретируемый объектом Theme.

Данное свойство транслируется как параметр "app_icon" метода Notify.

Методы доступа:

  • QString appIcon() const
  • void setAppIcon(const QString &appIcon)

Сигнал уведомления:

  • void appIconChanged()

appName : QString

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

Это должно быть официальное название приложения и, по возможности, переведенное на язык операционной системы.

Данное свойство транслируется как параметр "app_name" метода Notify.

Методы доступа:

  • QString appName() const
  • void setAppName(const QString &appName)

Сигнал уведомления:

  • void appNameChanged()

body : QString

Необязательный текст тела уведомления.

Данное свойство транслируется как параметр "body" метода Notify.

Методы доступа:

  • QString body() const
  • void setBody(const QString &body)

Сигнал уведомления:

  • void bodyChanged()

category : QString

Категория, чьи свойства должны применяться к уведомлению с помощью диспетчера уведомлений.

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

Данное свойство транслируется как значение стандартной подсказки "category". Подсказки (hints) - это дополнительные необязательные данные, передаваемые на сервер уведомлений.

Методы доступа:

  • QString category() const
  • void setCategory(const QString &category)

Сигнал уведомления:

  • void categoryChanged()

expireTimeout : qint32

Количество миллисекунд, по истечении которых показанное уведомление будет автоматически закрыто. Значение 0 означает, что уведомление не будет закрыто автоматически. Значение -1 означает, что время истечения задается в диспетчере уведомлений.

Значение по умолчанию: -1.

Данное свойство транслируется как параметр "expire_timeout" метода Notify.

Методы доступа:

  • qint32 expireTimeout() const
  • void setExpireTimeout(qint32 milliseconds)

Сигнал уведомления:

  • void expireTimeoutChanged()

icon : QString

Значок уведомления. Значением свойства может быть либо URI, либо абсолютный путь к файлу, либо токен, интерпретируемый объектом Theme.

В зависимости от реализации платформы, данное свойство может иметь приоритет на свойством appIcon.

Данное свойство транслируется как значение расширенной подсказки "x-nemo-icon". Подсказки (hints) - это дополнительные необязательные данные, передаваемые на сервер уведомлений.

Методы доступа:

  • QString icon() const
  • void setIcon(const QString &icon)

Сигнал уведомления:

  • void iconChanged()

isTransient : bool

Методы доступа:

  • bool isTransient() const
  • void setIsTransient(bool value)

Сигнал уведомления:

  • void isTransientChanged()

itemCount : int

Количество элементов, представляемых в уведомлении. Например, в одном уведомлении может сообщаться о четырех пропущенных звонках. Для этого значение данного свойство необходимо установить равным 4. Значение по умолчанию: 1.

Данное свойство транслируется как значение расширенной подсказки "x-nemo-item-count". Подсказки (hints) - это дополнительные необязательные данные, передаваемые на сервер уведомлений.

Методы доступа:

  • int itemCount() const
  • void setItemCount(int itemCount)

Сигнал уведомления:

  • void itemCountChanged()

maxContentLines : int

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

Данное свойство транслируется как значение расширенной подсказки "x-nemo-max-content-lines". Подсказки (hints) - это дополнительные необязательные данные, передаваемые на сервер уведомлений.

Методы доступа:

  • int maxContentLines() const
  • void setMaxContentLines(int max)

Сигнал уведомления:

  • void maxContentLinesChanged()

previewBody : QString

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

Если свойствам previewSummary или previewBody заданы значения, то при публикации уведомления графическая оболочка Lipstick создаст для него область предварительного просмотра (при условии, что предварительный просмотр уведомлений не запрещен в диспетчере уведомлений).

Данное свойство транслируется как значение расширенной подсказки "x-nemo-preview-body". Подсказки (hints) - это дополнительные необязательные данные, передаваемые на сервер уведомлений.

Методы доступа:

  • QString previewBody() const
  • void setPreviewBody(const QString &previewBody)

Сигнал уведомления:

  • void previewBodyChanged()

previewSummary : QString

Текст кратких сведений, показываемый в области предварительного просмотра уведомления.

Если свойствам previewSummary или previewBody заданы значения, то при публикации уведомления графическая оболочка Lipstick создаст для него область предварительного просмотра (при условии, что предварительный просмотр уведомлений не запрещен в диспетчере уведомлений).

Данное свойство транслируется как значение расширенной подсказки "x-nemo-preview-summary". Подсказки (hints) - это дополнительные необязательные данные, передаваемые на сервер уведомлений.

Методы доступа:

  • QString previewSummary() const
  • void setPreviewSummary(const QString &previewSummary)

Сигнал уведомления:

  • void previewSummaryChanged()

remoteActions : QVariantList

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

Дистанционные действия представляют собой вызовы команд D-Bus, испускаемые диспетчером уведомлений, когда уведомление активируется пользователем. В параметре remoteAction описывается спецификация дистанционных действий.

Примечание: текущая реализация графической оболочки Lipstick вызовет действие с названием "default" при активации пользователем отдельного уведомления. Если пользователь активирует группу уведомлений, будет вызвано действие с названием "app" при условии, что данное действие распространяется на всех пользователей группы.

Данное свойство транслируется как параметр "actions" метода Notify и как значение расширенной подсказки "x-nemo-remote-action-". Подсказки (hints) - это дополнительные необязательные данные, передаваемые на сервер уведомлений.

Методы доступа:

  • QVariantList remoteActions() const
  • void setRemoteActions(const QVariantList &remoteActions)

Сигнал уведомления:

  • void remoteActionsChanged()

См. также remoteAction().

replacesId : quint32

Идентификатор, который используется для замены или удаления данного уведомления.

Если уведомление публикуется с ненулевым идентификатором, то оно заменит собой все существующие уведомления с таким идентификатором без какого-либо оповещения пользователя. Идентификатор неопубликованного уведомления равен нулю. Идентификатор автоматически обновляется после сообщения об успешной публикации уведомления диспетчером уведомлений.

Данное свойство транслируется как параметр "replaces_id" метода Notify.

Методы доступа:

  • quint32 replacesId() const
  • void setReplacesId(quint32 id)

Сигнал уведомления:

  • void replacesIdChanged()

summary : QString

Текст, кратко описывающий уведомление. Это краткое описание должно умещаться в одну строку.

Данное свойство транслируется как параметр "summary" метода Notify.

Методы доступа:

  • QString summary() const
  • void setSummary(const QString &summary)

Сигнал уведомления:

  • void summaryChanged()

timestamp : QDateTime

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

Данное свойство транслируется как значение расширенной подсказки "x-nemo-timestamp". Подсказки (hints) - это дополнительные необязательные данные, передаваемые на сервер уведомлений.

Методы доступа:

  • QDateTime timestamp() const
  • void setTimestamp(const QDateTime &timestamp)

Сигнал уведомления:

  • void timestampChanged()

urgency : Urgency

Уровень срочности уведомления.

Уровень срочности интерпретируется диспетчером уведомлений во время публикации. Например, в зависимости от текущей активности пользователя или состояния устройства, диспетчер может показывать или блокировать уведомления. При этом, уведомления с уровнем срочности Critical будут показаны с большей степенью вероятности и с большим приоритетом.

Значение по умолчанию: Notification.Normal.

Данное свойство транслируется как значение стандартной подсказки "urgency". Подсказки (hints) - это дополнительные необязательные данные, передаваемые на сервер уведомлений.

Методы доступа:

  • Urgency urgency() const
  • void setUrgency(Urgency urgency)

Сигнал уведомления:

  • void urgencyChanged()

Описание методов класса

Notification::Notification(QObject *parent = 0)

Конструктор для класса Notification с необязательным родительским элементом, указанном в параметре parent.

[signal] void Notification::clicked()

Испускается при изменении активации уведомления пользователем.

Обработка сигнала clicked имеет смысл только в том случае, когда пользователь активирует уведомление, что может произойти спустя достаточно продолжительное время после публикации уведомления. Более продвинутым решением будет зарегистрировать дистанционное действие в диспетчере уведомлений с тем, чтобы можно было вызвать обработчик запроса.

См. также remoteActions().

void Notification::close()

Закрывает уведомление с идентификатором replacesId.

[signal] void Notification::closed(uint reason)

Испускается после того, как диспетчер уведомлений считает уведомление закрытым. Параметр reason принимает значения, описанные в перечислении Notification::CloseReason.

QVariant Notification::hintValue(const QString &hint) const

Возвращает значение подсказки (дополнительные необязательные данные, передаваемые на сервер уведомлений) по имени, передаваемом в параметре hint.

См. также setHintValue().

[static] QList Notification::notifications()

Возвращает список существующих уведомлений, у которых значение подсказки 'x-nemo-owner' соответствует имени запущенного процесса.

Для всех уведомлений, созданных вызовом метода publish(), значение подсказки 'x-nemo-owner' устанавливается равным имени запущенного процесса (при условии, что значение этой подсказки еще не задано). Таким образом с помощью данного метода можно находить сгенерированные уведомления.

Объекты в возвращаемом списке являются экземплярами класса Notification. Вызывающая процедура становится владельцем этих объектов и должна их удалить, если они больше не нужны.

[static] QList Notification::notifications(const QString &owner)

Возвращает список существующих уведомлений, у которых значение подсказки 'x-nemo-owner' соответствует значению параметра owner.

Объекты в возвращаемом списке являются экземплярами класса Notification. Вызывающая процедура становится владельцем этих объектов и должна их удалить, если они больше не нужны.

[static] QList Notification::notificationsByCategory(const QString &category)

Возвращает список существующих уведомлений, у которых значение подсказки 'category' соответствует значению параметра category. Для вызывающей процедуры требуются привилегированные права доступа.

Объекты в возвращаемом списке являются экземплярами класса Notification. Вызывающая процедура становится владельцем этих объектов и должна их удалить, если они больше не нужны.

void Notification::publish()

Публикует текущее состояние уведомления в диспетчере уведомлений.

Если значением свойства replacesId является 0, будет создано новое уведомление, а значение свойства replacesId будет обновлено этим идентификатором. В противном случае будет обновлено существующее уведомление с заданным идентификатором.

[static] QVariant Notification::remoteAction(const QString &name, const QString &displayName, const QString &service, const QString &path, const QString &iface, const QString &method, const QVariantList &arguments = QVariantList())

Вспомогательный метод, формирующий объект дистанционного действия, которое будет вызвано через D-Bus.

Чтобы считаться корректным, объект дистанционного действия должен содержать значения свойств name, service, path, iface и method. Свойства displayName и arguments являются необязательными. Для формирования вызова команды D-Bus используются следующие значения:

  • name: название дистанционного действия (на текущий момент графическая оболочка Lipstick поддерживает только вызов дистанционных действий с названиями "default" и "app");
  • displayName: название действия, которое будет показано пользователю (не используется графической оболочкой Lipstick);
  • service: имя службы D-Bus, которая будет вызвана;
  • path: путь к объекту, который будет вызван через D-Bus;
  • iface: интерфейс, который будет вызван через D-Bus;
  • method: метод интерфейса, который будет вызван через D-Bus;
  • arguments: необязательные аргументы, передаваемые в метод, который будет вызван через D-Bus.

void Notification::setHintValue(const QString &hint, const QVariant &value)

Задает значение value подсказке hint.

См. также hintValue().