QML-тип RemorseItem

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

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

Свойства

Сигналы

Методы

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

Тип 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": "Item " + 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, "Deleting", 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.

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

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

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

trigger()

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

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