modernize: Migrate action-related things to PMF connects
[quassel.git] / src / qtui / coreinfodlg.cpp
index d952735..d7b1c3c 100644 (file)
 #include "bufferwidget.h"
 #include "client.h"
 #include "icon.h"
+#include "util.h"
 
 CoreInfoDlg::CoreInfoDlg(QWidget *parent) : QDialog(parent) {
     ui.setupUi(this);
 
     // Listen for resynchronization events (pre-0.13 cores only)
-    connect(Client::instance(), SIGNAL(coreInfoResynchronized()),
-            this, SLOT(coreInfoResynchronized()));
+    connect(Client::instance(), &Client::coreInfoResynchronized,
+            this, &CoreInfoDlg::coreInfoResynchronized);
 
     // Update legacy core info for Quassel cores earlier than 0.13.  This does nothing on modern
     // cores.
@@ -59,7 +60,7 @@ void CoreInfoDlg::refreshLegacyCoreInfo() {
 
     // On legacy cores, CoreInfo data does not send signals.  Periodically poll for information.
     // 15 seconds seems like a reasonable trade-off as this only happens while the dialog is open.
-    QTimer::singleShot(15 * 1000, this, SLOT(refreshLegacyCoreInfo()));
+    QTimer::singleShot(15 * 1000, this, &CoreInfoDlg::refreshLegacyCoreInfo);
 }
 
 
@@ -68,8 +69,8 @@ void CoreInfoDlg::coreInfoResynchronized() {
 
     CoreInfo *coreInfo = Client::coreInfo();
     // Listen for changes to core information
-    connect(coreInfo, SIGNAL(coreDataChanged(const QVariantMap &)),
-            this, SLOT(coreInfoChanged(const QVariantMap &)));
+    connect(coreInfo, &CoreInfo::coreDataChanged,
+            this, &CoreInfoDlg::coreInfoChanged);
 
     // Update with any known core information set before connecting the signal.  This is needed for
     // both modern (0.13+) and legacy cores.
@@ -94,7 +95,14 @@ void CoreInfoDlg::coreInfoChanged(const QVariantMap &coreInfo) {
     } else {
         ui.labelCoreVersion->setText(coreInfo["quasselVersion"].toString());
         // "BuildDate" for compatibility
-        ui.labelCoreVersionDate->setText(coreInfo["quasselBuildDate"].toString());
+        if (coreInfo["quasselBuildDate"].toString().isEmpty()) {
+            ui.labelCoreVersionDate->setText(QString("<i>%1</i>").arg(tr("Unknown date")));
+        }
+        else {
+            ui.labelCoreVersionDate->setText(
+                        tryFormatUnixEpoch(coreInfo["quasselBuildDate"].toString(),
+                        Qt::DateFormat::DefaultLocaleShortDate));
+        }
         ui.labelClientCount->setNum(coreInfo["sessionConnectedClients"].toInt());
     }
 
@@ -121,7 +129,7 @@ void CoreInfoDlg::coreInfoChanged(const QVariantMap &coreInfo) {
             // The layout stretch item should never be removed, so count should always be >= 1.
             ui.coreSessionContainer->insertWidget(ui.coreSessionContainer->count() - 1,
                                                   coreSessionWidget, 0, Qt::AlignTop);
-            connect(coreSessionWidget, SIGNAL(disconnectClicked(int)), this, SLOT(disconnectClicked(int)));
+            connect(coreSessionWidget, &CoreSessionWidget::disconnectClicked, this, &CoreInfoDlg::disconnectClicked);
         }
     }
 
@@ -167,7 +175,8 @@ void CoreInfoDlg::updateUptime() {
                                      .arg(uphours, 2, 10, QChar('0'))
                                      .arg(upmins, 2, 10, QChar('0'))
                                      .arg(uptime, 2, 10, QChar('0'))
-                                     .arg(startTime.toLocalTime().toString(Qt::TextDate));
+                                     .arg(startTime.toLocalTime()
+                                          .toString(Qt::DefaultLocaleShortDate));
         ui.labelUptime->setText(uptimeText);
     }
 }