From 6e19f145090c0c15090cfd2fe5e957a404e627d4 Mon Sep 17 00:00:00 2001 From: Sebastian Erives Date: Mon, 4 Nov 2024 16:28:14 -0600 Subject: [PATCH] Fix context menu --- EOCVSimPlugin/build.gradle | 16 +++++----- .../papervision/codegen/build/Scope.kt | 21 +++++-------- .../deltacv/papervision/gui/NodeEditor.kt | 31 ++++++++++++------- 3 files changed, 36 insertions(+), 32 deletions(-) diff --git a/EOCVSimPlugin/build.gradle b/EOCVSimPlugin/build.gradle index e48c554..f37f378 100644 --- a/EOCVSimPlugin/build.gradle +++ b/EOCVSimPlugin/build.gradle @@ -56,13 +56,13 @@ dependencies { implementation project(":LwjglPlatform") - // compileOnly('com.github.deltacv.EOCV-Sim:EOCV-Sim:3.8.0') { transitive = false } // jitpack - // compileOnly('com.github.deltacv.EOCV-Sim:Common:3.8.0') { transitive = false } // jitpack - // compileOnly('com.github.deltacv.EOCV-Sim:Vision:3.8.0') // jitpack + compileOnly('com.github.deltacv.EOCV-Sim:EOCV-Sim:3.8.2') { transitive = false } // jitpack + compileOnly('com.github.deltacv.EOCV-Sim:Common:3.8.2') { transitive = false } // jitpack + compileOnly('com.github.deltacv.EOCV-Sim:Vision:3.8.2') // jitpack - compileOnly('com.github.deltacv.EOCV-Sim:EOCV-Sim:15e7f07bea') { changing = true; transitive = false} // jitpack dev - compileOnly('com.github.deltacv.EOCV-Sim:Common:15e7f07bea') { changing = true; transitive = false} // jitpack dev - compileOnly('com.github.deltacv.EOCV-Sim:Vision:15e7f07bea') { changing = true; } // jitpack dev + // compileOnly('com.github.deltacv.EOCV-Sim:EOCV-Sim:15e7f07bea') { changing = true; transitive = false} // jitpack dev + // compileOnly('com.github.deltacv.EOCV-Sim:Common:15e7f07bea') { changing = true; transitive = false} // jitpack dev + // compileOnly('com.github.deltacv.EOCV-Sim:Vision:15e7f07bea') { changing = true; } // jitpack dev // compileOnly('com.github.deltacv:EOCV-Sim:3.7.1-dev-240925-2310') { transitive = false } // Maven local // compileOnly('com.github.deltacv:Common:3.7.1-dev-240925-2310') { transitive = false } // Maven local @@ -77,11 +77,11 @@ dependencies { implementation "ch.qos.logback:logback-classic:$logback_classic_version" - implementation('com.github.deltacv.visionloop:visionloop:e5a4c23d1e') { + implementation('com.github.deltacv.visionloop:visionloop:1.2.0') { exclude group: 'com.github.deltacv.EOCVSim' } - implementation('com.github.deltacv.visionloop:streaming:e5a4c23d1e') { + implementation('com.github.deltacv.visionloop:streaming:1.2.0') { exclude group: 'com.github.deltacv.EOCVSim' } diff --git a/PaperVision/src/main/kotlin/io/github/deltacv/papervision/codegen/build/Scope.kt b/PaperVision/src/main/kotlin/io/github/deltacv/papervision/codegen/build/Scope.kt index cd398cc..1a07117 100644 --- a/PaperVision/src/main/kotlin/io/github/deltacv/papervision/codegen/build/Scope.kt +++ b/PaperVision/src/main/kotlin/io/github/deltacv/papervision/codegen/build/Scope.kt @@ -93,21 +93,17 @@ class Scope( } fun tryName(name: String): String { - if(!usedNames.contains(name)) { - return name - } else { - var count = 1 + if (name !in usedNames) return name - while(true) { - val newName = "$name$count" + var count = 1 + var newName: String - if(!usedNames.contains(newName)) { - return newName - } + do { + newName = "$name$count" + count++ + } while (newName in usedNames) - count++ - } - } + return newName } fun variableSet(variable: Variable, v: Value) { @@ -117,7 +113,6 @@ class Scope( builder.append("$tabs${language.variableSetDeclaration(variable, v)}") } - fun arraySet(variable: Variable, index: Value, v: Value) { newStatement() importValue(v) diff --git a/PaperVision/src/main/kotlin/io/github/deltacv/papervision/gui/NodeEditor.kt b/PaperVision/src/main/kotlin/io/github/deltacv/papervision/gui/NodeEditor.kt index 09f790c..490162e 100644 --- a/PaperVision/src/main/kotlin/io/github/deltacv/papervision/gui/NodeEditor.kt +++ b/PaperVision/src/main/kotlin/io/github/deltacv/papervision/gui/NodeEditor.kt @@ -118,8 +118,13 @@ class NodeEditor(val paperVision: PaperVision, private val keyManager: KeyManage ImGuiWindowFlags.NoTitleBar, ImGuiWindowFlags.NoDecoration ) - val rightClickMenuPopup by lazy { - RightClickMenuPopup(paperVision.nodeList, paperVision::undo, paperVision::redo) + private val popupSelection = mutableListOf() + + private var currentRightClickMenuPopup: RightClickMenuPopup? = null + val rightClickMenuPopup: RightClickMenuPopup get() { + val popup = RightClickMenuPopup(paperVision.nodeList, paperVision::undo, paperVision::redo, popupSelection) + currentRightClickMenuPopup = popup + return popup } private val rightClickMenuPopupTimer = ElapsedTime() @@ -144,7 +149,6 @@ class NodeEditor(val paperVision: PaperVision, private val keyManager: KeyManage flagsNode.enable() inputNode.enable() - rightClickMenuPopup.enable() outputNode.streamId = outputImageDisplay.id outputNode.enable() @@ -342,11 +346,11 @@ class NodeEditor(val paperVision: PaperVision, private val keyManager: KeyManage } private fun updateRightClickMenuSelection() { - if (rightClickMenuPopup.isVisible) { + if (currentRightClickMenuPopup?.isVisible == true) { return } - rightClickMenuPopup.selection.clear() + popupSelection.clear() val nodeSelection = IntArray(ImNodes.numSelectedNodes()) ImNodes.getSelectedNodes(nodeSelection) @@ -355,7 +359,7 @@ class NodeEditor(val paperVision: PaperVision, private val keyManager: KeyManage if (node < 0) continue nodes[node]?.let { - rightClickMenuPopup.selection.add(it) + popupSelection.add(it) } } @@ -366,13 +370,13 @@ class NodeEditor(val paperVision: PaperVision, private val keyManager: KeyManage if (link < 0) continue links[link]?.let { - rightClickMenuPopup.selection.add(it) + popupSelection.add(it) } } if (ImNodes.getHoveredNode() >= 0) { nodes[ImNodes.getHoveredNode()]?.let { - rightClickMenuPopup.selection.add(it) + popupSelection.add(it) } } } @@ -492,12 +496,17 @@ class NodeEditor(val paperVision: PaperVision, private val keyManager: KeyManage class RightClickMenuPopup( val nodeList: NodeList, val undo: () -> Unit, - val redo: () -> Unit + val redo: () -> Unit, + val selection: List ) : Popup() { - var selection = mutableListOf() override val title = "right click menu" - override val flags = flags(ImGuiWindowFlags.NoTitleBar, ImGuiWindowFlags.NoResize, ImGuiWindowFlags.NoMove) + override val flags = flags( + ImGuiWindowFlags.NoTitleBar, + ImGuiWindowFlags.NoResize, + ImGuiWindowFlags.NoMove, + ImGuiWindowFlags.Popup + ) override fun drawContents() { ImGui.pushStyleColor(ImGuiCol.Button, 0)