Reimplemented from QtCore.QAbstractItemModel

        You can only set the value.

        :param index: the index to edit, column should be 1.
        :type index: :class:`PySide.QtCore.QModelIndex`
        :param value: the new value for the configobj
        :type value: object
        :param role: Optional - the ItemDataRole. Default is QtCore.Qt.EditRole
        :type role: QtCore.Qt.ItemDataRole
        :returns: True if index was edited, False if index could not be edited.
        :rtype: bool
        :raises: None

def setData(self, index, value, role=QtCore.Qt.EditRole):
        """Reimplemented from QtCore.QAbstractItemModel

        You can only set the value.

        :param index: the index to edit, column should be 1.
        :type index: :class:`PySide.QtCore.QModelIndex`
        :param value: the new value for the configobj
        :type value: object
        :param role: Optional - the ItemDataRole. Default is QtCore.Qt.EditRole
        :type role: QtCore.Qt.ItemDataRole
        :returns: True if index was edited, False if index could not be edited.
        :rtype: bool
        :raises: None

        """
        if index.isValid():
            if role == QtCore.Qt.EditRole:
                if index.column() == 1:
                    p = index.internalPointer()
                    k = self.get_key(p, index.row())
                    # we could just set the value
                    # BUT for listvalues etc it will not work
                    strval = self._val_to_str(value)
                    # _handle_value will parse it correctly
                    # comments gets lost
                    (parsedval, comment) = self._conf._handle_value(strval)
                    p[k] = parsedval
                    self.dataChanged.emit(index, index)
                    return True
        return False