core: Include timezone for CTCP TIME replies
authorShane Synan <digitalcircuit36939@gmail.com>
Tue, 29 May 2018 18:36:31 +0000 (13:36 -0500)
committerManuel Nickschas <sputnick@quassel-irc.org>
Wed, 6 Jun 2018 17:54:44 +0000 (19:54 +0200)
Explicitly specify the default Qt::TextDate date/time format to allow
modifying it.

On Qt 5, include the timezone data.  This doesn't reduce privacy as
timezone data could be figured out before by manually comparing with
UTC, this just makes it easier for those who want that information
shared.

See https://doc.qt.io/qt-5/qdatetime.html#toString
And https://doc.qt.io/qt-5/qt.html#DateFormat-enum

src/core/coresessioneventprocessor.cpp

index 57d836d..0e9bb01 100644 (file)
@@ -1556,7 +1556,22 @@ void CoreSessionEventProcessor::handleCtcpPing(CtcpEvent *e)
 
 void CoreSessionEventProcessor::handleCtcpTime(CtcpEvent *e)
 {
-    e->setReply(QDateTime::currentDateTime().toString());
+    // Explicitly specify the Qt default DateTime format string to allow for modification
+    // Qt::TextDate default roughly corresponds to...
+    // > ddd MMM d yyyy HH:mm:ss
+    //
+    // See https://doc.qt.io/qt-5/qdatetime.html#toString
+    // And https://doc.qt.io/qt-5/qt.html#DateFormat-enum
+#if QT_VERSION > 0x050000
+    // Append the timezone identifier "t", so other other IRC users have a frame of reference for
+    // the current timezone.  This could be figured out before by manually comparing to UTC, so this
+    // is just convenience.
+
+    // Alas, "t" was only added in Qt 5
+    e->setReply(QDateTime::currentDateTime().toString("ddd MMM d yyyy HH:mm:ss t"));
+#else
+    e->setReply(QDateTime::currentDateTime().toString("ddd MMM d yyyy HH:mm:ss"));
+#endif
 }