+
+ // If the peer doesn't support LongTime, upconvert the lastAwayMessage field
+ // from the 32-bit numerical seconds value used in older versions to QDateTime
+ if (!proxy()->sourcePeer()->hasFeature(Quassel::Feature::LongTime)) {
+ QDateTime lastAwayMessage = QDateTime();
+ lastAwayMessage.setTimeSpec(Qt::UTC);
+#if QT_VERSION >= 0x050800
+ lastAwayMessage.fromSecsSinceEpoch(map["lastAwayMessage"].toInt());
+#else
+ // toSecsSinceEpoch() was added in Qt 5.8. Manually downconvert to seconds for now.
+ // See https://doc.qt.io/qt-5/qdatetime.html#toMSecsSinceEpoch
+ lastAwayMessage.fromMSecsSinceEpoch(map["lastAwayMessage"].toInt() * 1000);
+#endif
+ map["lastAwayMessage"] = lastAwayMessage;
+ }
+