Skip to content

Commit

Permalink
Merge branch 'mer-1536' into 'master'
Browse files Browse the repository at this point in the history
[qtcontacts-sqlite] Ensure timestamps use C locale. Contributes to MER#1536

Timestamps must be generated using the C locale, so they do not contain
digits other than Latin.

See merge request !4
  • Loading branch information
matthewvogt committed Mar 4, 2016
2 parents d6c986d + 1b7d92f commit 28e727f
Show file tree
Hide file tree
Showing 3 changed files with 10 additions and 5 deletions.
5 changes: 3 additions & 2 deletions src/engine/contactsdatabase.cpp
Expand Up @@ -41,6 +41,7 @@
#include <QElapsedTimer>
#include <QFile>
#include <QFileInfo>
#include <QLocale>
#include <QSqlError>
#include <QSqlQuery>

Expand Down Expand Up @@ -2973,13 +2974,13 @@ bool ContactsDatabase::populateTemporaryTransientState(bool timestamps, bool glo
QString ContactsDatabase::dateTimeString(const QDateTime &qdt)
{
// Input must be UTC
return qdt.toString(QStringLiteral("yyyy-MM-ddThh:mm:ss.zzz"));
return QLocale::c().toString(qdt, QStringLiteral("yyyy-MM-ddThh:mm:ss.zzz"));
}

QString ContactsDatabase::dateString(const QDateTime &qdt)
{
// Input must be UTC
return qdt.toString(QStringLiteral("yyyy-MM-dd"));
return QLocale::c().toString(qdt, QStringLiteral("yyyy-MM-dd"));
}

QDateTime ContactsDatabase::fromDateTimeString(const QString &s)
Expand Down
6 changes: 4 additions & 2 deletions src/extensions/twowaycontactsyncadapter_impl.h
Expand Up @@ -45,6 +45,8 @@
#include <QContactTimestamp>
#include <QContactUrl>

#include <QLocale>

#define QTCONTACTS_SQLITE_TWCSA_DEBUG_LOG(msg) \
do { \
if (Q_UNLIKELY(qtcontacts_sqlite_twcsa_debug_trace_enabled())) { \
Expand Down Expand Up @@ -182,12 +184,12 @@ void registerTypes()
// Input must be UTC
QString dateTimeString(const QDateTime &qdt)
{
return qdt.toString(QStringLiteral("yyyy-MM-ddThh:mm:ss.zzz"));
return QLocale::c().toString(qdt, QStringLiteral("yyyy-MM-ddThh:mm:ss.zzz"));
}

QDateTime fromDateTimeString(const QString &s)
{
QDateTime rv(QDateTime::fromString(s, QStringLiteral("yyyy-MM-ddThh:mm:ss.zzz")));
QDateTime rv(QLocale::c().toDateTime(s, QStringLiteral("yyyy-MM-ddThh:mm:ss.zzz")));
rv.setTimeSpec(Qt::UTC);
return rv;
}
Expand Down
4 changes: 3 additions & 1 deletion tests/auto/aggregation/tst_aggregation.cpp
Expand Up @@ -34,6 +34,8 @@
#include "../../util.h"
#include "testsyncadapter.h"

#include <QLocale>

static const QString aggregatesRelationship(relationshipString(QContactRelationship::Aggregates));

namespace {
Expand Down Expand Up @@ -1775,7 +1777,7 @@ void tst_Aggregation::uniquenessConstraints()
aggregateAlice = m_cm->contact(retrievalId(aggregateAlice));

// test uniqueness constraint of birthday detail.
QDateTime aliceBirthday = QDateTime::fromString("25/12/1950 01:23:45", "dd/MM/yyyy hh:mm:ss");
QDateTime aliceBirthday = QLocale::c().toDateTime("25/12/1950 01:23:45", "dd/MM/yyyy hh:mm:ss");
QCOMPARE(aggregateAlice.details<QContactBirthday>().size(), 0);
QContactBirthday abd;
abd.setDateTime(aliceBirthday);
Expand Down

0 comments on commit 28e727f

Please sign in to comment.