ContextMenu
Обеспечивает функциональность контекстного меню при длительном нажатии. Подробнее…
| Подключение: | #include <contextmenu.h> |
Диаграмма наследования для Aurora::WebView::Extensions::ContextMenu:
Сигналы
| void | showMenuRequested () |
| void | dismissMenuRequested () |
| void | executeCustomCommandRequested (int commandId) |
Сигналы, унаследованные от Aurora::WebView::WebViewExtension
| void | webViewChanged (WebViewItem *oldItem, WebViewItem *newItem) Сигнализирует об изменении родительского элемента QuickItem. Подробнее... |
Публичные функции-члены
| ContextMenu (QQuickItem *parentWebView=Q_NULLPTR) | |
| int | x () const |
| int | y () const |
| ContextMenuParams | params () const |
| Q_INVOKABLE void | execute (int commandId) Вызывается для выполнения команды. Подробнее… |
| Q_INVOKABLE void | cancel () Вызывается, чтобы отключить контекстное меню (ни одна команда не будет выполнена). |
Публичные функции, унаследованные от Aurora::WebView::WebViewExtension
| WebViewExtension (QQuickItem *parent=Q_NULLPTR) |
Свойства
| int | x x координата меню. |
| int | y y координата меню. |
| ContextMenuParams | params |
Дополнительные наследуемые члены
Защищённые функции-члены, наследованные от Aurora::WebView::WebViewExtension
| void | syncEnabled (Cef::BrowserExtension *libExtension) |
Защищённые атрибуты, унаследованные от Aurora::WebView::WebViewExtension
| WebViewItem * | m_webView |
Подробное описание
Обеспечивает функциональность контекстного меню при длительном нажатии.
Его необходимо объявить в QML-компоненте WebView, чтобы добавить поддержку контекстного меню и обрабатывать его события.
Пример использования компонента в базовом виде:
import QtQuick 2.0
import Sailfish.Silica 1.0
import ru.auroraos.WebView 1.0
import ru.auroraos.WebView.Global 1.0
import Aurora.Controls 1.0
Page {
objectName: "contextMenuPage"
PageHeader {
id: pageHeader
objectName: "pageHeader"
title: qsTr("ContextMenu")
}
Item {
anchors.fill: parent
WebView {
id: webview
// Команды перечислены в MenuId
// Все определяемые пользователем идентификаторы меню должны находиться между 27000 и 28500
readonly property int customCommand: 27000
anchors.fill: parent
// Страница c контентом
url: htmlRootPath + "/html/ContextMenuComponent.html"
// Доступ к касаниям
TouchInput {
enabled: true
}
// Доступ к выделению текста
TextSelection{
enabled: true
}
// Контекстное меню должно находиться внутри webView для обработки полученных сигналов
ContextMenu {
id: contextMenu
// Контекстное меню уже имеет необходимые поля, но
// также можно добавить кастомные пункты, положив их внутрь контекстного меню и реализовав их обработку.
// Пункт контестного меню для кастомной обработки
PopupMenuItem {
onClicked: {
contextMenu.execute(webview.customCommand)
}
text: qsTrId("Кастомная команда")
visible: enabled
}
onShowMenuRequested: {
// ContextMenuParams
console.log(params)
}
onExecuteCustomCommandRequested: {
if (commandId === webview.customCommand) {
// Кастомная обработка
console.log("Кастомная команда!")
}
}
}
}
}
}
Описание функций-членов
execute()
| Q_INVOKABLE void Aurora::WebView::Extensions::ContextMenu::execute (int commandId) |
Вызывается для выполнения команды.
Этот метод необходимо вызвать, даже если обрабатывается идентификатор пользовательской команды. В
таких случаях испускается executeCustomCommand, поэтому можно подключить обработку к этому
сигналу.
Параметры
| commandId | Команда для выполнения (см. ContextMenuParams::availableActions). |
Описание свойств
params
| ContextMenuParams Aurora::WebView::Extensions::ContextMenu::params | read |
См. также ContextMenuParams