2022-10-26 19:57:41 +03:00
|
|
|
// Copyright (C) 2022 The Qt Company Ltd.
|
|
|
|
|
// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0+ OR GPL-3.0 WITH Qt-GPL-exception-1.0
|
|
|
|
|
|
|
|
|
|
import QtQuick 2.15
|
|
|
|
|
import HelperWidgets 2.0
|
|
|
|
|
import StudioControls 1.0 as StudioControls
|
|
|
|
|
import StudioTheme 1.0 as StudioTheme
|
|
|
|
|
|
|
|
|
|
StudioControls.Menu {
|
|
|
|
|
id: root
|
|
|
|
|
|
|
|
|
|
property var targetMaterial: null
|
2022-11-29 16:56:08 +02:00
|
|
|
property bool hasModelSelection: false
|
|
|
|
|
property bool importerRunning: false
|
|
|
|
|
|
|
|
|
|
readonly property bool targetAvailable: targetMaterial && !importerRunning
|
|
|
|
|
|
2022-10-26 19:57:41 +03:00
|
|
|
signal unimport(var bundleMat);
|
2022-11-29 16:56:08 +02:00
|
|
|
signal addToProject(var bundleMat)
|
2022-10-26 19:57:41 +03:00
|
|
|
|
|
|
|
|
function popupMenu(targetMaterial = null)
|
|
|
|
|
{
|
|
|
|
|
this.targetMaterial = targetMaterial
|
|
|
|
|
popup()
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
closePolicy: StudioControls.Menu.CloseOnEscape | StudioControls.Menu.CloseOnPressOutside
|
|
|
|
|
|
|
|
|
|
StudioControls.MenuItem {
|
|
|
|
|
text: qsTr("Apply to selected (replace)")
|
2022-11-29 16:56:08 +02:00
|
|
|
enabled: root.targetAvailable && root.hasModelSelection
|
|
|
|
|
onTriggered: root.applyToSelected(root.targetMaterial, false)
|
2022-10-26 19:57:41 +03:00
|
|
|
}
|
|
|
|
|
|
|
|
|
|
StudioControls.MenuItem {
|
|
|
|
|
text: qsTr("Apply to selected (add)")
|
2022-11-29 16:56:08 +02:00
|
|
|
enabled: root.targetAvailable && root.hasModelSelection
|
|
|
|
|
onTriggered: root.applyToSelected(root.targetMaterial, true)
|
2022-10-26 19:57:41 +03:00
|
|
|
}
|
|
|
|
|
|
|
|
|
|
StudioControls.MenuSeparator {}
|
|
|
|
|
|
|
|
|
|
StudioControls.MenuItem {
|
2022-11-29 16:56:08 +02:00
|
|
|
enabled: root.targetAvailable
|
2022-10-26 19:57:41 +03:00
|
|
|
text: qsTr("Add an instance to project")
|
|
|
|
|
|
|
|
|
|
onTriggered: {
|
2022-11-29 16:56:08 +02:00
|
|
|
root.addToProject(root.targetMaterial)
|
2022-10-26 19:57:41 +03:00
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
StudioControls.MenuItem {
|
2022-11-29 16:56:08 +02:00
|
|
|
enabled: root.targetAvailable && root.targetMaterial.bundleMaterialImported
|
2022-10-26 19:57:41 +03:00
|
|
|
text: qsTr("Remove from project")
|
|
|
|
|
|
2022-11-29 16:56:08 +02:00
|
|
|
onTriggered: root.unimport(root.targetMaterial)
|
2022-10-26 19:57:41 +03:00
|
|
|
}
|
|
|
|
|
}
|