12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364 |
- // Copyright (c) 2022 Ultimaker B.V.
- // Cura is released under the terms of the LGPLv3 or higher.
- import QtQuick 2.7
- import QtQuick.Controls 2.4
- import UM 1.5 as UM
- import Cura 1.0 as Cura
- Cura.Menu
- {
- id: extensionMenu
- title: catalog.i18nc("@title:menu menubar:toplevel", "E&xtensions")
- property var extensionModel: UM.ExtensionModel { }
- Component
- {
- id: extensionsMenuItem
- Cura.MenuItem
- {
- text: modelText
- onTriggered: extensionsModel.subMenuTriggered(extensionName, modelText)
- }
- }
- Component
- {
- id: extensionsMenuSeparator
- Cura.MenuSeparator {}
- }
- Instantiator
- {
- id: extensions
- model: extensionModel
- Cura.Menu
- {
- id: sub_menu
- title: model.name
- shouldBeVisible: actions !== undefined
- enabled: actions != null
- Instantiator
- {
- model: actions
- Loader
- {
- property var extensionsModel: extensions.model
- property var modelText: model.text
- property var extensionName: name
- sourceComponent: modelText.trim() == "" ? extensionsMenuSeparator : extensionsMenuItem
- }
- onObjectAdded: function(index, object) { sub_menu.insertItem(index, object.item)}
- onObjectRemoved: function(object) { sub_menu.removeItem(object.item)}
- }
- }
- onObjectAdded: function(index, object) { extensionMenu.insertMenu(index, object) }
- onObjectRemoved: function(object) { extensionMenu.removeMenu(object)}
- }
- }
|