Fehler #624
geschlossenEnumerator Attribute write Regression
100%
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.
Von Sebastian Diel vor etwa 8 Jahren aktualisiert
Frisch (fürs heute erschienene Qt 5.6.2) gefixte Bugs, die eventuell in Zusammenhang stehen könnten.
https://bugreports.qt.io/browse/QTBUG-53384
https://bugreports.qt.io/browse/QTBUG-45438
Ehrlich gesagt glaube ich aber nicht daran, dass es sich hier um einen Qt-Bug handelt. Ich glaube, dass die Änderung zu .key ein Fehler war.
Von Christian Ehringfeld vor etwa 8 Jahren aktualisiert
- Status wurde von Neu zu Erledigt geändert
- % erledigt wurde von 0 zu 100 geändert
Status geändert durch Changeset 49865455e32a9ea10d948fb8f221b6055726e741.