Merge pull request #2568 from alicevision/fix/uiSplitView

[ui] multiple fixes related to split view and node status checks
This commit is contained in:
Candice Bentéjac 2024-10-15 14:06:18 +01:00 committed by GitHub
commit 1fbdafebfd
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
3 changed files with 38 additions and 17 deletions

View file

@ -39,7 +39,9 @@ Page {
if (nodesName !== "") if (nodesName !== "")
nodesName += ", " nodesName += ", "
var node = _reconstruction.selectedNodes.at(i) var node = _reconstruction.selectedNodes.at(i)
nodesName += node.name if(node) {
nodesName += node.name
}
} }
return nodesName return nodesName
} }
@ -983,7 +985,7 @@ Page {
NodeChunks { NodeChunks {
id: chunksListView id: chunksListView
height: 6 height: 6
width: parent.width Layout.fillWidth: true
model: _reconstruction ? _reconstruction.sortedDFSChunks : null model: _reconstruction ? _reconstruction.sortedDFSChunks : null
highlightChunks: false highlightChunks: false
} }
@ -991,7 +993,7 @@ Page {
MSplitView { MSplitView {
id: topBottomSplit id: topBottomSplit
Layout.fillHeight: true Layout.fillHeight: true
width: parent.width Layout.fillWidth: true
orientation: Qt.Vertical orientation: Qt.Vertical
@ -1086,7 +1088,7 @@ Page {
} }
Menu { Menu {
title: "Refresh Nodes Status" title: "Refresh Nodes Method"
MenuItem { MenuItem {
id: enableAutoRefresh id: enableAutoRefresh

View file

@ -559,11 +559,16 @@ Item {
//canSubmitOrCompute: return int n : 0 >= n <= 3 | n=0 cannot submit or compute | n=1 can compute | n=2 can submit | n=3 can compute & submit //canSubmitOrCompute: return int n : 0 >= n <= 3 | n=0 cannot submit or compute | n=1 can compute | n=2 can submit | n=3 can compute & submit
property int canSubmitOrCompute: currentNode != null && uigraph.graph.canSubmitOrCompute(currentNode) property int canSubmitOrCompute: currentNode != null && uigraph.graph.canSubmitOrCompute(currentNode)
property bool isComputed: { property bool isComputed: {
var count = 0
for (var i = 0; i < uigraph.selectedNodes.count; ++i) { for (var i = 0; i < uigraph.selectedNodes.count; ++i) {
if (!uigraph.selectedNodes.at(i).isComputed) var node = uigraph.selectedNodes.at(i)
if (!node)
continue
if (!node.isComputed)
return false return false
count += 1
} }
return uigraph.selectedNodes.count > 0 return count > 0
} }
width: 220 width: 220
onClosed: currentNode = null onClosed: currentNode = null
@ -573,27 +578,34 @@ Item {
property bool recompute: false property bool recompute: false
text: nodeMenu.isComputed ? "Recompute" : "Compute" text: nodeMenu.isComputed ? "Recompute" : "Compute"
visible: { visible: {
var count = 0
for (var i = 0; i < uigraph.selectedNodes.count; ++i) { for (var i = 0; i < uigraph.selectedNodes.count; ++i) {
if (!uigraph.selectedNodes.at(i).isComputable) var node = uigraph.selectedNodes.at(i)
if (!node)
continue
if (!node.isComputable)
return false return false
count += 1
} }
return uigraph.selectedNodes.count > 0 return count > 0
} }
height: visible ? implicitHeight : 0 height: visible ? implicitHeight : 0
enabled: { enabled: {
var canCompute = false var canCompute = false
for (var i = 0; i < uigraph.selectedNodes.count; ++i) { for (var i = 0; i < uigraph.selectedNodes.count; ++i) {
if (uigraph.graph.canComputeTopologically(uigraph.selectedNodes.at(i))) { var node = uigraph.selectedNodes.at(i)
if (!node)
continue
if (uigraph.graph.canComputeTopologically(node)) {
if (nodeMenu.isComputed) { if (nodeMenu.isComputed) {
canCompute = true canCompute = true
} else if (uigraph.graph.canSubmitOrCompute(uigraph.selectedNodes.at(i)) % 2 == 1) { } else if (uigraph.graph.canSubmitOrCompute(node) % 2 == 1) {
canCompute = true canCompute = true
} }
} }
} }
return canCompute //canSubmit if canSubmitOrCompute == 1(can compute) or 3(can compute & submit) return canCompute //canSubmit if canSubmitOrCompute == 1(can compute) or 3(can compute & submit)
} }
onTriggered: { onTriggered: {
@ -610,21 +622,27 @@ Item {
property bool resubmit: false property bool resubmit: false
text: nodeMenu.isComputed ? "Re-Submit" : "Submit" text: nodeMenu.isComputed ? "Re-Submit" : "Submit"
visible: { visible: {
var count = 0
for (var i = 0; i < uigraph.selectedNodes.count; ++i) { for (var i = 0; i < uigraph.selectedNodes.count; ++i) {
if (!uigraph.selectedNodes.at(i).isComputable) var node = uigraph.selectedNodes.at(i)
if (node && !node.isComputable)
return false return false
count += 1
} }
return uigraph.selectedNodes.count > 0 || uigraph.canSubmit return count > 0 || uigraph.canSubmit
} }
height: visible ? implicitHeight : 0 height: visible ? implicitHeight : 0
enabled: { enabled: {
var canSubmit = false var canSubmit = false
for (var i = 0; i < uigraph.selectedNodes.count; ++i) { for (var i = 0; i < uigraph.selectedNodes.count; ++i) {
if (uigraph.graph.canComputeTopologically(uigraph.selectedNodes.at(i))) { var node = uigraph.selectedNodes.at(i)
if (!node)
continue
if (uigraph.graph.canComputeTopologically(node)) {
if (nodeMenu.isComputed) { if (nodeMenu.isComputed) {
canSubmit = true canSubmit = true
} else if (uigraph.graph.canSubmitOrCompute(uigraph.selectedNodes.at(i)) > 1) { } else if (uigraph.graph.canSubmitOrCompute(node) > 1) {
canSubmit = true canSubmit = true
} }
} }

View file

@ -261,11 +261,12 @@ Panel {
id: chunksLV id: chunksLV
visible: (tabBar.currentIndex >= 1 && tabBar.currentIndex <= 3) visible: (tabBar.currentIndex >= 1 && tabBar.currentIndex <= 3)
chunks: root.node.chunks chunks: root.node.chunks
SplitView.preferredWidth: 55
SplitView.minimumWidth: 20
} }
StackLayout { StackLayout {
Layout.fillHeight: true SplitView.fillWidth: true
Layout.fillWidth: true
currentIndex: tabBar.currentIndex currentIndex: tabBar.currentIndex