_server(),
// _idleTime(QDateTime::currentDateTime()),
_ircOperator(),
- _lastAwayMessage(),
+ _lastAwayMessageTime(),
_whoisServiceReply(),
_encrypted(false),
_network(network),
_codecForDecoding(0)
{
updateObjectName();
- _lastAwayMessage.setTimeSpec(Qt::UTC);
- _lastAwayMessage.setMSecsSinceEpoch(0);
+ _lastAwayMessageTime.setTimeSpec(Qt::UTC);
+ _lastAwayMessageTime.setMSecsSinceEpoch(0);
}
}
-void IrcUser::setLastAwayMessage(const QDateTime &lastAwayMessage)
+// This function is only ever called by SYNC calls from legacy cores (pre-0.13).
+// Therefore, no SYNC call is needed here.
+void IrcUser::setLastAwayMessage(const int &lastAwayMessage)
{
- if (lastAwayMessage > _lastAwayMessage) {
- _lastAwayMessage = lastAwayMessage;
- SYNC(ARG(lastAwayMessage))
+ QDateTime lastAwayMessageTime = QDateTime();
+ lastAwayMessageTime.setTimeSpec(Qt::UTC);
+#if QT_VERSION >= 0x050800
+ lastAwayMessageTime.fromSecsSinceEpoch(lastAwayMessage);
+#else
+ // toSecsSinceEpoch() was added in Qt 5.8. Manually downconvert to seconds for now.
+ // See https://doc.qt.io/qt-5/qdatetime.html#toMSecsSinceEpoch
+ lastAwayMessageTime.fromMSecsSinceEpoch(lastAwayMessage * 1000);
+#endif
+ setLastAwayMessageTime(lastAwayMessageTime);
+}
+
+
+void IrcUser::setLastAwayMessageTime(const QDateTime &lastAwayMessageTime)
+{
+ if (lastAwayMessageTime > _lastAwayMessageTime) {
+ _lastAwayMessageTime = lastAwayMessageTime;
+ SYNC(ARG(lastAwayMessageTime))
}
}