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 #1

Von Sebastian Diel vor mehr als 7 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.

Aktionen #2

Von Christian Ehringfeld vor mehr als 7 Jahren aktualisiert

  • Status wurde von Neu zu Erledigt geändert
  • % erledigt wurde von 0 zu 100 geändert

Status geändert durch Changeset 49865455e32a9ea10d948fb8f221b6055726e741.

Aktionen

Auch abrufbar als: Atom PDF