Документация
ОС Аврора 5.1.5

QML-тип RemorseItem

Ненадолго появляющийся элемент, который позволяет отменить разрушающее действие (удаление). Подробнее…

Строка импорта: import Sailfish.Silica 1.0
Наследуется от: BackgroundItem

Свойства

Сигналы

Методы

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

Рекомендуемый способ использования RemorseItem — использовать функцию remorseDelete() или, если ListItem недоступен, использовать API синглтона Remorse и оставить жизненный цикл объекта для отмены действия для обработки Silica.

Тип RemorseItem реализует элемент, который позволяет отсрочить разрушающее действие (удаление) на некоторое время. Если коснуться элемента RemorseItem до истечения этого времени, действие будет отменено.

При вызове метода execute() в него передаётся родительский элемент типа Item. При этом область отмены с таймером обратного отсчёта создаётся как элемент типа RemorseItem, который заполняет границы элемента родительского элемента.

Ниже приведён пример, в котором для каждого делегата задан элемент RemorseItem. При касании делегата элемент RemorseItem активирует таймер обратного отсчёта для удаления этого делегата:

import QtQuick 2.2
import Sailfish.Silica 1.0

Page {
    SilicaListView {
        anchors.fill: parent
        model: ListModel {
            id: listModel
            Component.onCompleted: {
                for (var i=0; i<10; i++) {
                    append({"name": "Элемент " + i})
                }
            }
        }

        delegate: BackgroundItem {
            id: myDelegate
            width: ListView.view.width

            Label {
                text: model.name
                anchors.centerIn: parent
            }

            RemorseItem { id: remorse }

            function showRemorseItem() {
                var idx = index
                remorse.execute(myDelegate, "Удалено", function() { listModel.remove(idx) } )
            }

            onClicked: {
                showRemorseItem()
            }
        }
    }
}

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

См. также Remorse::itemAction() и RemorsePopup.

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

horizontalAlignment : enumeration

Выравнивание по горизонтали всех текстов в элементе RemorseItem.

Значение по умолчанию: Text.AlignLeft.

leftMargin : real

Отступ между левым и правым краями элемента RemorseItem и его содержимым. Значение по умолчанию: Theme.horizontalPageMargin.

pending : bool

Истинно, если элемент RemorseItem активен в течение периода обратного отсчета.

rightMargin : real

Отступ между левым и правым краями элемента RemorseItem и его содержимым. Значение по умолчанию: Theme.horizontalPageMargin.

wrapMode : enumeration

Управляет переносом текста заголовка title, который передается в вызываемый метод execute(). Свойство wrapMode может пригодиться, если элемент RemorseItem требуется уместить в небольшой области. Установка свойству значения, отличного от Text.NoWrap, отменяет эффект градиента затухания текста.

Значение по умолчанию: Text.NoWrap.

Описание сигналов

onCanceled()

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

onTriggered()

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

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

cancel()

Отменяет таймер обратного отсчёта RemorseItem без выполнения действия.

execute(Item parent, string text, object callback, int timeout)

Отображает RemorseItem вместо parent с указанным text, описывающим выполняемое действие. Текстовое описание является необязательным, наиболее распространённым вариантом использования элемента для отмены действия является удаление, когда строку text можно оставить пустой.

По истечении времени timeout будет вызвана функция, переданная в параметр callback. Если callback-функция не предоставляется, то вместо для выполнения действия нее может использоваться обработчик onTriggered. Следует обратить внимание, что выполнение обратного вызова происходит в области действия компонента для отмены действия, и ссылки на объекты на странице или в контексте делегата, которые запрашивали элемент для отмены, могут быть недоступны.

Параметр timeout является необязательным. Если не указано иное, будет использоваться значение по умолчанию 4000 мс.

text должен содержать глагол, описывающий совершаемое действие. Следует использовать прошедшее время, чтобы яснее указать, что от пользователя не требуется никаких дополнительных шагов, если он не хочет отменить действие. Например, элемент, который раньше выводил текст «Очистка данных», теперь будет отображать «Данные очищены».

Следует обратить внимание, что элемент RemorseItem станет одноуровневым по отношению к целевому родительскому элементу target затем, чтобы к данному родительскому элементу мог быть применен эффект затухания при его удалении. Элемент RemorseItem сам определяет свое положение и не будет работать, будучи размещенным внутри контейнеров Qt Quick (например, в таких, как Column).

trigger()

Незамедлительно выполняет действие, если оно ещё не выполнено или отменено.

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

Мы используем cookies для персонализации сайта и его более удобного использования. Вы можете запретить cookies в настройках браузера.

Пожалуйста ознакомьтесь с политикой использования cookies.