@property
def equation(self):
- return operation.render_operation(self._prettyRenderer, self._node),
+ return operation.render_operation(self._prettyRenderer, self._node)
@property
def result(self):
- return operation.render_operation(self._prettyRenderer, self._simpleNode),
+ return operation.render_operation(self._prettyRenderer, self._simpleNode)
def data(self, column):
if column == self.CLOSE_COLUMN:
def data(self, index, role):
if not index.isValid():
return None
+
+ if role == QtCore.Qt.DisplayRole:
+ item = index.internalPointer()
+ if isinstance(item, RowData):
+ print "d-rw", item.data(index.column())
+ return item.data(index.column())
+ elif item is RowData.HEADERS:
+ print "d-h", item[index.column()]
+ return item[index.column()]
+ elif role == QtCore.Qt.TextAlignmentRole:
+ return RowData.ALIGNMENT[index.column()]
elif role == QtCore.Qt.DecorationRole:
if index.column() == RowData.CLOSE_COLUMN:
return None
else:
return None
- elif role == QtCore.Qt.TextAlignmentRole:
- return RowData.ALIGNMENT[index.column()]
- elif role != QtCore.Qt.DisplayRole:
+ else:
return None
- item = index.internalPointer()
- if isinstance(item, RowData):
- return item.data(index.column())
- elif item is RowData.HEADERS:
- return item[index.column()]
-
@misc_utils.log_exception(_moduleLogger)
def flags(self, index):
if not index.isValid():
if not self.hasIndex(row, column, parent):
return QtCore.QModelIndex()
- if parent.isValid():
+ elif parent.isValid():
return QtCore.QModelIndex()
parentItem = RowData.HEADERS
childItem = self._children[row]
if childItem:
+ print "i", row, column, childItem
return self.createIndex(row, column, childItem)
else:
return QtCore.QModelIndex()
return 0
if not parent.isValid():
+ print "rc", len(self._children)
return len(self._children)
else:
+ print "rc", len(self._children)
return len(self._children)
def push(self, row):
self._children.append(row)
self._signal_rows_added()
+ print "push", row
+ print "push", len(self._children)
def pop(self):
data = self._children[-1]
del self._children[-1]
self._signal_rows_removed()
+ print "pop", data
return data
def peek(self):
def _signal_rows_added(self):
# @todo Only signal new rows
- self._all_changed
+ self._all_changed()
def _signal_rows_removed(self):
# @todo Only signal new rows
- self._all_changed
+ self._all_changed()
def _all_changed(self):
+ if not self._children:
+ return
topLeft = self.createIndex(0, 0, self._children[0])
bottomRight = self.createIndex(len(self._children)-1, len(RowData.HEADERS)-1, self._children[-1])
self.dataChanged.emit(topLeft, bottomRight)