From 489f262a757f8136be825ae1047d95a49d10f38d Mon Sep 17 00:00:00 2001 From: komarma Date: Thu, 31 Dec 2009 11:24:20 +0000 Subject: [PATCH] Fixing datetime conversion --- src/model/event.h | 8 ++++---- src/orm/ormrecord.h | 4 ++-- src/test/model/eventtest.cpp | 16 ++++++++-------- 3 files changed, 14 insertions(+), 14 deletions(-) diff --git a/src/model/event.h b/src/model/event.h index 14aa5f3..b3efb48 100644 --- a/src/model/event.h +++ b/src/model/event.h @@ -30,16 +30,16 @@ public: QDateTime start() const { return value("start").toDateTime(); } int duration() const { return value("duration").toInt(); } int activityId() const { return value("xid_activity").toInt(); } - int typeId() const { return value("type").toInt(); } - int languageId() const { return value("language").toInt(); } + QString type() const { return value("type").toString(); } + QString language() const { return value("language").toString(); } void setId(int id) { setValue("id", id); } void setConferenceId(int conferenceId) { setValue("xid_conference", conferenceId); } void setStart(const QDateTime& start) { setValue("start", start); } void setDuration(int duration) { setValue("duration", duration); } void setActivityId(int activityId) { setValue("xid_activity", activityId); } - void setTypeId(int typeId) { setValue("type", typeId); } - void setLanguageId(int languageId) { setValue("language", languageId); } + void setType(const QString& type) { setValue("type", type); } + void setLanguage(const QString& language) { setValue("language", language); } friend class EventTest; }; diff --git a/src/orm/ormrecord.h b/src/orm/ormrecord.h index 22e19f4..a939248 100644 --- a/src/orm/ormrecord.h +++ b/src/orm/ormrecord.h @@ -148,10 +148,10 @@ QSqlRecord OrmRecord::toRecord(const QList & columnList) template QVariant OrmRecord::convertToC(QVariant value, QVariant::Type colType) { - if (colType == QVariant::DateTime && - (value.type() == QVariant::UInt || value.type() == QVariant::Int)) + if (colType == QVariant::DateTime && value.canConvert()) { QDateTime date; + date.setTimeSpec(Qt::UTC); date.setTime_t(value.toUInt()); return date; } diff --git a/src/test/model/eventtest.cpp b/src/test/model/eventtest.cpp index 83f1996..515ab42 100644 --- a/src/test/model/eventtest.cpp +++ b/src/test/model/eventtest.cpp @@ -18,13 +18,14 @@ void EventTest::initTestCase() void EventTest::getById() { Event event = Event::getById(500, 1); + QCOMPARE(event.id(), 500); - QCOMPARE(event.start(), QDateTime::fromString("Sat Feb 7 11:30:00 2009")); + QCOMPARE(event.start(), QDateTime(QDate(2009, 2, 7), QTime(11, 30, 0), Qt::UTC)); QCOMPARE(event.activityId(), 123); // !!! TODO: typeId and languageId - QCOMPARE(event.typeId(), 0); - QCOMPARE(event.languageId(), 0); + QCOMPARE(event.type(), QString("Podium")); + QCOMPARE(event.language(), QString("English")); } void EventTest::storingValues() @@ -36,19 +37,18 @@ void EventTest::storingValues() event.setStart(QDateTime::fromString("Sat Feb 7 11:30:00 2009")); event.setDuration(30); event.setActivityId(40); - event.setTypeId(50); - event.setLanguageId(60); + event.setType(QString("type")); + event.setLanguage(QString("language")); QCOMPARE(event.id(), 10); QCOMPARE(event.conferenceId(), 20); QCOMPARE(event.start(), QDateTime::fromString("Sat Feb 7 11:30:00 2009")); QCOMPARE(event.duration(), 30); QCOMPARE(event.activityId(), 40); - QCOMPARE(event.typeId(), 50); - QCOMPARE(event.languageId(), 60); + QCOMPARE(event.type(), QString("type")); + QCOMPARE(event.language(), QString("language")); } - void EventTest::hydrate() { QSqlRecord record; -- 2.39.5