Skip to content

Commit

Permalink
[ui] CsvData: fix data update
Browse files Browse the repository at this point in the history
  • Loading branch information
fabiencastan committed Aug 11, 2020
1 parent de93f79 commit 70e0a9c
Show file tree
Hide file tree
Showing 2 changed files with 34 additions and 14 deletions.
10 changes: 8 additions & 2 deletions meshroom/ui/components/csvData.py
Original file line number Diff line number Diff line change
Expand Up @@ -23,6 +23,10 @@ def getColumn(self, index):
def getFilepath(self):
return self._filepath

@Slot(result=int)
def getNbColumns(self):
return len(self._data) if self._ready else 0

def setFilepath(self, filepath):
if self._filepath == filepath:
return
Expand All @@ -41,8 +45,9 @@ def updateData(self):
self._data.clear()
newColumns = self.read()
if newColumns:
if len(newColumns) >= 4:
self._data.setObjectList(newColumns)
self.setReady(True)
self.setReady(True)

def read(self):
"""Read the CSV file and return a list containing CsvColumn objects."""
Expand Down Expand Up @@ -73,7 +78,8 @@ def read(self):
filepath = Property(str, getFilepath, setFilepath, notify=filepathChanged)
readyChanged = Signal()
ready = Property(bool, lambda self: self._ready, notify=readyChanged)
data = Property(QObject, lambda self: self._data, constant=True)
data = Property(QObject, lambda self: self._data, notify=readyChanged)
nbColumns = Property(int, getNbColumns, notify=readyChanged)


class CsvColumn(QObject):
Expand Down
38 changes: 26 additions & 12 deletions meshroom/ui/qml/Viewer/CameraResponseGraph.qml
Original file line number Diff line number Diff line change
Expand Up @@ -34,7 +34,24 @@ FloatingPane {
onWheel: {}
}

property bool ready: csvData.ready
property bool crfReady: csvData.ready
onCrfReadyChanged: {
if(crfReady)
{
redCurve.clear()
greenCurve.clear()
blueCurve.clear()
csvData.getColumn(1).fillChartSerie(redCurve)
csvData.getColumn(2).fillChartSerie(greenCurve)
csvData.getColumn(3).fillChartSerie(blueCurve)
}
else
{
redCurve.clear()
greenCurve.clear()
blueCurve.clear()
}
}
Item {
anchors.horizontalCenter: parent.horizontalCenter
anchors.verticalCenter: parent.verticalCenter
Expand All @@ -54,8 +71,8 @@ FloatingPane {
id: valueAxisX
labelFormat: "%i"
titleText: "Camera Brightness"
min: ready ? csvData.getColumn(0).getFirst() : 0
max: ready ? csvData.getColumn(0).getLast() : 1
min: csvData.ready ? csvData.getColumn(0).getFirst() : 0
max: csvData.ready ? csvData.getColumn(0).getLast() : 1
}
ValueAxis {
id: valueAxisY
Expand All @@ -67,30 +84,27 @@ FloatingPane {
// We cannot use a Repeater with these Components so we need to instantiate them one by one
// Red curve
LineSeries {
id: redCurve
axisX: valueAxisX
axisY: valueAxisY
name: ready ? csvData.getColumn(1).title : ""
name: csvData.ready ? csvData.getColumn(1).title : ""
color: name.toLowerCase()

Component.onCompleted: if(ready) csvData.getColumn(1).fillChartSerie(this)
}
// Green curve
LineSeries {
id: greenCurve
axisX: valueAxisX
axisY: valueAxisY
name: ready ? csvData.getColumn(2).title : ""
name: csvData.ready ? csvData.getColumn(2).title : ""
color: name.toLowerCase()

Component.onCompleted: if(ready) csvData.getColumn(2).fillChartSerie(this)
}
// Blue curve
LineSeries {
id: blueCurve
axisX: valueAxisX
axisY: valueAxisY
name: ready ? csvData.getColumn(3).title : ""
name: csvData.ready ? csvData.getColumn(3).title : ""
color: name.toLowerCase()

Component.onCompleted: if(ready) csvData.getColumn(3).fillChartSerie(this)
}
}

Expand Down

0 comments on commit 70e0a9c

Please sign in to comment.