QML-тип RemorsePopup
Ненадолго показывает всплывающий элемент, нажатием на который можно отменить разрушающее действие (удаление). Подробнее…
Строка импорта: | import Sailfish.Silica 1.0 |
Наследуется от: | BackgroundItem |
Свойства
- active : bool
- leftMargin : real
- rightMargin : real
- text : string
Сигналы
Методы
Подробное описание
Рекомендуемый способ использования RemorsePopup
— использовать API синглтона
Remorse и оставить жизненный цикл объекта для отмены действия для обработки Silica.
Тип RemorsePopup
реализует элемент, который позволяет отсрочить разрушающее действие (удаление)
на некоторое время. Если коснуться элемента RemorsePopup
до истечения этого времени, действие
будет отменено.
При вызове метода execute() создается область отмены
RemorsePopup
с таймером обратного отсчёта. Эта область отображается в верхней части своего
родительского элемента.
В примере ниже продемонстрировано использование RemorsePopup
, который очищает весь список при
выборе пункта меню из вытягивающегося меню:
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
}
}
RemorsePopup { id: remorse }
PullDownMenu {
MenuItem {
text: "Очистить"
onClicked: remorse.execute("Очистка", function() { listModel.clear() } )
}
}
}
}
Обычно тип RemorsePopup
используется для выполнения действия, которое применяется сразу к
нескольким элементам на странице либо во всем приложении. Для аналогичного действия, которое применяется к отдельному
элементу в списке или на странице, следует использовать тип RemorseItem.
См. также Remorse::popupAction() и RemorseItem.
Описание свойств
[read-only] active : bool
Возвращает true
, если в настоящий момент работает таймер обратного отсчёта.
leftMargin : real
Отступ между левым и правым краями элемента RemorsePopup
и его содержимым. Значение по умолчанию:
Theme.horizontalPageMargin.
rightMargin : real
Отступ между левым и правым краями элемента RemorsePopup
и его содержимым. Значение по умолчанию:
Theme.horizontalPageMargin.
text : string
Содержит описание действия, которое может быть отменено в течение времени обратного отсчёта.
Обычно текст данного свойства указывается при вызове метода execute().
Описание сигналов
onCanceled()
Обработчик данного сигнала вызывается при касании элемента RemorsePopup
для отмены действия.
onTriggered()
Обработчик данного сигнала вызывается, если действие не было отменено в течение периода обратного отсчёта.
Описание методов
cancel()
Отменяет таймер обратного отсчёта RemorsePopup
без выполнения действия.
execute(string text, object callback, int timeout)
Отображает RemorsePopup
вместо parent с указанным text, описывающим выполняемое действие.
Текстовое описание является необязательным, наиболее распространённым вариантом использования элемента для отмены
действия является удаление, когда строку text можно оставить пустой.
Наиболее распространённый вариант использования компонента для отмены действия — это удаление элемента. В случаях удаления текстовое описание может быть полностью опущено.
text должен содержать глагол, описывающий совершаемое действие. Следует использовать прошедшее время, чтобы яснее указать, что от пользователя не требуется никаких дополнительных шагов, если он не хочет отменить действие. Например, элемент, который раньше выводил текст «Очистка данных», теперь будет отображать «Данные очищены».
По истечении времени timeout
будет вызвана функция, переданная в параметр callback. Если callback-функция не
предоставляется, то вместо для выполнения действия нее может использоваться обработчик
onTriggered. Следует обратить внимание, что выполнение обратного вызова
происходит в области действия компонента для отмены действия, и ссылки на объекты на странице или в контексте делегата,
которые запрашивали элемент для отмены, могут быть недоступны.
Параметр timeout является необязательным. Если не указано иное, будет использоваться значение по умолчанию 4000 мс.
trigger()
Запускает выполнение действия RemorsePopup
.