Skip to content

Commit baaccb0

Browse files
committed
[ui] CsvData: fix data update
1 parent de93f79 commit baaccb0

File tree

2 files changed

+33
-14
lines changed

2 files changed

+33
-14
lines changed

meshroom/ui/components/csvData.py

Lines changed: 7 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -23,6 +23,10 @@ def getColumn(self, index):
2323
def getFilepath(self):
2424
return self._filepath
2525

26+
@Slot(result=int)
27+
def getNbColumns(self):
28+
return len(self._data) if self._ready else 0
29+
2630
def setFilepath(self, filepath):
2731
if self._filepath == filepath:
2832
return
@@ -42,7 +46,7 @@ def updateData(self):
4246
newColumns = self.read()
4347
if newColumns:
4448
self._data.setObjectList(newColumns)
45-
self.setReady(True)
49+
self.setReady(True)
4650

4751
def read(self):
4852
"""Read the CSV file and return a list containing CsvColumn objects."""
@@ -73,7 +77,8 @@ def read(self):
7377
filepath = Property(str, getFilepath, setFilepath, notify=filepathChanged)
7478
readyChanged = Signal()
7579
ready = Property(bool, lambda self: self._ready, notify=readyChanged)
76-
data = Property(QObject, lambda self: self._data, constant=True)
80+
data = Property(QObject, lambda self: self._data, notify=readyChanged)
81+
nbColumns = Property(int, getNbColumns, notify=readyChanged)
7782

7883

7984
class CsvColumn(QObject):

meshroom/ui/qml/Viewer/CameraResponseGraph.qml

Lines changed: 26 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -34,7 +34,24 @@ FloatingPane {
3434
onWheel: {}
3535
}
3636

37-
property bool ready: csvData.ready
37+
property bool crfReady: csvData.ready && csvData.nbColumns >= 4
38+
onCrfReadyChanged: {
39+
if(crfReady)
40+
{
41+
redCurve.clear()
42+
greenCurve.clear()
43+
blueCurve.clear()
44+
csvData.getColumn(1).fillChartSerie(redCurve)
45+
csvData.getColumn(2).fillChartSerie(greenCurve)
46+
csvData.getColumn(3).fillChartSerie(blueCurve)
47+
}
48+
else
49+
{
50+
redCurve.clear()
51+
greenCurve.clear()
52+
blueCurve.clear()
53+
}
54+
}
3855
Item {
3956
anchors.horizontalCenter: parent.horizontalCenter
4057
anchors.verticalCenter: parent.verticalCenter
@@ -54,8 +71,8 @@ FloatingPane {
5471
id: valueAxisX
5572
labelFormat: "%i"
5673
titleText: "Camera Brightness"
57-
min: ready ? csvData.getColumn(0).getFirst() : 0
58-
max: ready ? csvData.getColumn(0).getLast() : 1
74+
min: crfReady ? csvData.getColumn(0).getFirst() : 0
75+
max: crfReady ? csvData.getColumn(0).getLast() : 1
5976
}
6077
ValueAxis {
6178
id: valueAxisY
@@ -67,30 +84,27 @@ FloatingPane {
6784
// We cannot use a Repeater with these Components so we need to instantiate them one by one
6885
// Red curve
6986
LineSeries {
87+
id: redCurve
7088
axisX: valueAxisX
7189
axisY: valueAxisY
72-
name: ready ? csvData.getColumn(1).title : ""
90+
name: crfReady ? csvData.getColumn(1).title : ""
7391
color: name.toLowerCase()
74-
75-
Component.onCompleted: if(ready) csvData.getColumn(1).fillChartSerie(this)
7692
}
7793
// Green curve
7894
LineSeries {
95+
id: greenCurve
7996
axisX: valueAxisX
8097
axisY: valueAxisY
81-
name: ready ? csvData.getColumn(2).title : ""
98+
name: crfReady ? csvData.getColumn(2).title : ""
8299
color: name.toLowerCase()
83-
84-
Component.onCompleted: if(ready) csvData.getColumn(2).fillChartSerie(this)
85100
}
86101
// Blue curve
87102
LineSeries {
103+
id: blueCurve
88104
axisX: valueAxisX
89105
axisY: valueAxisY
90-
name: ready ? csvData.getColumn(3).title : ""
106+
name: crfReady ? csvData.getColumn(3).title : ""
91107
color: name.toLowerCase()
92-
93-
Component.onCompleted: if(ready) csvData.getColumn(3).fillChartSerie(this)
94108
}
95109
}
96110

0 commit comments

Comments
 (0)