Ejemplo n.º 1
0
    def __init__(self, hamster):
        super(FactModelPyQt, self).__init__()
        self._hamster = hamster
        self._facts = []
        self._totals = {
        }  # Day totals maintained in the model. When the model is refreshed this
        # list is refreshed. When new facts are added or exising ones updated,
        # the totals are updated accordingly.
        self._roles = QAbstractTableModel.roleNames(self)
        roleIndexes = Qt.UserRole + 1
        self._rKey = roleIndexes
        roleIndexes += 1
        self._rStart = roleIndexes
        roleIndexes += 1
        self._rEnd = roleIndexes
        roleIndexes += 1
        self._rActivity = roleIndexes
        roleIndexes += 1
        self._rCategory = roleIndexes
        roleIndexes += 1
        self._rDescription = roleIndexes
        roleIndexes += 1
        self._rDuration = roleIndexes
        roleIndexes += 1
        self._rDay = roleIndexes
        roleIndexes += 1
        # Reset the index to reuse
        roleIndexes = 0
        self._roles[self._rKey] = QByteArray().append(
            FactModelPyQt.COLUMNS[roleIndexes])
        roleIndexes += 1
        self._roles[self._rStart] = QByteArray().append(
            FactModelPyQt.COLUMNS[roleIndexes])
        roleIndexes += 1
        self._roles[self._rEnd] = QByteArray().append(
            FactModelPyQt.COLUMNS[roleIndexes])
        roleIndexes += 1
        self._roles[self._rActivity] = QByteArray().append(
            FactModelPyQt.COLUMNS[roleIndexes])
        roleIndexes += 1
        self._roles[self._rCategory] = QByteArray().append(
            FactModelPyQt.COLUMNS[roleIndexes])
        roleIndexes += 1
        self._roles[self._rDescription] = QByteArray().append(
            FactModelPyQt.COLUMNS[roleIndexes])
        roleIndexes += 1
        self._roles[self._rDuration] = QByteArray().append(
            FactModelPyQt.COLUMNS[roleIndexes])
        roleIndexes += 1
        self._roles[self._rDay] = QByteArray().append(
            FactModelPyQt.COLUMNS[roleIndexes])
        roleIndexes += 1

        self.refreshFacts()
        self._hamster.factUpdated.connect(self.updateFact)
        self._hamster.factAdded.connect(self.addFact)