diff options
author | Robert Loehning <robert.loehning@nokia.com> | 2009-12-02 14:42:03 +0100 |
---|---|---|
committer | Robert Loehning <robert.loehning@nokia.com> | 2009-12-02 14:43:22 +0100 |
commit | e494864b08f094d0efe2bb49208ae316f97cbc6d (patch) | |
tree | 282d5a222211aa7bbff737e40a16d60aceca5515 | |
parent | 7057584f982e1a607140f267995c7352a1356cd8 (diff) | |
download | qt-creator-e494864b08f094d0efe2bb49208ae316f97cbc6d.tar.gz |
Trk: Setting correct date and time when closing remote file.
Reviewed-by: Friedemann Kleint
-rw-r--r-- | src/shared/trk/launcher.cpp | 2 | ||||
-rw-r--r-- | src/shared/trk/trkutils.cpp | 15 | ||||
-rw-r--r-- | src/shared/trk/trkutils.h | 3 |
3 files changed, 19 insertions, 1 deletions
diff --git a/src/shared/trk/launcher.cpp b/src/shared/trk/launcher.cpp index b9b5f04a15..8a78456477 100644 --- a/src/shared/trk/launcher.cpp +++ b/src/shared/trk/launcher.cpp @@ -467,7 +467,7 @@ void Launcher::closeRemoteFile(bool failed) { QByteArray ba; appendInt(&ba, d->m_copyState.copyFileHandle, TargetByteOrder); - appendInt(&ba, QDateTime::currentDateTime().toTime_t(), TargetByteOrder); + appendDateTime(&ba, QDateTime::currentDateTime(), TargetByteOrder); d->m_device->sendTrkMessage(TrkCloseFile, failed ? TrkCallback() : TrkCallback(this, &Launcher::handleFileCopied), ba); diff --git a/src/shared/trk/trkutils.cpp b/src/shared/trk/trkutils.cpp index 458390d889..256d4ad1e1 100644 --- a/src/shared/trk/trkutils.cpp +++ b/src/shared/trk/trkutils.cpp @@ -32,6 +32,9 @@ #include <QtCore/QCoreApplication> #include <QtCore/QDebug> +#include <QtCore/QDate> +#include <QtCore/QDateTime> +#include <QtCore/QTime> #define logMessage(s) do { qDebug() << "TRKCLIENT: " << s; } while (0) @@ -400,6 +403,18 @@ void appendString(QByteArray *ba, const QByteArray &str, Endianness endian, bool ba->append('\0'); } +void appendDateTime(QByteArray *ba, QDateTime dateTime, Endianness endian) +{ + // convert the QDateTime to UTC and append its representation to QByteArray + // format is the same as in FAT file system + dateTime = dateTime.toUTC(); + const QTime utcTime = dateTime.time(); + const QDate utcDate = dateTime.date(); + uint fatDateTime = (utcTime.hour() << 11 | utcTime.minute() << 5 | utcTime.second()/2) << 16; + fatDateTime |= (utcDate.year()-1980) << 9 | utcDate.month() << 5 | utcDate.day(); + appendInt(ba, fatDateTime, endian); +} + QByteArray errorMessage(byte code) { switch (code) { diff --git a/src/shared/trk/trkutils.h b/src/shared/trk/trkutils.h index aec86a1730..3648619373 100644 --- a/src/shared/trk/trkutils.h +++ b/src/shared/trk/trkutils.h @@ -37,6 +37,8 @@ typedef unsigned char byte; +class QDateTime; + namespace trk { enum Command { @@ -92,6 +94,7 @@ void appendByte(QByteArray *ba, byte b); void appendShort(QByteArray *ba, ushort s, Endianness = TargetByteOrder); void appendInt(QByteArray *ba, uint i, Endianness = TargetByteOrder); void appendString(QByteArray *ba, const QByteArray &str, Endianness = TargetByteOrder, bool appendNullTerminator = true); +void appendDateTime(QByteArray *ba, QDateTime dateTime, Endianness = TargetByteOrder); struct Library { |