mirror of
https://github.com/Ultimaker/Cura.git
synced 2025-07-21 21:58:01 -06:00

I didn't realise that Cura already had a menu item. To prevent Confusion, i've changed Cura.MenuItem to use UM.MenuItem and let all other menus use Cura.MenuItem
64 lines
No EOL
1.6 KiB
QML
64 lines
No EOL
1.6 KiB
QML
// 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
|
|
|
|
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
|
|
|
|
MenuSeparator {}
|
|
}
|
|
|
|
Instantiator
|
|
{
|
|
id: extensions
|
|
model: extensionModel
|
|
|
|
UM.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: sub_menu.insertItem(index, object.item)
|
|
onObjectRemoved: sub_menu.removeItem(object.item)
|
|
}
|
|
}
|
|
|
|
onObjectAdded: extensionMenu.insertMenu(index, object)
|
|
onObjectRemoved: extensionMenu.removeMenu(object)
|
|
}
|
|
} |