Projekt

Allgemein

Profil

Aktionen

Fehler #624

geschlossen

Enumerator Attribute write Regression

Von Sebastian Diel vor mehr als 7 Jahren hinzugefügt. Vor mehr als 7 Jahren aktualisiert.

Status:
Erledigt
Priorität:
Dringend
Zugewiesen an:
Zielversion:
-
Beginn:
10.10.2016
Abgabedatum:
% erledigt:

100%

Geschätzter Aufwand:

Beschreibung

In File entityinstancefactory.cpp wurde in der Methode

void EntityInstanceFactory::setAttributes(Entity *&e,
        const QHash<QString, QVariant> &attributes,
        QHash<QString, QMetaProperty> metaprops)
die Zeile
                        prop.write(e, prop.enumerator().valueToKey(iterator.value().toInt()));

geändert zu
                        prop.write(e, prop.enumerator().key(iterator.value().toInt()));

Das führt dazu, dass nach dem Auslesen aus der DB das jeweilige Enum zyklisch um eine Position verschoben ins Attribut geschrieben wird. Im Falle der Anwesenheitsstatus gelten folgende Definitionen:

    enum class AttendanceState {
        PRESENT=1,
        MISSING=2,
        LATE=3,
        ATSCHOOL=4,
        UNDEFINED=-1
    };

Statt "MISSING" wird nun "LATE" geschrieben, statt "LATE" kommt "ATSCHOOL", statt "ATSCHOOL" kommt "UNDEFINED". Ob auf "UNDEFINED" dann "PRESENT" kommt, habe ich nicht getestet.

Eine Rücknahme der o. a. Änderung stellt wieder das gewünschte Verhalten her.

Aktionen

Auch abrufbar als: Atom PDF