54 lines
1.1 KiB
QML
54 lines
1.1 KiB
QML
// Copyright (C) 2024 The Qt Company Ltd.
|
|
// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only
|
|
|
|
import QtQuick
|
|
import QtQuick.Templates as T
|
|
import QtQuick.Controls
|
|
|
|
ApplicationWindow {
|
|
width: 400
|
|
height: 400
|
|
|
|
property alias contextMenu: contextMenu
|
|
|
|
function addSubMenu(title: string) {
|
|
contextMenu.addMenu(subMenuComponent.createObject(null, { title: title }))
|
|
}
|
|
|
|
function addAction(menu: T.Menu, text: string) {
|
|
menu.addAction(actionComponent.createObject(null, { text: text }))
|
|
}
|
|
|
|
function insertAction(menu: T.Menu, index: int, text: string) {
|
|
menu.insertAction(index, actionComponent.createObject(null, { text: text }))
|
|
}
|
|
|
|
Component {
|
|
id: actionComponent
|
|
|
|
Action {
|
|
objectName: text
|
|
}
|
|
}
|
|
|
|
Component {
|
|
id: subMenuComponent
|
|
|
|
Menu {
|
|
id: subMenu
|
|
objectName: title
|
|
popupType: Popup.Native
|
|
|
|
Action {
|
|
text: subMenu.objectName + "Action1"
|
|
}
|
|
}
|
|
}
|
|
|
|
Menu {
|
|
id: contextMenu
|
|
objectName: "menu"
|
|
popupType: Popup.Native
|
|
}
|
|
}
|