-void IrcUser::setNick(const QString &nick) {
- if(!nick.isEmpty() && nick != _nick) {
- QString oldnick(_nick);
- _nick = nick;
- updateObjectName();
- emit nickSet(nick);
- }
+
+void IrcUser::setIrcOperator(const QString &ircOperator)
+{
+ if (!ircOperator.isEmpty() && _ircOperator != ircOperator) {
+ _ircOperator = ircOperator;
+ SYNC(ARG(ircOperator))
+ }
+}
+
+
+// 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(int lastAwayMessage)
+{
+#if QT_VERSION >= 0x050800
+ QDateTime lastAwayMessageTime = QDateTime::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
+ QDateTime lastAwayMessageTime = QDateTime::fromMSecsSinceEpoch(lastAwayMessage * 1000);
+#endif
+ lastAwayMessageTime.setTimeSpec(Qt::UTC);
+ setLastAwayMessageTime(lastAwayMessageTime);
+}
+
+
+void IrcUser::setLastAwayMessageTime(const QDateTime &lastAwayMessageTime)
+{
+ if (lastAwayMessageTime > _lastAwayMessageTime) {
+ _lastAwayMessageTime = lastAwayMessageTime;
+ SYNC(ARG(lastAwayMessageTime))
+ }